X



【まず1嫁】くだすれPython(超初心者用) その56

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2021/12/27(月) 01:38:10.93ID:GepmXCuJ
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。

★エラーを解決したい場合★は、
  表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。

Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi

〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その55
https://mevius.5ch.net/test/read.cgi/tech/1633070807/

次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
0348デフォルトの名無しさん
垢版 |
2022/02/25(金) 20:56:48.33ID:GIHvsxbC
K=9
T=0
import numpy as np
a[T]=np.zeros((K,K))



print(a[T])

aが定義されてませんと言われましたがどうやって回避すれば良いでしょうか?
0350348
垢版 |
2022/02/25(金) 21:18:24.60ID:dMzxkvQR
どうしたら良いでしょうか


aを定義しろと言われてもaはゼロ行列だと思うのですが
0352デフォルトの名無しさん
垢版 |
2022/02/25(金) 21:34:05.55ID:uvlAEAIe
a[T]=np.zeros((K,K))
てことは
a[T]
np.zeros((K,K))
とりあえず両方評価できないと始まらないので個別に評価してみる。(Kは明白なので省略)
>>> a[T]

NameError: name 'a' is not defined
0353デフォルトの名無しさん
垢版 |
2022/02/25(金) 21:51:43.98ID:jsx2tRyk
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw
クソチョンはウンコを食べる糞食人種w
クソチョンはゲリ便をじゅるじゅると
うまそうに食うw
0357デフォルトの名無しさん
垢版 |
2022/02/26(土) 17:10:40.38ID:0W3q9eVZ
プログラム的な事マジでド初心者の俺に教えてくれ
AとBのボタンを作って押下した時の挙動を書く時とかのこのボタン?フォーム?の事ってなんて言うの?
VBAならUserFormとかで適当に作ったりしてたから似たような感じで簡単なソフト作れるんじゃないかと思ったが、調べても良く分からなんだ
0358デフォルトの名無しさん
垢版 |
2022/02/26(土) 17:23:42.20ID:bVNtHGMl
「python gui 方法」みたいにぐぐれば色々ヒットするよ
pythonにこだわりないならc#とかほかの言語の方がウインドウ作ってとかはやりやすいと思う
0361デフォルトの名無しさん
垢版 |
2022/02/26(土) 18:14:31.40ID:69L5Q9UW
guiって言うのか
やれそうな気してきた、ありがとう
そんなに難しい事をするつもりはない(出来る気もしない)から言語に拘りはないけど、どうせ触るなら時代に乗ってそう?で分かりやすそうなのが良いかなぁと
0363デフォルトの名無しさん
垢版 |
2022/02/26(土) 21:08:07.66ID:pRyvkJpa
GUIって意外と難しいぞ
非同期処理なんとなくわかる程度まで行かないと厳しい
ボタン置くだけならJavascriptが一番楽
ブラウザとテキストエディタがあればいい。
0366デフォルトの名無しさん
垢版 |
2022/02/27(日) 10:34:45.08ID:nn6oofM8
>>357
わしも初心者ですが...
ボタンとかプルダウンメニューとかマウスを使う前提の環境 = gui
ボタンとかの部品 = ウィジェット
それらを使うためのサブルーチン群 = guiツールキット
ボタンが押されたとかの出来事 = イベント
ボタンとか配置するソフト = guiデザイナ

pytyonはguiツールキットが多すぎるぐらい恵まれてます。
わしはpyqt5使っております。ほかはtkinter、WxPython、pygtk、Kivy が有名。
でも意外と楽ちんなデザイナが少ない気がします。
pyqtのqtデザイナ、tkinterのPAGEが使いやすいかと思います。
0367デフォルトの名無しさん
垢版 |
2022/02/27(日) 19:13:19.38ID:EPp3U+v4
guiキット恵まれてんのにexe配布が絶望的…
頼むからpyinstallerちゃんダイエットしてくれや
0368デフォルトの名無しさん
垢版 |
2022/02/27(日) 19:29:40.89ID:6fl1teDT
最初からexe配布が視野に入ってるなら
処理的にどうしてもpython必須ってんじゃない限り
別の言語使った方がいい
0371348
垢版 |
2022/02/28(月) 12:02:04.82ID:nBtp+f0s
皆さまありがとうございます、皆様のおかげで問題は解決しました
0372デフォルトの名無しさん
垢版 |
2022/02/28(月) 15:17:54.00ID:nBtp+f0s
https://atcoder.jp/contests/abc241/tasks/abc241_a

この問題で、


i=0
A=[]
B=[]
for i in range(10):
#### list assignment out of range が次の行で出る
B[i]=input('A[i]を代入してください')
A[i].append(int(B[i]))
if A[i]<= 9:
i +=1
else :
B[i]=input('もう一度A[i]を代入してください')

print(A[A[A[0]]])


何がout of range なのでしょうか?
0373デフォルトの名無しさん
垢版 |
2022/02/28(月) 15:32:20.23ID:UX0HcLa3
B=[] ←要素数ゼロで初期化
B[i]= ←i番目の要素に代入。だから要素数の範囲(レンジ)からアウトしてる
0374デフォルトの名無しさん
垢版 |
2022/02/28(月) 16:29:27.67ID:nBtp+f0s
>>373
ありがとうございます、
つまり最初に有限この要素のリスト
B=[0,0,0,0,0,0,0,0,0,0]を作っておいて後からそれらの値に代入すれば問題は解決されるのでしょうか?それが一番いいやり方でしょうか?
0376デフォルトの名無しさん
垢版 |
2022/02/28(月) 17:23:45.04ID:BjQFST3O
>>374
数字が1個ずつ渡されると勘違いしてる前提だとしても
Bをリストする意味ないしi = 0 や i += 1するのも意味がないよ

入力は1行で10個の数字が渡されるから
直接splitして各要素を数値にしてlistとして変数に代入すればいい
0377デフォルトの名無しさん
垢版 |
2022/02/28(月) 18:22:56.81ID:uUgrFe+p
自己解決しました
ありがとうございます
0378デフォルトの名無しさん
垢版 |
2022/02/28(月) 18:24:43.32ID:7jUXLESA
>>376
ありがとうございます
0379デフォルトの名無しさん
垢版 |
2022/02/28(月) 19:33:18.82ID:QtV0mrZw
このタイプの入力はいつも内包表記でやってるな
a = [int(i) for i in input().split()]
0380デフォルトの名無しさん
垢版 |
2022/03/01(火) 07:16:31.85ID:8HE09WEK
パイソン学べばアプリ作れると思ってはじめてみたけど
パイソンは言語のひとつであってそれだけではアプリを作れないんだね
0386デフォルトの名無しさん
垢版 |
2022/03/01(火) 10:16:01.62ID:FpudFrD4
>>384
> Pythonに限らず言語学んだだけではアプリは作れないよ
これは正しいけど
> パイソンは言語のひとつであってそれだけではアプリを作れないんだね
とは違う話だろ
0387デフォルトの名無しさん
垢版 |
2022/03/01(火) 10:36:06.98ID:FuAp7249
奥が深い話だな
というか考えるレベルによって変わる
バカなこと言えば、phthonマスターしてても端末やOS電源なんかが必要だから、pythonだけじゃアプリを作れない
多少まともなこと言えば、C++マスターしててもWin32APIなど知らないとWindowsGUIアプリ作れないみたいに、アプリ作るには言語以外の知識も必要になる
0390デフォルトの名無しさん
垢版 |
2022/03/01(火) 12:19:45.24ID:ZphrWLt8
アプリってのはアプリケーションソフトのことやで
日本語に訳すとは自分で調べてみてね
0391デフォルトの名無しさん
垢版 |
2022/03/01(火) 12:44:44.67ID:FuAp7249
今の時代はアプリはスマホアプリのことを指して、PCアプリをアプリと呼ばない人もいるからな
pythonでスマホアプリを作るのに言語だけじゃというのかもしれない
0395デフォルトの名無しさん
垢版 |
2022/03/01(火) 18:08:42.06ID:bPAr9M5f
Python + kivy でアプリ作ったが、
BuildozerでうまくAPKが作れません。
Ubuntuで作成していますが、解説サイトが少なすぎて、
どのように直せばいいのか分かりません。

アプリからCSVファイルを読み込むのに、Windowsなら csv.readerでできますが、
Android上では、上手くできない。
こういう違いを解説しているサイトありませんか??
0397デフォルトの名無しさん
垢版 |
2022/03/01(火) 19:57:52.20ID:bPAr9M5f
>>396
あ…、なるほど。それも確かにありますね…。
権限付与とか、Ubuntuでは関係ないので、
apk作成してから実際に確かめるしかないんですかね…。
0398デフォルトの名無しさん
垢版 |
2022/03/01(火) 20:37:15.87ID:rZFH8Ry6
そんな漠然とした質問されましても・・・。
0400デフォルトの名無しさん
垢版 |
2022/03/02(水) 19:05:15.86ID:JpI2oqvB
numpyみたいに左辺値にも数値を取れるようなスカラー倍の実装ってどうやればいいんでしょうか?
↓みたいなものを実現したいです

vec = Vec3d(1, 2, 3)
vec = 3 * vec

vec * 3は普通にVec3d.__mul__()を書けばいとわかりますが…
0403デフォルトの名無しさん
垢版 |
2022/03/02(水) 23:37:34.10ID:JgRDiBWO
>>401
後学のために知っておきたいんだが、rmulが素直な性質を持っていない場合(たとえば、s * vecでsが3の倍数のときだけベクトルの要素にすべてsinが適用される)、
3 * 4 * vecの評価順ってどうなるの?
12 * vecになるか、3 *(4 * vec)になるかで結果が変わってくるよね?
0404デフォルトの名無しさん
垢版 |
2022/03/02(水) 23:51:59.12ID:JCVrS93n
優先順位が同じだから左から処理されて12*vecになる。
0405デフォルトの名無しさん
垢版 |
2022/03/03(木) 00:14:52.94ID:opDE9Pw0
>>404
サンキュー!
八元数なんかだと結合法則成り立たないから実装には要注意だね
んなもん使わないけどw
0406デフォルトの名無しさん
垢版 |
2022/03/03(木) 11:37:39.24ID:MIHsZ6Ov
'2022-03-01'という文字列と今日の日付を比較したいのですが、うまくいきません。
文字列は datetime.datetaime.strptime(ooo,'%Y%m%d') で変換できました。
比較対象は、 datetime.date.today() かdatetime.datetime.now()

にしてもだめでした。
よろしくおねがいします。
0408デフォルトの名無しさん
垢版 |
2022/03/03(木) 12:56:08.30ID:uKQKiz/u
datetimeだかdateだか、ちょっとした書きミスがバグにつながるから
こういうのはyear、month、dayを抜き出して、3回比較するのが確実
0410デフォルトの名無しさん
垢版 |
2022/03/03(木) 14:29:17.12ID:uKQKiz/u
テストコードも同じ過ち起こして、テスト通るのにバグるってなるんだよ・・・
0414デフォルトの名無しさん
垢版 |
2022/03/03(木) 19:26:32.29ID:uKQKiz/u
テストを神聖視しすぎ。本体とテストの実装者が同じだったら同じ過ちを犯すものだよ

最近見かけた日付関連だとファイル内の文字列"yyyy/mm/dd"と現在日を文字列比較してて
しかも現在日から文字列作るのをロケール任せにしてたから、海外だと"mm/dd/yyyy"になってバグるというのがあった
こんなのロケール知らずに普通にテスト組んでたら検出されない
0418デフォルトの名無しさん
垢版 |
2022/03/03(木) 22:14:30.67ID:drOOnciu
>>414
違うロケールでテスト流せばすぐ検出されるよね?

そのケースは個別のテストケース内で確認すべき項目というより別ロケールでのテストを計画しなかった人やチームに落ち度がある
日時を扱う場合にロケールやタイムゾーンは要求仕様の一部だから事前にテスト計画に入れるのが普通
0419デフォルトの名無しさん
垢版 |
2022/03/03(木) 22:31:16.34ID:GbOH5gri
>>414
テストの考え方間違ってるだろ
「テストしたから不具合はない」ではなく
「少なくともテストした項目については、挙動の確認/担保が出来ている」だぞ
(ユニットテストはバグを検知するのでなく、動作担保のために作る)

その例で言えば明らかにテストケース漏れだし
むしろそういう懸念があるならレビューの時に真っ先にチェックするだろ
テストコードを整備せずに、実装側を無意味に歪める方がおかしいだろ
0421デフォルトの名無しさん
垢版 |
2022/03/04(金) 09:16:31.36ID:Gnf2P8af
def test()
 print(1234)
#=enddef test

こんなエンドコメント入れてるんだが、ないかな?
長くなるとわかりにくいんだもん
0424デフォルトの名無しさん
垢版 |
2022/03/04(金) 10:22:54.28ID:tJDnSpmC
>>421
ちゃんとしたエディタなりIDEなり使ってたら
関数単位で折りたためる機能あるから
わざわた付けなくても……
0425デフォルトの名無しさん
垢版 |
2022/03/04(金) 10:56:36.50ID:8OZVHpIn
そりゃIDEで折りたためたり、コンボボックスにその関数名出てたりするけど
そういう機能があるのと見やすさはまた違うからな
言語は違うけど、windowsのソースコードでもその手の終了示すためのコメントは使われてる
0426デフォルトの名無しさん
垢版 |
2022/03/04(金) 11:30:20.88ID:2+JR4Ldk
長くしなければいいじゃわん
0427デフォルトの名無しさん
垢版 |
2022/03/04(金) 11:49:48.53ID:dxtR1KDL
>>421
ねーわ、と思ったが
2000行程度のファイルで試してみたら確かに視認性が上がった

カラーリング次第なところはあるがテストコードに限らず有りだわ
0429デフォルトの名無しさん
垢版 |
2022/03/04(金) 14:14:06.89ID:MfsJLXwz
endがあるRubyでも似たようなコメント書いてたな
このendはifだっけ?whileだっけ?で見に行くのが面倒になって付け始め
条件なんだっけ?で条件もendコメントに書き始めたら
見栄えが汚くなったなww
0430デフォルトの名無しさん
垢版 |
2022/03/04(金) 19:29:27.15ID:k14r3fvN
while True:
try:

kakaku = btc_ask

time.sleep(30)

すんません教えて下さい、
30秒おきにループして、
BTCの価格を取得するプログラムなのですが、
この取得した価格を、
30秒前の前回取得した価格と比べるには、
どうしたらいいでしょうか。

30秒前のkakaku < 現在のkakaku

このようなことがしたいです、
ループの中でkakakuを保持して、
次回のループの時の価格と比べたりできますか?
0431デフォルトの名無しさん
垢版 |
2022/03/04(金) 19:55:32.25ID:7RF2xiEj
5x7(横x縦)の2次元リストのなかにデータが格納されています。

@その中に重複しているデータは何個あるか

Aその重複しているデータを抽出する

が、したいです。
誰かお分かりになる方、教えて下さい。
0433デフォルトの名無しさん
垢版 |
2022/03/04(金) 22:21:09.17ID:nnG5KH7G
>>430
ループの外にprev_kakakuとcurrent_kakakuを用意しておいて
ループ内でif kakaku :=
0434デフォルトの名無しさん
垢版 |
2022/03/04(金) 22:40:01.34ID:rKYLL8CC
ary = [
[ 1, "a", 2 ],
[ 2, "a", "b", 2, 3 ]
]

この場合、出力はこれで良いの?

"a" => 2
2 => 3

"a"が2個、2が3個
0436デフォルトの名無しさん
垢版 |
2022/03/05(土) 00:22:47.69ID:74G/Knts
>>433
なんとかできました、
ありがとうございます!
0437デフォルトの名無しさん
垢版 |
2022/03/05(土) 18:47:19.30ID:IA7poZPw
anacondaとVSCODEで開発しています
昨日あたりから急にconda install したcv2とかpyautoguiとかをimportするとモジュールが見当たらないとエラーがでるように
なってしまいました。
ですけど、conda info -eで見るとちゃんと環境は切り替わっているのですが、
pprint.pprint(sys.path)でimport先を確認するとなぜかcondaのbaseを見ています
import先を切り替えるにはどうすればいいのでしょうか。

なんかUSBHDDを接続してドライブを増やしたときにpython実行した辺りから使えなくなった気がします
0438デフォルトの名無しさん
垢版 |
2022/03/05(土) 23:09:14.83ID:aOITLV1E
エラーメッセージで検索すれば?

anaconda の使い方や、import パスの仕組みなどを調べるとか
0439デフォルトの名無しさん
垢版 |
2022/03/06(日) 15:40:23.36ID:5YdwNKnV
スクレイピングがCloudflareでブロックされてアクセスできなくなってもうた
Selenium(headlessオフ)でアクセスしてもダメ! でもChromeからのアクセスは大丈夫だから
SeleniumとChromeってやっぱ違うんだね、今のところお手上げ><
フリー版?のcloudscraperでもダメっす、何か対策ありますか?
0440デフォルトの名無しさん
垢版 |
2022/03/06(日) 15:52:11.57ID:GH3f7UsN
どのサイトをクロールしようとしてるのか分からないと
徹底的にブラウザの気持ちになってリクエストを再現しろくらいの一般論的なことしか言えんよ
0441デフォルトの名無しさん
垢版 |
2022/03/06(日) 19:29:03.82ID:LhKo5a0F
>>421
有りか無しかで言ったら有りだけど、それ、pythonのデザインポリシーを冒涜してるだろ(笑)
0442デフォルトの名無しさん
垢版 |
2022/03/06(日) 21:38:43.85ID:SX3V4D25
Selenium を使う場合、手動でブラウザを使うのと、全く同じようにシミュレーションすべき

どこかが異なると、それを判別してブロックされる
0443デフォルトの名無しさん
垢版 |
2022/03/06(日) 21:44:19.84ID:WkkDxprJ
そんな複雑なチェックしてることなんてまずないだろ
どうせUAがデフォルトのままとかその手がじゃないか
0444デフォルトの名無しさん
垢版 |
2022/03/06(日) 23:17:19.54ID:TwfM3eez
>>443
そいつrubyキチガイやで
触んな
0446デフォルトの名無しさん
垢版 |
2022/03/08(火) 09:39:26.69ID:ZX9Pe2Of
ルビキチ

rb
mylist=mystr.split(",")
mysize=mylist.size()
mystr=mylist.join(",")

py
mylist=mystr.split(",")
mysize=len(mylist)
mystr=",".join(mylist)
0448デフォルトの名無しさん
垢版 |
2022/03/08(火) 18:04:03.25ID:/uluuvq4
ある数列の連続性をカウントしてまとめたいのですが
forで回してこうやりました
https://ideone.com/lcnVcl

↑の例では
#数列データ
df = pd.DataFrame([1,2,1,1,1,2,3,1,2,1,2,3,1,2,1,2,1,2,3,4,5,1,1,2])
#連続性
#[(1,2),(1),(1),(1,2,3),(1,2),(1,2,3),(1,2),(1,2),(1,2,3,4,5),(1),(1,2)]
#つまり
# (1),(1),(1), (1,2),(1,2),(1,2),(1,2),(1,2), (1,2,3),(1,2,3), (1,2,3,4,5)

数列のデータはpandasのデータフレームで受け取るので
どうせならpandasをもっとうまく使えたらなぁと思ったのですが何かいい案はないでしょうか。

やりたいことはカウントというよりも、
今現在の連続記録nに対して、これ以上は連続しにくいぞ、とか、まだまだ連続する、程度を知れたらいいなと思っています
(数列は正の整数で連続し、連続が切れると1から始まります)

上でやったforのやつでも結果の関数を解くだけなので出来なくはないですが
何か野暮ったいかなと思いました
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況