Pythonのお勉強 Part64

■ このスレッドは過去ログ倉庫に格納されています
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
724デフォルトの名無しさん (ワッチョイ 4b10-d3lM)
垢版 |
2021/04/08(木) 18:37:24.28ID:17S6MxuK0
リテラシーが高くてえらいね!
2021/04/08(木) 18:41:42.92ID:YJHzPpEi0
githubのクソソース見たことあったら>>723みたいなこと言えない
2021/04/08(木) 19:16:45.20ID:5V/lZTTDa
自動取引系は結局アルゴリズム次第だからなんとも言えないよね
速度重視ならサーバーを取引所の近くに置くとかになってくるし
2021/04/08(木) 19:47:22.77ID:CZb2HJoA0
computer scienceというyoutuberの動画でも見てとりあえずの流れを覚えたら?
匿名なのに教えてあげたよ
2021/04/08(木) 21:22:29.71ID:ojprTUDY0
言語を覚えられるかとか書けるかとかではなく
バグで大損出しても耐えられるメンタル持ってるかが重要
2021/04/08(木) 22:11:37.89ID:NtBlHkvZ0
5chになってからレベルの落ち方が半端ないな
2021/04/09(金) 00:27:47.56ID:spkNTq/6r
>>729
おそろしいよな
2021/04/09(金) 00:39:27.54ID:P0SgLRtF0
みんな歳を取るんだよ
君だけじゃないから
2021/04/09(金) 00:45:03.58ID:qVee83Ql0
レベル落ちたなとか言う人のレベルって低く見えるよね
不思議
2021/04/09(金) 01:40:24.99ID:ktVevk0Z0
>>729
おまえのレベルが上がっただけだよ
2021/04/09(金) 08:25:58.53ID:ny/9NHY70
>>729
そりゃ要領いいやつはSNSで情報交換するからな
2021/04/09(金) 10:38:17.41ID:FVZAzmahM
いやSNSはないわw
2021/04/09(金) 15:35:55.96ID:OomUHYuna
5ch だからじゃなくてPythonユーザー増えたからじゃない?
10年前のPythonスレは今みたいによく分かんないけど偉そうな人いなかったもんな
2021/04/09(金) 17:14:44.42ID:LF3gSMbd0
おっPythonは偉大
738デフォルトの名無しさん (ワッチョイ 23da-zxRa)
垢版 |
2021/04/09(金) 22:33:00.67ID:GlJoIjww0
スクレイピングするとき
url=XXX.html
url=XXX1.html
ってなってるのあるんですけど
for i in range(m)
のmに空入れる方法ってありますか?
739デフォルトの名無しさん (ワッチョイ 437d-VRFv)
垢版 |
2021/04/09(金) 23:27:06.60ID:DKvRk4WS0
if i==0:
i=""でいいだろ、そもそもスクレイピング関係ない
2021/04/10(土) 07:40:36.50ID:IfVElqHb0
雑な質問は答えるの難しいな
741デフォルトの名無しさん (ササクッテロ Sp5f-oPg2)
垢版 |
2021/04/10(土) 09:08:09.45ID:qnibVeTgp
>>711
結局稼げるの?
2021/04/10(土) 11:00:55.07ID:13mACr6rd
その話しはもうしたくない
2021/04/10(土) 17:31:57.04ID:rH4mNlVQ0
さすがやな
試してみるわ(^_^;)
2021/04/12(月) 13:02:03.17ID:0SWOxT7a0
上手くいったわ(^_^;)
でも空番目が違うフォーマットなんで
元の使うはめに
まあ勉強にはなった
2021/04/12(月) 18:41:25.24ID:VYgLgFqq0
>>721
英語可ならquantconnectとか覗いてみたら

半年前まではquantopianっていうヘッジファンドがpythonベースのアルゴでコンテスト開催して優秀アルゴで運用してたんだけど潰れた
quantconnectも多分似たような事やってるはず
746デフォルトの名無しさん (ワッチョイ 6fb5-KVJ7)
垢版 |
2021/04/12(月) 19:53:28.72ID:qz6dA5SH0
銀行の基幹システムなどの大規模開発に向いている言語と言えばJavaやC#で
Pythonは大規模開発に向いてないとよく聞きますが、
Pythonは何が足りなくて大規模開発に向いてないんでしょうか?
大規模開発に必要とされる要件って何ですか?

※これは逆にアンチPythonの人達に訊いた方がいいのかも・・・と思いつつここで質問します
2021/04/12(月) 20:01:51.33ID:Q/ZYcgv/d
型とコンパイル、そして実行速度

Pythonはライブラリを借用して少し弄るだけの言語に留めておくのが正解
イメージとしては、つよいシェルスクリプト、関数電卓より強力な電卓
2021/04/12(月) 20:12:19.80ID:iOiHPkVCM
exeにできない
ファイルが多すぎる
言語の違いはあっても操作してるapiは同じ
2021/04/12(月) 20:25:39.05ID:LxS6qsxT0
exe化する方法はあるだろ
2021/04/12(月) 21:06:54.71ID:jAfbX3n/0
webアプリでフロントエンド部分がが作りにくい印象があるな
bootstrap的なので良いのないんだろうか?
2021/04/12(月) 21:27:56.32ID:iOiHPkVCM
>>749
できることもある
dll化もできない
カプセル化できなく管理できない
2021/04/12(月) 21:59:13.33ID:qz6dA5SH0
皆さん、ありがとうございます。

>>747
なるほど、基本的に型宣言が無くてインタプリタだから実行速度が遅いんですよね。
ああ、欠点は実行速度と集約できるかもですね。
ではPythonは豊富なライブラリを弄る程度に留めて、
根幹はJavaかC#かC++で作りますかね。

>>748-749 >>751
exeは出来ますね(作ったことがあります)。
でも、確かにdllは作れそうにないですね。
C++のdllを読むばっかりですものね。

>>750
Djangoのことでしょうか?
自分もDjangoで簡単なWebサイトを作ってみましたが設定が大変でした…。
まだあまり普及してないので情報も少ないですね。

・・・結論として、やっぱりPython一本だけだと心許ないですね。
大規模言語も覚えます。
2021/04/12(月) 22:02:07.71ID:Q/ZYcgv/d
>>752
なんか勘違いしてるな
実行速度は欠点の一つとして挙げただけだぞ
2021/04/12(月) 23:41:35.63ID:hy9D3mum0
>>752
静的型付け言語だと、コンパイル時に型があっていないことについてはエラーを出してプログラムが間違っていると確認できるのが強い。
Pythonみたいな動的言語は変数に何でも入れられるから実行時に初めてわかるエラーとか発生してしまうし、
リファクタリングがやりづらい。
2021/04/12(月) 23:51:11.23ID:qz6dA5SH0
>>753-754
なるほど、静的型付け言語だとプログラムが間違ってるとIDEでいろいろ指摘してくれますよね。
大規模になればなるほど、型の整合性が重要になってきそうですね。
動的言語だと、小さなプログラムならなんとか動くが大きなプログラムになってくると収拾付かなくなりそうですね。
2021/04/12(月) 23:59:54.58ID:z80SpJNy0
Ruby なんて遅くて仕方ないけど、米国年収は最高だよ。
募集人数は、Node.js の半分しかない

AWS のソリューション・アーキテクトは、1,400万円
Ruby on Rails は、1,300万円
Node.js は、900万円

Java なんて速いけど、20年で200万円とかw
GitHub に、銀行のソースコードを公開していた人

Django の募集人数は、Rails の1/10 ぐらいでしょ?

遅いとか欠点なんて、年収・就職に関係ない

https://dev.to/
なんて、Rails だけど世界最速。処理時間0
2021/04/13(火) 00:01:44.35ID:qUgbyQcP0
おっルビおじ
2021/04/13(火) 00:14:08.95ID:YlnYj74B0
3銀行統合プロジェクトは、ピラミッド建設と同じ人月!
1人月百万円 * 数十万月 = 数千億円

でも、Java 土方は、給料20万円しかない。
残りの80万円は多重請負構造によって、数社に分配される

速いもクソも関係ない

だから、YouTube で有名な、雑食系エンジニア・KENTA は、
初心者に、Ruby on Rails 以外を勧めない

低年収だから
2021/04/13(火) 00:32:00.59ID:FveNCngD0
まあガイジは生活保護なんですけどね
760デフォルトの名無しさん (ワッチョイ df01-ksEv)
垢版 |
2021/04/13(火) 01:27:17.80ID:I4gI3mAh0
あわしろ氏もRubyを褒めてた。
761デフォルトの名無しさん (ワッチョイ 62a5-KBiW)
垢版 |
2021/04/13(火) 11:50:38.01ID:1lbWciyF0
ハッシュへの追加が無駄に慎重なのがJava
スクリプト言語は深く考えずけっこうチャランポランにやってる

例外がやたらと多いのがJava
Javaと言えば例外、例外と言えばJava

慎重度合い、病的な気難しさ、高度の心配性、これが向くか向かないかの違い
ツールや言語に引き摺られて人間の精神まで変わるか、最初からそういう傾向のヤツが集まるかは分からないが、
心配で心配でしょうがない不安で慎重すぎる人材が集まると大規模開発が発生する
2021/04/13(火) 12:11:19.61ID:fFGtEPzhM
そう考えると日本人には向きそうだよね
2021/04/13(火) 13:27:51.52ID:aOI1s2+z0
>>746
JavaやC#で銀行の基幹系とかやりたくないな
2021/04/13(火) 15:04:40.40ID:S2ZPcZD90
まあ後は単純にPythonメインでの大型開発案件自体が無いってのもあるな
実際にやるなら型ヒント必須とかにするだろうし、だったら最初からJavaとC#で良くね?になる
(特にデスクトップアプリ作るならそれこそC#で良いし、WebアプリでもSpringが選択肢に入るJavaが出てくる)
2021/04/13(火) 15:51:37.55ID:WoYnxMFx0
大規模案件ほど例外が多くなる傾向があるだろうね
どんなクソ入力されようとエラーで停めるなよ、と
2021/04/13(火) 15:52:01.83ID:WoYnxMFx0
>>763
JavaやC#で銀行の基幹系やりたくないならどの言語使うよ?
2021/04/13(火) 16:28:28.18ID:WoYnxMFx0
Cython的に全部型宣言して使えば、実行速度でも他に引けを取らないし、大規模案件でも使えたりするんかね?
2021/04/13(火) 17:15:04.36ID:Vxk3w1FKa
大規模開発を安く上げたい
そのためには人件費を削りたい
低スペックの人材しか集まらない
底スペックの人材は無茶無茶なコードを書く
Javaはかなりちゃんと書かないと動かない
Pythonはかなりいい加減に書ける

業界の思い込みもいろいろ入っているけど
Javaが採用される理由
2021/04/13(火) 17:36:39.35ID:ch424B+y0
ウィザード級プログラマが良心のある優秀なベテランプログラマを率いるくらいして
どこを見ても常識と性善説が通用するの精鋭チームを隅から隅まで揃えないと
Pythonの大規模開発はすぐ崩壊すると思っていい
現実的じゃない

Pythonが遅いってのはガチでCに比べて5〜10倍遅いとされてるJavaの100倍は遅い
Cythonは使うメリットを感じられない
2021/04/13(火) 17:57:18.07ID:HQ291iiMM
精鋭チームを揃えないとって時点で無理なんだよな
2021/04/13(火) 18:03:12.08ID:CfPnmjiF0
今は全体の規模が大きいからといっても一つの言語で作る必要性は低い
規模は言語に依存しない方法で適切に分割すれば各サブシステムは小規模になる
むしろベンダーが責任持って最後までサポートする言語かどうかのほうが大事
2021/04/13(火) 18:05:59.51ID:Wu9PD3Zea
実行時に型チェックでエラー出ないと複数人の開発はきついよ
Pythonとかの型無し言語の優位性はまずはざっくり動くものを作って成長に合わせて部分的に最適化できるってとこかと
スタートアップには最適だけど大規模前提だときついよね
2021/04/13(火) 18:16:04.91ID:S2ZPcZD90
>>772
結局、型ヒントだったりとかそれに関連するライブラリが増えてる辺り
最終的に型って必要だよね、っていう流れになってきてるしな
他言語だとTypeScriptとかもそういう流れだし
2021/04/13(火) 18:37:04.01ID:WoYnxMFx0
>>773
あアナルほど!
Type(型)Scriptか!
2021/04/13(火) 18:44:49.01ID:arsZDomXD
>>774
*なるほど
動詞のtype(打ち込む)だと思ってたわ
2021/04/13(火) 19:14:29.32ID:Qr7OJO8/0
むしろタイピングとかのほうのタイプのことをわすれてたは
2021/04/13(火) 19:24:13.49ID:ch424B+y0
Python…というか動的型付け言語は大規模開発に向かないというが
実際には複数人開発の時点で既にキツい

精鋭5人で開発したところで必ずメンバーの入れ替わりが発生して
いずれメンテナンスコストの増大に耐えられなくなる
2021/04/13(火) 19:34:43.07ID:/ZU5S8StM
javaやc#をサポートする経済力がpythonとは
桁違いなんじゃないの
pythonと比較するのはnodeだと思うの
2021/04/13(火) 19:51:11.43ID:Wu9PD3Zea
Juliaはその辺組み込んでるけどPythonもいずれ組み込むだろうね
2021/04/14(水) 15:50:39.19ID:qSFMs3PL0
関数の引数が参照渡ししかないのか?
変数のスコープはどうなってるんだこれ?
2021/04/14(水) 16:58:33.16ID:FZAwY2nud
値渡しもあるぞ、判別は空気を読め
変数のスコープは右から左に及ぶし場合によって下から上にも及ぶ
こんなガバガバ言語で中規模以上の開発は無理
2021/04/14(水) 17:20:04.23ID:mzVN7NnP0
pythonは値渡しだけじゃなかったか?
2021/04/14(水) 17:55:48.76ID:5CCb2HIOM
たぶん理解は同じなのに明確に統一された用語がないせいで食い違ってるように思えてるやつ
2021/04/14(水) 17:57:37.37ID:NWDZgyJca
変数がミュータブルかイミュータブルで変わる
引数のリストがタプル推奨なのはこの辺が理由
2021/04/15(木) 15:13:17.28ID:Hr/L3ezh0
初期値空リスト/辞書パターンは探索にすごく便利なのでconsidered harmful化は断固阻止したい
nonlocal/grobalまみれのクソコードを駆逐したい
2021/04/15(木) 15:28:17.11ID:Hr/L3ezh0
というかlocal/global文がbuiltinsに必要ある?
スコープ宣言なんてせずとも、名前空間が全てプレーン辞書のpythonには、lispみたいに環境オブジェクトを保存したり弄ったり、そしてまた戻したりできる能力があるわけで
レキシカルじゃない名前解決が必要なら辞書を持ち回れよ
ビルトインならvars()locals()やglobals()、例え無くてもモジュールでも何でも__dict__晒してるだろ

そのままデフォルト引数にブチ込めば状態保持のカスタムスコープが手に入るだろ
2021/04/15(木) 15:35:32.09ID:Hr/L3ezh0
外のスコープの変数に手を付ける、ってのは既にconsidered halmfulだと思うけど
これって名前空間持ち回り以外に解決策あるだろうか?

デフォルト引数は一度しか初期化されないから特に便利ね
探索終わった後に手動初期化忘れてもう一度走らせると大変なことになるけどな!
2021/04/15(木) 15:44:00.72ID:Hr/L3ezh0
ちょっとマニアックなユースケースに偏ってしまった…
python自体の名前空間を探索アルゴリズムにかけるのは、主にコードウォークやメタプログラミングだな

一般のグラフの探索問題等でも、ミュータブルコンテナデフォルト引数は最も行儀が良いと思う
外部に変数持たなくても関数ブロック一つにカプセル化、今走ってるスタックフレームから参照すれば、常にその視点からの参照という一貫性

我らがbdflも探索入門の記事書いてるけど、確かそうしてたはず
789デフォルトの名無しさん (ワッチョイ bb83-1WRr)
垢版 |
2021/04/15(木) 16:20:21.63ID:cAhjn5hs0
まさに便所の落書きだな
チラ裏
2021/04/15(木) 16:22:31.98ID:Hr/L3ezh0
今のところメーリス等で是非は議題になってはないようだけど、なったらpepの便所に落書きしてくる所存
2021/04/15(木) 16:42:37.58ID:ogE0iY3id
貧者のオブジェクトとしてのクロージャは撲滅すべき
2021/04/15(木) 16:49:32.41ID:Hr/L3ezh0
クロージャ×global/nonlocalコンボは結構見るし、高等テクとして紹介してるサイトすら見かけるな
キャプチャして参照するだけならまだしも…
2021/04/15(木) 16:54:14.56ID:Hr/L3ezh0
python クロージャでクグるとわらわら引っかかるなこれ、完全なアンチパターン
https://gihyo.jp/dev/serial/01/pythonhacks/0001
ミュータブルなlistを更新する必要がありました→そこでnonlocalババーン
なんの為にミュータブルなのか理解してるのだろうか
2021/04/15(木) 16:58:05.44ID:Hr/L3ezh0
なお標準ライブラリにミュータブルな数値も文字列もあるっていうね
2021/04/16(金) 05:20:37.00ID:QCkzJvi10
Jupyter Notebookですか?で、
!python test.py
で、ほかのpythonスクリプトを実行していました

で、今度はそれをローカルの環境で実行したいのですが、
例えば
hoge.py内で
上のtest.pyのスクリプトをキックしたのですがどうすればいいでしょうか?
2021/04/16(金) 06:57:49.34ID:QCkzJvi10
ランピーさん使ってみます
runpy
2021/04/16(金) 07:05:34.82ID:wn75Zjq40
Pythonとは別の方向性でC並に害悪プログラマを生みやすい言語だよね
2021/04/16(金) 07:06:10.91ID:wn75Zjq40
変な日本語になってしまった
正 PythonはCとは別の方向性で〜
2021/04/16(金) 07:43:29.10ID:QCkzJvi10
うわーーん
run_pathだとModuleNotFoundで実行できん
2021/04/16(金) 07:56:45.03ID:QCkzJvi10
sys.path.append()とかしたらいけました
2021/04/18(日) 17:14:24.70ID:CMmk+mnY0
プロジェクトディレクトリ
 |-test
| |-test_foo.py
|-main,py

こういう感じの構成しちゃうと、test_foo,pyから見た時に
main.pyが上位ディレクトリに配置されるから、相対インポートで上位ディレクトリを指定するとエラーになる問題が起きて
仕方なくsys.pathとかでルート追加するんだけど、なんか間違ってる気がする……
802デフォルトの名無しさん (アウアウウー Sa1b-2sL5)
垢版 |
2021/04/18(日) 18:46:36.38ID:PS75IPPya
# 気になる言葉をクリップボードにコピーした後に>>632のpyperclipを使って
# 指定のメモ用テキストファイルに追記
import pyperclip, getpass
clipb = pyperclip.paste() + '\n'
print('コレを指定のファイルに追記:' + clipb)
user = getpass.getuser() # ユーザー名を取得
open("/home/" + user + "/Documents/memo.txt",'a').write(clipb) # 追記モード('a')でopen
# 失敗.
# open("~/Documents/memo.txt",'a').write(clipb)
# open("$HOME/Documents/memo.txt",'a').write(clipb)
803デフォルトの名無しさん (ワッチョイ 9f36-LfmL)
垢版 |
2021/04/18(日) 20:52:50.82ID:dizANDxf0
open().write

この手の書き方って普通なの?
open()なんて結構失敗する可能性が高いじゃん。
どうしても馴染めないw

f = open()
f.write()

もしくは、

with open() as f:
 f.write()

にしたい。
2021/04/18(日) 21:05:13.59ID:qHYw4Dd30
>>803
closeしないのはお行儀的に良くないので普通ではない
open -> write -> closeをone shotでやりたければpathlibのwrite_text
2021/04/18(日) 21:06:26.11ID:FVCnZJxc0
他で例外キャッチとかしてれば良いんじゃない?
2021/04/18(日) 21:14:20.17ID:qyelpH95d
>>805
行儀悪い
2021/04/18(日) 21:33:38.92ID:KvIeL27F0
>>803 のいずれの例も例外処理とセットになるものにも思えるが
2021/04/18(日) 21:40:35.71ID:nlaPamEC0
pythonが~やら$HOMEやらのシェル変数を展開できんだろ
2021/04/18(日) 21:43:19.31ID:q3rCzQ3dM
ネストしていけるのも便利だから
ネストの塊を関数としてみればいいのでは
いいか悪いかはその塊による
2021/04/18(日) 21:45:28.19ID:SZzrtLk80
このopenは我々の知っているopenではないかもしれない
2021/04/18(日) 22:07:26.38ID:T1oP4O/e0
"~"も"$HOME"もpythonからは単なる文字列にしか過ぎない

import os
open(os.getenv("HOME") + "/Documents/memo.txt", "a")
2021/04/18(日) 22:07:40.08ID:Q1kVqm310
https://qiita.com/neko_the_shadow/items/09ff3a423954a2adfe18
2021/04/18(日) 22:39:44.96ID:qHYw4Dd30
pathlibでPath.home()とかexpanduser()とか使えるよ
Path(‘~/path/to/file’).expanduser()
2021/04/19(月) 08:44:09.55ID:wJLYJwE7M
>>805
fileオブジェクトが残ってないからキャッチしてもクローズできないじゃん。
試してないけど再度openしようとしたら失敗するかgcが回収するまで待たされる気がする
2021/04/19(月) 11:04:03.16ID:8re1FBPZ0
またガッベッジコレックションでてきたこれ!
2021/04/19(月) 12:10:21.74ID:wJLYJwE7M
>>815
一緒に回収されたいんか?
2021/04/19(月) 13:09:56.93ID:8re1FBPZ0
くやしいわろたwww
2021/04/19(月) 19:13:44.89ID:nEpTcudsr
Pythonと組み合わせがいいSQLってsqlliteなんですか?
「Python SQL」と検索するとこればかり出てくるんです
2021/04/19(月) 19:37:59.07ID:cAtgxduAM
>>818
そりゃpython sqlとかでググるような初心者ならサーバー立てなくていいsqliteが簡単でいいわな
2021/04/19(月) 21:39:50.48ID:ZVFLPhBo0
Pythonの操作が全部頭に入ってるような
サイコなPythonPGなら
PostgreSQLで
2021/04/20(火) 02:30:09.26ID:t7QTcT+T0
>>818
> Pythonと組み合わせがいいSQL

とは何ぞや。
2021/04/20(火) 08:06:06.71ID:Q0MmVqg3d
フレームワークと相性が良いSQLはともかく、言語と相性が良いとは
2021/04/20(火) 08:15:41.49ID:zZDizZln0
sql99で書いてるうちはドライブ先はなんでも良いんじゃないの?
フリーで手軽って意味でsqliteだったんだと思う。
嫌なら自分で変えるヨロシ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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