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/11/13(土) 16:42:44.96ID:uwHpm0Tc0
モジュール化しないとは誰も書いてないけど
インスタンス化しない設計ならクラスの方が冗長でしょ
2021/11/13(土) 19:42:10.31ID:K/485EK5a
ごめん、頭の中で設計しながらコーディングしてるから問題ないわ
2021/11/13(土) 19:47:16.69ID:K/485EK5a
あとPythonのクラスは動作速度を低下させるから無理にする必要もない
2021/11/14(日) 00:13:54.03ID:xnhKIbNQ0
>>21
おいオメー さっきからうるせえぞ
「設計する」「設計する」ってよォ〜〜〜
どういうつもりだてめー
そういう言葉はオレたちの世界にはねーんだぜ…
そんな弱虫の使う言葉はな………
26デフォルトの名無しさん (ワッチョイ 4b10-PeR0)
垢版 |
2021/11/14(日) 01:20:39.27ID:L6aMQe6P0
>>24
Python使ってる時点でこれ以上気にする程遅くならんやろ
2021/11/14(日) 08:16:59.25ID:oS1oS1yMM
クラス作るのを難しいとか言う人なのでそっとしておいてやってね
2021/11/14(日) 08:19:51.45ID:KajEYa8D0
再利用する必要が発生したらクラス化だな

この世の全てはオブジェクトなのであるー、とトップダウンでオブジェクト思考しようとしても無理で、
あんなもんは上等なライブラリに過ぎない
2021/11/14(日) 11:52:14.47ID:1vDNCXCc0
別にクラス出来ないとも言ってないし、Python速くしようと思えばだいぶ速くできるんだけども
2021/11/14(日) 12:04:28.87ID:KajEYa8D0
速度で困ることってあるの?
大抵は秒で終わる
2021/11/14(日) 12:55:06.17ID:r+uJUw0M0
そういう部分って塵積だから実際に困ってからリファクタしたらいいんだけど
エンジニア思考的には誤差でも遅い選択肢をとりたくないよね
余計な仕組みが介在してると読み解こうとミスリードしがちだし
2021/11/14(日) 13:07:34.46ID:BR/vBx9v0
グラスも変数なんだが、グローバル変数をクラスにまとめたらglobalは書かなくても良くなったわ。
2021/11/14(日) 13:11:14.12ID:KajEYa8D0
設計自体は間違ってないから、一旦グローバル変数多用して書いたコードが、
classにするとパズルが解けるようにするすると綺麗になっていくのは気持ちいい
2021/11/14(日) 13:51:57.42ID:E00roTgyF
>グローバル変数をクラスにまとめたら

グローバルなバカでかいクラスが生まれるのか
2021/11/14(日) 14:17:15.55ID:KajEYa8D0
コード上は明確に分離はしてないけど、処理としてはちゃんと分離していて、
ブロックとブロックの受け渡し部分にいくつかのグローバル変数がある

という状態のものを引数や戻り値に変更して、関数やクラスに切り分けて
すっきりさせるのは簡単
2021/11/14(日) 15:24:49.69ID:dwOSLptua
>>34
a.b.cと言った変数をクラスに定義して、para.aと使うだけ。
書き換えでもglobalは不要になる。
37デフォルトの名無しさん (ブーイモ MM39-+EiL)
垢版 |
2021/11/15(月) 16:52:45.22ID:wu1uqKJYM
お前らってわざとミスリードな読み方するよね
2021/11/15(月) 17:42:17.61ID:gIcwiD4A0
miss readだけにwww
2021/11/15(月) 20:02:39.05ID:HZC12ov+0
>>34
class アホ:
pass

アホ.ボケ="カス"
アホ.オレ="フサフサ"

こんな感じでアホの空クラス作っておいて後からアホに紐付いた変数を作ったり出来る
2021/11/15(月) 20:07:29.84ID:2nh4BpvC0
>>1
以前、Rubyの本読んでたけど、Ruby好きとは仲良くなれないと思った。
2021/11/15(月) 20:10:30.92ID:trxoMZbv0
perl使っててかゆい所に手が届くようにするとrubyになる
2021/11/15(月) 20:32:52.77ID:x301xsWW0
言語は痒くなくなったけど代わりに脳みそが痒い奴が寄り付くようになった
2021/11/15(月) 20:36:51.02ID:trxoMZbv0
既に言語はあって、それで目的のことはできるだろうに、
それでも新たな言語を作る奴というのは何か振り切ってるので、
出来上がった言語もそれぞれに振り切っている

pythonは何ていうか、全てに中庸なんだよな
力を抜きすぎないけど凝りすぎない
44デフォルトの名無しさん (ワッチョイ 1536-+8FJ)
垢版 |
2021/11/15(月) 22:22:57.49ID:vWqBfheN0
python は qt との相性が抜群なので、120%満足です。

力技でperl/Qtを使ってた頃がバカみたい w

perl と qt の相性は最悪。
2021/11/16(火) 01:10:42.53ID:iwzdrBCN0
ソ連の核は綺麗な核
ポル・ポトはアジア的優しさ
北朝鮮は地上の楽園
珊瑚自作自演事件
南京・慰安婦捏造
教科書書き換え「誤報」事件
朝日・武富士裏献金事件
拉致問題切り捨て
サイレント魔女リティ
風の息遣い
五味ボマー
変態新聞
村木局長犯人扱い
その他人民裁判ならぬマスコミ裁判は数知れず
そしてマスコミお得意の「報道しない自由」

これでも貴方は新聞を信用しますか
これでも貴方は新聞を購読しますか

よく考えて下さい
2021/11/16(火) 01:17:12.27ID:lkEbsocr0
>>44
他のGUI toolkitと比べてQtの優位性って何がある?
最近GUIにもちょっと手を出そうとしてるんだけど、QtがヨサゲならQtopia触ってた身としては他の模索省いてこのまま進めたい
2021/11/16(火) 07:24:30.85ID:MhaWhMirr
Qt自体が時代遅れ
2021/11/16(火) 07:50:46.32ID:rEvbb9QE0
>>46
ヤッパリ古いのは機能豊富だしカレテル
Qt利用経験あるならPyQtかPySide2で決まりだと思う
49デフォルトの名無しさん (ワッチョイ 1536-+8FJ)
垢版 |
2021/11/16(火) 08:44:38.99ID:mgTVYsIn0
Qt-designerが使えるのが一番だな、GUIで画面が作れないとメチャクチャ大変から。
2021/11/16(火) 09:05:22.55ID:nevdyZlN0
excelとかxmlとかいろんなファイルを読んで別のファイルを生成するツールがあって
自分用で使うなら設定用のテキストファイルに
読み込むファイルや出力ファイルを記述する方式で十分なんだけど、
社内で共有して使う用にアホでも使えるGUIを用意したい場合、
何を使うのがいいだろう
51デフォルトの名無しさん (エムゾネ FF43-09aj)
垢版 |
2021/11/16(火) 10:21:21.37ID:5D9mKY7bF
>>42
あっちのスレで引き留めて置いて欲しいんだが
色んなスレに拡散感染拡大して迷惑
それだけの吸引力も無いようだ
52デフォルトの名無しさん (エムゾネ FF43-09aj)
垢版 |
2021/11/16(火) 10:24:40.56ID:5D9mKY7bF
>>39
ハゲにハゲと言うのはハゲであることは事実だが名誉棄損にはなるらしい
2021/11/16(火) 10:28:07.61ID:5D9mKY7bF
>>45
https://www.jiji.com/jc/article?k=2021111500707
54デフォルトの名無しさん (エムゾネ FF43-09aj)
垢版 |
2021/11/16(火) 10:31:29.98ID:5D9mKY7bF
>>50
設定ファイルのテンプレをexcelで造って
excelから設定を読み込めば喜ばれる
2021/11/16(火) 11:15:16.57ID:nevdyZlN0
設定のexcelファイルはいいな
以前の設定の流用がしやすいし、操作にも慣れてる
説明も書き放題

ボタンをクリックするとpythonが起動する部分の設定が最難関だけど、
カレントにあると決め打ちでいいか
2021/11/16(火) 13:50:36.62ID:dtmpxDpX0
誰もがエクセル使えると思わないほうがいいよ
UIとして使うにも限度があるしマクロ使うといちいち警告でるし複数PCからアクセスされると編集禁止とか余計なエラーが出てとにかくみんなイラつくだけ
UIデザインはHTMLにまかせてNode.jsなりで管理するのが楽かと
2021/11/16(火) 13:57:58.94ID:nevdyZlN0
まあ、フリーソフトの配布ではないので
excelは全員が使えるとしてよい
2021/11/16(火) 15:21:38.88ID:6v6IG7710
ITリテラシーない人の相手したくない
59デフォルトの名無しさん (ワッチョイ 4dda-+EiL)
垢版 |
2021/11/16(火) 16:51:29.18ID:iw6chFt80
>>47
Qt6でようやくasync/awaitってな…
60デフォルトの名無しさん (ワッチョイ 1536-+8FJ)
垢版 |
2021/11/16(火) 20:17:26.68ID:mgTVYsIn0
チラッとネットで見たけど、async/awaitって真面目に使うとなると面倒そうだね。

これって主に何に使うの?fork()して実行より、楽って事?
61デフォルトの名無しさん (ワッチョイ 7501-09aj)
垢版 |
2021/11/16(火) 20:49:59.34ID:LLUTRYIZ0
コンピュータの性能を100%引き出し、最高のユーザー体験をお約束します。
2021/11/17(水) 00:58:48.67ID:TRGzpBEI0
PythonではFastAPI以外で使ったことないすね…
js/tsではないと困るけど
いつの間にかasyncio.runなんて追加されてたのか
2021/11/17(水) 01:16:00.95ID:+JwFzM8Ra
富嶽のsimで温暖化対策に貢献とか言ってるけど
なぜ富嶽を北海道に造らなかったし
64デフォルトの名無しさん (ワッチョイ 7501-09aj)
垢版 |
2021/11/17(水) 02:16:34.56ID:TmFCV0x+0
寒冷地域と温暖地域の温度差が少なくなると対流が起きず地球が冷やされないからでは?
2021/11/17(水) 02:24:11.13ID:vyPEPYRk
あんまりpython関係ないかもだけど
ちょっとした設定情報をjson形式で保存してて
更新とかするときに
json.loads,json.dumpsとopenで丸ごと上書き
ってやってるんだけどダメかな?
(他の重要というかシステムに近い設定とかはenvとかDBで管理してる)
jsonじゃなくてそういうのに特化した規格ってあるのだろうか。
2021/11/17(水) 03:12:57.62ID:HN5Eyc2m0
いいよ
2021/11/17(水) 06:34:49.63ID:h3betjKK0
json, yml, configparser
2021/11/17(水) 06:37:00.64ID:qr7EHiL50
json便利だけど読みにくい
読むコツ教えて
2021/11/17(水) 06:51:46.05ID:dwBhRem9a
>>68
整形してないからじゃ?
してあっても読みにくいなら、キミ自身に問題がある
2021/11/17(水) 07:49:12.20ID:5cuGb6Ey0
>>65
クラス化しとけば差し替えも簡単
2021/11/17(水) 07:49:51.40ID:5cuGb6Ey0
>>68
色付きで表示できるviewerで見る
72デフォルトの名無しさん (ワッチョイ ed5f-09aj)
垢版 |
2021/11/17(水) 10:36:40.12ID:wlAtkNPK0
jsonは無駄が多い
SQLiteでええやん
2021/11/17(水) 10:46:13.37
sqlだとソースからみるときクライアント選ぶのがなぁ・・
2021/11/17(水) 10:48:59.66ID:XqIxGMI20
無駄の多さならxml
2021/11/17(水) 11:44:41.09ID:qr7EHiL50
>>71
ありがとう!これなら見えるね。
2021/11/17(水) 12:52:40.46ID:XqIxGMI20
python2の方が良かったのに
という点ってある?
2021/11/17(水) 13:10:53.17ID:HN5Eyc2m0
IronPythonは未だに2やで
78デフォルトの名無しさん (ワッチョイ ed5f-09aj)
垢版 |
2021/11/17(水) 14:16:22.07ID:wlAtkNPK0
print
2021/11/17(水) 15:57:05.68ID:4FTJCengM
>>65
強いて言えば、一時ファイルに書き込んでからrenameで上書きした方が安全、くらい
80デフォルトの名無しさん (オイコラミネオ MM71-K2Uy)
垢版 |
2021/11/18(木) 09:17:27.97ID:tpBIFt92M
最初からSQLite使えばいい。
ジャーナリングも標準であるし。
2021/11/18(木) 17:38:05.48ID:naW8oYaR0
否定はしない
2021/11/18(木) 18:04:56.64ID:ah9sw/Zw0
俺は嫌だ
2021/11/18(木) 23:29:42.52ID:/dHqMjeMa
asyncioはI/Oに効く
データベースの読み書きとか通信処理とか
バックグラウンド処理はCPUにオーバーヘッドがある時
2021/11/19(金) 07:39:18.17ID:OFtNpZ320
3.8.5でwin8.1で動くものをwin7に持っていくと、
subprocess.Popenでエラーになって動かない

最新のpythonはそもそもwin7にインストールできない
win7で動くもっと新しいバージョンはある?
無い場合は何か解決方法はある?
2021/11/19(金) 07:50:08.35ID:UKOjKE+50
>>84
エラーメッセージは?
2021/11/19(金) 08:01:48.17ID:OFtNpZ320
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。

実行しようとしてるのはbatファイルで、.batまで書くとエラーにはならない
でもサブプロセスとしては動かなくて、処理はそっちに移行して終了してしまう
shell=Trueを付けても同様の動作になる
やりたいのは、いつ止まるか判らないコマンドをサブプロセスとして動かして監視すること
2021/11/19(金) 08:08:51.54ID:+sXFtDSXD
Pyの知識以前のWinのシェルの知識だな
cmd . exeをスイッチ付きで起動してやればいい
2021/11/19(金) 10:41:55.94ID:fOs9i175r
3.7だと動くのかどうか

去年ですらopenCVがPython3.8で動かないとか問題になってたなあ
2021/11/19(金) 10:47:38.84ID:fOs9i175r
この辺が時々問題になるから
じゃあwheelで取ってくるかと思い
pep425とかget_supportedとかやってみたら無くなってる

調べたらutils.compatibility_tagsとかになってた

それをふざけてcolaboratoryでやってみたら3.7までしか対応してなかった次第
2021/11/19(金) 11:03:06.60ID:OFtNpZ320
perlだとwin7の時点で既に固まってたので、環境が古くて困ることは無かったけど、
pythonはまだ進化を続けてるので、後方互換性はかなり怪しいな
本番環境側をwin10にしてしまおう
2021/11/19(金) 11:18:00.59ID:eyeX0xyMF
>>84
cmd /K
とか
shell=FalseまたはTrueかな
この辺いい加減に描いてると動かない
2021/11/19(金) 14:17:42.60ID:ysK9uB2VM
>>86
Pythonの違いじゃなくてWin32 console APIの違いの可能性もあるね
Console切り離すのは結構version違いが激しい
Powershellでも厄介
batをVBで書き直すことを勧める
2021/11/19(金) 14:43:19.89ID:V+Ekt21U0
なぜVBw
2021/11/19(金) 14:54:41.80ID:ysK9uB2VM
>>93
Console切り離すのが簡単なスクリプト言語他にあるかな?
2021/11/19(金) 14:55:39.66ID:ysK9uB2VM
WSHでJavascriptなら簡単なんかな?
2021/11/19(金) 15:07:12.92ID:OFtNpZ320
問題はbatファイルの呼び出しだったようで、
実行ファイルを直接呼び出すように変更したらwin7でも動いた
2021/11/19(金) 15:46:55.28ID:bNc9xgI00
ぱい
2021/11/19(金) 18:23:50.32ID:NQkiHUfv0
ちゃんとした質問してほしい
2021/11/19(金) 22:02:42.25ID:R6tUvqDP0
2021/11/20(土) 06:35:11.10ID:MZWWAxGE0
cp932で表せないファイル名のリストを作る

cp932にencodeしてみてエラーになったらそれを出力する、という方式なんだけど、
printするとエラーになってしまうので、リダイレクトでファイルにできない
仕方ないので、encoding="utf-8"でopenしてwriteしてるけど、
改行とか付けないといけないし、printで済ませたい

printしてもエラーにならない方法とか無いのかな
python2ならそのまま行けた
2021/11/20(土) 07:45:20.38ID:Lukvfxqi0
>>100
https://docs.python.org/ja/3/library/functions.html#print

>>> f = open(path, 'w', encoding='utf-8')
>>> print(*objects, file=f)
2021/11/20(土) 08:24:40.92ID:MZWWAxGE0
cp932のエンコードなんだからcp932でないものは通さない
という例外を認めない姿勢は厳密ではあるけど融通がきかないよな

漢字のファイル名も使えるのに、たまに'〜'とか変なスペースとかで
処理できないツールは大抵そういう厳密さで引っかかってる
ノーチェックで通してれば処理も減るしツールも使える側に倒れるのに
103デフォルトの名無しさん (オイコラミネオ MM67-83eS)
垢版 |
2021/11/20(土) 11:19:01.66ID:/kqPbqrTM
なんとなく筋違いのことを言っているのだけはわかった。
2021/11/20(土) 12:11:56.36ID:MZWWAxGE0
既にファイルは開いてるんだから、そこにwriteするかprintでfile=を指定するかは、
処理上何も変わらない

知りたいのは、リダイレクトしてエラーにならない方法
os側は何が来ようがそのままファイルにリダイレクトするので、
標準出力に出す時点でのチェックを止めればいい
2021/11/20(土) 13:10:25.59ID:c6rYoMps0
python2でいけて、python3でエラーっていうのがわからない
CP932のコンソールの問題なら普通前者で起きると思うんだけど
2021/11/20(土) 13:20:06.78ID:c6rYoMps0
あと、openするときにバイナリ書き込みを指定すれば済みそうだけどな
改行コードもそのままにできるし
2021/11/20(土) 20:33:41.39ID:MS7q4miD0
https://www.pythonic-exam.com/archives/news/python_open_document
2021/11/20(土) 20:33:57.35ID:MS7q4miD0
いつ公開するのよ?
2021/11/21(日) 12:48:52.72ID:4kBJkMan0
https://qiita.com/righteous/items/c5f6fbf84c98c5a17043
これ全部できる?
2021/11/21(日) 13:09:44.82ID:DbnHICgp0
とどらんみたいなサイトに興味があるんですが、統計学とデータ分析どちらの知識が必要でしょうか?。
2021/11/22(月) 04:46:02.24ID:X0+jYONh0
a = ['a', 'b', 'c']
if 'x' not in a: print('hello') #1
if not 'x' in a: print('hello') #2

#1はaに'x'が含まれていない
#2は(aに'x'がふくまれている)の否定

この二つは全く同じものだと考えて良いのでしょうか?
112デフォルトの名無しさん (ワッチョイ 0610-0sbD)
垢版 |
2021/11/22(月) 07:57:31.23ID:sf/6XMlW0
同じ
2021/11/22(月) 08:01:58.64ID:HMeOIS1cM
>>111
同じだけど #1 で書けって言ってるみたい
https://kazusa-pg.com/python-not-in/
2021/11/22(月) 09:30:17.60ID:7Z6oy9Mm0
普通に優先順位が不安になるよな
2021/11/22(月) 10:10:59.14ID:XQq90Aj30
CIに必ずいれるしflake8なしでコード書くのは考えられん
116デフォルトの名無しさん (アウウィフ FF3b-YgSv)
垢版 |
2021/11/22(月) 12:23:27.94ID:vmkVXbGEF
if a is not None:
if a not is None:
if not a is None:
Python は書き方が一つしかない()っていったのは誰?
2021/11/22(月) 12:28:55.98ID:8fUDDfEEd
英語文法に強いと#1しかあり得んとなるが
否定文でこけた経験があると、どうしても頭に否定書きたくなってしまう
なんなら否定自体書きたくなくなる
2021/11/22(月) 12:42:04.92ID:7Z6oy9Mm0
そこでunlessですよ
2021/11/22(月) 13:10:59.47ID:z3oVlEgz6
if a:
2021/11/22(月) 13:58:34.46ID:WOttMYR/0
変数hogeに値がある場合はfugaにhoge(の値)を代入したい場合
if文や条件式を使わずに表現する方法ってある?
# python
hoge = "piyo"
fuga = hoge if hoge else ""

bashの変数展開みたいな書式ないよね
# bash
hoge="piyo"
fuga=${hoge:-""}
2021/11/22(月) 14:08:40.76ID:7Z6oy9Mm0
orは?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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