23/12/04 14:16:02.37 dR/JDXQy0.net
下実行してもわからんかったら理解が足りない
a = int
print(type(a))
a = input ("整数を入力してください")
print(type(a))
856:デフォルトの名無しさん
23/12/04 14:31:25.94 UR+VnO+A0.net
a = 1
a = "2"
としたら
代入時か比較時にキャストが走って a == 2 になる言語がどこかにあるってことか
857:デフォルトの名無しさん
23/12/04 14:33:03.89 L1Td53yR0.net
= の左側は必ず新しいオブジェクトになる
というのはそうでない言語知ってると飛躍があるな
入れ物を用意して、中身を入れ替えていく変数観とは全然違う
858:デフォルトの名無しさん
23/12/04 14:47:47.19 apNvJw2Gd.net
>>837
マニュアル、チュートリアル、解説書にはそれぞれ役割がある
それが理解できないのかな
859:845
23/12/04 14:58:26.57 cL5NOEP90.net
理解が足りてないようです…
(別に皮肉じゃないです)
もう少し勉強してから出直してきます。
860:デフォルトの名無しさん
23/12/04 15:10:15.88 X18HmWgG0.net
a = 1
の時点でaはint型かもしれないけどその後でinput文では数字入れてもstr型、つまり文字としての"1"が代入される
やりたいならinput文のあとでa=int(a)でint型に型変換するか、条件文で数字の1ではなく文字の"1"と比較すればいい
int型に型変換する場合はinput文で"A"とか数字に変換できない文字が入力されるとエラーになるのでそれを回避する条件文とか書くことになって面倒だけど・・・
pythonには型宣言は基本的に無いから後に代入された型で染められる
他の人も言ってるけど一行ごとにprint(type(a))とかで何の型になっているかチェックしてみたら?
861:デフォルトの名無しさん
23/12/04 15:14:10.25 03ItZlbx0.net
>>846
動的型付けというのは変数に入ってる”値”によって変数の型が実行時に(動的に)決まること
変数の型がコンパイル時に(静的に)一つに決められるの静的型付けとは根本的に違う
862:デフォルトの名無しさん
23/12/04 15:16:05.57 MHjmHZBI0.net
>>848
/bin/sh は a = "2" が a == 2 になるね。
文意は皮肉かもしれないが、一応マジレス。
$ a='2'
$ test ${a} -eq 2; echo $? # 数値比較→真
0
$ test ${a} = '2'; echo $? # 文字比較→真
0
$ test ${a} -eq 1; echo $? # 数値比較(異値)→偽
1
$ test ${a} = '1'; echo $? # 文字比較(異値)→偽
1
$
863:デフォルトの名無しさん
23/12/04 15:25:20.99 L1Td53yR0.net
a = '1'
if a == 1:
は何のエラーにもならずfalseだけど、それが嬉しい局面って何かあるんだろうか
普通にエラーになってくれた方が助かるのに
864:845
23/12/04 15:35:02.50 cL5NOEP90.net
ifのあと"1"
にすれば>>839のコードでも成功に行くのはわかっているのですが
整数の1をif文で判定したくて四苦八苦しております。
親切な人多くて嬉しいです。
865:デフォルトの名無しさん
23/12/04 15:41:24.31 dR/JDXQy0.net
そもそもinput使う時点で文字列にしかならんからな
866:デフォルトの名無しさん
23/12/04 15:43:42.86 apNvJw2Gd.net
>>855
値を比較しただけで実行時エラーになるような言語とか正気か?
もう黙ってなよ
867:845
23/12/04 15:48:46.40 cL5NOEP90.net
>>857
マジっすか!?
868:デフォルトの名無しさん
23/12/04 15:53:55.42 hskMlW3m0.net
>>859
>>852をちゃんと読もう
869:デフォルトの名無しさん
23/12/04 15:59:02.03 D7B41PS90.net
Python2のinput()はPython3のeval(input())
Python2のraw_input()はPython3のinput()
870:845
23/12/04 16:10:06.06 cL5NOEP90.net
とりあえず納得できました
皆さまのおかげです
また詰まったらクレクレしに来ます(苦笑)
ありがとうございました
871:デフォルトの名無しさん
23/12/04 16:42:52.46 f5vq9b6L0.net
ユーザー入力が文字列以外で解釈される言語は見たことないけどな
あるのかな?
872:デフォルトの名無しさん
23/12/04 16:59:52.75 L1Td53yR0.net
python2がそうだったのでは
873:デフォルトの名無しさん
23/12/04 17:20:13.89 UR+VnO+A0.net
>>858
べつに設計上おかしかなくない?
Pythonは__eq__で解決できなくてもフォールバックあるけど一長一短
874:デフォルトの名無しさん (スッップ Sd0a-48z8)
23/12/04 17:53:17.77 jOpGWHbYd.net
>>865
等価演算子に実行時エラーを出させるのが妥当とは思えんよ
そういう機能が欲しければ独自のチェック関数を作るべきだろう
875:デフォルトの名無しさん
23/12/04 21:14:40.89 UR+VnO+A0.net
>>866
静的言語やTSならそもそも実行できないケースだよ?
Pythonをそうせよって意味ではなく
そういう設計の動的言語があってもぜんぜん不思議ではない
876:デフォルトの名無しさん
23/12/04 21:39:54.56 XU6NDivrd.net
比較演算子は、
・真
・偽
・比較出来ない
・例外
の4値を返すべきだな
とっても面倒くさくなりそう
877:デフォルトの名無しさん (スッップ Sd0a-48z8)
23/12/04 22:24:07.98 jOpGWHbYd.net
>>867
俺はその設計が妥当だと思わないって意見表明をしてるんだよ
878:デフォルトの名無しさん (ワッチョイ 4954-9JYs)
23/12/04 22:28:33.13 L1Td53yR0.net
コンパイルできないくらい間違ったコードに警告するのは親切でありこそすれスルーするメリットは無いのでは
879:デフォルトの名無しさん
23/12/04 23:03:05.60 GzgqXY0ad.net
>>870
静的型付け言語では型のチェックに関して静的解析の恩恵が受けられる
動的型付け言語では実行時に自前でチェックする必要がある
そしてそれを比較演算子に例外生成させることで実現しようというのは比較演算子の守備範囲を逸脱していると考える、という話
スルー云々という話ではない
880:デフォルトの名無しさん
23/12/04 23:20:04.47 L1Td53yR0.net
なるほど、判らん(酔ってるから)
881:デフォルトの名無しさん
23/12/04 23:44:56.40 NLHKgHYS0.net
1 > ‘1’が実行時エラーになるように
1 == ‘1’を実行時エラーにする方針の言語があっても別にいいと思う
大小比較も等値比較もCPyrhonでは同じ一つの関数で処理されるんだけど
左辺の型からも右辺の型からも比較演算をサポートしてないとなったら等値比較の場合だけオブジェクトID比較を返すフォールバックを使うことになってる
言語設計者がエラーで弾いた場合のメリットよりフォールバックした場合のメリットを優先したというだけで比較演算子の守備範囲とかはあまり関係ないと思う
882:デフォルトの名無しさん
23/12/05 02:10:11.77 9BlMohwu0.net
Ruby では以下は、両方ともfalse になる。
エラーにはならない。
型が違うから、問答無用でfalse
p 1 == "1"
p "1" == 1
true の条件は同じ型で、値も同じ時
Rubyは静的言語ではないから、コンパイルエラーにはならない。
テストでバグを見つけないといけないから、
その点、動的言語は面倒くさい
だから、TypeScript が流行った
883:デフォルトの名無しさん
23/12/05 10:20:00.26 5ZWKk5tJd.net
>>872
どうせ酔ってなくても大して変わらん
>>835とか見れば分かる
884:デフォルトの名無しさん (ワッチョイ 35d1-QDDZ)
23/12/05 18:52:32.32 d/HKFAig0.net
>>831
pandasのread_json関数は直接文字列を渡したりファイルオブジェクトを渡せるけど、read_csvは直接文字列を渡せないんだけど
普通に作ったらとかいうけど、普通とは?って思うけどなあ
885:デフォルトの名無しさん (ワッチョイ 35d1-QDDZ)
23/12/05 19:01:32.87 d/HKFAig0.net
>>870
例えばJavaで((Object) 1) == "a"という式はエラーにならないし場合によるとしか言えないと思うけど。
「コンパイルできないくらい間違ったコード」っていうけど、「普通」と一緒で、どこからが間違ったコードなのよって話になる。
動的型付け言語ならなおさら。
886:デフォルトの名無しさん
23/12/06 10:09:21.73 OIX9QIK5d.net
>>876
ほんそれ++
887:デフォルトの名無しさん (ワッチョイ 6689-jFys)
23/12/06 11:53:32.45 e50gn0BB0.net
javaのイコールとpythonのイコールは異なるからなあ
isinstanceかisかtypeかなぁ
888:デフォルトの名無しさん (ワッチョイ 8a11-qRqa)
23/12/06 23:20:52.35 1hCR5TUW0.net
麻雀の点数計算できるライブラリみつけた
仕様が書いてあるページどっかにない?
889:デフォルトの名無しさん (ワッチョイ 8a11-qRqa)
23/12/06 23:38:12.91 1hCR5TUW0.net
仕様は見つけたけどすっげー読みづらい‥
890:デフォルトの名無しさん (ワッチョイ 5ed4-aytD)
23/12/06 23:41:21.41 TvfjVsdx0.net
AIチャットボット向きの課題かも
ローカルルールを箇条書きで渡してコード書いてもらったら?
891:デフォルトの名無しさん (ワッチョイ 8a11-qRqa)
23/12/06 23:50:23.95 1hCR5TUW0.net
>>882
いやライブラリ見つけて仕様書もあったんだけどいかんせん読みづらくて…
892:デフォルトの名無しさん (ワッチョイ 5e00-WD8q)
23/12/07 03:59:22.29 kyWDdJFq0.net
>>876
Ruby のCSV なら、ファイルや文字列から、
1行ずつ、または全てを読み込める
CSV.foreach : ファイルから一行ずつ読み込む
CSV.read : ファイルから全てを読み込む
CSV.parse : 文字列から一行ずつ、または全てを読み込む
893:デフォルトの名無しさん (JP 0H3e-kPRq)
23/12/07 06:22:39.87 tyKSl/WnH.net
>>883
仕様書読んで何をしたいの
ライブラリって労力を省くためのものなのに
中身を知ろうとして苦労するのって本末転倒っしょ
894:デフォルトの名無しさん
23/12/07 07:57:00.99 BRWWjO5+0.net
Pythonのお勉強スレでRubyを紹介するって、やっぱRuby使いは頭がおかしい。
895:デフォルトの名無しさん
23/12/07 08:22:37.28 qvan2CQu0.net
awk -> perl -> python と流れてきたけど、
途中でrubyに立ち寄らなくて本当に良かった
896:デフォルトの名無しさん
23/12/07 08:46:37.16 bis3W60d0.net
隙有らば自分語り
誰も興味ないのにね
897:デフォルトの名無しさん
23/12/07 12:22:23.65 G+XGanQ+M.net
GPLに汚染されたRoRをずっと愛でてれば良いのに :-p
898:デフォルトの名無しさん (ワッチョイ 4954-9JYs)
23/12/07 13:32:27.34 qvan2CQu0.net
pythonでGPL感染に困るケースってある?
899:デフォルトの名無しさん (ワッチョイ 8a11-WyqO)
23/12/08 15:55:44.91 j/ISpuI80.net
>>885
どういったフラグがあってとかわからないとかけないじゃん?
と思ったけどchatgptで聞けばよかっただけだった
900:デフォルトの名無しさん (ワッチョイ 5e5b-aytD)
23/12/08 22:49:50.08 lBrblQMP0.net
ライブラリの使い方聞くんじゃなくて
点数計算のプログラム書いてもらえばええんよ
901:デフォルトの名無しさん (ワッチョイ 4954-9JYs)
23/12/08 23:09:45.86 Q/J1Vxp/0.net
判定自体は簡単だけど、役満は断么をオーバライドするとか、
役満と役満は共存するとか、イレギュラーな規則の実装が面倒そう
902:デフォルトの名無しさん (ワッチョイ a510-yDrh)
23/12/08 23:17:23.87 4oKxEziY0.net
麻雀の点数計算なんて30年以上前からゲームで実装されているだろ。
何をいまさら。
903:デフォルトの名無しさん
23/12/08 23:58:52.73 Q/J1Vxp/0.net
そんな頃からpythonある訳ないだろ
904:デフォルトの名無しさん (ワッチョイ 5763-JBvs)
23/12/09 01:08:20.81 ScuIIvWx0.net
python自体は30年以上前からある
905:デフォルトの名無しさん
23/12/09 03:48:32.15 Nm74I+ug0.net
スクレイピング案件ゲットするのに何時間勉強必要ですか?地頭は悪いです
906:デフォルトの名無しさん (JP 0H8f-UJ9L)
23/12/09 04:59:58.84 +cLwEiyiH.net
>>891
すごいな
最近のAIはPythonのライブラリの使い方まで教えてくれるのか
と思って今苦戦しているargparseの使い方を聞いてみたが
簡単なサンプルを提示してあとはドキュメント読めと言われた…
907:デフォルトの名無しさん (ワッチョイ 9f11-yUyk)
23/12/09 09:01:15.35 /JDiY9I00.net
>>898
0からは書いてくれるけどライブラリはサンプルだけだったわorz
908:デフォルトの名無しさん
23/12/09 09:58:36.92 Nm74I+ug0.net
みなさんPythonの総勉強時間はどのくらいですか
909:デフォルトの名無しさん
23/12/09 10:35:34.71 UhMT32qI0.net
Pythonの勉強とライブラリの勉強は切り離せない
ライブラリの勉強とライブラリの基礎理論の勉強は切り離せない
従って、人生の勉強時間の全てはPythonの勉強時間だったと言って差し支えない
つまり、人生の時間=Python勉強時間だ
910:デフォルトの名無しさん
23/12/09 10:47:51.86 HTRrM6ov0.net
YouTubeの視聴で10時間くらい
911:デフォルトの名無しさん
23/12/09 14:49:16.11 Nm74I+ug0.net
>>901
会社でも勉強の日々ですか?
912:デフォルトの名無しさん
23/12/09 14:49:31.46 Nm74I+ug0.net
>>902
ワイは1時間
913:デフォルトの名無しさん (ワッチョイ 176b-08gk)
23/12/09 16:21:11.17 X/idpvxd0.net
>>898
曖昧に聞くと曖昧にしか答えてくれないけど、具体的に詳しく聞けばちゃんと答えてくれるよ、用途を伝えてどうすればいいか説明してと聞いてみたら?
914:デフォルトの名無しさん (ワッチョイ 9f11-yUyk)
23/12/09 19:37:36.95 /JDiY9I00.net
>>905
いや聞いても答えてくれないよ
ソースをイチから書いてくれは言うこと聞くけど
ちょっと前からバカになった
915:デフォルトの名無しさん
23/12/09 22:16:09.54 mK/Jf29s0.net
>>903
あたぼうよ
生きる時間全てが勉強よ
916:デフォルトの名無しさん (ワッチョイ 1f0e-tASO)
23/12/10 10:08:03.35 tnUY9tvW0.net
pyinstallerで作成したexeファイルの起動速度を上げたい
何をチューニングしたらいい?
917:デフォルトの名無しさん
23/12/10 11:04:36.18 dvINkCpQ0.net
gRPCを使ってローカルサーバー内のasyncio.Queueに別のプログラムからputとgetをすると
Queueが空のときにgetをすると後から呼ばれたputがgetの完了を待ってしまう
イメージとしてはredis-pyのblpopとrpushのようなことがしたいんだがどうすればいい?
クライアント側からは非同期処理を意識せずに呼び出せるようにしたい
server.py URLリンク(techiedelight.com)
producer.py URLリンク(techiedelight.com)
consumer.py URLリンク(techiedelight.com)
grpcserver/grpcserver.proto URLリンク(techiedelight.com)
918:デフォルトの名無しさん
23/12/10 11:35:35.01 nA++m0MY0.net
>>908
高速なCPUに載せ替え
919:デフォルトの名無しさん
23/12/10 11:46:03.36 wF+vsUm70.net
>>908
EXEを作る際に不要なモジュールを削除しておく。
または必要なモジュールのみをインストールした環境で作る。
920:デフォルトの名無しさん
23/12/10 14:14:44.65 zLH0tlZ60.net
>>909
空かどうかチェックしてから呼べば?
921:デフォルトの名無しさん
23/12/10 14:40:05.97 dvINkCpQ0.net
>>912
さっそくの回答ありがとうございます
それはPopMessageの中でタイムアウトまでget_nowait()を無限ループで回すって理解でいい?
PopMessageは空のキューで待ち構えててアイテムがputされたら即getって挙動にしたいんだけど
現在はタイムアウトになって空だった判定が終わってからputが実行されてる
922:デフォルトの名無しさん
23/12/11 09:46:23.18 +ZTyxHoM0.net
>>909
サーバーをgRPC AsyncIO APIを使って書き換えたら想定していた動作になった
server.py URLリンク(techiedelight.com)
ただpush後にqueueの現在のサイズを表示する処理が
popされるまで実行されなくて
popされた直後にまとめて表示されるのをなんとかしたいけどどうすればいい?
それとも実はpopされるまでpushはタスクが積みあがってるだけで実行されてない?
923:デフォルトの名無しさん
23/12/11 15:14:04.17 9aD5b1NYa.net
>>914
こうしたら?
async def _push_message_impl(self, content: bytes) -> None:
coro = self._message_queue.put(content)
task = self._loop.create_task(coro)
await task
print_size = functools.partial(self._print_size, "Pushed.")
print_size()
924:デフォルトの名無しさん (ワッチョイ 7f01-L8ZV)
23/12/11 15:53:29.44 +ZTyxHoM0.net
>>915
ありがとうございます
それも試してみたけどpushのprintがまとめて実行される件は解決しなかった
試行錯誤した結果以下のコードで上手く動いた
putは待たずに即実行してほしいのだからput_nowaitにすべきで
あとはput_nowaitを投げっぱなし(fire and forget)にすると上手くいった
server.py URLリンク(techiedelight.com)
925:デフォルトの名無しさん
23/12/12 17:44:29.04 PeOBrpb00.net
>>916
sys.stdout.flush()
926:デフォルトの名無しさん
23/12/12 17:56:17.06 tcE92BOU0.net
print(flush=True)
927:デフォルトの名無しさん
23/12/12 23:45:57.11 C+wFRSZxa.net
>>855
intとfloat
928:デフォルトの名無しさん
23/12/12 23:50:46.81 C+wFRSZxa.net
>>868
if a==b
の話だからそれだとif節が4つの分岐処理できるようにしないといけないんじゃ
そんな言語嫌だ
929:デフォルトの名無しさん
23/12/13 00:30:55.74 l6shR1Bw0.net
RustのPartialEqが欲しそう
930:デフォルトの名無しさん
23/12/13 01:11:36.89 /DXrNli00.net
0除算といっしょで想定外な後ろ2つは
止まるか例外だすだけちゃうの?
931:デフォルトの名無しさん (ワッチョイ f754-+saG)
23/12/13 08:17:29.51 S1FKlcqe0.net
でも設計者は真にした方が便利だと考えた
どういうケースを想定したんだろう
932:デフォルトの名無しさん (アウアウクー MM4b-Ej2Q)
23/12/13 08:19:45.88 6xdHA+bAM.net
>>922
Pythonの演算なんだから3番目はNotImplementedを戻すだろう
それでも3つ分岐がいることになる
(そうじゃないなら例外にまとめてなきゃ変)
933:デフォルトの名無しさん (スプッッ Sd3f-AgIM)
23/12/13 08:39:21.17 2i8DhGS8d.net
複数の分岐処理がしたいなら、match文でいいんじゃ?
934:デフォルトの名無しさん (ワッチョイ 3746-vhj2)
23/12/13 11:33:11.42 h3rLFE4B0.net
O除算。
>>> 1 / 'O'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for /: 'int' and 'str'
935:デフォルトの名無しさん (ワッチョイ ff89-Qlhn)
23/12/13 12:54:06.42 oNl+0rt40.net
チェックしたほうが良いんじゃね。
ケーキ食べたいのに、スフレかもしれんし
936:デフォルトの名無しさん
23/12/13 13:56:39.90 0Tk5upMb0.net
お嬢さん
937:デフォルトの名無しさん
23/12/13 14:13:11.71 WrZJJMf/0.net
スフレチーズケーキはスフレ?ケーキ?
多重継承?
938:デフォルトの名無しさん
23/12/13 19:44:31.54 AZIMh9+DM.net
class Cake:
kind = souffle
939:デフォルトの名無しさん
23/12/13 23:02:45.82 scKOPc+Y0.net
Nuitkaとollvmをつかって難読化コンパイルできたけど需要ある?
940:デフォルトの名無しさん (ワッチョイ ff93-tASO)
23/12/14 07:16:50.48 VrbATqem0.net
Pythonって難読化意味ある?
941:デフォルトの名無しさん (ワッチョイ d7be-HI/Z)
23/12/14 09:15:34.70 6IAGuCnn0.net
Nuitka使ってる時点で解析しずらくなる
942:デフォルトの名無しさん (ワッチョイ f754-+saG)
23/12/14 09:26:18.20 mwsN68xN0.net
秘密鍵をコードに埋め込みたい時とか
943:あいうえお (ワッチョイ 63dd-wR7E)
23/12/16 11:39:26.79 sPGHYPZJ0.net BE:558199425-2BP(0)
sssp://img.5ch.net/ico/nida.gif
LINEのオプチャでつかえるBOT作りたいんやがどうやるん?
pythonでできると聞いた
944:デフォルトの名無しさん (アウアウアー Sa6e-ztdx)
23/12/16 11:50:39.29 1cAC/5Dza.net
アホみてぇな質問のしかた
少しはググれよ
945:デフォルトの名無しさん
23/12/16 13:20:03.76 ZMKoBGKMa.net
アホみたいって共感できるのすごいな
俺にはわからん。
946:デフォルトの名無しさん (ワッチョイ 5ecd-e8vO)
23/12/21 11:14:36.20 coKFs4JJ0.net
Nuitkaにnumpy plugin使うとwarningでるのが気になる…
947:デフォルトの名無しさん (ワッチョイ 1354-STda)
23/12/21 11:22:02.14 NZg9FfTP0.net
selenium使うと必ず謎のwarning出る
948:デフォルトの名無しさん
23/12/21 12:17:23.93 +bYKk0Px0.net
裏庭にwarningがでる
949:デフォルトの名無しさん (ワッチョイ 162a-AQ+F)
23/12/21 15:15:31.26 p8AR9zsG0.net
>>940
近頃の若者は「ワーニング」を「ウォーニング」とナマるから、通じんべ。
950:デフォルトの名無しさん (ワッチョイ e7be-DkQ9)
23/12/21 15:47:42.35 Sj73mPPq0.net
ここにはジジイしかいません
951:デフォルトの名無しさん (ワッチョイ 1601-aw5G)
23/12/21 18:01:43.42 Z95EBtZI0.net
pythonって遅くね?
952:デフォルトの名無しさん
23/12/21 19:57:43.69 qrcYLDTk0.net
pythonは遅いよ
モジュールは早いよ
953:デフォルトの名無しさん (ワッチョイ f705-yJWl)
23/12/21 21:58:50.34 JI0UYSEL0.net
ボトルネックだけRustとかで置き換えてやればいいんだろうね
Mojoならもっと楽に置き換えられるかな?
954:デフォルトの名無しさん (ワッチョイ 1e34-YOgt)
23/12/21 22:05:47.96 bObiKTRM0.net
本家がPyPyに乗り換えればええのに
955:デフォルトの名無しさん (ワッチョイ 1354-STda)
23/12/21 22:06:13.74 NZg9FfTP0.net
対話式に動かせる機能削ったらもっと高速化できたのに
今まで入ったことない分岐に入った瞬間にエラーで止まることもなくなるし
956:デフォルトの名無しさん
23/12/21 23:08:17.59 Y2jP7Dyr0.net
>>947
そんなに速くなるの?コンパイルがうまくなるとか?
957:デフォルトの名無しさん
23/12/22 00:42:37.84 wOpI+TvL0.net
VSCode の拡張機能・Code Runner は、
右クリックメニューから、選択したコード、またはファイル全体を実行する
設定項目、executorMap には、多くの言語の実行コマンドが書いてある。
"code-runner.executorMap": {
"javascript": "node",
"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"python": "python -u",
"ruby": "ruby",
ここで、pythonには、-u が付いている。
多分これが無いと、すぐに表示されない。
標準出力がキャッシュされるのかも
958:デフォルトの名無しさん
23/12/22 00:49:19.70 +37DXQP6H.net
>>947
冗談じゃない
IDE嫌いの者にとってインタラクティブモードは生命線だ
959:デフォルトの名無しさん
23/12/22 01:28:54.44 CdWyrZLV0.net
>>947
> 今まで入ったことない分岐に入った瞬間にエラーで止まることもなくなるし
どゆこと?
960:デフォルトの名無しさん
23/12/23 14:30:00.14 +yR1xAXI0.net
split('\t')で取り込んでいちいちintするのも面倒なので、
map(int, split)にしたい
でも空ですらエラーにされる
想定外が来たらNullでいいから、楽に処理できないもんか
961:デフォルトの名無しさん
23/12/23 14:36:35.98 cGlPuzRM0.net
>>947
いやREPLから実行してもインタプリタ本体は同じだから
962:デフォルトの名無しさん
23/12/23 16:44:24.69 v4dsWN6K0.net
>>952
[int(x) for x in s.split('\t') if x]
or
[int(x) if x else None for x in s.split('\t')]
or
def to_int(s):
try:
return int(s)
except ValueError:
return None
map(to_int, s.split('\t')))
Pythonはパイプライン処理とは相性が悪いので
無理せずおとなしくPython風の書き方を従っておいたほうがベター
963:デフォルトの名無しさん
23/12/23 17:10:46.05 +yR1xAXI0.net
やっぱり自分用intを作るのが正解か
964:デフォルトの名無しさん
23/12/23 17:11:30.40 MC2+Dwkk0.net
そんなバカな発想やめな
965:デフォルトの名無しさん
23/12/23 17:50:31.60 v4dsWN6K0.net
pandasならそれなりによろしくやってくれる
converterも指定できるので自分でmapする必要はない
s = "111\t\t222\t\t333\t\t000"
pd.read_csv(StringIO(s), header=None, sep='\t')
Out:
0 1 2 3 4 5 6
0 111 NaN 222 NaN 333 NaN 0
966:デフォルトの名無しさん
23/12/23 17:58:11.43 cGlPuzRM0.net
>>952
モナドの出番だな
967:デフォルトの名無しさん
23/12/23 18:04:54.64 cGlPuzRM0.net
def maybe_int(value):
try:
return Just(int(value))
except ValueError:
return Nothing()
class Just:
def __init__(self, value):
self.value = value
def bind(self, func):
return func(self.value)
def __repr__(self):
return f"Just({self.value})"
class Nothing:
def bind(self, func):
return self
def __repr__(self):
return "Nothing()"
# 例としてのタブ区切りの文字列
input_string = "123\t456\t\t789"
# モナド風の変換
result = [maybe_int(x) for x in input_string.split('\t')]
# 結果の確認
print(result)
968:デフォルトの名無しさん
23/12/23 18:05:26.31 cGlPuzRM0.net
インデントおかしくなったスマソ
969:デフォルトの名無しさん (ワッチョイ 63bc-BWWG)
23/12/23 19:36:53.20 /V7lYSgm0.net
Haskellを使いたい願いながらPythonを使わざるを得ない哀れな人間が書きそうなコード見て笑っちゃった
970:デフォルトの名無しさん (ワッチョイ 63bc-BWWG)
23/12/23 19:58:21.69 /V7lYSgm0.net
しかもこれモナドというよりはファンクターじゃね
971:デフォルトの名無しさん (ワッチョイ 63bc-BWWG)
23/12/23 20:01:20.65 /V7lYSgm0.net
あ、いやファクターではなさそう
972:デフォルトの名無しさん (ワッチョイ 031d-tFpX)
23/12/23 20:57:15.51 cy6wCCec0.net
result = [int(i) if type(i) == int else None for i in s.split('¥t')]
これでいけんか?
973:デフォルトの名無しさん (ワッチョイ f354-NbWU)
23/12/23 21:21:39.45 +yR1xAXI0.net
いけるかどうかで言えば、lambdaで書いてもいけるんだろうけど、
いちいちそんなこと書きたくない
974:デフォルトの名無しさん (ワッチョイ 6f01-sfQN)
23/12/23 23:12:44.45 WlHvEb3t0.net
>>964
strなのでtype(i) == intはFalse
975:デフォルトの名無しさん
23/12/24 05:47:20.20 jOD7RUSOM.net
モナドってなんなの?
数学系の人が書いたHaskellの入門書読んだけど写像!写像!ばっかでめんどくさくなっちゃった
あれ本当に便利なの?
976:デフォルトの名無しさん
23/12/24 06:03:40.69 2RNZTzrB0.net
モナドはRustでも採用されとらんし、HaskellでもIOモナド以外であんま使われてる印象ないし、神経質なオタクがIOすら数学的にしたくて入れたような印象があるな
それはそうと写像とかの数学概念は普通に筋の良い抽象化で便利だとは思う
977:デフォルトの名無しさん
23/12/24 08:20:03.60 Cma5/cXc0.net
内包表記も数学から持ってきてるな
978:デフォルトの名無しさん (ワッチョイ 03de-tFpX)
23/12/24 11:28:16.67 r1BGz2rf0.net
>>966
ああそうかsplit後はstrか
ならtypeじゃなくてre.fullmatchならいけるでしょ
979:デフォルトの名無しさん
23/12/24 13:10:11.85 +alFE5Zb0.net
>>970
いけるけど記号を考慮すると面倒なのでtry-exceptしたほうが簡単だよ
int(1_000) => 1000
int(1__000) => ValueError
int(1_0_0_0) => 1000
int(1_0_0_0_) => ValueError
980:デフォルトの名無しさん
23/12/25 04:22:31.09 1pIswkAR0.net
Python使ったデータサイエンス系の開発環境を会社の事情でLinuxからWindowsに移行したんだけど
ファイルやフォルダへのショートカット(.lnk)をPythonで直接的に扱えないことに今更気づいた
Pythonのせいではないとはいえ死ぬほど不便なのでなんとかしたい
WshShortcutを使ってごちょごちょすればアクセスできるけどそんな面倒なことしてられないし
環境がWindowsの人って普段どうしてるの?
ショートカット使うのはやめてmklinkコマンドでシンボリックリンク張る感じ?
でもシンボリックリンク自体がWindowsだとあまり文化として一般的ではないと思う(たとえギークレベルでも)
981:デフォルトの名無しさん
23/12/25 05:28:22.15 fZmNQMgb0.net
漏れは、デスクトップにショートカットを作って、
Windows 10, WSL2 でLinux・Ubuntu を起動して、
VSCode でRuby on Rails をやってるけど
リンク先
C:\Windows\System32\wsl.exe code .
作業フォルダ
\\wsl$\Ubuntu-18.04\home\<ユーザー名>\project
982:デフォルトの名無しさん (スップ Sd1f-AH//)
23/12/25 12:27:50.83 w/c7nza5d.net
Pythonに限った話でなくプログラム言語全般の話で恐縮なのですが、変数名などの命名規則で先頭小文字のキャメルケースが使われることも良くあると思います。(先頭大文字パターンもあるのは認識しています)
この「先頭は小文字」というのは、見た目的に読みやすい、とかそういう理由なのでしょうか?
例えば、ある変数 productCode があったとして、「productCode」をチェックする関数だと
checkProductCode()
みたいな感じになり、Productの先頭が大文字になります。
同じものを指してるのに、先頭が小文字大文字が混在してなんかモヤモヤします。
こういうのはあまり気にならないものなのでしょうか?
983:デフォルトの名無しさん (ワッチョイ 639a-l39z)
23/12/25 12:46:19.39 HDhwTf8w0.net
productCodeはProductCodeのインスタンスが入ってる変数
checkProductCodeは特定のインスタンスではなくProductCodeに対する関数
というふうにわざわざ考えたりしないくらいには気にならない
984:デフォルトの名無しさん (ワッチョイ 63bc-BWWG)
23/12/25 13:01:34.08 bUfbLUPY0.net
先頭小文字のCamelCaseみたいなキモい書き方Pythonには存在せんだろ
なんでよりによってPythonスレで聞くんだ
985:デフォルトの名無しさん
23/12/25 13:45:24.80 Ebjaalbb0.net
移植する時に直すの面倒でキャメルケースが残ることもある
区切り部分を大文字にしてるんだから先頭は小文字が合理的だけど、
世の中一般では固有名詞に使うことが多いので先頭も大文字になる
pythonでクラス名や例外名が大文字始まりのキャメルケース推奨なのは、
どういう経緯があるんだろう
986:デフォルトの名無しさん
23/12/25 13:46:50.50 KMEA0AVf0.net
>>974
先頭大文字だとクラスを指してるように勘違いしちゃうからとかかもしれん
987:デフォルトの名無しさん
23/12/25 13:52:36.73 93zueivl0.net
>>972
win32comとか使えばできるっしょ
988:デフォルトの名無しさん
23/12/25 14:10:07.28 4YZcJ8/J0.net
初心者が今からこの言語をやりたくなったらこっちをやれ
Perl→PHP+WordpressかPythonやれ
Ruby→絶対Pythonに引っ越すからPythonやれ
Fortran、Matlab、Julia、R、Processing→自分の専門領域でメジャーなものに従え、なければPython使え
Java、VB.net→これ勧めるやつは人売りだから逃げろ、プライベートならC#やれ
Lisp、C→日曜日にやるならOK
VBA→平日にやるならOK
C++→Rustやれ
Rust→Cのあとにやれ
Javascript、Typescript→やるならWebで学ぶのに慣れろ、本はすでに古いかすぐ古くなる
Go→利点がわかるならやれ、なんとなくならC#かPythonにしとけ
Haskell、O'caml、Scala→5年後くらいにイキりたくなったらやれ
SQL、正規表現→できて当たり前だからやっとけ
989:デフォルトの名無しさん
23/12/25 14:31:05.96 77r75M+dM.net
>Lisp、C→日曜日にやるならOK
>VBA→平日にやるならOK
>C++→Rustやれ
>Rust→Cのあとにやれ
おいw
990:デフォルトの名無しさん
23/12/25 14:49:35.59 93zueivl0.net
>>980
C#に関する発言だけは的外れ
991:デフォルトの名無しさん
23/12/25 14:50:59.66 4YZcJ8/J0.net
>>982
マジか
992:デフォルトの名無しさん
23/12/25 15:00:57.01 Ebjaalbb0.net
C#を勧める人は筋トレ勧める人に似てる
993:デフォルトの名無しさん
23/12/25 15:29:16.14 4Z5LCY+60.net
F#で書きたいけど仕方なくC#で妥協してる
994:デフォルトの名無しさん
23/12/25 20:56:30.50 1pIswkAR0.net
>>973
WSLか、あれはいいものだ・・・
でも残念ながらLinux扱いされて社内承認がクッソ面倒な上にホストで動いてるBox Driveへのアクセスができなくて断念した
>>979
できるけど、なんでこんなことしなきゃならんのって気持ちが湧いてきてしまう
慣れれば何も思わなくなるのかな
こりゃもう普通にLinux使用許可もらうよう動いたほうが早いかな
995:デフォルトの名無しさん
23/12/25 22:38:56.44 WF81hfK00.net
どうでもいいことだが
オナ禁したらめちゃ勉強捗るのな
996:デフォルトの名無しさん
23/12/26 07:38:40.27 3bMmKL6bH.net
>>972
普通にパスを指定するだけだが…
ショートカットというのは人が手でファイル操作する時に使うものだろ
997:デフォルトの名無しさん
23/12/26 10:18:42.86 a0/8HJXg0.net
こういう意見が平然と出て来るあたりが、いかにもMS-Windowsだなあという感じする。
>>988
> ショートカットというのは人が手でファイル操作する時に使うものだろ
998:デフォルトの名無しさん
23/12/26 10:34:36.79 3bMmKL6bH.net
>>989
平然も何も、Windowsのショートカットは人がマウスでWクリックするために用意されている機能だろ
999:デフォルトの名無しさん
23/12/26 11:02:02.09 kpi70gTP0.net
Explorerで整理したファイル郡に対して処理したいんでしょ?
OS標準のデスクトップなんだし
自分ではそんなことしないが想像できる範囲の話やん
1000:デフォルトの名無しさん
23/12/26 13:05:12.49 i/USyFaH0.net
マウント取りたいアホしかいない地獄のようなスレ
1001:デフォルトの名無しさん
23/12/26 13:48:05.30 a0/8HJXg0.net
# The Thread from Hell !
from hell import thread
1002:デフォルトの名無しさん
23/12/26 14:13:43.15 HS5XBp93a.net
>>991
まずExplorerを捨てろ
1003:デフォルトの名無しさん
23/12/26 21:26:30.09 kk4yj+FYM.net
ショートカットはシンボリックリンクとは違う
1004:デフォルトの名無しさん
23/12/27 04:00:17.75 TJvzVpkY0.net
小学4・5年生にPython早いですかね?
スクラッチやるよりturtle極めさせようと思ってるんだが
間違ってますかね?
1005:デフォルトの名無しさん (ワッチョイ 53a7-tFpX)
23/12/27 06:26:47.20 U0sabDMs0.net
>>996
何を懸念してるのかさっぱりわからん
1006:デフォルトの名無しさん (JP 0H7f-5bsa)
23/12/27 06:43:09.18 axeHJPf5H.net
>>996
子供の頃からプログラミングなんかさせたら引き籠りニートになっちまうぞ
その時間で勉学をきっちりさせて東大か京大に行かせとけ
1007:デフォルトの名無しさん (ワッチョイ 8f87-6eTB)
23/12/27 07:00:37.83 oR+jfmx80.net
pythonは初心者なんで詳しい説明はできんが基本的なアルゴリズムの考え方は後々役に立つし本人の興味さえあれば年齢は関係無いと思う、俺は早いほうがいいと思う
1008:デフォルトの名無しさん (ワッチョイ bf4b-qNuo)
23/12/27 07:39:33.71 TJvzVpkY0.net
レスありがとう
ゲームクリエイターになりたいっていうんだけど、
テキストプログラミングやる前に、
ビジュアルプログラミングやる方が良いって
散々言われてるし、小学校中学校ではScratch教えてるっぽいから
どうしようかなって悩んでる
勉強させるほうが良いってのはわかる
個人ではいつでもゲーム作れるが
任天堂には勉強してないと入れないからな
1009:デフォルトの名無しさん
23/12/27 08:14:26.20 PW7pbSu60.net
素質があれば言語選ばずなんでもいけるだろ
選ばないと出来ないなら素質が無いんだよ
1010:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 97日 23時間 0分 45秒
1011:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています