Pythonのお勉強 Part74

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 0b4a-lz98)
垢版 |
2024/09/21(土) 10:14:02.15ID:ZHy4g+PL0
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

※前スレ
Pythonのお勉強 Part73
https://mevius.5ch.net/test/read.cgi/tech/1717631290/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2025/03/17(月) 11:30:36.89ID:BQ9IDv+P0
>>913
英語で考えりゃ自然
915デフォルトの名無しさん (ワッチョイ 9180-HYGE)
垢版 |
2025/03/17(月) 11:50:52.82ID:3DJknzns0
>>914
そりゃ英語で考えればそうやがどういう処理しとんねんってなる
916デフォルトの名無しさん (ワッチョイ 932a-yPGp)
垢版 |
2025/03/17(月) 12:21:38.78ID:thUzMRxf0
pythonで分かり難いのは、なんてったって str.encode() と bytes.decode() だわ。
型変換を符号化復号化と称すのもどうかと思うが、バイト列を文字列にするのが何で復号なのか不思議でならない。
2025/03/17(月) 12:45:47.58ID:PxAUP6H20
Pythonがどういう内部表現で文字列を表現してるかは一旦置いておいて
目に見える図形・グリフとしての文字の列をエンコードしてバイト列にするのがstr.encode()
エンコードされた結果のバイト列を文字の列に戻すのがbytes.decode()

わかりにくいのは確かだけど間違ってはいない
2025/03/17(月) 13:35:59.30ID:tHr0fe9q0
rangeとか lenは使わない
オブジェクトがあるんだから、そのものを渡そう
2025/03/17(月) 14:16:08.27ID:P7s0k04b0
>>913
どゆこと?
for i, ng in enumerate(ng_number)
これのことではなくて?
ng_numberの条件で飛ばすなら内包表記使って

for x in [ng for ng in ng_number if ng_number[何か] == 何か]

とかの話?
2025/03/17(月) 14:28:12.40ID:WnkcGI4R0
同じ”in”で使われ方も似てるけど文法的には別の”in”
https://docs.python.org/3/reference/compound_stmts.html#for
https://docs.python.org/3/reference/expressions.html#membership-test-operations
2025/03/17(月) 15:27:05.92ID:fqOs9Smn0
pythonのfor文は他の言語でいうところのforeach文だな
シェルスクリプト(sh系)もそうで、これから入ったのでこちらのほうが馴染む
2025/03/17(月) 18:25:36.28ID:3djl4ZDr0
CからC++とか進んだけど特にforで何とも思ったことないな
2025/03/17(月) 18:35:25.17ID:wBqhLaFH0
生成してもらってるから
forの意味すら知らん
2025/03/17(月) 18:59:30.26ID:aMO6RKr50
FOR X = 0 TO 9 (BASIC)
for x := 0 to 9 (pascal)
for (x = 0; x < 10; x++) (C)
なんかどんどんforの意味からずれていく

for x in range(10)
これが正解
2025/03/17(月) 20:11:45.28ID:+VsjTnZQ0
for i in range(10)で0~9のループってのがアホらしい
0から9と明示している言語が自然
2025/03/17(月) 20:35:11.55ID:tHr0fe9q0
rangeは直前までのrangeオブジェクトを返す、と慣れればそれでいいじゃん
2025/03/17(月) 20:42:27.97ID:aMO6RKr50
range(1, 11) みたいに複雑になると、もうこれは
for (x = 1; x < 11; x++) から数字を抽出したものになってくるけど、
普通は先頭は0なので本質的には要素数を表している
0から始まって当然の頭になれば自然に見える
928デフォルトの名無しさん (ワッチョイ eb2a-Cuhd)
垢版 |
2025/03/17(月) 21:19:59.96ID:gvomcM2e0
>>926
seq コマンドといつもごっちゃになってまう...

>>> tuple(range(2))
(0, 1)
>>>
$ seq 2
1
2
$
2025/03/18(火) 01:35:19.58ID:fgyGQdvg0
個人的には他言語のforeach相当しかないのはかなり好きなポイントだな
930デフォルトの名無しさん (ワッチョイ 538b-7PFh)
垢版 |
2025/03/18(火) 01:59:29.87ID:4sQPnHny0
>>912
Pythonはこの書き方が便利だとか、わかりやすいなどとは思えない構文が多い
2025/03/18(火) 03:15:42.25ID:SyDRbCg30
>>912
pythonのforは他言語の
foreachに近い
書き方だからなあ

で、foreachも
foreach 要素 in 配列名
タイプの書き方の言語と
foreach 配列名 as 要素
タイプの書き方の言語がある
2025/03/18(火) 03:23:10.83ID:NvLfwtos0
perlはけっこう自然言語っぽい構文も追加で備えてるな
2025/03/18(火) 07:41:55.04ID:9Q7xxzXC0
繰り返し処理に for というキーワードを選んだのが間違いなのでは
BASICが最初なのかな
てっきりFORTRANだと思ってたけど、DOなんだよな
DO X = 0, 9
それはそれで変だけど

一定範囲をスキャンするとか、要素を全部舐めるとか、
そういうニュアンスの単語が無かったんだろう
2025/03/18(火) 08:08:58.90ID:dFh3Cu4yM
sweep
2025/03/18(火) 10:39:43.40ID:mIJI9ibF0
#include
936デフォルトの名無しさん (ワッチョイ 53f7-avMV)
垢版 |
2025/03/18(火) 11:03:33.56ID:v2b6/sSk0
BASICなわけねーだろw その辺は全部ALGOLだよ
なかったもクソもforには反復とかいくつずつみたいな意味が元々ある
ていうかそもそもはドイツ語だったかなんかのはず
2025/03/18(火) 17:06:54.31ID:XDcEae/z0
ALGOLは使ったことないなあ
FORTRANで採用を見送られたのに、その後また復活したのか

ステートメントが前置詞というのはやっぱり筋が悪いって
2025/03/18(火) 18:15:32.73ID:IYkL8cYP0
数式の英語での読み方から来てるから英語で数学を習った人にとっては何の違和感もないはず
2025/03/18(火) 22:08:58.63ID:3MP8eql20
ALGOL(含む68)辺りにリアタイで手を出していたら、ミニコン使いやで。
インターフェースがトラ技別冊だった頃を知っているかと。

基準画像「某レナさん」のグラビアを見た事があるんじゃね?
2025/03/18(火) 22:14:52.79ID:GYPHuJM60
島倉千代子を推してた口だな
941デフォルトの名無しさん (アウアウエー Sa23-D2PX)
垢版 |
2025/03/19(水) 09:12:58.29ID:Irgid5LDa
ALGOLはイスラムが語源
FORTRANはFormulaTranslator
2025/03/19(水) 18:59:21.09ID:uxWT9Crg0
alの部分は定冠詞だけどな
943デフォルトの名無しさん (ワッチョイ eb2a-QdO5)
垢版 |
2025/03/20(木) 08:55:27.85ID:8365Cn8s0
def func(param): は
def func(param: str): なのに、
def func(param='value'): が、
def func(param='value': str): でなく、
def func(param: str='value'): なのは、おかしいだろ。責任者のアホ。
2025/03/20(木) 10:13:00.87ID:1M6YtTqp0
>>943
def func(param): が
def func(param: str): だからこそ、
def func(param='value'): は、
def func(param='value': str): でなく、
def func(param: str='value'):

型ヒントは変数の型をチェックするために存在してる
2025/03/20(木) 10:16:14.83ID:uFR0AtSp0
param: str='value'

param: と str='value' に分かれて見えてるんだな
そうではなくて
param: str というかたまりに 'value' を入れている
2025/03/20(木) 10:19:49.89ID:uFR0AtSp0
コロンやらスペースを乗り越えた先に左辺値があることに脳パーサがバグるのは判る
2025/03/20(木) 10:33:23.18ID:Il2FvhCIH
型ヒントって必要?
使わない人が大半だと思うんでプライベートなコード以外には使わないでほしい
仕事で型ヒントが大量にちりばめられてるるコードのメンテナンスなんてやりたくない
2025/03/20(木) 11:00:47.02ID:6xIUkw+E0
逆では
みんなの頭がつながっていないからこそ必要
IDEの支援ももらえるし
2025/03/20(木) 11:09:51.36ID:uFR0AtSp0
型は制約されてないし、だからこそのオブジェクト指向だけど、
実際は入る型なんか決まってるケースが大半なのでヒント止まりになる
正式なコメントの書き方
2025/03/20(木) 11:16:01.10ID:+MvFUuxY0
型ヒントないとやだわ
2025/03/20(木) 13:38:22.10ID:Wa0651PK0
>>947
いらない
そもそも高度な型を書けないから無意味
エディタで補完されるしそれで十分
2025/03/20(木) 13:39:45.20ID:Wa0651PK0
本当に型が欲しいならTypeScriptなりRust使うっての
2025/03/20(木) 14:29:39.20ID:Il2FvhCIH
>>952
だよねえ
必須でもない型機能なんて混乱をもたらすだけだと思うわ
この運営の迷走ぶりがPython凋落のきっかけになるんじゃないかと危惧している
2025/03/20(木) 14:55:26.24ID:gYhPd4eL0
自作コードは好みだろうけど、
公式ドキュメントは記述を対応させて欲しい。

> str.split(sep=None, maxsplit=-1)
https://docs.python.org/ja/3.12/library/stdtypes.html#str.split
なんて表記じゃ、sepに区切文字を入れるのか、複数の区切文字の配列を入れるのか分からない。
実行結果も、リストか返るのか、独自型が返るのか、或いは返さずに REPLY. 変数に結果をセットするのか分からない。
この例は split() なので想像つくのだけど、謎機能は入出力も謎で泣ける。
2025/03/20(木) 17:38:19.11ID:IBTbkPm20
型ヒントはコメントで書く
3.4(XPラスト)用をメンテしなくちゃならないので
2025/03/20(木) 18:15:32.43ID:HvSgxtYp0
pyenv pipx poetryをos丸ごと捨ててuvに切り替えた
poertyって依存のバージョン解釈がバグってることあったけど、uvはちゃんとしてるな
アストラルがanacondaみたいにいきなり発狂しなきゃいいけど
2025/03/20(木) 18:21:06.92ID:uFR0AtSp0
いつかいいのができるまで、バージョン管理なしでやってる
958デフォルトの名無しさん (アウアウエー Sa23-D2PX)
垢版 |
2025/03/22(土) 14:27:58.31ID:U6/Lg1xxa
Rust の crates と Cargo は良さげだけど微妙
Python で真似するの流行り過ぎて心配
2025/03/22(土) 19:43:37.05ID:6JcU+3AE0
>>956
マジか
もうanacondaから卒業すべきだな
2025/03/22(土) 21:27:24.19ID:dq8l+zNL0
pythonのバージョン管理よりも、コードの構成管理したい
いろんなとこにコード書き散らすから、svnでもgitでも管理できない
2025/03/22(土) 22:06:39.66ID:+ZRnNyRr0
バージョン管理ツールで作成した環境の一覧がわかればいいの?
ならpyenv-virtualenvとか
zoxideやautojumpもいいかも
2025/03/22(土) 22:19:14.19ID:nPu00byz0
uvとruffにした
ネットの情報古いのばかりでここにたどり着くのがすごい大変だった
素がpythonじゃないのでいきなりインストールして環境作れるのも楽
そのうち有料になっても金払っていいレベル
2025/03/22(土) 22:20:25.56ID:Y+iWZXI70
uvはlockまでちゃんとクロスプラットフォームなのがでかい
どこまで信用できるかは分からないけど、今のところ問題はないので
新しく書いたやつを中心に徐々に移行してる
2025/03/23(日) 22:26:19.29ID:8QvyzI2Q0
>>736
馬場状態とか、、、数あるファクターのただの一つに過ぎないよ。
本気でやるならjvlinkで仕様書見てどんなデータがあるか眺めてみるといい。
どうせ挫折するだろうからあまり深く言わないけど、未来を予想するのと、ギャンブルで勝つのは二つ分析目標があると考えた方が良い。
勝率と回収率が逆相関になることがわかったらそこが沼の入り口だよ。
あすすめは、まず人気と回収率のデータを取ってみて、競馬は1番人気を買うと絶対に回収率がマイナスになり、最低人気を買っても同じ。これは何故かを考えることをお勧めするよ。
2025/03/24(月) 08:15:13.03ID:Kzm/5Ai30
ギャンブルにAIを使おうとするなんてばかにすることよな
働けよ
2025/03/25(火) 15:35:13.74ID:ICE7mE9e0
自分は静的型検査はどっちかといえばある方がいいかな派(でも自分ではあんまりやっていない)なんだけど、typingモジュールの内容は盛り沢山すぎて、なかなか腰を据えて勉強する気になれないな。たぶん、型に一家言ある世界中の人が議論して仕様を作っているんだろうとは思うけど。
もう数年して仕様が落ち着いてきたら、たぶん解説本が出ると思うので、それを読んで勉強しよう。ロバストPytnonは結構面白かったので、その延長上で型アノテーションの説明に焦点を絞ったようなやつが出れば面白いと思う。
2025/03/25(火) 21:47:04.49ID:CXmZfdeW0
ハイパーモダンPython改訂版出してくれ
2025/03/26(水) 04:22:01.80ID:9+5RYHjhH
>>967
お前が作るんだよ
オープンソースだから改変し放題
969デフォルトの名無しさん (ワッチョイ 822a-jhJX)
垢版 |
2025/03/26(水) 10:28:10.74ID:klkMmD4b0
>>967
本の Example Code らしいが、Commits on Jun 17, 2024 なので、2024年発刊したその本は最新版ちゃうか。
https://github.com/hypermodern-python/hmpt-code?tab=readme-ov-file#hypermodern-python-tooling---example-code
2025/03/26(水) 11:14:52.23ID:kQr2CXead
>>969
そうだよ
だから新バージョン出してと
今のPythonの状況だと
毎年書いてくらいに思ってる
良い本だった
2025/03/26(水) 11:21:03.47ID:5p9B9np30
>>968
本のことだぞw
2025/03/26(水) 11:26:56.84ID:0cU+Eukb0
ハイパーモダンPythonってツール本でしょ。ツールって、やっぱりみんな使うものなの? 個人的にはツールのバージョンアップを追いかけたりするのがしんどそうなので、あまり使わない派なんだけど。
973デフォルトの名無しさん (ワッチョイ 2e2a-aKLX)
垢版 |
2025/03/26(水) 11:48:23.78ID:bFpgRqWb0
>>970
改訂稿は存在しないが、無い物ねだりしてみたというコトか。
原書より翻訳が古いて言ったのかとオモタ。
2025/03/26(水) 14:17:55.91ID:E7MgqOg/d
>>972
向こう数年はもうuvとruffで最終形と思っていいと思う
2025/03/26(水) 14:45:58.77ID:0cU+Eukb0
そうなんだ。皆が使っているド定番というところまで行来てるなら、ちょっと勉強してみるかという気になるかも。
2025/03/27(木) 05:19:00.87ID:7jSR2TC60
大昔に公式pythonをインストールした時は
とにかくlibrary合わせが大変だよ!
pipだとライブラリ名だけでなくバージョンも全部書かないと後で整合性無くなって環境壊れるよ
と脅された

それで長らくanaconda使ってたけど
登録必須だったりして面倒な要素がどんどん増えていた
稀に環境壊れるし

それが公式Python + UV使ったらライブラリ名だけでバージョンの依存関係も合わせてくれる
動作も早い

venvなどは今まで使ったことが無かったが、uvはちょっとコマンド覚えるのが厄介程度で
それも検索したらすぐ出てくる程度
ryeも使ったことがないがuvの方が手間も掛からん
numpy,scikit-learn,pandas,openpyxl,matplotlibなどなど問題なく入った

anacondaに飲み込まれてた日々から解放か
とにかくやっと軽いidleをPC上でさっと使えるようになったのが一番嬉しいw

GTOコピペをドブに浸けたような文ですまん
2025/03/27(木) 13:38:34.44ID:2ADBZW+f0
uvというすでに存在してるライブラリの名前を使うセンスよ
2025/03/27(木) 17:33:23.30ID:7P69hYA/0
ググってもプロジェクトマネージャのuvしか出てこないし問題ないでしょ
2025/03/27(木) 23:23:05.56ID:VXWTe0Gq0
紫外線?が何か?
2025/03/27(木) 23:51:20.99ID:k+F7YT9B0
libuv
Web系じゃないとピンとこんかも
2025/03/27(木) 23:59:47.36ID:kS/FHi0p0
完全に同じだったらpipが困るし
2025/03/28(金) 06:17:22.73ID:IPcuak0N0
何でもいいけどrubyのbundlerみたいにデファクトスタンダードになってほしい(´・ω・`)
2025/04/01(火) 22:29:18.22ID:9c1k08Vz0
使ってみたけど、flaskは楽やな
forルーブがそのままhtmlに書けて辞書を渡せる
{{ % for entry in entries % }}
{
name: '{{ entry.name }}',
age: {{ entry.age }},
2025/04/02(水) 05:42:15.84ID:DgG0AwHf0
公式ドキュメントも読まず
またどこから仕入れてきたんだその書き方
985デフォルトの名無しさん (アウアウウー Sa23-P5w+)
垢版 |
2025/04/02(水) 11:34:04.41ID:k9Y5euIya
mustang
2025/04/02(水) 12:10:50.08ID:k9Y5euIya
>>911
鳥との会話はやってるみたいだよ
987デフォルトの名無しさん (ワッチョイ dfd7-/+DP)
垢版 |
2025/04/02(水) 22:26:38.63ID:WwewqrQk0
コード書くのはMSX-Basic以来w
今は目的別に便利なライブラリをつないで
作るスタイルってのに驚きました。
便利なツールもあって進化を感じます。
なんかすごい事になっててw驚きs
988デフォルトの名無しさん (ワッチョイ 7f0c-/YAI)
垢版 |
2025/04/02(水) 23:29:11.29ID:vIYRPSqy0
Excel VBAすらスルーしていた興味のなさは半端じゃねえなw
2025/04/03(木) 05:44:20.01ID:EdKQlRYK0
厳密には違いますが、53のおじさんがワクワクする環境ってのは久々でした。必要に迫られて13年ぶりにPCと向き合ったので。
2025/04/03(木) 06:53:05.71ID:X+wL63br0
BOMが付いてても大抵は何も起きないけど、
csvモジュールで読むとばっちりバグる
なんで直さないんだ
2025/04/03(木) 11:00:23.64ID:MyC4XyHf0
utf_8_sig 指定せずに問題起きてないのはたまたま
処理側のモジュールで個別対応するなんて愚の骨頂
992デフォルトの名無しさん (ワッチョイ 5f2a-puL6)
垢版 |
2025/04/03(木) 11:26:57.33ID:6V8WkUdO0
>>991
賢の骨頂は何ぞ?
自作モジュールはBOM非対応のまま、CSVファイルからBOMを除去?
2025/04/03(木) 14:16:06.10ID:MyC4XyHf0
入力でutf_8_sigを指定する
994デフォルトの名無しさん (アウアウウー Sa23-P5w+)
垢版 |
2025/04/03(木) 21:21:38.60ID:fy3xRWQwa
ワクワクさせてよ
チンチン
995デフォルトの名無しさん (アウアウウー Sa23-P5w+)
垢版 |
2025/04/03(木) 21:23:19.22ID:fy3xRWQwa
>>992
BOM飛ばすpipe使うだけ
pythonで描いても数秒だろ
996992 (ワッチョイ 5f2a-dIv7)
垢版 |
2025/04/03(木) 21:55:23.24ID:touOSSe00
>>995
その pipe とは何を指したの。UNIXやDOSコマンドラインの "|" しかパっと思い浮かばない。

今のところ、>>993 が最良じゃないかと思う (オレは質問者でないので、僭越ながら) 。
997デフォルトの名無しさん (ワッチョイ 7f0c-/YAI)
垢版 |
2025/04/03(木) 23:27:03.36ID:yWhIQ9ik0
>>996
DOSじゃねえだろ
2025/04/03(木) 23:29:32.03ID:I/PZjZDo0
普通、RTX-11だよねぇw
2025/04/03(木) 23:36:05.82ID:F1+U/OXw0
pipe down
2025/04/04(金) 01:51:38.18ID:UMpXJcmx0
次スレ

Pythonのお勉強 Part75
https://mevius.5ch.net/test/read.cgi/tech/1743698824/l50

建てましたが、次回から、985が次スレを建ててくだしあ。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 194日 15時間 37分 37秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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