X



Pythonのお勉強 Part64
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 6b01-vvkI)
垢版 |
2020/09/14(月) 07:12:53.70ID:+5bseuUi0
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに増やすこと。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」をNGワード登録推奨

・エラーを解決したいときは、まず
 エラー文(勝手に省略/スクショうp等の横着禁止)と
 おま環(Pythonのバージョン+OS名IDE名と夫々のバージョン)を書け。

★Pythonのソースコードを5ちゃんに直コピペするとインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをimgur等にうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。最近流行中?
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇まとめwiki ttp://python.rdy.jp/

●関連スレ●
くだすれPython(超初心者用) その46【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1577948214/

〇前スレ〇 Pythonのお勉強 Part63
https://mevius.5ch.net/test/read.cgi/tech/1582507911/

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなってからだいぶ経っつる)### END of TEMPLATE ###
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
0416デフォルトの名無しさん (ワッチョイ 5f79-Zp8o)
垢版 |
2021/01/25(月) 22:13:41.43ID:pG6g+jm20
>>414
forとifで書きました。
0418デフォルトの名無しさん (ワッチョイ 5f79-Zp8o)
垢版 |
2021/01/25(月) 22:36:17.55ID:pG6g+jm20
うーん?
0419デフォルトの名無しさん (ワッチョイ 276a-dnk/)
垢版 |
2021/01/26(火) 22:26:22.62ID:07qf8Z/S0
QtCreatorでプログラム作ろうと思ったけど、PytQtのが圧倒的に楽なんで、
今更C++/Qtで書く気になれないよw
0421デフォルトの名無しさん (ワントンキン MM3f-Z7MQ)
垢版 |
2021/01/27(水) 10:28:12.94ID:8VSsYW13M
顔認証はここですか?
0425デフォルトの名無しさん (ワッチョイ 5f6d-j4NR)
垢版 |
2021/01/27(水) 17:30:09.95ID:ZkwFNZKx0
数値が格納された配列に対して
mapを使って16進数文字列に出来るかというところで
色々と考えてます
hex関数だとゼロ埋めができず
format関数を使って試しました
0430デフォルトの名無しさん (ワッチョイ 275f-rvE3)
垢版 |
2021/01/28(木) 10:46:38.55ID:dNWrUHbO0
array = [1, 10, 100, 1000]
list(map(f'%02x', array))
0431デフォルトの名無しさん (ワッチョイ bfda-VlSt)
垢版 |
2021/01/28(木) 22:37:26.68ID:tFNMY2GJ0
>>all
みなさんありがとうございます

>>425
うまくいきました
print(list(map('{:02x}'.format, a)))
formatメソッドを使うことでformat関数の第二引数を固定するような感じなんですね
勉強になりました

>>426
勉強になります
0433デフォルトの名無しさん (ワッチョイ 696a-NgWx)
垢版 |
2021/01/29(金) 20:42:36.06ID:Yw54C/6D0
print("%s は %d です" %("値段", 100))

ってやちゃうけど、formatを使った方いいのか?
変わんないよね?
0435デフォルトの名無しさん (ワッチョイ 696a-NgWx)
垢版 |
2021/01/29(金) 21:19:09.51ID:Yw54C/6D0
>>434
こっちのがC言語のprintf()ぽくって好きなんだよね。
0437デフォルトの名無しさん (オッペケ Srbd-3KRy)
垢版 |
2021/01/29(金) 21:55:28.93ID:vobzFHE+r
>>433
format文字列の方が自由度高いし柔軟、記述も簡潔
0439デフォルトの名無しさん (ワッチョイ 797c-L6Wt)
垢版 |
2021/01/30(土) 13:06:19.29ID:/Vy2YSUv0
>>435
>print("%s は %d です" %("値段", 100))

a = "値段"
b = 100
print(f"{a:s} は {b:04d} です")
https://note.nkmk.me/python-f-strings/
0442デフォルトの名無しさん (ワッチョイ 6a61-M8vF)
垢版 |
2021/01/30(土) 19:12:32.88ID:DFENYGCB0
>>440
んなわけない。
0445デフォルトの名無しさん (ワッチョイ 1163-unxX)
垢版 |
2021/01/31(日) 06:45:33.91ID:tvoJUBop0
できる限り、python 3.4(XP最終)との互換性を考えて、
新しい使い方は極力控えるようにしてるな
廃止予定になるものはもちろん使わないけど

たとえば、subprocess.run()が使えないので、古くなったsubprocess.call()を使いたいところだけど、
subprocess.Popen()でなんとかなるので、こちらを使うようにしてる
0446デフォルトの名無しさん (ワッチョイ 5d73-merL)
垢版 |
2021/01/31(日) 11:58:30.05ID:IyMlWoIo0
a= open('hoge.txt','r').readlines() ってやったら、どうやって close すればいいの?
勝手にクローズされるの?
0448デフォルトの名無しさん (ワッチョイ 696a-NgWx)
垢版 |
2021/01/31(日) 14:18:54.71ID:5J6IAB9V0
>>446
クローズされるされない以前に凄げー書き方だなw
0450デフォルトの名無しさん (ワッチョイ 696a-NgWx)
垢版 |
2021/01/31(日) 14:36:14.53ID:5J6IAB9V0
まあ、pythonとかperlとかから入った場合にありそうだな。

C言語から入ったらありえない書き方だよw
0454デフォルトの名無しさん (ワッチョイ 797c-qCTK)
垢版 |
2021/01/31(日) 16:41:41.03ID:X7lGC0go0
ループの中で使ったりしなければ
プロセス終了したらcloseされるやろ
ワンライナー程度なら問題無い
IDE内で使うとIDE終了までcloseされないことはあるかも
0456デフォルトの名無しさん (スプッッ Sdea-RNyz)
垢版 |
2021/01/31(日) 18:52:07.55ID:TZ/K0j2Ld
言語としてオブジェクト指向が提供されてる言語を一個でも学んだなら普通
open に繋げるのが微妙なだけで何も凄くないごく普通の書き方

Cしか勉強してない奴には異常に見えるかもしれないが
Cしか勉強してない奴が異常者だと自覚した方がいい
0461デフォルトの名無しさん (ワッチョイ 6a61-M8vF)
垢版 |
2021/01/31(日) 22:24:30.07ID:kBSAcrG10
えっと、そんな小難しい話ではなくて、単にreadlines()が勝手に閉めてくれているだけの話でしょ?
ましてや、デストラクタが勝手に閉めてくれると思っているなら、それこそとんでもない間違いだ。
0462デフォルトの名無しさん (ワッチョイ 6a61-M8vF)
垢版 |
2021/01/31(日) 22:31:01.38ID:kBSAcrG10
ごめん。readlinesは閉めなかったわ。
常にwithと一緒に使っていたから、ほとんど意識してなかった。
0464デフォルトの名無しさん (ワッチョイ 8d7f-LESd)
垢版 |
2021/02/01(月) 00:56:54.84ID:5yr9aQzL0
デストラクタがいつ呼ばれるかは保証されてないんじゃないの?
ほったらかしにすると再度開こうとしたときにすぐに開けなくなるから、ちゃんとcloseするかdelしたほうがいいよ
0468デフォルトの名無しさん (ワッチョイ 6aa5-eHoJ)
垢版 |
2021/02/01(月) 07:42:03.45ID:iI5pUuOE0
インデントでスコープ付けるだけじゃダメだったんだろうかといつも疑問に思う
0469デフォルトの名無しさん (ワッチョイ 696a-NgWx)
垢版 |
2021/02/01(月) 09:01:53.08ID:bfRVZ7+J0
open()なんてエラーが出る頻度が高い関数をエラーチェック無しに使うのが無理がある。
0471デフォルトの名無しさん (ワッチョイ e505-gNuC)
垢版 |
2021/02/01(月) 11:07:46.57ID:1Fk5nxUL0
クラスの特殊メソッドをオーバーライドする時にint型との演算を別に定義する方法ってありますか?
0472デフォルトの名無しさん (ワッチョイ e505-gNuC)
垢版 |
2021/02/01(月) 11:12:28.52ID:1Fk5nxUL0
特殊メソッドの定義の中で型判別して条件分岐とかになるんですかね?
0473デフォルトの名無しさん (ワッチョイ a606-yYpS)
垢版 |
2021/02/01(月) 11:32:20.94ID:6c5mrI3q0
超クソ初心者

for a in range(2,21):
sosuu=1
for j in range(2,a):
if a % j ==0:
sosuu=0
if sosuu ==1:
print(a,'(素数)')
else:
print(a)

これって一行一行どういうことが起こってるのが教えてほしい
『最初の一行「for a in range(2,21):」でaは2-21までの範囲を指してる』
的な感じの説明で。
2行目のsosuu=1とか3行目で何故(2.21)はダメで(2.a)だとしっかりできるのかが謎で
一つ一つ根本が知りたい
0475デフォルトの名無しさん (ワッチョイ 6a61-M8vF)
垢版 |
2021/02/01(月) 11:48:29.39ID:Lp1uHNUM0
@singledispatchが特殊メソッドに対しても直接使えるかどうかわからんけど、
条件分岐の方が結局のところ無難かつスピード的にも利点があるんじゃないかな?
0476デフォルトの名無しさん (ワッチョイ 662c-IZeX)
垢版 |
2021/02/01(月) 12:12:27.93ID:KcF6/QTu0
Ruby では、

results = [ 2 ]

( 2..12 ).each do |outer|
prime = true

( 2..outer ).each do |inner|
# 割り切れたら、素数ではない
prime = false if outer % inner == 0

if prime
results.push outer if prime
break
end
end
end

p results #=> [2, 3, 5, 7, 9, 11]
0479デフォルトの名無しさん (ワッチョイ e505-gNuC)
垢版 |
2021/02/01(月) 12:19:24.97ID:1Fk5nxUL0
ありがとう、条件分岐で良さそうですね
singledispatch知らなかったから面白そうなの知れて良かった

>>473
たぶんコードが読み解けない根本の勘違い部分だと思うけど一行目rangeが生成してる範囲は1-20
pythonで範囲を与えるときは基本的に左閉右開区間(右側に五条悟が居て辿り着けない)から覚えておくといいよ
0480デフォルトの名無しさん (ワッチョイ e505-gNuC)
垢版 |
2021/02/01(月) 12:22:14.71ID:1Fk5nxUL0
2-20だった
混乱させたらごめんよ
0481476 (ワッチョイ 662c-IZeX)
垢版 |
2021/02/01(月) 12:41:17.52ID:KcF6/QTu0
Ruby では範囲で、.. は終点を含む、... は終点を含まないから、
内側のループで、( 2...outer ) として、outer を含んじゃいけない

含むと例えば、7 % 7 = 0 と割り切れてしまう。
含めない場合は、7 % 2 から、7 % 6 まで、すべてで割り切れないから素数となる

results = [ ]

( 2..12 ).each do |outer|
prime = true

( 2...outer ).each do |inner|
# 割り切れたら、素数ではない
prime = false if outer % inner == 0
end

results.push outer if prime
end

p results #=> [2, 3, 5, 7, 11]
0482476 (ワッチョイ 662c-IZeX)
垢版 |
2021/02/01(月) 12:46:33.50ID:KcF6/QTu0
例えば、outer が7 の場合、
inner は、2〜6 で、余りouter % inner は、

7 % 2 = 1
7 % 3 = 1
7 % 4 = 3
7 % 5 = 2
7 % 6 = 1

すべてで割り切れないから、素数
0483デフォルトの名無しさん (ワッチョイ 696a-NgWx)
垢版 |
2021/02/01(月) 13:17:18.19ID:bfRVZ7+J0
実際は自分の数字まで探す必要はないよね。

21が素数かしらべたいなら、2から21/2 この場合だと11まで調べればOKだよね(半分を超えたら割りきれる分けがないんだから)

実際は√21までしらべればいいらしい。本当かはしらんがw
0485デフォルトの名無しさん (ワッチョイ 6a61-M8vF)
垢版 |
2021/02/01(月) 14:38:09.60ID:Nlbj3k+a0
なるほど。そっちのは知らなかった。
def is_prime(n):
__x = 2
__while x * x <= n: # 判定だけだから、sqrtじゃなくてもいいよね?
____if n % x == 0:
______return False
____x += 1
__return True
0486476 (ワッチョイ 662c-IZeX)
垢版 |
2021/02/01(月) 14:42:52.30ID:KcF6/QTu0
もっと厳密に言えば、配列に順番に素数を入れていくから、

例えば、outer が7 の場合、既に[2, 3, 5]が入っていて、
inner は、2,3,5 だけ調べれば良い。
4,6 は調べる必要がない

つまり、それまでの素数で割り切れなければ、素数

5以上の素数は、6n + 1, 6n + 5 だけ。
6n + 3 は、3で割り切れる

7 % 2 = 1
7 % 3 = 1
7 % 4 = 3 → 不要
7 % 5 = 2
7 % 6 = 1 → 不要
0487デフォルトの名無しさん (ワッチョイ e505-gNuC)
垢版 |
2021/02/01(月) 14:55:10.84ID:1Fk5nxUL0
ある値以下の素数を列挙したいならエラトステネスの篩でいいんじゃないの
0492デフォルトの名無しさん (オッペケ Srbd-2WwA)
垢版 |
2021/02/01(月) 20:35:03.79ID:dLYyxM+Vr
マルチポスト警察だ!!!
0497デフォルトの名無しさん (ワッチョイ 5d01-6q/4)
垢版 |
2021/02/02(火) 07:28:47.85ID:6zQI8Heo0
ワロタ
0499デフォルトの名無しさん (ワッチョイ a532-NgWx)
垢版 |
2021/02/02(火) 14:50:00.64ID:mHChSSLg0
>>484
Python じゃなくて数学スレみたくなるけど、
一つの整数を二つの整数の積にするとき、片方が必ず√N以下になるらしい。

例えば32を二つの整数の積であらわすと、約数が6個なので

1,2,4,8,16,32

1X32、2x16、4x8の三通りで片方はかならず√32以下となる。

だから平方根以下を調べればいい。って事らしい。
0500デフォルトの名無しさん (エムゾネ FF0a-qCTK)
垢版 |
2021/02/02(火) 15:26:31.76ID:eTRsUHIhF
>らしい

小学生か文系か池沼かどっち
0501デフォルトの名無しさん (ワッチョイ a532-NgWx)
垢版 |
2021/02/02(火) 15:51:40.29ID:mHChSSLg0
>>500
3択でどっちつかうなよw
0503デフォルトの名無しさん (オッペケ Srbd-GDPA)
垢版 |
2021/02/02(火) 18:51:33.53ID:OU1WloPYr
素数でなければ正の整数を因数分解すると必ず平方根より小さい数が現れるって当然のことと思ってたけど普段平方根なんて全く見ない人にとっては自明じゃないのか

元ネタはループと条件の練習だから無駄な探索を減らすとか考えてないんだろう
0507デフォルトの名無しさん (ワッチョイ ea02-qCTK)
垢版 |
2021/02/03(水) 23:15:51.64ID:AA4wcGbL0
お世話になります。
これからPythonでプログラミングを始めようと考えています。
今後プログラミングをするにあたってエディタは何を使えば良いかご意見を頂きたいです。

自分で調べてみて、visual studio codeやjupyter、atom等様々なものを見つけましたが、短期、中期、長期でみてどれが良いのか決めかねています。

・今の状態はAnacondaでインストールし、とりあえず万能そうなvisual studio 2019でhallo worldは出せた状態
・プログラムの経験としてはjavaを大学の授業で3単位分と、Arduino(マイコン)で少し遊んだことがある程度
・短期(実働約1ヶ月)の目標としては、GUI、webアプリの作成(手始めに4桁の数字を入力するとその年にオリンピックが開催されたか判定するアプリを作ってみようかと)
・中期(実働約3ヶ月)の目標としては、スクレイピングやデータ分析、簡単なAIを作成しての業務の半自動化(オリンピック判定アプリの強化、Twitterでフォローされた際にフォローバックするべきか判定するアプリ等)
・長期(実働1年以上)の目標としては、難しいAIを作成しての業務の自動化、データサイエンティストとして通用するレベルの能力(オリンピック判定アプリの最強化、自動ツイートや自動リプライの作成アプリ)
・勉強手段は図書館の書籍やwebページ、掲示板での質問等による独学
・仕事を辞めたので時間はあります、やる気もあります

以上のことを踏まえて以下のことにお答え頂けると嬉しいです。
1,みなさんの開発環境及びその理由
2,短期目標に合ったエディタとその理由、他に検討したもの
3,中期目標に合ったエディタとその理由、他に検討したもの
4,長期目標に合ったエディタとその理由、他に検討したもの
5,おすすめの学習方法、コミュニティ等
6,その他(目標に無理がある、致命的な勘違いがある等)

1〜6のうち1つだけでも良いので回答頂けるととても嬉しいです。
良かったらよろしくおねがいします。
0509デフォルトの名無しさん (テテンテンテン MM3e-uynL)
垢版 |
2021/02/03(水) 23:24:09.97ID:jct3FtxBM
オリンピック判定アプリにAI必要だろうか?という疑問は別にして
オレはSublime Text使ってる。
仕事でちょこっとDNN使うけどそれはJupyterNotebook上で走らすだけ。
SublimeはシフトJIS使えないからその時はNotepad++。
0510デフォルトの名無しさん (ワッチョイ ea02-qCTK)
垢版 |
2021/02/03(水) 23:34:57.31ID:AA4wcGbL0
>>508さん
ありがとうございます!
VSCodeは拡張機能が充実していたりLinuxに対応している等が理由でしょうか。
良かったら理由も教えて頂けると嬉しいです!

>>509さん
ありがとうございます!
Sublime Textはハイパフォーマンスな代わりに初学者には難しいかもしれないという紹介を見つけました。
良かったらそのあたりのご意見を頂けるととても助かります!
0511デフォルトの名無しさん (ワッチョイ ea02-qCTK)
垢版 |
2021/02/03(水) 23:47:22.57ID:AA4wcGbL0
>>507です

>>509さん
すみません、オリンピック判定アプリにAIは必要かという話を忘れてレスしてしまいました。
過去のものを判定する際には不要だと思いますが、未来の開催を判定する際にはニュースサイトの記事や
各国のGDPの推移等から予測するAIが必要かなと考えました。
結構しっかりしたAIじゃないといけないと思うので、長期目標にちょうど良いかなと設定してみました。
途中でもっと良い目標を見つけたら変えるとは思います。

連投失礼しました。
0513デフォルトの名無しさん (ワッチョイ 4a52-99pZ)
垢版 |
2021/02/03(水) 23:54:59.40ID:Nl+WsQpo0
>>507
時間はあるんだし、自分で情報を探すこともできそうなんだから人の意見から最適なものを探そうとするより自分でいろいろ試して自分に合うものを探した方がいいと思うよ
■ このスレッドは過去ログ倉庫に格納されています

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