Pythonのお勉強 Part65

■ このスレッドは過去ログ倉庫に格納されています
2021/05/23(日) 14:51:52.02ID:NSupjEI/0
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
 エラー文(勝手に省略orスクショうp等の横着禁止)と
 おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。

★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをう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/

●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その53
https://mevius.5ch.net/test/read.cgi/tech/1615846784/

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

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ###
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2021/09/20(月) 18:12:56.52ID:nXmwGkYg0
print("おまんこ大好き")
2021/09/20(月) 20:08:41.58ID:OciMvJKX0
>>472
__file__の代わりに

https://qiita.com/kzm4269/items/7f79ac40cf8f30e4afa3

はどうだろう
2021/09/20(月) 20:27:05.09ID:yJc6oIsH0
>>475
テストにうんこって入れるのは止めようって言ってたおじさんにむっちゃ怒られそう。
でもコロナ前に小学校の訪問授業でスクラッチ使ってウンコ点滅させてる男子がいたわ。(点滅は教えてない)
複数のうんこがイグザイルみたいにローリングする方法を教えてあげたらそのオスガキはふざけるのも忘れて職人の目になってて改造し始めて素質あるなって思った。
ちなみに隣の席の女の子はプログラミング全般まったく興味ないみたいで俺らのやり取りを氷のような目で見てた。
でもオジサンは君の膨らみかけのおっぱいがキャミの脇部分から見えそうで見えなくてギンギンなってたけどな。
2021/09/20(月) 23:14:01.92ID:vvw4JppL0
google colabほとんど使ったことないけど
%%writefileとか!mvとかを組み合わせてなんとかならんの?
2021/09/21(火) 12:59:25.32ID:TUYiJXQm0
>>477
print("キモい")
2021/09/22(水) 06:41:26.05ID:bVad8jc30
>>478
「マジックコマンド」は知りませんでした。ありがとうございます。
以下の方法で目的にかなり近づきました。

(1)一つ目のセルにセルコマンドを入れ、ソースプログラムを保存する
%%writefile drive/MyDrive/data/ai.py

from keras import layers
・・・
#モデルの定義
model = models.Sequential()
weight_decay = 1e-3 #正則化パラメータ
model.add(layers.Conv2D(32, (3, 3),
activation='relu',
kernel_regularizer=regularizers.l2(weight_decay),
input_shape=(256, 256, 1)))
・・・

(2)二つ目のセルに.pyの実行コマンドを入れる
%run drive/MyDrive/data/ai.py
(おわり)

セル実行ボタンを押す操作が増えましたが、どの道google driveをマウントする手間もあるのでそうでもありません。
2021/09/22(水) 08:12:03.70ID:hFEybciGM
モジュールの中身で...がdef文の後ろに書いてあるんだけどellipsisってなんなん?
2021/09/22(水) 09:52:24.66ID:N9zBagLQ0
Noneではない何かでどう扱うかはまちまち
実装者のセンスによるからドキュメンテーション上しっくりこないケースもあるかもね
2021/09/22(水) 15:31:40.24ID:9FZaK0wVa
if a:
と書くのも
if a is not None:
と書くのも同じことですか?
2021/09/22(水) 15:33:45.28ID:Il91zgnyM
違いますん
a=0
2021/09/22(水) 15:38:17.96ID:9FZaK0wVa
ありがとうございます
aがクラスのインスタンスだった場合も二つの記述の意味はことなるでしょうか
2021/09/22(水) 16:04:19.72ID:WQe7sFgg0
__bool__()とか__len__()があります
2021/09/22(水) 16:45:59.52ID:9FZaK0wVa
o = None
o = Obj()

〜〜

if o: # ★
....o.close()
....o = None

ちょっと上のコードがおかしなように感じてきましたが、
★のように判定したい場合、Obj では __bool__ を実装する必要がありますか(そうするのが普通でしょうか)?
すみません、python初学者なもので…

Noneを代入した時点と、Objのインスタンスを代入した時点とではデータ型も違うし、if の時点でのoの型は分からない前提としたいし、型のない言語ムズカシイデース…
2021/09/22(水) 16:56:58.40ID:9FZaK0wVa
pyodbcを使っていますが、pyodbc.Connectionやpyodbc.Cursorでは__bool__を実装していないようなので、不要なのかな、__bool__の実装はゴニョゴニョ…
489デフォルトの名無しさん (ワッチョイ ff46-W1il)
垢版 |
2021/09/22(水) 17:25:00.55ID:WQe7sFgg0
リファレンスを読んでください
https://docs.python.org/ja/3/library/stdtypes.html#truth-value-testing
結論としては,不要です
2021/09/22(水) 17:30:00.83ID:9FZaK0wVa
ありがとうございます!
さっそく拝見します
491デフォルトの名無しさん (ワッチョイ bf33-qDHA)
垢版 |
2021/09/22(水) 23:00:00.88ID:zuTzHl7G0
>>485
違いますん
a=0
2021/09/22(水) 23:05:29.85ID:u8cZI69ma
>>491
すみません、おっしゃることが理解できませんでした
でも、ありがとうございました
493デフォルトの名無しさん (ワッチョイ bf33-qDHA)
垢版 |
2021/09/22(水) 23:13:45.10ID:zuTzHl7G0
>>492
>>> isinstance(0, int)
True

0もintクラスのインスタンス
2021/09/22(水) 23:21:11.89ID:u8cZI69ma
ありがとうございます
たしかにおっしゃるとおりですね
intはプリミティブではないですね(pythonにはプリミティブはないですね)

pythonを始めたばかりですが、苦戦しています…
495デフォルトの名無しさん (ワッチョイ bf33-qDHA)
垢版 |
2021/09/22(水) 23:42:56.70ID:zuTzHl7G0
https://docs.python.org/ja/3/faq/programming.html#when-can-i-rely-on-identity-tests-with-the-is-operator
When can I rely on identity tests with the is operator?

今見たらFAQに新しく追加されてる
496デフォルトの名無しさん (アウアウウー Sa5b-hED7)
垢版 |
2021/09/23(木) 00:22:08.16ID:1QHTb9H7a
if a is not None:
と書くのも
if not a is None:
と書くのも同じことですか?
2021/09/23(木) 00:44:02.39ID:cmFu96z60
同じですん
a is not None => a "is not" None => not (a is None) => not a is None
2021/09/23(木) 00:54:25.37ID:GT44o2cPa
同じですが、前者がよいと今日読んだ本に

ですが、
if a is not None:

if a is (not None):

if not a is None:

if not (a is None):
なら、後者の方が素直に感じるのは日本語で考えるからかな…(aがNone ではない)

自分だけかしら
2021/09/23(木) 00:56:18.24ID:GT44o2cPa
if a /is not/ None:
なんですか⁈!
2021/09/23(木) 00:58:38.24ID:GT44o2cPa
スレ汚しごめんなさい
2021/09/23(木) 01:34:37.95ID:ERg2ncYO0
関係ないけど3値論理って業界入った頃に教えられてこんな分かりにくいもん覚えんくっても誰か根本的に解決した言語なりライブラリなり出すやろって思ったら全然そんなことないっていう。
2021/09/23(木) 02:10:41.49ID:cmFu96z60
>>499
うん、キモいよね
503デフォルトの名無しさん (ワッチョイ 775f-4bEA)
垢版 |
2021/09/23(木) 11:18:56.42ID:zah9lHsX0
if (not a) is None:
の可能性は?
2021/09/23(木) 11:26:33.28ID:qLNYGMuQM
>>503
つ演算子の優先順位
2021/09/23(木) 11:37:40.66ID:N5zCBOyIa
調べてみると、pythonでは "not in"、"is not"は一つの演算子なんですね…
2021/09/23(木) 12:13:35.16ID:RO/NJMQd0
Qiita にあった。
https://qiita.com/junjis0203/items/25959074a8b642db7368
2021/09/23(木) 12:14:23.80ID:/t9t+yKz0
Windows 10 64 bitでPython 3.8 64-bit入れたらPython launcherも一緒に入ってきたんですが
これってこの後Python 3.9 32-bitを入れても区別してくれる?
つなみになんで今更32-bitかというと、Pyinstallerで32 bitのバイナリを作りたいから
508デフォルトの名無しさん (エムゾネ FFbf-hED7)
垢版 |
2021/09/23(木) 12:39:28.02ID:7tGJmFKPF
何が起こるかとどう対処すれば良いか判ってるなら好きにすればいいけど
知らないならおとなしくVirtual環境用意してそっちに入れろ
2021/09/24(金) 00:27:07.91ID:wqDlteq1M
くだすれで>>411と同じ内容を書いた者ですが、こちらにマルチはしてません
他の板でも他人のレスを内容問わず勝手に転載してる人を見ましたが荒らし界隈では流行ってるのでしょうか
2021/09/24(金) 02:33:07.44ID:Bn8yEU3N0
>>507
認識してくれると思う
2021/09/24(金) 15:36:27.29ID:RsN5lFzL0
教えてください
Windowsのノートにandroid studio入れてるんですが、Python勉強するなら別の(公式?)開発環境入れてやる方がベターですよね?
2021/09/24(金) 15:37:32.27ID:RsN5lFzL0
android studioでPython開発出来るかどうかよくわかってないのに変な質問しちゃいました すみません
2021/09/24(金) 18:19:16.51ID:KNT3aGoVD
入門書一冊買ってそれに則って進めろ
2021/09/24(金) 20:46:46.91ID:sShM+iA/0
>>511
Pycharmってのが似てる
2021/09/24(金) 22:51:36.12ID:/f3Q922M0
>>511
それならPyCharmで良いぞ
AndroidStudioというか、JetBrainsのIDE(開発環境)は基本UIが全部一緒にした上で
各言語ごとに特化した機能を追加してるっていう感じになってるから
PyCharmの方が使いやすい(無償版もあるし)
(UIも一緒だから移行してもすぐ慣れる)
2021/09/25(土) 05:28:52.89ID:KQMkx5pt0
Pycharmですね
ありがとうございました
2021/09/25(土) 08:42:43.44ID:vcDPxtO30
visual studio並みにメソッドとかサラサラ出てくるpython向けのIDEないの?
518デフォルトの名無しさん (エムゾネ FF32-kEnG)
垢版 |
2021/09/25(土) 11:42:54.14ID:lBxoEpbFF
eric4
519デフォルトの名無しさん (エムゾネ FF32-kEnG)
垢版 |
2021/09/25(土) 11:46:19.49ID:lBxoEpbFF
https://eric-ide.python-projects.org/
2021/09/25(土) 14:11:19.76ID:bGeQQfhf0
内包表記でもforループでもいいんだけど、ループの一つ先の要素を取り出すスマートな方法ってありますか?

MP3の分割ツールを作っていて、[ [開始時刻1, 曲名1,etc,,], [開始時刻2,曲名2,,,] ]みたいなデータを元にしてますが、
1曲目を切り出すには、開始時刻1と開始時刻2の情報が必要です。
enumerateを使ってインデックス指定でやるとか、ロジックでゴリゴリ書くのは思いつきますが、あんまりPythonicじゃない気が・・
2021/09/25(土) 14:18:12.73ID:CFSxqW9b0
>>520
最初に全レコード舐めて開始1のレコードに2を追加しておくのじゃ駄目なん?
2021/09/25(土) 14:23:43.55ID:wMFSv1EV0
前の曲の情報を覚えておいて2周目に1曲目の処理すりゃいいんじゃないかと
2021/09/25(土) 16:59:44.55ID:fd91zVDZ0
>>520
[ (x, y) for x, y in zip_longest(music_list, music_list[1:]) ]

[(1曲目, 2曲目), (2曲目, 3曲目), (3曲目, None)]
になる
2021/09/25(土) 19:17:29.49ID:KyHr3AwWM
読解力低い俺は理解できないのであった
2021/09/25(土) 20:17:44.14ID:bGeQQfhf0
>>521-523
みなさんレスどうもです
zip_longestを使う方法が一番Pythonっぽいので、これを元に実装したらうまくいきました
普通のzipしか知らなかったので勉強になります
2021/09/26(日) 00:26:27.99ID:7zl+pRWn0
more_itertools.peekable
とか
itertoolsにpeekくらいあってもいいのに
2021/09/26(日) 00:26:46.36ID:ol+7rnCRa
>>523
いいやつだな。立派。
528デフォルトの名無しさん (ワッチョイ 0361-9MAR)
垢版 |
2021/09/26(日) 16:05:08.00ID:EkFj65Lg0
peekaboo
2021/09/27(月) 22:56:04.28ID:ij0d8tbm0
同じようなことプログラム書いてやってるが
二曲目の情報を先読みして一曲目の終了時刻にセットしている
全レコードの最期に全体の演奏時間を書いたレコードを追加が必要になる
530デフォルトの名無しさん (ワッチョイ 5f01-6iP1)
垢版 |
2021/09/27(月) 23:12:20.46ID:Vh6D5eff0
pythonのプログラムをexeファイル化しようとpyinstallerを使っているのですが、
ImportError: DLL load failed: 指定されたモジュールが見つかりません。
[23504] Failed to execute script 'pyi_rth_certifi' due to unhandled exception!
と出て作成したexeファイルがうまく動きません。
specファイルのhiddenimportsにpyi_rth_certifiを入れたり試行錯誤しても何も状況が変わらず、、、どうしたらいいのでしょうか

環境はWin10のAnaconda使ってます
531デフォルトの名無しさん (ワッチョイ 0361-9MAR)
垢版 |
2021/09/28(火) 16:00:00.77ID:Wv4WzltG0
forとインデックスでやるのが一番いいと思う。
そもそもPythonicってなんだ?
無理矢理関数型「っぽく」やることか?
532デフォルトの名無しさん (エムゾネ FF32-kEnG)
垢版 |
2021/09/28(火) 16:39:07.29ID:nD0g4rLvF
https://stackoverflow.com/questions/58360673/can-you-put-pyi-rth-certifi-in-an-exe-file
https://teratail.com/questions/309726
2021/09/28(火) 19:58:21.36ID:WY00fIeI0
関数型プログラミングは逆にpythonぽくないよなぁ
2021/09/28(火) 20:43:23.22ID:6wxb8xGq0
linterでpep8チェックして通ればそれでよくね?
2021/09/29(水) 20:17:52.66ID:xzP4JGLr0
なんでおかねくれない
536デフォルトの名無しさん (ブーイモ MMe3-qcFi)
垢版 |
2021/09/30(木) 22:39:23.47ID:4qjTN8jJM
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw
2021/10/02(土) 19:46:31.25ID:cR/mfYmg0
>>510
質問者ですが2.7.x-64と3.8.0-64が入っているところに3.8.6-32を入れたのですだが
py -3.8-32とかやっても駄目で、"py.ini"で指定してやらないと3.8.6-32に切り替わってくれませなんだ、
しかしそれ以外は多分OK

なお pyinstaller やろうとしたらScriptsパスのフォルダ指定がちょっと手間やった
py -0p でpython.exeのパスを出して、今現在の環境のpython.exeのディレクトリパス + "Scripts"
というのをPATHに追加してpyinstall する必要があ
った、が
最終的にできた
2021/10/02(土) 19:47:48.31ID:cR/mfYmg0
そうや Scriptsフォルダのパスの設定は py -m pip intall するときも必要やったのを追記、
539デフォルトの名無しさん (ワッチョイ 6f10-9PjE)
垢版 |
2021/10/04(月) 01:24:20.29ID:3Do+SPDe0
ローカルでbatファイルから
~~~\python.exe c\~~~~.py
って動かすと最後まで動くのだが、このbatファイルをリモートで動かすと
python内部で利用しているライブラリ(xlwings)が原因で動かなくなる
他のライブラリは動くしxlwingsに何かがあるのだろうか・・。
2021/10/04(月) 01:56:19.09ID:TUhdMDNq0
>>539
psexecの-iオプションはつけてる?
2021/10/04(月) 07:32:36.45ID:HyY8xqdE0
>>539
たぶんVBAでやっても同じ事になるはず
セキュリティの問題でしょう
542デフォルトの名無しさん (ワッチョイ ff8b-W6qN)
垢版 |
2021/10/04(月) 14:48:37.58ID:8v8EOXqO0
3.9.7 ダウンロードして、インストしたら、tkintet でエラーがでた。
(3.9.2で使用できていたのに)
tk-dev tk8.6 tk8,6−devもインストして、 .configure からし直したら
使用できるようになりましたとさ。 デブが足りなかった。めでたしめでたし。
2021/10/06(水) 11:03:09.96ID:1rbPT/vHa
次のように、オブジェクトにはメソッドを後付けできます(できてしまいます)

class C:
....pass

x = C()
x.fn = lambda p: print(p)

しかし、次のようなことは不可能なようです

x = 1
x.fn = lambda p: print(p) # no attr "fn"

後者のように、後付けができないようにする方法はあるのでしょうか
何か大きな勘違いをしている気もしますが…
2021/10/06(水) 11:38:25.33ID:e3OAsecp0
>>543
Cは__dict__が有効だからで__slots__を定義してあげる
2021/10/06(水) 13:06:25.78ID:1rbPT/vHa
>>544
ありがとうございます
さっそく __slots__ について調べてみます!
2021/10/06(水) 16:38:49.54ID:1rbPT/vHa
>>544
期待したとおりになりました
ありがとうございます
助かりました
2021/10/06(水) 18:25:04.48ID:+tFRXATO0
何故かlambdaをランバダ→ラムダとワンステップ多く脳内変換してしまうんだよなぁ
2021/10/06(水) 18:58:43.27ID:AH1w2K890
>>547
心の中では ランブダ 派だわ
2021/10/06(水) 19:31:42.25ID:QmPaJCQR0
ラムブダ
2021/10/06(水) 19:33:57.89ID:hnIPmtr3D
doubt
2021/10/06(水) 19:36:28.97ID:LKY0pW6FM
>>547
何より悲しい一人ランバダ
2021/10/06(水) 20:38:54.67ID:V8TF+Qav0
ランバダウケルw
553デフォルトの名無しさん (アウアウウー Sa27-1sz3)
垢版 |
2021/10/06(水) 22:31:04.23ID:Mu7pnFJ+a
パイソンだからpaisonて名前にして欲しかった
2021/10/06(水) 23:24:13.47ID:yNGOfDWp0
パールはpearlであって欲しかったのと同じ
2021/10/07(木) 01:18:48.35ID:hC+aBPUy0
pearlという名前のプログラミング言語が既に存在していたそうだ
2021/10/07(木) 01:26:41.06ID:jA+Zs0kEa
sign
2021/10/07(木) 20:04:07.28ID:3Axi0T4/a
パイソンのソって、ちゃんと発音してる?
2021/10/07(木) 20:22:25.26ID:0rTAvKMS0
ちゃんとペェソンって発音してる
2021/10/08(金) 00:31:30.11ID:R+BbCP7Ja
野沢雅子きてんね
2021/10/08(金) 00:34:32.79ID:4KfNrysS0
パインでは分からない
561デフォルトの名無しさん (アウアウキー Sacb-h0Ad)
垢版 |
2021/10/08(金) 11:54:53.52ID:EgQZzTgLa
anaconda3って最新の無償バージョンは商用不可らしいんだけど、昔のバージョン(2019.10)を使えば別に商用に使ってもいいの?
2021/10/08(金) 12:25:43.28ID:/5GAAL4/a
>>561
そうなるな
2021/10/08(金) 12:29:11.07ID:/5GAAL4/a
>>561
すまん古いバージョンでも企業規模で有償になる
https://qiita.com/c60evaporator/items/ba41cef4b37465c39948
2021/10/08(金) 12:33:31.00ID:/5GAAL4/a
Venv+pip
Pipenv
どちらかに移行すれ
2021/10/08(金) 12:39:01.30ID:/5GAAL4/a
Miniconda + conda forgeなら商用にはならんてよ
2021/10/08(金) 19:43:45.65ID:VIG0gnDj0
結局pip使っちゃうからconda使わない方がいいよね
567デフォルトの名無しさん (ワッチョイ de2c-3R+z)
垢版 |
2021/10/08(金) 20:21:52.37ID:hfI/PPIh0
anaconda環境滅茶苦茶にするから
venv+pipがいいよ
2021/10/08(金) 21:27:06.93ID:zKmSQVjp0
pip install --user で色々入れてるわ
環境壊れたら丸々ディレクトリ削除
venvも面倒くさい
2021/10/09(土) 05:06:44.44ID:HycM62zz0
pythonやってると明けても暮れてもピップピップで嫌になっちゃうよな
2021/10/09(土) 07:52:02.47ID:tOPBZnjG0
pipを触るのは初めにpoetry入れるときだけだな
571デフォルトの名無しさん (ワッチョイ 2a0b-h0Ad)
垢版 |
2021/10/09(土) 12:07:41.30ID:TzD9qH6B0
>>563
うーん。2019.10の時に商用に関しては何ものべてなかったのに、後で商用有償とかいっても、前のバージョンには遡及できないと思うんだけど。
2021/10/09(土) 12:26:00.88ID:UKvyHLtq0
規約変更前に合法的に入手したものはその時の条件で使い続けてもいいけど
今から新規にコピーするなら今の条件に従う必要がある、ってのがよくあるパターン。
573デフォルトの名無しさん (ワッチョイ 2a0b-h0Ad)
垢版 |
2021/10/09(土) 12:55:13.86ID:TzD9qH6B0
>>572
あー。、なるほどね。
でも「知らなかった」と、言い張ればいいんじゃないかなあ?

少なくともインストール最初に出てくる規約がめんには商用不可なんて書いてないから。
2021/10/09(土) 13:56:32.70ID:UKvyHLtq0
仮に悪意が無かったことを証明できたとしてもそれはそれ、これはこれ。
少なくとも発覚した時点でそのまま無償で使い続けることはできないし、
場合によってはその間のライセンス料が請求される可能性もある。
2021/10/09(土) 14:44:57.82ID:3pO7u4ft0
「大規模な」商用利用と言う事はそれなりの企業になると思うが
「知らなかった」なんて子供みたいな言い訳する企業と取引継続するんだろうか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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