Pythonのお勉強 Part66

■ このスレッドは過去ログ倉庫に格納されています
2021/11/12(金) 07:48:11.11ID:vp8lzav70
!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(超初心者用) その55
https://mevius.5ch.net/test/read.cgi/tech/1633070807/

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

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2021/12/09(木) 11:58:39.98ID:LJEXrIakM
BeautifulSoupじゃなくてScrapyなら少しマシ
公式ドキュメントの質は段違い
2021/12/09(木) 12:37:45.04ID:LJEXrIakM
>>401
指定した要素がない状況を考慮する必要があれば階層ごとに自分でハンドリングが必要だからgetだけじゃダメなんだよね

safe navigation operatorがあればlodashのgetやrubyのdigのようなのが簡単に作れる

近いところでglomがあるけど処理を分割したり、つなげたりできないから使い勝手が悪い
2021/12/09(木) 14:43:48.67ID:kmW2UpC80
bsのドキュメントってなんであんな書き方なんかな
2021/12/09(木) 17:31:55.59ID:7v43kIFS0
クラスAを入力にしてクラスBに出力する時
a.process(b)
よりも
b.process(a)
の方が直感的だろうか
2021/12/09(木) 17:33:06.64ID:hfvG1WdLd
インスタンス作り直す
2021/12/09(木) 17:43:20.61ID:eEWQKJ8w0
>>405
processというメソッド名で二択ならまだ後者だけど直感的でない
どっちを主体にしたいかを決めてそれにあったメソッド名をつけるのが正解
2021/12/09(木) 17:47:49.86ID:y+vTbIG00
bの状態を変化させるなら後者かな
2021/12/09(木) 17:49:17.07ID:7v43kIFS0
名前をちゃんと付けると、データの抽出と設定を同時にやる訳だから
b.extract_data_and_write(a)
と書いたとしても、
from b to a なのか from a to bなのかは判らない
2021/12/09(木) 18:19:58.56ID:hfvG1WdLd
責任の所在はAにあるから
aの所有するメソッドがbを操作する、という書き方がいい
つまり前者
2021/12/09(木) 19:29:46.08ID:y36UsJ/D0
pythonって直感的ってより
少ない記述で書ける小型プログラムってイメージ
2021/12/09(木) 19:32:50.08ID:vdjQHUNbD
pythonって直感的ってより
コーディング規約みたいなのをなるべく減らすよう設計されてるイメージ
2021/12/09(木) 19:34:27.22ID:kmW2UpC80
イメージで語るな
2021/12/09(木) 20:11:20.59ID:lReNouCA0
すいませーん、入門したばかりなので低次元な質問ですけど教えてください。
DataFrameで行番号100以上のdf["hoge"]の値を全てNoneに置き換え、
って、どうやるんでしょう?
whereを使って列の値をキーにして置き換えみたいな記事はあちこちにあるんですけど、
うまく見つけられなくて…。
2021/12/09(木) 20:20:57.64ID:lReNouCA0
一応、出来たみたいです…。

df_subset = df2.query("index > 100")
df2.loc[df_subset.index, "hoge"] = None

2ステップになっちゃいました…。
もっと楽なやり方ってあるんでしょうかね?
416デフォルトの名無しさん (ワッチョイ 0a10-QDcv)
垢版 |
2021/12/09(木) 21:01:27.61ID:/XpwR6ak0
df.iloc[df.index>100,”hoge”]=None
417デフォルトの名無しさん (ワッチョイ 0a10-QDcv)
垢版 |
2021/12/09(木) 21:01:57.63ID:/XpwR6ak0
間違えた
df.loc[df.index>100,”hoge”]=None
2021/12/09(木) 21:09:37.78ID:7v43kIFS0
プロパティなんだよな
適当にネットのコードをコピーして改造して動いて、
後からよく見てなんだこれてなる
419デフォルトの名無しさん (ブーイモ MMcf-+02Y)
垢版 |
2021/12/10(金) 01:50:16.79ID:1XQlciewM
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

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

クソチョンw
クソチョンはウンコを食べる糞食人種w
朝鮮人はゲリ便をじゅるじゅると
うまそうに食うw
2021/12/10(金) 08:35:11.18ID:DV16xl6X0
>>416-417

有難うございます、いけました。

DataFrame操作、便利なのはわかってるんですが、記述方法がこれまでやってきた他の言語にはなかった感じでちょと戸惑ってます。
2021/12/10(金) 08:58:00.11ID:5w3ky6J90
インデックス操作はスライス使う方がオレは好きだな
df.loc[100:,”hoge”]=None
2021/12/10(金) 09:27:24.28ID:LdVcQX3X0
上の方に要らない行があるからそれを削る、みたいな時には使うけど、
インデックスを数字で指定することがそもそもレア
2021/12/10(金) 12:18:46.95ID:DV16xl6X0
>>421

それでも行けるんですね。
424デフォルトの名無しさん (ブーイモ MMcf-+02Y)
垢版 |
2021/12/10(金) 14:44:01.80ID:dPm+RZp8M
クソチョンw
2021/12/10(金) 19:48:42.58ID:LdVcQX3X0
try - finally
はwithで置き換える
自作withはcontextlibで作る
2021/12/10(金) 21:51:15.63ID:jufFO9Qq0
javaでもない言語でtry自体を使いたくない
2021/12/10(金) 22:21:38.64ID:LdVcQX3X0
exceptが素早くタイプできない
2021/12/10(金) 22:33:35.69ID:CbPmL2LvM
javaって言えば今日は大騒ぎだったなw
影響範囲で言えば2年前のstruts2 RCE祭りより酷い

pythonのloggerは大した機能なくてハァ〜〜ってため息が出ることが何度かあったけど
今日だけはチープな実装でホントよかったと思ったわ
429デフォルトの名無しさん (ワッチョイ bfda-ULLt)
垢版 |
2021/12/11(土) 01:52:28.49ID:ZK42YBmJ0
>>428
穴ってレベルじゃねえよな
2021/12/11(土) 06:02:34.65ID:2pyL4JiA0
でも今までなんも起こってないからそのままだったんよね?
2021/12/11(土) 07:12:39.38ID:T68Lqt3h0
だからjavaなんてやめとけって何度言ったか
2021/12/11(土) 07:13:22.50ID:V5XtH56o0
loggerがどれだけ高機能でも、記録するだけなら何も起きない
なんで実行するかな
433デフォルトの名無しさん (テテンテンテン MM8f-XjgK)
垢版 |
2021/12/11(土) 07:47:37.23ID:w4ZoaW0AM
すいません。Pythonプログラムでpyxelを使ったゲームを作ったんですが、それを友達に共有したいのですが、どうすればいいですか?
zipとかファイルで送りましたが起動できないと言っていました。
2021/12/11(土) 07:51:50.61ID:V5XtH56o0
仮想環境を作らせて同じ環境にする
exeにする
435デフォルトの名無しさん (テテンテンテン MM8f-XjgK)
垢版 |
2021/12/11(土) 07:53:43.18ID:w4ZoaW0AM
exeにしたんですが、クリックして開いたと思ったらすぐ消えてしまいました。
また、環境はpyxelをインストールするだけでいいのですか?
2021/12/11(土) 08:03:49.93ID:V5XtH56o0
不明ならば、pip freeze全部
2021/12/11(土) 13:56:36.55ID:y0niRYqP0
先日入門した他言語者ですけど、閉じ括弧書かなくていいの、地味に楽ですね。
Yamlと同じ楽さです。
2021/12/11(土) 14:40:50.75ID:2wBn3+dOM
手動でdedentが必要なのでむしろ地味に苦痛
2021/12/11(土) 14:58:15.21ID:V5XtH56o0
秀丸でインデント戻す正解がまだ見つからない
2021/12/11(土) 15:50:15.48ID:T68Lqt3h0
vscodeで選択した行まとめてスペースするには?
2021/12/11(土) 15:51:33.44ID:y0niRYqP0
>>438

{}でブロック定義する言語の場合、
今どきの初学者キッズ達の書くコード、まじでインデント滅茶苦茶ですからね。
『しつけ』という観点においてはPythonのインデント強制が矯正になっていいんじゃないかと思います。
2021/12/11(土) 15:54:49.98ID:V5XtH56o0
対応する括弧へのジャンプ機能でブロックの先頭に飛べて便利なのに

上に探して行って、今のインデントレベルに最初に何か書いてあるところまでジャンプ
みたいなマクロが要る
2021/12/11(土) 16:19:42.62ID:E/VsNyVn0
>>441
そういう根性論じゃなくてフォーマッタとか仕事を効率化する方法を教えてやるべきだと思うぞ
2021/12/11(土) 16:32:46.63ID:PhRtUMglM
>>441
一発でオートフォーマットできるからインデントがめちゃくちゃなコードでも何の問題もない
python以外ではね
2021/12/11(土) 16:33:59.54ID:SDIYylIRD
>>443
何のために を教えてやるのが先でしょ
446デフォルトの名無しさん (ワッチョイ 4733-8/hI)
垢版 |
2021/12/11(土) 16:34:44.72ID:lBTOlMPp0
>>443
インデントするかしないかなんて癖とか慣れみたいなもんだし、根性論がどうとかじゃないだろ
それこそ、インデントに限らず変数名のつけ方とかコメントの書き方とかも同じだよ
実際に書きながらじゃないと身につかん
2021/12/11(土) 17:21:54.24ID:E/VsNyVn0
>それこそ、インデントに限らず変数名のつけ方とかコメントの書き方とかも同じだよ
>実際に書きながらじゃないと身につかん

それが根性論。
わかりやすい変数名は自動じゃ付けられないがインデントは自動でできる。
限りある時間と頭は前者に注力するのが合理的ってもんだろう。
2021/12/11(土) 17:30:00.42ID:OP1TuqIU0
インデントずれてる奴は雑なんだろうな
安心して仕事任せられないわ
2021/12/11(土) 17:41:42.05ID:yK8FRSrA
根性が嫌ならもうコーディングは他人にすべてを任せて貴重な時間を経営やコミュニケーションスキル学習へ回した方が合理的
450デフォルトの名無しさん (ワッチョイ 4733-8/hI)
垢版 |
2021/12/11(土) 17:43:26.35ID:lBTOlMPp0
>>447
わざわざフォーマッタとか使わせるなら最初からまともな開発環境なりエディタなり使わせるわ
2021/12/11(土) 17:52:32.22ID:VpQySh8l0
今日の不毛な議論のテーマ「インデント」です。
結論が必要ない人だけ参加してください。
2021/12/11(土) 17:52:48.44ID:E/VsNyVn0
わざわざ手でインデントすることを強制するよりまともな開発環境使わせろと言ってたのはこっちなんだが
2021/12/11(土) 18:12:04.65ID:ujbkP3uUM
書くのは多少ぐちゃぐちゃでもいいけどレビューの時にはちゃんと整形しとけ
2021/12/11(土) 18:13:25.17ID:4ZOnX4zTa
すげーどうでもいい
2021/12/11(土) 18:27:24.02ID:OP1TuqIU0
ちゃんと整形できない人
ご飯クチャクチャ食べてそう
2021/12/11(土) 18:40:51.75ID:w5YNy+Wd0
プログラムなんて正しく動けばそれで良いのさ
2021/12/11(土) 18:51:29.07ID:FrF9wjhg0
止め跳ね払いさえしっかり書けてればいい
2021/12/11(土) 18:53:13.77ID:V5XtH56o0
つかblackかけるよね
2021/12/11(土) 18:57:33.01ID:w5YNy+Wd0
文豪と呼ばれる人たちの字は汚くて読みづらい
2021/12/11(土) 19:14:05.90ID:4ZOnX4zTa
インデントなんてリフォーマットで一発だし
変数名なんて設計の問題
2021/12/11(土) 19:18:13.33ID:WRoIyzpK0
blackってあの宗教臭いフォーマッタだっけ
2021/12/11(土) 19:22:22.43ID:WRoIyzpK0
フォーマットがしょっちゅう変わるからblameが使いにくくて
何だこれウンコだなって評価してたけど少しはマシになったのか?
2021/12/11(土) 20:11:30.93ID:7e/RY26Q0
インデントずれてるのにリフォーマットしたらロジック変わるんじゃ…
464デフォルトの名無しさん (ワッチョイ 47da-Z7Vi)
垢版 |
2021/12/11(土) 20:16:46.10ID:LVLvmhJV0
意味のない議論だよ
2021/12/11(土) 20:27:04.83ID:E/VsNyVn0
>>463
さすがにブロックや折り返しを正しく認識できない状態で強行するフォーマッタはないだろうし
正しく認識できている状態でフォーマットするならそれが変わることもないはず。
2021/12/11(土) 21:03:52.73ID:BEyyuamvM
自動フォーマットできる範囲がPythonの場合限定的って話でしょ
インデント間違ってたら動かないケースがほとんどなんだから
467デフォルトの名無しさん (ワッチョイ 7f10-LoL2)
垢版 |
2021/12/11(土) 21:04:38.10ID:hm3+CMnM0
こういう話題は盛り上がるんだなあ
自転車置き場の議論だっけか
2021/12/11(土) 21:19:56.71ID:T68Lqt3h0
仕事で書き始めると内包表記とか全然使わんな
使わんでも書けるし
まぁ慣れなんかね
2021/12/11(土) 22:02:55.46ID:V5XtH56o0
内包表記と言われてもcomprehensionと言われてもピンとこない
もっといい呼び方なかったのか
2021/12/11(土) 22:12:01.24ID:OP1TuqIU0
2重の内包記法が出てくるとウッとなる
1重は問題ないが
2021/12/11(土) 22:19:40.70ID:V5XtH56o0
短く圧縮する為の技じゃないしな
理解を阻害するなら本末転倒
正しく使うと読みやすくなる
2021/12/11(土) 22:57:24.80ID:VpQySh8l0
内包表記 + ランバダ式は 「うー」っとなる
2021/12/11(土) 23:17:58.68ID:xs/Eto350
内包表記 + lambda でせっかく数式ぽく見やすく書けるのに
そこで複雑に書いちゃうのは本末転倒だし盛大にディスってええよ
2021/12/11(土) 23:50:48.35ID:+8dJDZod0
単なる長文折返しのときも4つスペース入れてる?
自分は意識的に2つにしてる(pep8でも許容されてる)
2021/12/12(日) 00:11:10.40ID:4/VBhxqq0
ペップ
2021/12/12(日) 00:37:21.74ID:ybDnKR8a0
内包表記は数学が得意な人向け
集合論ではこう書く
2021/12/12(日) 00:42:39.81ID:QuHtW41S0
数学が得意な人はnumpy使うから…(想像)
2021/12/12(日) 01:04:29.47ID:X/X0JWhG0
>>476
このレスみて気づいたけどまんまSQLなんだよな
2021/12/12(日) 01:06:40.44ID:Qvw+czy00
数学得意でもSQLが得意とは限らないよね
480デフォルトの名無しさん (ワッチョイ ff7d-Z7Vi)
垢版 |
2021/12/12(日) 03:26:26.60ID:/VVPjIN/0
まーた意味不明な議論してる
2021/12/12(日) 16:58:22.09ID:xtbg5MqF0
blackのリファレンス見てたら--safeってオプションがあるんだよね
つけないとフォーマット前後でASTが変化してたか検証しないんだってよ
すごくない?
2021/12/12(日) 17:00:27.87ID:xtbg5MqF0
てか普通はASTに解釈してからコード生成するもんだろ
そうすれば構文が変化する可能性は実装ミス以外で理屈上あり得ない
2021/12/12(日) 17:07:01.91ID:cgjbpF8I0
何かのコンファレンスでいろんな国の人が集まって英語で話している
でもみんな母国語は違う言語

なんかpythonはそんな感じで、他に慣れた言語もあるけどpythonでも書く
だから、いろんな方言が混じる
2021/12/12(日) 17:18:41.81ID:s1cq8TlgM
Pythonって言語というかコード自体に対する関心の乏しい人が多くて、
どっちかというとプログラミングオタクみたいなのより目的志向の人がクールだとされるような空気があるんだよな
だからPythonの流儀とか気にしないで無茶苦茶やる人が多い
最近ではJava専のSIerなんかも参戦し始めてて混迷に拍車がかかっている
2021/12/12(日) 17:23:35.86ID:aUiHIMOoa
そこにペチパーも入ってきたら最悪だな
スコープ区切ることもなくダラダラ長いスクリプト書き散らす文化最悪
2021/12/12(日) 19:30:52.03ID:5aMI8rIwM
実際どうでもいいだろ
好きに書かせればいい
ただ型指定強要とかそういうのはパイソニックじゃないから勘弁してほしい
今ん所必須と思ったことはない
2021/12/12(日) 19:46:42.88ID:H5I9C+V/a
さすがに型情報なしは一人プロジェクトじゃないと無理があるんじゃないかと
2021/12/12(日) 20:57:49.24ID:QuHtW41S0
そもそもPythonは大規模開発向きではない気が
2021/12/12(日) 21:14:27.80ID:HT/W5ldUM
一人趣味用だろ
仕事ならちょっとしたツールとか
2021/12/12(日) 21:15:05.32ID:5aMI8rIwM
>>488
これ
2021/12/12(日) 22:32:39.56ID:X/X0JWhG0
>>487
ようつべくらいのコンパクトなプロダクトじゃないとな
2021/12/12(日) 22:56:04.81ID:+lwr5pOP0
100万行のPythonコードとか頭イカれてるとしか
2021/12/12(日) 23:08:08.25ID:cgjbpF8I0
なんでや
多重継承無敵やろ
494デフォルトの名無しさん (ワッチョイ 6736-xNO7)
垢版 |
2021/12/13(月) 20:31:56.30ID:bmYI6DhG0
ts
495デフォルトの名無しさん (ワッチョイ 6736-xNO7)
垢版 |
2021/12/13(月) 20:40:34.40ID:bmYI6DhG0
C++だとクラスを継承して関数を再定義するとき、ヘッダーをみればvirtual関数か見分けがつくじゃん。
pythonだと普通に関数を書けば再定義できちゃうから、見分けが難しいよね。
特に、継承の継承とかしてると更に見分けがむずかしい。

これって、自分で関数名を工夫するとかしか手はないよね?
2021/12/13(月) 23:11:33.32ID:xUh4ce/50
>>495
継承元辿っていかないと仮想関数かどうかわからないのでは?一番親にvirtualついてればよかったよね?
2021/12/13(月) 23:19:20.83ID:lh9CDY7I0
for分のループがよくわからん
2021/12/14(火) 00:12:32.25ID:BYPDUL910
>>>497
https://docs.python.org/ja/3/tutorial/controlflow.html#for-statements
ここのどこでアレってなる?
2021/12/14(火) 02:21:09.13ID:7S3LFIel0
NFTアートが1300万円で落札。VRアーティストせきぐちあいみ「誰もがまだ見ぬ世界を創りたい」

ゴーグルの先に広がるのは、何もない真っ暗な空間。しかし、両手に持ったコントローラーを
振りかざすたびにバーチャルの空間に色が現れ、天地が生まれ、次第に豪華絢爛な異世界が立ち上がる。
その内部は360度から堪能することができ、地を這うことも空を駆けることも自由自在。
VRアーティスト・せきぐちあいみの創作活動は、まさに天地創造だ。
VRと出合ったことで人生が大きく動きだし、今では海外からも注目される存在になった、せきぐち。
VRで人は何を体験できるのか?
そして、彼女のデジタルアート作品に1300万円もの価値をつけたNFTの新たな可能性とは?
2021/12/14(火) 03:06:09.90ID:HCC7MYbd0
創ったやつでどう遊ぶかやな
501デフォルトの名無しさん (JP 0H4f-i5II)
垢版 |
2021/12/14(火) 10:10:15.90ID:DUXpvdCJH
変数名スレと迷ったんだけどpython+tkinter限定の話の気がするのでこっちに…

class App():
__def __init__(self):
____self.app = MyWidgets()
____self.app.mainloop()
____self.app.protocol("WM_DELETE_WINDOW", self.on_close)

__def on_close(self):
____global flg
____app.destroy()
____flg = False

if __name__ == '__main__':
__flg = True
__while flg:
____app()

アプリケーションのリセットを実装するためにこういう書き方を考えたんだけど
1 : 問題ないですよね?
2 : flgの適切な変数名はなんですか?
isAlive? loop?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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