Pythonのお勉強 Part73

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ f610-G7il)
垢版 |
2024/06/06(木) 08:48:10.07ID:DsazphEm0
!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のお勉強 Part72
https://mevius.5ch.net/test/read.cgi/tech/1703659345/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2024/07/27(土) 03:00:27.09ID:LWZ3F2id0
range(0)についてかんがえてみて
2024/07/27(土) 06:38:23.86ID:utWAOMso0
for (i = 0; i < 7; i++)
から0と7を抜き出しただけなんだよな
初期値と終了条件を与える
初期値が0の場合は省略可能で、終了条件は個数と同じになる
2024/07/27(土) 17:57:23.49ID:ri81ZY/A0
0も数字だからです
2024/07/27(土) 22:46:05.92ID:fo+WsYuB0
>>281
いや単にそう決めただけならいいんだが
すげーバカが設計したなあって思うよ
2024/07/27(土) 23:14:25.46ID:LWZ3F2id0
具体的には?
0 <= n < N なのは合理的だし問題ないけど
それが range(N) なのはドキュメンテーション悪いってならわかる
2024/07/28(日) 00:22:53.60ID:DlUEjl6T0
>>281
直前まで返すって覚えれば、
そう言うもんかー、てなる
2024/07/28(日) 08:19:00.94ID:YeQTV+6P0
0も数字だからです
2024/07/28(日) 16:04:26.52ID:8+9X2FyV0
>>286
根拠ゼロw
perl のリストリテラルでいいだろwガイジw
map(0..6)
2024/07/28(日) 16:17:45.56ID:PfNOVc/80
そう書きたくなるのは理解できるけど筋が悪いんだよな
(0 .. $num-1)
という書き方は気持ち悪いだろ
2024/07/28(日) 16:33:24.45ID:qukqof110
pythonが嫌なら使わなきゃいいのに
馬鹿にしながら依存してるとか
そっちの方がよっぽど重症だわ
2024/07/28(日) 16:42:25.73ID:FpEcEwXL0
ほんとそれな
他の言語で違う書き方のものはいくらでもある
2024/07/28(日) 16:46:36.09ID:D6cM4xic0
デフォルトがそうなってるのは0オリジンで配列アクセスのために使うからって理由がわからないなら
単にセンスがない
2024/07/28(日) 16:51:30.23ID:3fX6aheH0
>>290
それはどっちもどっちでしょ
range(start, end+1)と書く必要がある場合もあるわけなんだから

range(start, stop[, step])にrange(stop)も持たせたのは
別の関数を用意すると名前空間を汚染するからだと思うよ
ビルトイン関数を多用するPythonの弱点ではあるけどね

いいAPI設計ではないけど半日もすれば慣れるし
in演算子のように明らかなデメリットがあるわけでもないから気にならない
2024/07/28(日) 16:57:26.50ID:3fX6aheH0
>>293
配列アクセスはrangeじゃなくてsliceを使って下さいね
センスがあるなら
2024/07/28(日) 17:04:41.44ID:PfNOVc/80
range(start, end+1)
と書いた時点で筋が悪い
最後の要素のindexなんかをわざわざ持つような書き方はバグの元
2024/07/28(日) 17:13:34.21ID:FpEcEwXL0
>>295
スライスも範囲は同じだろ
何言ってんだ?
2024/07/28(日) 17:15:44.24ID:D6cM4xic0
0オリジンが嫌ならFortranでも使ってなさい
2024/07/28(日) 17:19:22.01ID:FpEcEwXL0
Rubyでいいんじゃない?
..や...演算子があるよ
2024/07/28(日) 17:38:40.75ID:PfNOVc/80
startとendを両方使う、というのがそもそもアウト
0から始めるのと、endを使わないのはセット
end=numにしたいなら、1から始めるべき
2024/07/28(日) 17:52:59.56ID:YeQTV+6P0
いつまで無駄な事に拘ってるのか
結論は「仕様です」で終わる話やろ
2024/07/28(日) 17:56:18.45ID:FpEcEwXL0
SwiftにはA..<BとA...Bがあるぞ
これが個人的には1番わかりやすい
2024/07/28(日) 18:02:26.09ID:PfNOVc/80
Swiftみたいに両方用意するのも手だな
その上で..<しか使わないのが読みやすくバグらない
range(5, 10)とだけ書かれても慣れてる人しか意味が判らない
2024/07/28(日) 18:26:18.00ID:3fX6aheH0
>>296
ユースケース次第だよ
Pythonの標準ライブラリでもrange(start, end+1)やrange(end+1)のパターンはたくさん使われてるよ
2024/07/28(日) 18:29:47.19ID:PfNOVc/80
内部で閉じてるのにそんな書き方してたら下手なだけ

内部的には0から始まるけど、人間が扱うIDが1から始まってる
みたいなことは普通にあるので、それに合わせる為なら仕方ない
2024/07/28(日) 18:41:53.09ID:3fX6aheH0
>>305
>内部的には0から始まるけど、人間が扱うIDが1から始まってる
>みたいなことは普通にあるので、それに合わせる為なら仕方ない
それはrangeでend + 1するのとは違う話
2024/07/28(日) 19:16:49.11ID:PfNOVc/80
違う話だと思ってる人が多いから未だにrangeが2種類要るんだよな
配列のindexやidは0から始めた方が合理的、という考えは割と広まってるのに

num = 5
0 1 2 3 4 : 0からnum-1まで
1 2 3 4 5 : 1からnumまで
0から始めるかどうかと終了条件をどうするかは表裏一体
2024/07/28(日) 19:20:49.38ID:PfNOVc/80
関係ないけど、妊娠の日数の数え方は0週0日から開始するんだよな
そして1ヶ月は4週
そこだけフランス革命しとる
合理的すぎて大抵の妊婦は混乱してると思う
2024/07/28(日) 19:39:26.26ID:2kXxryni0
思考がコンピュータ寄りで素で0から6のindex列挙と発想するから
7回の操作と表現したい気持ちが理解できないんだろうか
2024/07/28(日) 20:02:46.28ID:PfNOVc/80
numだけでいいなら
for _ in range(num):
2024/07/28(日) 23:11:21.49ID:3fX6aheH0
0始まりか1始まりかに関係なく
妥当な範囲内にある上限値(end)を指定できることが
対象ドメインにおいて重要かどうか より自然かどうか

例えばipaddressモジュールにはrange(network, broadcast + 1)とあるけど
これはbroadcast addressを使ってrangeを定義できることに意味があるから
範囲外にある次のアドレス192.0.2.4を指定するのは不自然だから

192.0.2.0/30をイテレートすれば上のrangeが使われて
192.0.2.0(network)から192.0.2.3(broadcast)までが列挙される
ここでは0始まりか1始まりかは関係ない
2024/07/28(日) 23:20:07.46ID:3fX6aheH0
もっと簡単な例で言えば
’n’..’z’のようにアルファベットの任意の範囲を表現したい場合に
‘z’という妥当な範囲内にある上限値を直接指定できないと困るよね?
こういう場合にrange(start, end + 1)やslice(start, end+1)のパターンが出てくる
2024/07/28(日) 23:29:56.40ID:PfNOVc/80
それは恐らく、rangeを使うべきでない部分にrangeを使っちゃったのが原因
314デフォルトの名無しさん (ワッチョイ d62a-+h6N)
垢版 |
2024/07/29(月) 06:36:23.28ID:ev2lCRhV0
>>313
rangeという「言葉」を使うべきでない機能にrangeと命名しちゃったのが原因、だろ。
2024/07/29(月) 17:15:11.39ID:ekJQWRMJ0
0range
316デフォルトの名無しさん (ワッチョイ ce90-yNUa)
垢版 |
2024/07/29(月) 18:56:15.68ID:IM7EvJYP0
ミジンコのお前らが言ったところで言語仕様が変わるとでも思っているのか?
2024/07/30(火) 21:40:53.03ID:fyIsDC5M0
>>290
-1が出てくるお前の頭がバカなだけだろw
2024/07/30(火) 21:42:25.97ID:fyIsDC5M0
>>309
いやそことは関係ない
やっぱニワカやな
2024/07/30(火) 22:52:41.09ID:1KdlwQ+P0
>>314
rangeという言葉に代わる適切な名前があればよかったんだろうけどね。
かといってrangeという名前に動作を合わせるのはアホだし。
2024/07/30(火) 22:56:01.49ID:BmVgT2kF0
適当にdictionary作ればよくね
2024/07/30(火) 22:57:25.73ID:5JKGZuks0
少なくとも、数列に対しては+1とかの小細工は不要
数列でない例を出してきたら無理かもしれないけど、
そもそも加算不可能ならリストとか集合で扱うべき

加算可能でかつ数列でない例となるとかなりレアで反論として苦しすぎる
2024/07/30(火) 23:25:03.88ID:fyIsDC5M0
range型っていう概念がすでに邪魔だなあって
昔のメインフレームみたいに無駄なアクセスメソッドが増える
2024/07/30(火) 23:31:08.40ID:5JKGZuks0
イテレータが要求されるところに使えるシリーズの一つに過ぎない
rangeだけ嫌わんでも
listとして使いたい時にlist変換すればいい
324デフォルトの名無しさん (ワッチョイ 1a98-6Pme)
垢版 |
2024/07/30(火) 23:35:13.83ID:IMwqHlbY0
Pythonはコレクションの名前がわかりにくい
325デフォルトの名無しさん (ワッチョイ a5d8-8z5E)
垢版 |
2024/07/31(水) 00:15:40.33ID:Crs54f8j0
名前だと個人的にはABCに突っ込みたい
Abstract Base Class の頭文字だと言われればそうだけど、普通に読んだらアルファベットの先頭3文字にしか見えないし、どのような機能を提供するモジュールかが分かりづらい
326デフォルトの名無しさん (ワッチョイ 1a98-6Pme)
垢版 |
2024/07/31(水) 01:55:45.66ID:Qef+C1SH0
>>325
まあ、ふざけてそういう名前にしているんだよなあ。
2024/07/31(水) 07:48:14.96ID:fliUAr5E0
BeautifulSoupも意味判らん
2024/07/31(水) 08:10:58.35ID:8vm8X3ZV0
>>327
タグスープっていう用語が元ネタ
2024/07/31(水) 11:56:33.80ID:6VA4UCN/0
beautifulな
すーぅぷをぉ
あーげるーうー
2024/07/31(水) 12:28:50.45ID:ZAfvnnO40
>>326
モンティパイソン自体センスがないと言うしかないな
2024/07/31(水) 16:05:19.43ID:ZF1eb4h10
ふしぎの国のアリスじゃないの

https://www.jpnnavi.com/ja/study/book1_10.html
2024/07/31(水) 17:14:24.64ID:fliUAr5E0
なるほど
間違ったhtmlに対する揶揄なのか
その割に、間違っててもちゃんと読める訳でもない
今どきのはみんな自動生成だから、複雑なだけで間違ってはいない
2024/08/01(木) 09:11:21.61ID:K90xi8hX0
>>331
そもそも言語の名前からしてと言う意味だが
2024/08/01(木) 19:26:34.93ID:qf1CYWvK0
ウミガメのスープの話が元々ある
本物のウミガメのスープを一口食べて自殺する奴
本物じゃない方は、偽ウミガメのスープ
偽[ウミガメのスープ] という言葉を、[偽ウミガメ]のスープ と読み替えて、
偽ウミガメというキャラを登場させるのが面白い部分
2024/08/02(金) 20:38:42.76ID:19u61RTe0
おっすオラプログラミング初心者でPython勉強中!!
エディタはVScodeを使ってるんだけど、Pythonやるならこの拡張いれておけ!ってやつある?
とりまこれだけ入れてる。

・Japanese Language Pack for Visual Studio Code
・Python
・Pylance
・auto Docstring Python
・black formatter
・Flake8
・Error Lens
・IntelliCode
・indent-rainbow
336デフォルトの名無しさん (ワッチョイ 8d94-kReu)
垢版 |
2024/08/02(金) 20:48:05.46ID:KHQ7snP00
パイソンでポイントサイトの毎日ログインやらしたいんだけどどうしたらいい?
2024/08/02(金) 20:49:12.22ID:UamBNfSi0
不正のやり方は人に聞くものじゃない
2024/08/02(金) 22:17:32.40ID:LkwmfO+a0
>>335
また環境構築やってる
2024/08/02(金) 22:25:18.87ID:Wy4Cl7NP0
>>336
s*ei*nir
2024/08/02(金) 23:24:25.91ID:H4ME9sKD0
range(1,7)の動きとかな
データの個数だ!0から数えるのが当たり前だ!
とかいう言い訳は通用しないw
2024/08/02(金) 23:28:26.64ID:qIJJIjRw0
1と7を両方書いちゃうと負け
range(1, 1+num)
が正解
2024/08/02(金) 23:30:13.24ID:qIJJIjRw0
7月分のデータを集計しようとして、
7/1から7/31までを指定したら負け
7/1から8/1の前まで、が正解
2024/08/02(金) 23:33:35.55ID:H4ME9sKD0
油断すると負けてしまう
2024/08/02(金) 23:38:37.16ID:qIJJIjRw0
メモリマップとかで、
0000
なんとか領域
0fff
1000
みたいに書いてあるのは存在自体が負け
先頭と末尾を両方書いてたらまず負けてる
2024/08/03(土) 07:07:54.34ID:q/25yG1G0
締め切りは8/3の23時59分です
とかも、0秒? 59秒? msecは? と無限にツッコミどころが湧いてくる

最初の条件成立から、条件成立しなくなるまで
という「半開区間」が正義
2024/08/03(土) 16:36:13.18ID:8ODDC/y50
初心者の学習としてJupyter Notebookって必要??
覚えてた方がええんか?
2024/08/03(土) 18:57:48.50ID:QkdwgqIr0
必要かと聞かれたらいいえ
ただ素の状態だとコンソール出力かファイル加工がやっとだから
簡単にグラフや画像出力、デバッグもできるJupyterのがストレス少ない
2024/08/03(土) 19:56:20.21ID:UOf7wP980
ええ
2024/08/03(土) 20:25:15.56ID:sC3b/dtf0
jupterって勉強するもん?
2024/08/03(土) 20:39:36.46ID:q/25yG1G0
jupyterだとpandasの出力がテキストでなくて表になるのは、
pandasがよく出来てるのかjupyterが賢いのかどっち?
2024/08/03(土) 21:24:11.44ID:8ODDC/y50
>>347
なるほど?
グラフの出力とかはジュピターの方が楽なのね
2024/08/04(日) 17:38:20.78ID:65IaeFum0
グラフの出力自体は素のPythonでも変わらん
しかしグラフというのは一度出したら終わりではなく、一般には望ましい結果が得られるまでデータを加工したり設定を変えたりして試行錯誤するものだ
Jupyterを使うことで、そういった試行錯誤を効率的に行うことができる
逆に言うと、既に試行錯誤の段階が完了していて、データだけを変えて繰り返しグラフ出力を実行するような場合は、Jupyterを使うより素のPythonを使ったほうが効率的かもしれない
まあ現実には最初Jupyterで作ったらそのままJupyterで画像ファイルに出力させることが多いけどね
2024/08/04(日) 17:39:08.92ID:1hDKZBW40
ごちゃごちゃ言ってないでさっさと書けやw
2024/08/04(日) 17:46:12.24ID:b8kSAT/10
>>352
とりあえずVScodeにJupyterの拡張入れてみたわ

便利やな
一つのファイル内で別のプログラムを試すときに視覚的にわかりやすいから、参考書みて試しながらやるならこっちのほうがええな
2024/08/04(日) 17:46:19.65ID:GeMr6Szw0
jupyterの出力は簡易的なものだろ
ちゃんとしたグラフはMatplotlibで作る
あるいは最初からRを使う
356デフォルトの名無しさん (ワッチョイ eb8e-AHtZ)
垢版 |
2024/08/04(日) 18:39:45.11ID:MUsI65Xv0
>>355
馬鹿はコメントするなよ
2024/08/04(日) 18:58:23.72ID:riZP8C210
初心者止まりでいいなら寧ろjupyterでやった方がいいくらい、嫌味でなく
2024/08/04(日) 19:07:06.24ID:GeMr6Szw0
簡単にグラフ作るならexcelがいい
たまにexcelのグラフで本出してる人もいるくらい
359デフォルトの名無しさん (ワッチョイ eb8e-AHtZ)
垢版 |
2024/08/04(日) 19:54:21.84ID:MUsI65Xv0
>>358
だから、馬鹿はコメントするなよ
2024/08/04(日) 20:16:40.90ID:b8kSAT/10
ワイはいずれはスクレイピングとかして機械学習とか使って株価予想ソフトを作りたい
まずはJupyterで変数とか基礎文法を学ぶで!
2024/08/04(日) 20:33:50.44ID:TJUdSfKf0
ミュータブルはなんのメリットがあるんだろ
デフォルトがdeepcopyで
やりたいときだけリファレンスデリファレンスすればいいとか思うんだが
2024/08/04(日) 20:46:27.29ID:B5K23Knn0
py.トーチは結構簡単
2024/08/04(日) 20:48:42.72ID:65IaeFum0
Jupyter以外だとStreamlitも凄いよね
QtとかでシコシコGUI作ってる中級者を尻目に美麗でインタラクティブなクールなアプリをクソ簡単に作ることができる
2024/08/04(日) 21:30:49.60ID:b8kSAT/10
Pythonって変数の型を定義しないでいいの楽ちんだな
365デフォルトの名無しさん (ワッチョイ 0132-xNjE)
垢版 |
2024/08/05(月) 14:04:53.48ID:BduEjBaz0
>>355
マジレスするとmatplotlibなどの結果をjupyterだとすぐにブラウザでインラインで確認できるってことな
画像を保存するのと本質的に何の違いもないよ
Rとかなんのこっちゃ。グラフを描くだけのためにRを使うことはない。元々Rにしかないパッケージが必要でRで処理しているならともかく、的外れすぎる
>>358
Excelのグラフが簡単なのはかなり限られたユースケースだと思うけどな。
ヒストグラムもめんどくさいし、複数のグラフを同じ体裁でとかも簡単じゃないし。
あくまでテンプレートにある形で全自動でデータ領域選んだら出てくればいいときだけぐらいじゃね?
そして手間は全自動matplotlibも大差ないし
366デフォルトの名無しさん (ワッチョイ 5360-CchU)
垢版 |
2024/08/05(月) 14:59:08.85ID:UvaKmykX0
そもそも仕事ではブラフを作ることはそんなにない
367デフォルトの名無しさん (ワッチョイ 5165-xNjE)
垢版 |
2024/08/05(月) 15:50:58.57ID:G00WydoT0
>>366
そんなんめっちゃ仕事によるから
webアプリとかwebシステムとかにしか使われない言語ってわけでもないし
確かに専業プログラマ時代はグラフなんかほとんど作らなかったけど
2024/08/05(月) 16:44:17.26ID:dN8R1ALp0
グラフじゃなくてブラフの話だぞ
2024/08/05(月) 16:52:27.14ID:DFvgfJhZ0
ブラフw
370デフォルトの名無しさん (ワッチョイ b3ee-eg/E)
垢版 |
2024/08/05(月) 19:31:45.20ID:8ZGl3ILU0
なあ、初心者質問で申し訳ないがPythonって処理速度遅いらしいやん?
そんなに他と体感的に感じるもんなん?
371デフォルトの名無しさん (ワイーワ2 FFa3-2913)
垢版 |
2024/08/05(月) 19:42:50.14ID:EUzl0HTCF
>>370
速いとか遅いとか言っている人間とは縁を切れ
372デフォルトの名無しさん (ワイーワ2 FFa3-2913)
垢版 |
2024/08/05(月) 19:43:32.98ID:EUzl0HTCF
>>370
実際に時間がかかるものを作って比較するしかない
373デフォルトの名無しさん (ワッチョイ 992a-DL1l)
垢版 |
2024/08/05(月) 19:53:32.99ID:myHOasGP0
>>370
> 他

が何かによるんじゃないか。
2024/08/05(月) 19:58:12.02ID:DFvgfJhZ0
>>370
確実に言えるのは初心者が気にすることではない
375デフォルトの名無しさん (ワッチョイ b3ee-eg/E)
垢版 |
2024/08/05(月) 20:21:32.67ID:8ZGl3ILU0
>>371-374
なんだ、そんなに体感するほどでないんだ
ネトゲのフレンドにPython勉強してるっていったら「あーPythonは簡単だけど処理速度が遅いからね」って言ってたから不安になった
2024/08/05(月) 20:31:36.33ID:Yc9kthAg0
0.01秒で終わっても1秒で終わっても人間からすれば同じだしな
他でなら1時間で済むものが100時間かかるなら考える
2024/08/05(月) 20:41:24.61ID:GxQBFufM0
単純にやると100倍遅くていろいろ工夫しても数倍遅いことはある
378デフォルトの名無しさん (ワッチョイ b3ee-eg/E)
垢版 |
2024/08/05(月) 20:53:20.49ID:8ZGl3ILU0
>>376
それ結構ちがくね????
2024/08/05(月) 21:03:47.56ID:MKJ09w0E0
>>375
処理速度を気にするような処理はPythonには不向きってことではある
2024/08/05(月) 21:13:21.36ID:ESlcV2eK0
pipでパッケージいろいろ使えるし
手軽でいいぞpythonは
381デフォルトの名無しさん (ワッチョイ 5317-2913)
垢版 |
2024/08/05(月) 21:13:41.24ID:UvaKmykX0
>>375
そんなド素人の話なんか無視してくれ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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