22/10/30 12:46:32.71 o3zlfJHfa.net
まあフォーマットによっては頭だけ読めばわかるけど…
533:デフォルトの名無しさん
22/10/30 12:59:12.74 WAC/PohS0.net
元々はサイズなんか判らん、というプロトコルがあって、
それでは不便だからと建て増しで追加してるから、
判る場合も判らない場合も
534:あるんだよな 判ったとしても嘘をついている場合もある
535:デフォルトの名無しさん
22/10/30 13:09:28.80 0ss8sts10.net
>>527
なるほど
そんな事情があるとは知りませんでした。
オンライン上でサイズを調べるのは無理そうなので、
一度ダウンロードしてから仕分けるようにします。
ご迷惑をおかけしてしまいすいません。
ありがとうございました。
536:デフォルトの名無しさん
22/10/30 13:18:51.61 XddGgynb0.net
パッとヘッダ見た感じjpegなら0xA3にWORD値で高さ、0xA5に幅、どちらもリトルエンディアン
pngなら0x10にDWORD値で高さ、0x14に幅、リトルエンディアン
って感じだね
上手くヘッダの一部だけダウンロードして画像サイズを得る関数を作ればトラフィック軽減になるかも?
537:デフォルトの名無しさん
22/10/30 14:39:50.92 XddGgynb0.net
暇だから作ってみたおじさん
URLリンク(ideone.com)
538:デフォルトの名無しさん
22/10/30 15:26:12.39 VC4EQr6u.net
デザインパターンのSingletonパターンって必要ですかね・・
結局なんらかのカウンターで一元管理することになりませんか・・
539:デフォルトの名無しさん
22/10/30 15:49:28.81 Hd1qfqu50.net
バイトコードってヒープ領域に格納されてvmに渡されるのですか?
540:デフォルトの名無しさん
22/10/30 16:53:19.41 pkba5bNo0.net
>>529
ビッグエンディアンね
jpegは画像サイズが含まれるセグメントの位置が固定ではないので決め打ちは危険
541:デフォルトの名無しさん
22/10/30 16:56:31.04 40a1nlTva.net
>>531
使わないほうが良いものである
542:デフォルトの名無しさん
22/10/30 17:24:05.37 yaCBWxQaa.net
>>532
そうです
内部的にはPyCodeObjectという形で実装されています
543:デフォルトの名無しさん
22/10/30 17:53:38.94 Hd1qfqu50.net
>>535
ありがとうございます!
544:デフォルトの名無しさん
22/10/30 18:13:35.82 CDidbViTM.net
>>504
他言語触ってて
先に型ヒントつけて宣言しとこで同じ間違いしたわ
545:デフォルトの名無しさん
22/10/30 19:10:27.11 XddGgynb0.net
>>533
本当だ逆に覚えてた恥ずかしい
JPEGはサイズ前の5byteが共通っぽかったから>>530ではFF C0 00 11 08を検索するようにしてみたけどFF C0後の3byteは可変っぽいね
そもそも1KB以内にサイズ情報があるかも分からないのか
546:デフォルトの名無しさん
22/10/30 23:05:03.89 q24pCrd50.net
ここは朝鮮人のスレ
チョッパリはくるな!
547:デフォルトの名無しさん
22/10/30 23:53:08.68 vrlOFY0H0.net
発作か
548:デフォルトの名無しさん
22/10/31 14:05:35.97 j6J+ogvNM.net
>>531
なんないよ
549:デフォルトの名無しさん
22/11/01 02:33:37.39 mmiO/WJW0.net
不特定の文字・数字・記号、またそれらの組み合わせを意味する表記で記入する方法を教えて下さい
[123456aaaあ井う~~」
↑みたいなのがあったとして、数字や文字は毎回変わる、場合によっては桁数が変わったりもする
テキストファイル内で上記のパターンの文字列を見つけて、その前の位置で改行を入れるみたいなことをしたいです
イメージですが下記みたいに表して a に代入しておいて
[123456aaa文字] → [%%% ¥¥¥¥¥¥¥¥] or [%(桁数)¥(桁数)]
replace(a,”/n”+a) でテキストファイルを書き換えるようなことって可能ですか?
550:デフォルトの名無しさん
22/11/01 02:42:25.93 mmiO/WJW0.net
誤字 /n → \n
551:デフォルトの名無しさん
22/11/01 03:36:18.46 I1aopbaSM.net
なるほどわからん
552:デフォルトの名無しさん
22/11/01 08:16:26.34 xJk+jZok0.net
これは煽りではなく真面目なアドバイスなんだが、プログラミングより国語を勉強した方がいい
その言語能力だと難しいと思う
553:デフォルトの名無しさん
22/11/01 08:30:28.54 mmiO/WJW0.net
222tq2tq2tq269ああ%64agaoiwahaio.59gagagahai3a.t69a 5>22gahaiiha
この文字列を
222tq2tq2tq269
ああ%64agaoiwaha
io.59gagagahai3a.t69
a 5>22gahaiiha
この出力結果にするにはどうすれば良いですか? なら大丈夫ですかね?
この場合だと「文字列2つ + 記号1つ + 数字2つ」のパターンを見つけて改行したい
554:デフォルトの名無しさん
22/11/01 08:48:28.70 p4TXbqbPa.net
じゃあそのパターンで改行すれば…
正規表現でいいんじゃないかな
555:デフォルトの名無しさん
22/11/01 08:51:40.09 CMvcSOEo0.net
このスレよりも、正規表現のスレで聞けば?
556:デフォルトの名無しさん
22/11/01 09:10:51.89 tDs0tp7pM.net
オホダナー
そうだよオホダヨ~
557:デフォルトの名無しさん
22/11/01 09:37:37.84 mmiO/WJW0.net
>>547
その正規表現の表記の方法がよく分からないです
123abcdeあいう
↓
“\d{3}\w*.{3}”
これじゃダメみたいで、どう表記するのが正解なのか分かる方いたら教えて欲しいです
558:デフォルトの名無しさん
22/11/01 09:48:17.04 mmiO/WJW0.net
できました。ありがとうございました
559:デフォルトの名無しさん
22/11/01 10:42:07.10 HBYRkZVUa.net
正規表現の勉強がてらやってみた
URLリンク(ideone.com)
最後の1行はマッチしないね
560:デフォルトの名無しさん
22/11/01 11:08:19.56 mmiO/WJW0.net
表記自体は合っていたのですが、re.match()でやってたせいで出力されなかったみたいで、re.search()に変えるだけで解決しました
561:デフォルトの名無しさん
22/11/01 12:13:10.09 vww+azZz0.net
matchは使わずに
search(r'^なにか')
でいいよな
fullmatchは^と$で
^や$を使うなというのであれば、$だけ使うパターンも整備されていないと不完全
562:デフォルトの名無しさん
22/11/01 16:21:24.69 GYf/ELerM.net
俺は君にマッチしたい※
563:デフォルトの名無しさん
22/11/01 16:40:02.94 1fqXVNhi0.net
正規表現に関してはrubyやperlみたいに演算子にしてしまうのがベストだと思う
searchだとかmatchだとかregexpだとかmatch_allだとか覚えられんて
564:デフォルトの名無しさん
22/11/01 17:42:07.83 59UjWoGEM.net
命名とかAPI設計がイケてない
match、search、fullmatch・・・
たまにしか使わない人は諦めて毎回リファレンス参照するしかない
565:デフォルトの名無しさん
22/11/01 17:59:02.79 vww+azZz0.net
list.append()が破壊的だったかすら忘れてぐぐる
566:デフォルトの名無しさん (ワッチョイ 8b89-g96c)
22/11/01 22:54:57.42 w1dGDiRI0.net
覚えられないのではない
覚えないという選択をしているのだ
覚えるために何か工夫したのか?
567:デフォルトの名無しさん (ワッチョイ 9109-iO6U)
22/11/01 22:55:36.13 EqpfaKBX0.net
イテレータ判定されるのにfor できないんですが
イテレータとはforができるものではないんですか
X = type("")
if hasattr(X, '__iter__') :
for x in X : pass
568:デフォルトの名無しさん
22/11/01 23:34:09.39 yhai460Y0.net
X(= str)じゃなくXのインスタンスならそう
569:デフォルトの名無しさん
22/11/01 23:43:36.24 vww+azZz0.net
覚えないといけない時点でおかしい
理解すれば覚えなくていいのが正解
list.append()は破壊的で、str.replace()は非破壊であることに、
合理的な説明は無い
その方が便利なことが多そうだからとか、メモリの都合とか、
一旦そう決めちゃったからとか、そんな理由に過ぎない
570:デフォルトの名無しさん
22/11/02 00:26:44.23 WNjxQYpUM.net
list.appendは配列の終わりにつけるだけ
str.replaceは配列の途中に差し込む可能性があるからでは?
メモリ操作のコストが違うじゃん
571:デフォルトの名無しさん
22/11/02 00:47:23.04 ul/vZuFO0.net
配列が格納してある後ろに空きスペースがたくさん確保してあるならそうだろうけど
で、コストが実際に違ったとしてもそんなことは知らんがなでしかない
572:デフォルトの名無しさん
22/11/02 00:58:46.26 I1Z+o8fX0.net
みんな知ってることだけど、listはmutableでstrはimmutableだからだよ。
これでもう各関数が破壊的かどうかいちいち覚える必要はなくなったね!
573:デフォルトの名無しさん
22/11/02 01:00:03.55 WNjxQYpUM.net
listはある程度後ろに確保してるしコストが実際に違ったらそれは明確に合理的な理由でしょ
574:デフォルトの名無しさん
22/11/02 01:17:00.86 jyU6y3CY0.net
>>565
これ
まあそういうものとして覚えるしかないわけだけど
575:デフォルトの名無しさん
22/11/02 07:59:09.20 cbFKoHcVM.net
べつに目的の物が作れればどうでもいいんじゃないの?
ミッションクリティカルなモノをコレで作ったりするのかな?
576:デフォルトの名無しさん
22/11/02 11:06:12.06 FQ1wBQnh0.net
listに後ろとか関係なくない?
577:デフォルトの名無しさん
22/11/02 11:21:15.39 1xZXeW2Ya.net
linkedなリストは関係ないよな
連続したメモリに入ってる配列的なやつはアレだけど
578:デフォルトの名無しさん
22/11/02 11:39:42.36 FQ1wBQnh0.net
>>570
str との違いも結局これだし
579:デフォルトの名無しさん
22/11/02 14:55:39.24 VFt43YlcM.net
pythonのリストはポインタの配列でしょ?
580:デフォルトの名無しさん
22/11/02 18:15:12.19 1xZXeW2Ya.net
違います
581:デフォルトの名無しさん
22/11/02 18:27:31.11 jyU6y3CY0.net
PyObject*の配列です
PyObject **ob_item; // PyObject*の配列
Py_ssize_t allocated; // アロケートされてる個数
582:デフォルトの名無しさん
22/11/02 18:28:55.28 jyU6y3CY0.net
cpythonなソースは読みやすい
583:デフォルトの名無しさん
22/11/02 18:42:15.13 ul/vZuFO0.net
0から255までの数字が入った要素数1000の配列があって、
Cだとunsigned char list[1000];
みたいに宣言してlist[i]で参照するとアドレス計算で値を取ってくるけど、
pythonはどうやってるの?
584:デフォルトの名無しさん
22/11/02 18:43:56.47 4MCwg8YuM.net
ちょっと調べた限りやっぱりPythonのリストはポインタの配列だと思うんだが違うっていうなら何か教えて
insertの遅さとかで連結リストではないとは思うけど
585:デフォルトの名無しさん
22/11/02 18:51:59.96 wyluLqIy0.net
>>574が正しい
URLリンク(github.com)
586:デフォルトの名無しさん
22/11/02 18:55:42.08 jyU6y3CY0.net
cpythonのソースはマジで読みやすい
Rubyとかもうぐちゃぐちゃしてて読めねえもん
587:デフォルトの名無しさん
22/11/02 19:05:34.74 jyU6y3CY0.net
実際の配列のサイズはPyObject_VAR_HEADマクロのob_sizeに入ってる
588:デフォルトの名無しさん
22/11/02 19:12:23.01 1xZXeW2Ya.net
>>577
別になんでもいいんです
589:デフォルトの名無しさん
22/11/02 19:14:41.69 5K2+hbiBa.net
答え書かれてるのに全く分かってなくて草
590:デフォルトの名無しさん
22/11/02 19:30:34.65 1xZXeW2Ya.net
大学行くと実装と仕様の区別がつくようになるかも?
591:デフォルトの名無しさん
22/11/02 19:31:01.29 l50Y39h10.net
>>574
つまりポインタの配列
592:デフォルトの名無しさん
22/11/02 19:31:44.66 ul/vZuFO0.net
listにappendすると、ポインタの配列の末尾にポインタが追加される
配列のサイズが変わるので、サイズを増やした配列を作ってコピーしないとできない
筈なのに、idを調べると変わらない
**ob_itemに入ってる値は変わるけど、**ob_item自体のアドレスは変わらない
ということ?
593:デフォルトの名無しさん
22/11/02 19:33:58.87 l50Y39h10.net
組み込みだから作り直した配列にidがコピーされてたり
594:デフォルトの名無しさん
22/11/02 19:36:39.11 oCOyjRuB0.net
VM上は指すオブジェクト変わってないのにid変わったらあかんでしょ
595:デフォルトの名無しさん
22/11/02 19:40:00.28 rAnbDRgM0.net
適当にリンクリストあたりかと思ってた
596:デフォルトの名無しさん
22/11/02 19:40:29.11 ul/vZuFO0.net
appendしても同じオブジェクトという時点で違和感があるんだよな
明らかに別物やん
仮にappendが非破壊で
list = list.append()
とした時にidが変わる方が納得できる
597:デフォルトの名無しさん
22/11/02 19:40:29.75 5K2+hbiBa.net
>>585
逆だよ
ob_item自体は大きさが変わる時にreallocでアドレスが変わるけど
中身の方はポインタをコピーするだけだから変わらない
598:デフォルトの名無しさん
22/11/02 19:42:07.37 1xZXeW2Ya.net
>>577
違うって理解できた?
599:デフォルトの名無しさん
22/11/02 19:51:27.03 5K2+hbiBa.net
>>589
そもそもが全部Cで実装されてるんだからそういうメモリモデルなんだ、という理解で良いと思うよ
600:デフォルトの名無しさん
22/11/02 19:53:06.08 4MCwg8YuM.net
>>591
あなたは何もわかってないのは理解できました
601:デフォルトの名無しさん
22/11/02 19:57:27.92 1xZXeW2Ya.net
>>593
わかんない?
違うよ
どんどん主張が後退するんじゃねえかなという期待の下、繰り返すけど
602:デフォルトの名無しさん
22/11/02 21:11:39.58 CsBXjP5R0.net
リンクリストはリスト的なものを作るときに第一の選択肢としてはこないと思うよ。
任意の要素へのアクセスがO(n)かかるから。
必ず頭から順番に読んで、途中に挿入したいことが多いとかいう状況だったら使うけど、こういう特性を、癖があると思う人の方が多いんじゃないかな。
そういうコンピュータサイエンスの初歩みたいなところの実装が気になるなら、Javaを勉強してみるといいかもね。
リストも辞書もセットも、複数の実装方法が標準で用意されてて明示的にどれを使うか決めなくちゃいけないから。
そう考えると初心者にJava教えてた頃ってコレクションで付いていけなくなり勉強を諦めた人多いんだろうか。
603:デフォルトの名無しさん
22/11/02 21:16:31.46 CsBXjP5R0.net
>>589
夕飯を食べる前の自分と食べた後の自分は別のインスタンスか?って問いにyesと答えられるならばイミュータブルなものにしかidを付けてはいけないと考えているのだろう(そういう言語もある、Haskellとか)
そうでなければ、ミュータブルなインスタンスはミュータブルなんだからidが同じでも中身は変化すると考えるべきだろう
604:デフォルトの名無しさん
22/11/02 21:22:30.41 jJasVlr90.net
idってCでのアドレスそのものなんでしょ
実装の都合でアドレスが変わったらidも変わるというだけの話で、
何らかのポリシーみたいなものは背景に無いような
605:デフォルトの名無しさん
22/11/02 21:30:55.81 CsBXjP5R0.net
>>597
CPythonではな。(すみません知りませんでした)
しかしGCがかかりまくるVM上で動くPythonの実装もあるから、CPythonではそうっていう認識に留めておいたほうがいいんじゃないかなあ。
606:デフォルトの名無しさん
22/11/02 21:42:19.23 2orW5ow60.net
idが変わる/変わらないとミュータブル/イミュータブルは一対一対応?
607:デフォルトの名無しさん
22/11/02 22:06:28.39 CsBXjP5R0.net
>>599
まず、イミュータブルというのをどう定義するかによると思うけど
(タプルはイミュータブルだが、タプルの中にリストを入れた場合、リストほミュータブルで、リストに変更を加えてもタプルのインスタンスが新しくできるわけではない)
そういうややこしい例を除いても、
イミュータブルならば、値を変えたらidが変わる
値を変えてもidが変わらないならミュータブル
しか言えないんじゃない?
608:デフォルトの名無しさん
22/11/02 22:13:30.31 F9kh54e50.net
定義や実装で何がミュータブルかがころころ変わってはいけなくて、
pythonではどんな環境でも同じものがミュータブルであるべき
で、idが変わる/変わらないが環境依存ならば、idとミュータブルは関係ないことになる
609:デフォルトの名無しさん
22/11/02 22:18:06.81 jyU6y3CY0.net
わけわからん
610:デフォルトの名無しさん
22/11/02 22:20:05.72 yCeW62XuM.net
pythonの辞書ってc++のmapと違って内部でソートされてないからアクセス遅いっぽいんだよね
keysで取り出しても登録した順だし
文字列でも数値でもキーにできるからそういうものなのか
611:デフォルトの名無しさん
22/11/02 22:50:50.14 rAnbDRgM0.net
>>595
最後尾への追加削除がO(1)だったからリンクリストだと思ったけど
リアロケートの実装でどうにかそれっぽくなるんだねぇ
全く気にしてなかったけど、勉強になったわ
612:デフォルトの名無しさん
22/11/02 22:58:46.37 P6hHm0TD0.net
ループで一つずつappendしていくようなコードは、
溜めておいて一気にどーんで高速化できそう
613:デフォルトの名無しさん
22/11/02 23:13:03.99 Vdzb0Lkj0.net
Elixir なんて片方向リストだから、先頭の要素の追加・削除のみ速い。
末尾では全要素をたどる
Ruby は両方向リストだったかな?
614:デフォルトの名無しさん
22/11/02 23:41:13.42 d827SSNz0.net
>>603
pythonの辞書は順番を保持することが仕様で規定されてる
615:デフォルトの名無しさん
22/11/03 00:20:58.38 gcHdWorI0.net
3年くらい前からだっけ?
キーバリューやから順番気にしたことなかったわ
616:デフォルトの名無しさん
22/11/03 00:37:59.14 vWeFXHff0.net
順番が同じだとセキュリティの問題があるから意図的にランダムにしてなかったっけ
617:デフォルトの名無しさん
22/11/03 00:45:24.21 9oLRzF140.net
>>604
C++のvectorとか、JavaのArrayListの典型的な実装だと、リアロケートが発生するときに倍ぐらいの領域を予め確保しておく、ってのが普通って読んだな
コードレベルで読んだ訳じゃないから確たるエビデンスがあるわけじゃないけど。
618:デフォルトの名無しさん
22/11/03 00:49:20.51 9oLRzF140.net
辞書は3.5だかそのぐらいで入れた順になるように仕様が決まったよね
それまではバラバラだったはず
あとソート済みが欲しいならsortedcollectionsがあるんじゃないの
Pythonでパフォーマンス気にするようなコード書いたことないから速くなるかは知らないが
パフォーマンス気になるならもう普通にpybind11よ
619:デフォルトの名無しさん
22/11/03 01:13:09.17 t2qUW0n10.net
動的配列は償却計算量の典型例だぞ
620:デフォルトの名無しさん
22/11/03 09:06:43.51 b87ZSO0X0.net
半島人w
621:デフォルトの名無しさん
22/11/03 13:19:41.92 M31+WIXk0.net
ネトウヨはコードすら書けない
622:デフォルトの名無しさん
22/11/03 17:39:13.22 JzcJhjtx0.net
isPrime(n: int):
__for i in range(2, n//2 + 1):
____if (not n%i):
______return 0
__return 1
numPrimes = 0
for i in range(2, 250001):
__numPrimes += isPrime(i)
print(numPrimes)
cとかだと5秒以下で終わると思うんですが
pythonではどうやって高速化できますか?
623:デフォルトの名無しさん
22/11/03 17:50:53.27 6cc1wOit0.net
全角スペースでインデントするといい
624:デフォルトの名無しさん
22/11/03 17:57:37.28 t2qUW0n10.net
エラトステネスの篩みたいなまともなアルゴリズムを使え
625:デフォルトの名無しさん
22/11/03 18:05:57.27 pngFKRCN0.net
>>615
range(2, n//2 + 1) を range(2, int(n**0.5)+1)
にするだけで速くなると言うのは違うか。
n**0.5 は math を import するのが面倒だっただけ。。。
626:デフォルトの名無しさん
22/11/03 18:12:13.51 Tny9BBIXa.net
しょーもないネタ振り
627:デフォルトの名無しさん
22/11/03 18:58:51.96 Ppt07bQPH.net
>>617
言語間の速度差を埋めたいという文脈で
片方により効率的なアルゴリズム使えというのは筋が違うと思う
それやったら相手のCも早くなるやん
628:デフォルトの名無しさん
22/11/03 19:15:26.76 t2qUW0n10.net
それはそうだけどPythonをできるだけ速くしようというのは徒労に終わるんだよな
629:デフォルトの名無しさん
22/11/03 19:17:29.83 5fumPTTR6.net
>>615
allかanyか使う
630:デフォルトの名無しさん
22/11/03 19:45:13.49 NbsIPyEs0.net
>>620
> 言語間の速度差を埋めたいという文脈で
そうか、単にPythonで高速化したいだけに見えるけど?
> pythonではどうやって高速化できますか?
631:デフォルトの名無しさん
22/11/03 20:09:45.07 6A5YXZlC0.net
>>615
sympy.isprime()
632:デフォルトの名無しさん
22/11/03 20:13:41.27 6A5YXZlC0.net
>>615
そもそもこのプログラムは一行で済む
print(sympy.primepi(250001))
633:デフォルトの名無しさん
22/11/03 20:16:42.18 gDosIilW0.net
SymPy無いさー
634:デフォルトの名無しさん
22/11/03 22:42:51.75 qK/YTuYk0.net
Numpyさぁ
635:デフォルトの名無しさん
22/11/04 11:06:17.40 RgN4dMLC0.net
公式のドキュメント読むと
「pip は推奨されるインストーラ・プログラムです。 Python 3.4 からは、 Python バイナリ・インストーラに最初から付属するようになりました。」
とか見るけど、触る環境どれも最初からインストールされてた試しがなくて手動インストールばっかなんだが
636:デフォルトの名無しさん
22/11/04 11:16:46.46 +Vzk9d850.net
>>628
どこのバイナリインストーラ使ってるの?
637:デフォルトの名無しさん
22/11/04 11:23:08.55 eh042CP4a.net
>>628
たぶん入ってるけど実行ファイルのパスが通ってないんだよ
638:デフォルトの名無しさん
22/11/04 11:26:42.20 iSP9CUI40.net
debianとかはOSのスクリプトを実行するための環境なので
最小限になるようパッケージが分かれている
不便にみえるけどユーザが使う場合はパッケージ外で導入した方が
特定のバージョンも好きにえらべてシンプル
639:デフォルトの名無しさん
22/11/04 13:14:21.89 xdVLdIYL0.net
npm/yarn, Ruby のbundler などは、デフォルトでコマンド実行できるけど
多分これらは、デフォルトで環境変数PATH にあるフォルダにインストールされるのだろう
640:デフォルトの名無しさん (ブーイモ MMdd-uk66)
22/11/04 19:16:21.95 7+yqrzWjM.net
>>628
python -m pipするのが安全やで(pipコマンドだと、複数バージョン入ってると意図したpythonに紐づいてないpipが実行される場合がある)
641:デフォルトの名無しさん
22/11/05 21:26:42.31 MH3sXGrP0.net
pythonつかって紙に書いた文字判別するとかって簡単にできますか?
642:デフォルトの名無しさん
22/11/05 21:34:23.73 7lAZ3AaJ0.net
簡単だけど有料
643:デフォルトの名無しさん
22/11/05 21:51:22.37 MH3sXGrP0.net
>>635
無料のライブラリなんかありませんかね?無いんなら諦めます
644:デフォルトの名無しさん
22/11/05 21:58:26.55 yxkEcNx60.net
>>634
判別とはどういうことをしたいのかよくわからんけどとりあえず python ocr とかでぐぐればいいんじゃね?
URLリンク(gammasoft.jp)
645:デフォルトの名無しさん
22/11/05 21:58:41.35 j6cTC8iG0.net
自分で無料ライブラリーを作る、しか
646:デフォルトの名無しさん
22/11/05 22:07:24.17 MH3sXGrP0.net
>>637
ありがとうございます!
647:デフォルトの名無しさん (ワッチョイ d204-ocuO)
22/11/06 18:38:56.63 hWJeexFN0.net
pythonでなんかかっこいいことがしたいです
でもやることが見つかりません。どうしたらいいですかね
今までポイントサイトをseleniumで自動化したりdiscordのbot作ったり動画編集自動化したりしてきたんですが先というか続きが見えません
648:デフォルトの名無しさん
22/11/06 19:03:47.89 tSvQZNnX0.net
PyPIザッピングして良さそうなモジュールみつけてかっこいい応用を書く
649:デフォルトの名無しさん
22/11/06 19:05:44.66 A20KyXoS0.net
ラズパイでIoT
リアルの物を動かせると、やれる事の幅が広がるよ
650:デフォルトの名無しさん
22/11/06 19:13:43.26 hyDfi3PG0.net
>>640
壁に落書きしてくるのがかっこいいと思ってるんなら大間違いだわw
651:デフォルトの名無しさん
22/11/06 21:07:15.95 hWJeexFN0.net
PyPIで良さそうなモジュール見つけるってどうやるの?
PyPI サイト見てtrend moduleみたいなの適当に選んで説明見ても詳しい使い方がわからない
652:デフォルトの名無しさん
22/11/06 21:15:54.96 2BZA6H+N0.net
電子工作もそうだけど、環境は整いすぎに整ってて、やりたいことがあれば何でもすぐにできる
でもやりたいことが見つからない
さてはみんな環境を整えることを目的にしているな
653:デフォルトの名無しさん
22/11/07 06:48:18.34 E9VDXcWoM.net
アホな質問だな~
まずやりたいことがあって、それからツールを探すものだろ
654:デフォルトの名無しさん
22/11/07 08:02:58.71 jFHCFA25a.net
その通りだけどやりたいことが見つからないんだわ
もしかすると勉強からの逃避のためにプログラミングという逃げ場を作りたいのかもしれない。やりたいことが自然と出てきたらやることにするよ
655:デフォルトの名無しさん
22/11/07 08:09:59.84 nVmoLWqcM.net
遠回りの人生それも人生
656:デフォルトの名無しさん
22/11/07 10:49:11.04 vghVm0yU0.net
巨大数の実数計算は最先端だぞ。
657:デフォルトの名無しさん
22/11/07 14:36:29.74 ns7213lX0.net
>>634
EasyOCR は?
pytorch必須だが
658:デフォルトの名無しさん
22/11/07 14:48:18.41 a5k3bCTy0.net
使い物になるOCRはみんなAIで有料なんだよな
客はDXしたい企業だから高い
659:デフォルトの名無しさん
22/11/07 15:15:22.15 dmSTAQ160.net
料金みたことある?業務で考えたらめちゃ安いとおもうが
660:デフォルトの名無しさん
22/11/07 15:26:05.72 kmERiYaX0.net
有料OCR知ってる俺スゲー君なんて相手にすんなよ...
661:デフォルトの名無しさん
22/11/07 15:26:54.13 a5k3bCTy0.net
OCRしたい書類なんて有限だから、あらかた終わったら需要が無くなる
そしたらgoogle様が無料開放してくれる筈
662:デフォルトの名無しさん
22/11/07 15:41:01.53 rtBnyCPM0.net
Pythonが「メインの利用言語」で2位にとどまる、1位に立ったのは定番のあの言語
URLリンク(xtech.nikkei.com)
663:デフォルトの名無しさん
22/11/07 15:51:46.76 a5k3bCTy0.net
AIだから教育が必須で、それなりにコストがかかる
こんなもんは公共事業で、どこかが代表してやって、コスト回収できたら無料化する
各国で自分のとこの言語についてやるのが筋だけど、
どうせ日本はやらないのでgoogleがやる
664:デフォルトの名無しさん
22/11/07 16:22:49.11 a5k3bCTy0.net
似たようなので、音声からテキストへの変換も金かかる
あれが無料で出来たら過去の膨大な音声や動画の資料が検索したり分析可能になって、
文化が大きく前進するだろうに金がブレーキかけてる
国の事業としてやれば一人頭の負担なんて微々たるものなのに
665:デフォルトの名無しさん
22/11/07 16:28:42.14 ns7213lX0.net
この夏whisperが公開されたやろ?
666:デフォルトの名無しさん
22/11/07 16:32:21.66 a5k3bCTy0.net
そんなのあったのか
マスク様々やな
667:デフォルトの名無しさん
22/11/07 16:46:46.72 6QND4EcV0.net
>>655
Rubyオワコン
668:デフォルトの名無しさん
22/11/07 21:52:40.91 J6xutGri0.net
>>657
つまり文字起こし言いたいんだろ?
なんかクソ認識悪いAPIだったら何かあった気がする
669:デフォルトの名無しさん
22/11/08 10:16:17.14 gvBOR9qA0.net
半島系帰化人は強姦魔ばかり
死ねよクズ帰化人!
670:デフォルトの名無しさん
22/11/08 11:03:03.92 NJ3yWFAyM.net
何でこのスレで暴れてるんだよ
671:デフォルトの名無しさん
22/11/08 11:17:25.58 Z/fTsurM0.net
壊れちゃったんだろ
672:デフォルトの名無しさん
22/11/08 14:10:32.60 SId0EMb3a.net
ランダムに書き込んでるbotだよ
673:デフォルトの名無しさん
22/11/08 19:27:53.62 h+Zmgne00.net
有料と言ってもgoogleAPIってかなり安いと思うんだけど
手持ちの本数十冊OCRして1,000円いかなかった気がする
674:デフォルトの名無しさん
22/11/09 17:03:12.36 a7tugATP0.net
某有名ゲーム会社で働いてる友人が、「Pythonではあまりクラスを使うべきではない。
それほど高度なプログラムでなければ関数を使えばいい」と言っていたんですが、
そうなんでしょうか?
皆さんの意見を聞かせて頂きたいです
675:デフォルトの名無しさん
22/11/09 17:08:46.66 F89FAkjE0.net
関数でできればいいけど、引数たくさん渡したり、グローバル変数で渡してたり、
みたいな汚いことするくらいならクラスがいい
676:デフォルトの名無しさん
22/11/09 17:30:19.69 PaG6ZUsK0.net
Javaのようになんでもかんでもクラスを作る感じじゃないというのは事実。
でも、dataclassとかnamedtupleとかは使うかな。
とはいえやることによると思う。
677:デフォルトの名無しさん
22/11/09 17:30:52.94 ugvw1ns9a.net
状態を持つオブジェクトを扱うならクラスは必然なのでは
678:デフォルトの名無しさん
22/11/09 18:12:18.95 uDSXzENKM.net
pythonはメンバ変数にself必須なのがダルい
メインプログラムまでクラス化する必要はないと思う
規模が小さければモジュール変数をグローバル変数のように使うのが便利
vscodeならインテリセンス利くし
679:デフォルトの名無しさん
22/11/09 18:40:16.27 cOB3Ubn30.net
>>667
プログラム水準(?)の高低でなく、実行速度の遅速でそう�
680:セわれるのを聞いたことはある。大昔ね。 事実かは知らぬ。
681:デフォルトの名無しさん
22/11/09 18:59:13.95 2JAkKfpeM.net
>>667
使うべきでない理由をなぜ聞かなかったのか?
それを書けば話は終わる
君の友人ほどスキルのある人はここにはいないからな
682:デフォルトの名無しさん
22/11/09 20:24:05.09 FPtq7UfL0.net
>>667
必要になるまで不要なもので汚すな
シンプルに書けってことかと
683:デフォルトの名無しさん
22/11/09 20:51:46.35 yZGUhxlRM.net
>>671
だなselfを二文字くらいの別名に出来ないのかな?
684:デフォルトの名無しさん
22/11/09 20:56:49.26 F89FAkjE0.net
perlから来たからselfは当たり前だと思ってる
685:デフォルトの名無しさん
22/11/09 21:06:27.04 EoOj57gu0.net
開発者間で同意取れるなら
ただの関数の引数だから好きに変えられはする
686:デフォルトの名無しさん
22/11/09 21:10:50.26 5c+x4O200.net
>>667
理由を示さないお作法は無視していい
687:デフォルトの名無しさん
22/11/09 21:21:40.38 uDSXzENKM.net
グローバル変数用のファイルを作ってas gでインポートってのをqiitaで見たけどかなり便利
g.nameみたいにアクセスする
688:デフォルトの名無しさん
22/11/09 21:30:42.42 F89FAkjE0.net
それは他に影響しないというだけで、グローバル変数の欠点は何も解決しない
作って使ってすぐ捨てるならいいけど、保守が必要なら時間かけてシンプルにしとかないと
689:デフォルトの名無しさん
22/11/09 21:48:48.07 dM0Gb0+w6.net
>>675
すればいいじゃん
690:デフォルトの名無しさん
22/11/09 21:57:03.34 uDSXzENKM.net
グローバル変数はプログラム全体を通した設定値とかに使うもんじゃない?
それこそメインプログラムにとってのselfよ
変に引数取りまくるより可読性高いと思う
規模にもよるんだろうけど
691:デフォルトの名無しさん
22/11/09 22:03:03.05 F89FAkjE0.net
configを読んでグローバルに格納してmain()を呼ぶ
みたいな作りになってるのが多い
うちのスクリプト
692:デフォルトの名無しさん
22/11/09 22:10:05.03 EoOj57gu0.net
設定値の保持ならぜんぜんOK
状態を丸見えで管理できないとこに置くなってことでしょ
693:デフォルトの名無しさん
22/11/09 22:13:24.86 F89FAkjE0.net
関数の中に下請け関数があって、
なんかごちゃごちゃしてきたからリファクタリングだと外に出したらスコープから外れたので、
じゃあみんなグローバル化したれ、みたいにglobal付けて誤魔化す
694:デフォルトの名無しさん
22/11/09 22:23:48.43 dM0Gb0+w6.net
せめてconst できればいいのに
695:デフォルトの名無しさん
22/11/09 23:03:08.26 a3eCQ+jX0.net
>>667
どうせ、いたずらにclassを多用したゴミトランプゲームを
見せたんだろ?いつまでも練習だからって言って、設計もしないで
ゴミコードを見せ続けるから嫌われかけてるんだよ。
696:デフォルトの名無しさん
22/11/10 00:21:13.04 8bOle1Do0.net
クラス化するのは、言語のタイプやプロジェクトの規模ではなくて
データ同士の相関を元に、見通しをよくすることが目的だと思う
あるいは自分用ライブラリとしてカプセル化しておきたいとか
そういう話を置いて、やらない方がいいレベルの問題があるのかw
697:デフォルトの名無しさん
22/11/10 00:21:46.71 a0I25TkAM.net
>>667
理由を示せないお作法は取るべきでない
698:デフォルトの名無しさん
22/11/10 00:24:11.32 KkTOa1Su0.net
>>667
おまいは友人に言われた事を何でも信じるのか?
この洗剤飲めるの。by アム・○○ぃ
699:デフォルトの名無しさん
22/11/10 00:27:36.22 OBeQnBIU0.net
匿名掲示板で聞いて得た答えを信じるというのもどうかと思う
700:687
22/11/10 00:32:26.74 ofaAiG0L0.net
レスしてくれた皆さんありがとうございます
参考にさせて頂きたいと思います
>>669
CUIの簡単なカードゲームではどうでしょうか?
>>673
失礼しました
曰く「クラスを下手に使わない方がコードが無駄に複雑にならなくてよい」
からだそうです
>>674
まさにそんな感じです
>>678
ちょっと彼に悪いかなって…
>>687
ゴミときたもんだ
彼の人柄はそんな感じじゃないよ
701:デフォルトの名無しさん
22/11/10 10:45:10.57 S46ME7RY0.net
ねえ、openpyxlとかでオンライン上のExcelファイルを修正できないの?
702:デフォルトの名無しさん
22/11/10 10:49:29.30 +lvrwnnZ0.net
どこかのクラウド(どこ?)に置いたファイルの意味なのか
Office365で作成したファイルなのか
703:デフォルトの名無しさん
22/11/10 11:02:13.25 ci7p4+PJa.net
どっちにしても手元に持ってこないと厳しいんじゃないかねえ
704:デフォルトの名無しさん
22/11/10 11:46:55.13 rDE3wZvsM.net
関数とクラス両方使えるのがpythonのメリットなのだから、常に適切な方を選べってことじゃないかと。
705:デフォルトの名無しさん
22/11/10 11:47:43.94 rDE3wZvsM.net
>>675
好きな名前をつけていいのよ。meとか
706:デフォルトの名無しさん
22/11/10 13:09:31.60 ci7p4+PJa.net
abcを使わないとできんことはあまりやりたくないねえ
707:デフォルトの名無しさん
22/11/10 13:26:04.03 tUNuHkwK0.net
abcは知ってても
708:デフォルトの名無しさん
22/11/10 13:50:13.84 99QPf7Vaa.net
>>696
> 関数とクラス両方使えるのがpythonのメリットなのだから、常に適切な方を選べってことじゃないかと。
なら初めからそう言えや
まあそう言われたら適切な方の決め方について小一時間は問い詰めたいけどなw
709:デフォルトの名無しさん
22/11/10 15:41:21.49 avJI0YX/0.net
>>693
teamsで出来るぞ
710:デフォルトの名無しさん (アウアウウー Sacd-obsI)
22/11/10 16:33:33.24 99QPf7Vaa.net
>>701
マジで?
やり方教えて
711:デフォルトの名無しさん (ワッチョイ 09f0-Z1Pq)
22/11/10 16:41:09.55 avJI0YX/0.net
>>702
teamsに申し込んでoffice365に申し込めばクラウド上でエクセルが使えます
712:デフォルトの名無しさん
22/11/10 17:38:31.76 aw2UCTg8M.net
>>692
カードゲームならカードクラスは作ったほうがよさそう。
あとはカードゲームのルールによる。
713:デフォルトの名無しさん
22/11/10 18:14:06.31 y5PDmjdo0.net
>>704
687が戒めたいのがまさに724みたいな馬鹿野郎なんだろうな。
目的と手段が入れ替わってclass考えて作るのに必死になる馬鹿。
714:デフォルトの名無しさん
22/11/10 18:34:12.90 RApG3JqD0.net
カードクラス作ってもいいけど、同じカードが存在しない、記号4つと数字1~13の組み合わせの
ものにクラスがいちいちいるかな。
カードクラスはカード1枚を表して、なにができればいいんだ?
記号クラスがあって、各記号クラスがあって、ナンバークラスがあって、
is_MarkMatchとかis_NumberMatchとかもってんの?
idとprintがあればいいのかな。まあいいけど、そんだけのために
classいちいち用意するのめんどくない?
複数枚のカードを扱うcardsクラスなのかな?機能はいろいろ持てそうだけど
ゲーム固有すぎてどうなのかな?
715:デフォルトの名無しさん
22/11/10 19:12:07.27 /sng0JalM.net
可読性考えるとクラスのほうが良いわな
自分だけが使うなら好きに作ればいい
716:デフォルトの名無しさん
22/11/10 19:17:47.15 tUNuHkwK0.net
自分だけが使う場合でも後々困る
読みにくくていいのは再利用しないと判ってる場合
717:デフォルトの名無しさん
22/11/10 19:47:31.93 eS5awfmL0.net
>>705
689だが、トランプはクラスを作った方が(少なくともnamedtuple,dataclass)便利だと思うぞ
>>706
記号クラス、番号クラスなんて作らない
記号はenum、番号はそのまま1~13でいい
が、どの記号が黒だ赤だ、どの番号が絵柄か(JQKA)
みたいなのはたとえインスタンスが一個でもメソッドになってた方が便利だと思うけどなあ。
カードは内部表現とUI上の表現が異なるのが自然だし、そういう意味でもクラスにしておくのは悪くないと思うが
クラスにしすぎてもしょうがないというのは、ゲームのルールをクラスにして共通のインタフェース持たせて、バリエーションを切り替えられるようにしても大抵は仕方ないみたいなことだよ
もちろん、どんなゲームシステムを作るかによるし、ルールを共通インタフェースで入れ替えられるようにするメリットがある場合もあるけど
718:デフォルトの名無しさん
22/11/10 20:15:59.37 1wmpgP/ea.net
>>706
ちょっと発想が変だよ
719:デフォルトの名無しさん
22/11/10 20:18:11.54 TQxJo3Q4M.net
全てユースケース次第じゃね
13×4のブール配列で持っていたほうが都合がよい場合もあるだろうし
720:デフォルトの名無しさん
22/11/10 21:05:35.45 tUNuHkwK0.net
とりあえず作って、必要に応じてリファクタリングしていけばいい
721:デフォルトの名無しさん
22/11/10 22:35:47.17 SvDTIviz0.net
カード型のインスタンスを生成するデッキクラスを作りたいやん
deck.suffle()
hands = deck.draw(5)
みたいなさあ
あとは各ゲームで処理つくろ
722:デフォルトの名無しさん
22/11/10 22:41:30.18 tUNuHkwK0.net
カードのリストでよくね
723:687
22/11/10 23:28:06.08 ofaAiG0L0.net
多くのレスを頂き、ありがたく思います
ちょっと自己顕示欲が強い気もしますが、俺のGitHubを公開させて頂くので、
よろしければご覧下さい
URLリンク(github.com)
のblackjack_3.pyがそれです
これでもクラス使わないで書けるのかな…
724:デフォルトの名無しさん
22/11/11 00:15:20.89 ajyQllPs0.net
力作だね
友人のアドバイスは痛いほどよく分かる
クラス云々よりも「ここからメインの処理」以降の各処理を関数にまとめるほうがずっと大事だよ
725:デフォルトの名無しさん
22/11/11 00:21:32.63 gNt5qX/T0.net
1関数がでけえ
ということを言いたかったんだろう
726:デフォルトの名無しさん
22/11/11 00:23:24.86 Zi2NVkwv0.net
マサくん
727:デフォルトの名無しさん
22/11/11 00:52:49.95 5ErmYwLs0.net
何のためにでっかい関数の中にクラス作るのか分からん
この設計センスなら友人のアドバイスは正しいな
728:デフォルトの名無しさん
22/11/11 00:55:17.73 n0j9oGtca.net
blackjackで囲むのって意味あんのかね
729:687
22/11/11 01:14:49.41 9Wk/PRlY0.net
レスありがとうございます
>>688
クラス使った方が見通し良くなりますよね?
スッキリJavaにもそう書いてありました(Pythonの本ではないですが)
>>689
複雑にならない方がいいからだそうです
>>690
ええ、ですので皆さんの意見をお聞きしたんです
>>691
うーん、明らかにプロと思われる方の書き込みもありますし、
信じられるレスはあると思います
>>696
ただ彼の主張では、なるべくクラスは使うな、ということでした
Javaを独習した経験がある俺からすると、少し疑問符が付くのです
730:デフォルトの名無しさん
22/11/11 01:21:10.00 n0j9oGtca.net
クソクラスをクソと認識できるためにもそれなりの能力が要るからね
731:687
22/11/11 01:28:18.01 9Wk/PRlY0.net
>>704
そうですよね
カードのクラス作りました
>>706
複数枚のカードを持つCardクラスです
ブラックジャックなので、A・J・Q・Kの値は別に決める必要があります
>>707
可読性は重視したいです
>>716
そう言って頂けると大変ありがたいです
やっぱりそこは1つの関数にまとめた方がいいんですね
>>717-720
それも友人に、グローバル変数は少なければ少ないほどいい、と言われたのを
受けてのことです
732:デフォルトの名無しさん
22/11/11 01:39:45.03 tK9Svk7P0.net
>>715
ざっと見た感じ、そりゃ色々言われるわ
クラス云々言ってるのに、blackjackっていうデカい関数の中にクラス切ってる時点で吹いたわ
あとクラスの役割分担というか、所属してる関数もおかしく感じるわ
プレイヤークラスっていう名前なのに、にルール関係のスコア計算、バースト判定とかが入ってるし
それこそblackjackのルールを管理をするクラスを作る方が自然だべ
あともうし自分で書くとしたら、ルールクラスにis_winっていう関数作って、そこで勝利判定してtrue/falseで返すわ
最後に全パターンで人間/CPUに対して勝利判定かけてるけど、参加プレイヤー/CPUが増えた時の勝利判定の実装とか
これベースだと面倒だろうなって思った
733:デフォルトの名無しさん
22/11/11 01:43:33.89 tK9Svk7P0.net
>>723
>グローバル変数は少なければ少ないほどいい
これはまず変数のスコープは狭い方が良い、っていう話だぞ
(グローバル変数だとそれこそスコープが広くてどこで書き変わるのかが不明瞭になるから、なるべく使うなって言われてる)
バカデカい関数を作るって何の解決にもなってねえwwwwwww
734:デフォルトの名無しさん
22/11/11 05:10:58.43 dIH3TsNBM.net
使い回さないのに関数化やクラス化する意味ってあるんだろうか
735:デフォルトの名無しさん
22/11/11 06:45:32.82 fLgBQpEC0.net
is_<動詞> ってたまに見るけどどこかで流行ってるの?
736:デフォルトの名無しさん
22/11/11 07:35:28.77 BuWtLPbxM.net
>>726
この業界には、「一処理は100行に収めるべし」という格言があってな
つまり100行以上の処理があったら、100行以内にぶった切って関数にして順次呼ぶべしってことなんだよ
理由は知らん
737:デフォルトの名無しさん
22/11/11 08:51:38.78 QYmFVFm/a.net
まあ分割っていうか処理に名前つけろやって感じだな
抽象的に書こう
738:デフォルトの名無しさん (ワッチョイ 7247-GkOZ)
22/11/11 09:56:03.89 gNt5qX/T0.net
でかい関数はあれもやってこれもやってになってるから、
それを機能毎に分割すればいいだけ
1箇所からしか呼ばれない関数がいくつもできるけど、それは問題ない
うまく作ってあれば、関数の戻り値を次の関数に渡すだけ、みたいなシンプルな構造に自然となる
それぞれの機能が変数をいろいろ共有していて切り分けられなかったら、元々の書き方が悪い
739:デフォルトの名無しさん (ワッチョイ 927e-THRA)
22/11/11 10:26:37.58 XH1qJoq+0.net
pythonではクラスをあまり作らないほうがいい、じゃなくて
お前にクラスは百年早い、って言いたかったんだろその友人は。
碌に関数も作れないのだからクラスなんて無用の長物。
740:デフォルトの名無しさん (ワッチョイ 9263-zlm6)
22/11/11 10:31:34.23 PAETAgDl0.net
昔、関数ごとに仕様書作成が必要な現場があって、それを嫌って
ほとんどの関数が200行を超えるサイズで書かれる様になった
741:デフォルトの名無しさん (ワッチョイ 7247-GkOZ)
22/11/11 11:00:27.63 gNt5qX/T0.net
テストができんやろ
742:デフォルトの名無しさん (ワントンキン MM62-76so)
22/11/11 11:32:04.24 dIH3TsNBM.net
文書をアウトライン化するような感じで使うのね
メンテのときに不要な部分を読み飛ばせるのがメリットか
743:デフォルトの名無しさん (ワッチョイ 36a6-BGGY)
22/11/11 11:49:07.64 VSBKZoKf0.net
何か楽をするためのプログラムを作るのはいけるけど、
サイトの仕様変更で動かなくなったときの修正が苦痛だな、、
そのまま放置になりがち、、
744:デフォルトの名無しさん
22/11/11 11:59:14.38 gNt5qX/T0.net
スクレイピングはそのうち廃れる気がする
元データがあって人間用に加工して表示したものをまた元データに戻さなくても、
最初から元データで公開した方がお互い楽なことに気づき始めた
745:デフォルトの名無しさん
22/11/11 12:00:41.38 L/uUC/Rw0.net
C++でキー処理が数百行で、しかもファンクションキー毎に少しづつ違う
という構成のものを改修させれて辟易したことある
もしや、行数で成果が評価される現場だったのか
746:デフォルトの名無しさん
22/11/11 13:05:05.34 XH1qJoq+0.net
>>736
人間向けのHTMLを解析すれば無料なのにAPI経由は有料ってのも多いしな。
747:デフォルトの名無しさん
22/11/11 13:20:52.45 wT5HNNmtr.net
Python勉強してるけどどうやって初心者の粋を超えたらいいのかが分からない
何か作りたいけどその何かが思い浮かばないし
自動で巡回してエロビDLするとか電子書籍自動でスクショとかできるんだっけ?
748:デフォルトの名無しさん
22/11/11 13:23:31.34 RyfBFStrM.net
やってから聞けばいいのに
749:デフォルトの名無しさん
22/11/11 14:22:12.06 Pyb1B8zp0.net
>>739
早速思い浮かんでるじゃん
誰かができないと言うからやらないというなら何の勉強にもならない
明確な目的が無く勉強自体が目的なら機能しないゴミしか作れなくても意味があるし思い浮かんだもの全部作ればいい
750:デフォルトの名無しさん
22/11/11 14:23:36.91 JQ5LhQOs0.net
>>736
もしかして、APIが存在しない世界から来た方ですか?
751:デフォルトの名無しさん
22/11/11 14:29:46.62 JQ5LhQOs0.net
別に既にあるものでも構わないから、何か作りたいというモチベーションがある内に色んなものを作った方がいい
独学は特に大事
752:デフォルトの名無しさん
22/11/11 14:34:12.48 JQ5LhQOs0.net
途中で奥ちゃった
そしたら、次に何か新しいもの作りたくなった時に何が足りないか自分で調べられるぐらいにはなってると思う
753:デフォルトの名無しさん
22/11/11 15:20:48.12 KvbVlUc20.net
奥り人なんだな
754:デフォルトの名無しさん
22/11/11 19:48:45.92 acI+Bjnd0.net
クラスを設計するのはものすごく難しい
作り始めないとわからないことも多いし
途中で仕様が変わったりしたら
簡単に破綻する
大きなプロジェクトでは
途中でクラス構成を変えることは
困難なので
しばしば大変なことになる
755:デフォルトの名無しさん
22/11/11 21:01:39.50 BuWtLPbxM.net
>>739
この前も同じこと言ってる人がいたよ
作りたいものがないのでなんかアイディアないですかって
まず、何のためにPythonを勉強しているのか聞きたい
普通は作りたいものがあったり、仕事だから、課題だからという
動機があるはずなんだ
動機もなく身に着けられるものじゃないよ。プログラミングは一応専
756:門技能だから
757:デフォルトの名無しさん
22/11/11 21:43:58.80 zIrG+C10M.net
自分探しして働かない奴と同じだよな
758:デフォルトの名無しさん
22/11/11 21:51:56.55 7hjsWVqY0.net
>>746
最初から完璧な要件・設計で開発なんて不可能だから
途中で構成変わる前提で組み立てるんだよ
クラスに限った話じゃないけど
759:デフォルトの名無しさん
22/11/11 22:08:17.04 dIH3TsNBM.net
インスピレーションを得るなら多くの作品に触れることでしょ
760:デフォルトの名無しさん
22/11/11 22:16:07.93 PAETAgDl0.net
プログラムやりたいと思った動機ってそれぞれあるだろう
761:デフォルトの名無しさん
22/11/11 22:26:55.54 6yLWq/6IM.net
ズボラほど上達が早いように思う
やりたくないことは全部コンピュータにやらせたい
762:デフォルトの名無しさん
22/11/11 23:18:07.02 ywa4HP4la.net
現実は必死に努力してQiitaにちょっとやってみたーみたいなこと書いてるやつばっかりだけどな
763:デフォルトの名無しさん
22/11/11 23:19:39.80 ywa4HP4la.net
部品の置き換えが利くってのは完璧なプログラムとほとんど同義だね
具体的にねっちょりと書くしか無いこともあるけど
764:デフォルトの名無しさん
22/11/12 11:00:15.35 jZf8/3In0.net
質問です。
これをヘッドレスモードで動かしたいのですがどうするといいでしょうか?
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
browesr = webdriver.Chrome(ChromeDriverManager().install())
765:デフォルトの名無しさん (ワッチョイ 2389-UXd1)
22/11/12 11:41:37.67 jZf8/3In0.net
すいません。
解決しました。
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--headless')
browesr = webdriver.Chrome(ChromeDriverManager().install(), options=options)
browesr.quit()
766:デフォルトの名無しさん
22/11/12 13:03:04.39 FJxDQgNh0.net
ちゃんと終わってる筈なのにタスクマネージャに残るんだよな
767:デフォルトの名無しさん
22/11/12 14:06:44.73 QoJFyqg+0.net
async関数の終了を2箇所で待つ方法は無いですか?
普通にawaitを2回使うと既にawaitedした処理だぜってエラーが出ます。
768:デフォルトの名無しさん
22/11/12 14:23:25.37 ToW7pe8/0.net
答えは持ち合わせてないけど同じことを考えたことあるな
769:デフォルトの名無しさん
22/11/12 14:24:45.91 T1+EK47n0.net
エラーなんか無視する
770:デフォルトの名無しさん
22/11/12 15:22:28.94 QoJFyqg+0.net
>>760
エラー握り潰しても、肝心な処理待ちが出来ないので駄目です。
771:デフォルトの名無しさん
22/11/12 15:46:37.70 AXYSbt7W0.net
メモ化する関数でラップ
頻発するならデコレータ書く
772:デフォルトの名無しさん
22/11/12 15:58:01.40 pkT2sKDg0.net
>>736
廃れないよ。Webって広告で成り立っている基本人間向けの情報発信ツールなんだから、人間向けのデータ(文章とかね)のスクレイピングは依然として残る。
APIは有料というのは広告収入につながらないから割と当たり前の話で。
利益を目的としないデータ公開はオープンデータ化していくだろうけれど、そういうのって政府や自治体のデータ公開、大学などぐらいしか基本的にはないだろう。
773:デフォルトの名無しさん
22/11/12 15:59:27.93 QoJFyqg+0.net
>>762
メモ化だと結果は再利用できますが、同時に待つことができないように思います。
774:デフォルトの名無しさん
22/11/12 16:11:11.71 2L2Z04CZ0.net
>>758
task = asyncio.create_task(async_fn())
result = await task
result = await task
775:デフォルトの名無しさん
22/11/12 17:58:24.29 QoJFyqg+0.net
>>765
うまく行きました! ありがとうございます!
TaskというのがJavaScriptのPromiseみたいな事してくれるんですね!
776:デフォルトの名無しさん
22/11/13 15:06:45.34 mAjRS9pi0.net
なんでOpenCVはちょっとしたことでぶっ壊れるんですか?
777:デフォルトの名無しさん
22/11/13 19:56:00.79 S7gZHHW/.net
_max=7
_min=3
a=2
if a>_max:
a=_max
elif a<_min:
a=_min
print(a)
これってもっとスマートに書けませんでしたっけ
778:デフォルトの名無しさん
22/11/13 20:10:07.19 S7gZHHW/.net
ちなみに0を含む自然数で
range(_min,_max,1)
です
これの範囲外は判定できるのですが
_minより小さく外したのか、_maxより大きく外したのか
って一行で短く書けなかったかな、と。
記憶違いかもしれません、無かったような気がしてきました
779:デフォルトの名無しさん
22/11/13 20:12:10.16 cgKyROyF0.net
a=max(min(a,_max),_min)
780:デフォルトの名無しさん
22/11/13 20:16:44.58 S7gZHHW/.net
>>770
できました!!
そうですこれです!
_max=7
_min=3
for i in range(10):
print(i,max(min(i,_max),_min))
ありがとうございます!!
781:デフォルトの名無しさん
22/11/13 20:31:52.48 J0JT7kUN0.net
>>767
それ依存関係が壊れてるからじゃね?
782:デフォルトの名無しさん
22/11/13 20:32:48.89 xH4HHaxN0.net
最近excelで、答えがマイナスなら0にする、という処理がめんどくさいと思ったけど、
max(0,x)でシンプルに書けた
783:デフォルトの名無しさん
22/11/13 20:47:55.89 ZI0YVyVbM.net
>>770は一見何をやっているのか、やりたいのかわからんし
メンテナンス性が悪そうだ
>>768の方はわかるし改造しやすい
コードは短ければ良いというものではないな
784:デフォルトの名無しさん
22/11/13 21:04:49.96 xH4HHaxN0.net
やりたいことをまず自然言語で書く
minとmaxの範囲内ならそのまま出力
範囲外ならばminとmaxでガードする
これだけの情報量があるので、コードがそれなりの長さになって当然
785:デフォルトの名無しさん
22/11/13 21:55:42.10 tnJyg4LP0.net
コードゴルフは面白いけどコミットはしないで欲しい
786:デフォルトの名無しさん
22/11/13 22:26:40.02 0j2qr49h0.net
>>768
np.clip(array, _min, _max)
787:デフォルトの名無しさん
22/11/13 22:58:00.99 6O/r8caVM.net
何がコードゴルフかはジャンルにもよるよなあ。シェーダーなんかだとminmaxみたいなのは常套句みたいなものだし、
pythonの内包表記もちょっと凝り出すとコードゴルフ的になる。コーディングガイドラインがあればいいけどね。
788:デフォルトの名無しさん
22/11/13 23:21:42.99 m9TsWVuY6.net
>>774
さすがにこのくらいはグラフ考えて分かってよ
789:デフォルトの名無しさん
22/11/13 23:47:29.33 6O/r8caVM.net
まあ、minmaxの良くないところは、慌てて順番反転させたりする事故が起きると何もクリップしてくれなくなるところなんだけど(良く使うなら関数化しておくべき)
とはいえ、minmax的なのNGって、関数型言語全否定に近いものがあると思うんで、その立場でいいのかは考えるべきだと思うけど。
もちろん手続き型メインのPython使ってるんだからPythonではそんなのお門違いだという意見も否定はしないけど
790:デフォルトの名無しさん
22/11/14 00:16:33.72 RdGM128m0.net
maxとminでもいいと思うけど
頻繁に使うならclamp(val,lo,hi)みたいな関数作ればいい
791:デフォルトの名無しさん
22/11/14 02:35:12.38 Msnzn9MH0.net
初コメです。質問させてください。
ウィジェットに、押すとnotepad.exeを起動するボタンを作ったのですが、起動したテキストに文字を書き込む(テンプレート)ボタンを作りたいのですが、どのようにすれば良いでしょうか…
792:デフォルトの名無しさん
22/11/14 06:45:05.17 gWXr0Wl00.net
>>782
PyAutoGUI
内容次第ではPythonやめてAutoItだけの方が楽
793:デフォルトの名無しさん
22/11/14 08:17:37.42 z4y/4erZ0.net
AutoItとかAutoHotKeyとかキーボードやマウスをプログラムから操作して
自動化するツールはいろいろあるけど、
どれが最強なのか今ひとつ判らない
簡単にする為に出来ることを減らしていたり、
いろいろできるけど言語仕様が原始的すぎたり
pythonと同じ書き方ができて出来ないことがないのが理想
794:デフォルトの名無しさん
22/11/14 11:56:34.09 EWF0SvAna.net
対象のプログラムやウィンドウが背面に行ったり最小化されててもちゃんと動くかどうかで選べばいい
795:デフォルトの名無しさん (アウアウウー Saa9-OAfI)
22/11/14 12:07:38.76 K3emCbowa.net
対象プログラムが背面にあっても動くってウインドウハンドルにSendMessageを直接送る感じ?
796:デフォルトの名無しさん
22/11/14 13:25:46.58 99fRleugr.net
windowsのアプリをバックグラウンドで起動して動かすようなのが出来たらなぁ
マウス取られるから他の作業できないんだよね
797:デフォルトの名無しさん
22/11/14 15:23:33.25 yiG7YfVR6.net
WindowsをVMに入れるか、リモートデスクトップ複数人ログイン対応のWindowsならフォアグラウンドでも実質バックグラウンドにできるから困らなさそうだ
Win32APIを直で叩きまくればバックグラウンドでも動かせるような気がしないでもないけど、イベント処理のメインループが回るかは謎だね。全然詳しくないや。
798:デフォルトの名無しさん
22/11/14 21:26:19.81 LuassWmg0.net
>>770 がメンテ性悪いとか言う人は
プログラマー向いてないと思うの
799:デフォルトの名無しさん
22/11/14 21:33:59.91 z4y/4erZ0.net
temp = min(input, upper_limit)
output = max(temp ,lower_limit)
これを合体させただけなんだけどな
800:デフォルトの名無しさん
22/11/14 21:55:04.23 aUHlXgrZ0.net
関数化せずにインラインでそれ書いてきたらレビューでハネる
801:デフォルトの名無しさん
22/11/14 21:57:02.78 CWXyQGgF0.net
頻度次第
802:デフォルトの名無しさん
22/11/14 22:11:36.21 gxurLVtj0.net
>>789
まあ適宜空白入れろよとは思う
a = max(min(a, _max), _min)
803:デフォルトの名無しさん (テテンテンテン MM4b-SGX1)
22/11/14 22:20:44.64 xHaIXgz6M.net
>>790
そもそもmaxの中にminがある時点で頭がおかしくなる俺の場合
804:デフォルトの名無しさん (ワッチョイ 2379-zDZ1)
22/11/14 22:25:56.00 SUeRZblV0.net
import ctypes
SendMessage = ctypes.windll.user32.SendMessageW
hWnd = ごにょごにょ
pos = (y << 16) + x
SendMessage(hWnd, 513, 0, pos) # WM_LBUTTONDOWN
SendMessage(hWnd, 514, 0, pos) # WM_LBUTTONUP
>>786
こんな感じかな
どのみち、どう処理されるかは相手次第になってしまうけど
背面とか最小化とか、最悪トップに出てきたり
805:デフォルトの名無しさん (ワッチョイ 4b10-TWxH)
22/11/14 22:50:26.22 dRHiUVHI0.net
>>793
それは自動整形機能の仕事で人間が気遣うことではない
806:デフォルトの名無しさん
22/11/14 23:20:28.77 XZXiqJkqd.net
>>783
pyautoguiで一歩進みました!ありがとうございます!
807:デフォルトの名無しさん
22/11/15 01:47:11.37 qykSWSRkM.net
>>790
その2行なら受け入れるけど合体させるのは意味はないじゃんって思うよ
808:デフォルトの名無しさん
22/11/15 01:54:09.53 JTzzJATw0.net
関数名と変数名を工夫すれば良いと思う
_付けるだけでそれを区別するのはちょっと
809:デフォルトの名無しさん
22/11/15 01:57:43.67 7joAI/8k0.net
>>798
それは、+=や、f.write(','.join([若干長い内包表記]))が許されるかみたいな話とも繋がっていて、
ぶっちゃけ何度も出て来ればこんな簡単なのは1行にしたくなると思うよ
内包表記だって1行で書きたいから書くって側面もあるわけじゃない。
810:デフォルトの名無しさん
22/11/15 04:53:39.40 Ohwd0nE10.net
>>796
掲示板に書く時におまえが気遣えよって言う指摘だぞw
811:デフォルトの名無しさん
22/11/15 05:06:14.63 9j9A/xThM.net
a = range_ni_osameru(_min, a, _max)
どや!
812:デフォルトの名無しさん
22/11/15 07:01:01.67 +rxWDVlZ0.net
def range_ni_osameru(_min, a, _max):
return _min if a < _min else a if a < _max else _max
こうかな!
813:デフォルトの名無しさん
22/11/15 07:23:39.25 GEd0aXfXa.net
>>803
俺なら
return _min if a < _min else _max if _max < a else a
って書くかな
814:デフォルトの名無しさん
22/11/15 07:58:14.56 gBqAZwZY0.net
行数というよりは、中間の変数を登場させたくない
合体させるにしても、後ろに繋げていく方式とネストを深くしていく方式があって、
ネストだとどうしても可読性を損なう
815:デフォルトの名無しさん
22/11/15 09:57:28.98 8PAOVKkjr.net
普段可読性重視だけどリスト内包表記だけは速度変わりすぎるから超複雑にしちゃう
816:デフォルトの名無しさん
22/11/15 10:05:08.85 gBqAZwZY0.net
100倍変わるなら考えるけど、倍程度ならどうでもいい
817:デフォルトの名無しさん
22/11/15 10:09:34.58 UuLVn12M0.net
内包表記も+=も三項演算子もlambdaも、(言語設計者に対して)日和って半端なもん入れてんじゃねーよって思う。
818:デフォルトの名無しさん
22/11/15 11:23:10.48 kX2rkZkfM.net
lambdaは1.0からあったような
819:デフォルトの名無しさん
22/11/15 11:40:36.69 f326q+3ca.net
ごてごて書けるラムダを入れないのは良心を感じるけどなあ
820:デフォルトの名無しさん
22/11/15 11:49:44.03 Hm3rex5D6.net
>>807
処理時間がめちゃ長くて100倍速くしたいならそもそもCythonとか考える
処理時間ちょっとイラッとするぐらいだったら内包表記で倍速くなれば十分なので内包表記止まりかな
821:デフォルトの名無しさん
22/11/15 12:21:34.90 8tiGCKxN0.net
サンプルコードがlambdaで書かれがちなのもあって
その場で関数定義できるの知らずにごてごて書くケースよく見かける
悲しい
822:デフォルトの名無しさん
22/11/15 12:29:38.05 UuLVn12M0.net
なるほどlambdaに関しては色々意見あるな。半端な知識で物言った俺が悪かったわ。
823:デフォルトの名無しさん
22/11/15 12:41:30.32 LyOwpv5bM.net
ランバダはアローより判りやすいとは思う
824:デフォルトの名無しさん
22/11/15 15:38:19.98 0yW3pQONa.net
Pythonやるならまず「多重継承」な!
なぜ多重継承かというと、自然言語処理において語句の意味は「文脈」によって異なるからだ!
随意筋 不随意筋
↖ ↗
チンポ
チンコの随意筋と不随意筋
URLリンク(d.hatena.ne.jp)
URLリンク(mobile.twitter.com)
土門大貴/Daiki Domon
@daikidomon
Pythonの多重継承がわかりづらい。
継承クラスの左のクラス名を指定とかあたおか。
(deleted an unsolicited ad)
825:デフォルトの名無しさん
22/11/15 16:33:43.21 QGmQMBHUa.net
>>807
30分かかるループの中心で何度も使われてたら
倍速になったら15分短縮出来るし
100分の1なら数秒で終わるんだが
826:デフォルトの名無しさん
22/11/15 16:35:27.51 QGmQMBHUa.net
>>808
内包表記: あり
+=: あり
lambda: あり
三項演算子: お前は遺憾
827:デフォルトの名無しさん
22/11/15 17:03:46.50 gBqAZwZY0.net
とりあえず読みやすいように書いて、速度で困ったら考える
828:デフォルトの名無しさん
22/11/15 21:46:19.64 9SlnRoJw0.net
>>817 =
内包表記? あり
:+= ? あり
:lambda ?あり
:三項演算子?お前は遺憾
:以下略
ということですね
829:デフォルトの名無しさん
22/11/15 21:56:48.23 gBqAZwZY0.net
C言語とかの伝統的な三項演算子と違って、
pythonのはなかなかいけてると思うけど
830:デフォルトの名無しさん
22/11/15 21:57:19.12 UuLVn12M0.net
他の言語なら三項演算子は大好きなんだけどPythonだと異物感がある
831:デフォルトの名無しさん
22/11/15 22:05:16.10 1JRqHGzu0.net
並びが
(Trueの場合) (条件) (Falseの場合)
になるのが気に食わん
832:デフォルトの名無しさん
22/11/15 22:26:23.67 5Bygj+p/0.net
わかる
慣れだろうけどさ
833:デフォルトの名無しさん
22/11/15 22:38:17.97 Ohwd0nE10.net
英文的には違和感無いのかもしれないけどねぇ...
834:デフォルトの名無しさん
22/11/15 22:47:36.70 gBqAZwZY0.net
if <condition> then <val1> else <val2>
も英語として不自然さは無い
それを、?と:にするのは無理がある
冒頭からifで始まるとif文と区別が付かないので、少し倒置して、
<val1> if <condition> else <val2>
も一応文として読める
C言語よりはまし
835:デフォルトの名無しさん
22/11/15 22:59:00.88 9SlnRoJw0.net
通常のif文でも処理(結果)を先に書く新しい言語を作るか
836:デフォルトの名無しさん
22/11/15 23:05:11.16 1JRqHGzu0.net
プログラミング言語に英文的な自然さとか求めて無いんだわ
読む順と評価順が入れ替わってんのがセンス無いと思う
837:デフォルトの名無しさん
22/11/15 23:08:14.86 gBqAZwZY0.net
処理をifで修飾するというのは既にある
elseは知らん
838:デフォルトの名無しさん
22/11/15 23:10:56.55 JTzzJATw0.net
~よりはましって、自信がないみたいな感じ
839:デフォルトの名無しさん
22/11/15 23:17:01.94 gBqAZwZY0.net
C言語よりは遥かにましである、ふはははは
840:デフォルトの名無しさん
22/11/15 23:20:26.27 JTzzJATw0.net
そうする合理的理由を説明すれば納得するものじゃないの?
そういうのを聞きたいんだよ
841:デフォルトの名無しさん
22/11/16 02:18:10.64 +BRGBknF0.net
英語だと if が後置されることもあるからなあ
内包表現は数学の集合の書き方からすれば普通
ラムダは lisp のラムダ関数から考えれば普通
一応理屈はあるけど
842:デフォルトの名無しさん
22/11/16 06:47:02.50 hZtfMd7O0.net
三項演算子だけじゃなくて、Perlみたいに後置ifを実装してれば違和感ないんだろうね
(Trueの場合) if (条件)
Falseの場合はなにもしないけど、Pythonだとpassがあるから三項演算子だけで十分って判断かな
843:デフォルトの名無しさん
22/11/16 07:48:59.49 Mu0tRvhG0.net
そうか結構、式である三項演算子や内包表記やlambdaも受け入れられてるんだなぁ。そうなるとなんでmatchを式にしなかったのか。コレガワカラナイ
844:デフォルトの名無しさん
22/11/16 08:23:43.73 kn7mTN5OM.net
>>827
これ正解
845:デフォルトの名無しさん
22/11/16 08:33:48.92 16ZvLDN40.net
後置ifは文だから値を返す必要がない(=elseは不要)。三項演算子は式だから値を返すのに必要。
なんでこの2つを混ぜたような文法にしたのかなんとも不思議。
846:デフォルトの名無しさん
22/11/16 10:19:45.94 8bWIhcn5a.net
どこが変なのかわからん
俺の英語スキルが高杉なせいか…
847:デフォルトの名無しさん
22/11/16 11:29:27.97 hZGrSsPO0.net
lambdaといっしょでゴチャゴチャ書きづらいのが良心
実際は構文解析が楽だとか余計な()が不要とかあるんだろうけど
848:デフォルトの名無しさん
22/11/16 11:35:19.24 OkTwZqPda.net
lambda calculus のif then else combinatorの語順やろ
URLリンク(ja.m.wikipedia.org)
849:デフォルトの名無しさん
22/11/16 11:56:49.17 g3qERw/e0.net
lambdaは綴りが覚えられないから�
850:凾セ
851:デフォルトの名無しさん
22/11/16 12:13:16.57 8bWIhcn5a.net
ランバダっておぼえとけ
852:デフォルトの名無しさん
22/11/16 12:27:19.92 U3lBmIjhM.net
全部英単語でつなげるから、エディタで色変えたとしても見づらいってのはすごく感じる
853:デフォルトの名無しさん
22/11/16 17:37:03.73 z+sJwdsYa.net
>>826
uby
854:デフォルトの名無しさん
22/11/16 17:39:14.54 z+sJwdsYa.net
>>825
findall で解決
855:デフォルトの名無しさん
22/11/16 17:39:41.33 z+sJwdsYa.net
アンカ間違ってた >>834
856:デフォルトの名無しさん
22/11/17 17:09:06.64 HF5V3LeY0.net
import re
str = 'abc123456defg'
s = 'bc'
m = re.search(f'{s}(\d{2})', str)
if m:
print(m.groups()[0])
\d{2}だと12が表示される
\d{1}とか\d{6}だと想定と違う
なんで?
857:デフォルトの名無しさん
22/11/17 17:18:01.85 AwlB4ADs0.net
そりゃ、想定が間違えているから、以外になんか考えられるのかい?
何を想定していてどうなったかも説明しないで、想定と違う!って
言われてもね、人に説明する気も無けりゃ教えを乞う態度でもないし
何したいの?日記ならよそでやってくれる?
858:デフォルトの名無しさん
22/11/17 17:57:04.97 WlhESVTj0.net
>>> f'{s}(¥d{2})'
'bc(¥d2)'
859:デフォルトの名無しさん
22/11/17 18:01:06.12 F2Az3Gmh0.net
インデントが全角スペースなのが全てを表してる
860:デフォルトの名無しさん
22/11/17 18:02:37.66 HF5V3LeY0.net
f文字列の中で{m,n}を使うにはどうすれば
861:デフォルトの名無しさん
22/11/17 18:20:55.05 OILH8ycX0.net
口のきき方覚えてから出直せ
862:デフォルトの名無しさん
22/11/17 18:28:04.25 qm+2WY7I0.net
まあまあ、お勉強スレなんだし未熟者同士で問題解決していくスタンスで良いんじゃないの
863:デフォルトの名無しさん
22/11/17 18:31:28.74 p1aORMOX0.net
そんなイライラしなくても{{´·ω·`}}
864:デフォルトの名無しさん
22/11/17 18:42:18.14 HF5V3LeY0.net
>>853
できた
865:デフォルトの名無しさん
22/11/17 19:51:50.25 SY2MYyO/0.net
f文字列で¥とか/区切りの一部だけを取るような事出来ないのかな?
splitしてスライスで取るのはどうも好かん
866:デフォルトの名無しさん
22/11/17 21:45:06.27 SeoZPm6s0.net
>>846
> ★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
> ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
> URLリンク(techiedelight.com) Run Code機能あり。
> URLリンク(ideone.com) デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
> URLリンク(pastebin.com) まずまずシンプル。
> URLリンク(dpaste.com) とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
867:デフォルトの名無しさん
22/11/17 21:54:06.61 HF5V3LeY0.net
それも必要悪だな
貼った先が無くなった後でログを見た人に何の知見も残せない
868:デフォルトの名無しさん
22/11/17 23:08:46.05 kmneQuTyH.net
>>856
>デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
一回 python を選択すれば、あとはずっと選択したpythonのままになりますよ
869:デフォルトの名無しさん
22/11/17 23:09:37.45 kmneQuTyH.net
>>857
いまのところ ideone はずっと消えずに残っていますよ
スレリンク(tech板)
870:デフォルトの名無しさん
22/11/17 23:12:16.09 lsW0mIad0.net
何年くらい残れば良いんですかい?
871:デフォルトの名無しさん
22/11/17 23:18:26.59 HF5V3LeY0.net
外部を利用する根拠がインデントの崩壊だけなら、崩壊していないのだから不要
なるべく単体で完結していた方がいい
コードが長いとか、修正後のコードと比較したいとかになると、
さすがに掲示板の機能を超える
872:デフォルトの名無しさん
22/11/17 23:37:59.57 lsW0mIad0.net
そういうのは公開する本人が決めれば良いのでは
873:デフォルトの名無しさん
22/11/17 23:48:46.20 mPrTa5cw0.net
今更ここで議論する課題でもない
この件はペンディングとして、運用時に自己判断でよいだろう
874:デフォルトの名無しさん
22/11/18 01:00:39.04 pHizXfulM.net
短いコードなら直接貼ったほうが断然いいわな
875:デフォルトの名無しさん
22/11/18 01:14:15.49 E2GzXrNb0.net
日付(○年○月○日 ○時○分)を抽出してクリップボードにコピーするのってどんな感じでやればいいですかね…
876:デフォルトの名無しさん
22/11/18 01:26:07.35 wTg9qmzl0.net
何からだよ
877:デフォルトの名無しさん
22/11/18 02:58:16.10 q5cRZ16n0.net
コピーはコマンドでできるから
Windowsならcopy、Macならpbcopy
テキスト抽出して外部コマンド実行するだけ
878:デフォルトの名無しさん (ワッチョイ 154f-FFna)
22/11/18 09:55:43.93 Wj1K/ZC10.net
例えば、Ruby でクリップボードを使うなら、
あらかじめ、クリップボードへ「 あい 」を入れておいてから、
以下のスクリプトを実行すると、
文字列の前後にある、空白類が削除されて「あい」となる
ただし、RubyはUTF-8 だから、Windows のCP932 と変換する必要がある
# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ary = str.each_line.map( &:strip ) # 連続する空白類を除去する
IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
879:デフォルトの名無しさん
22/11/18 11:23:40.68 P6oHPIQ5M.net
ググったらpyperclipって便利なモジュールがあるらしいよ
前レスから予想するにウィジェットの日付けをメモ帳に貼り付ける感じかな
ウィジェットからのデータ取得はウィジェット作成時にStringVarを関連付けてget,setで取得すれば良い
ログを残すならファイル入出力でやるべきではと思うけど
880:デフォルトの名無しさん
22/11/18 12:03:10.69 r5yXYIm80.net
>>868
881:デフォルトの名無しさん
22/11/18 12:36:54.85 xtaMWlke0.net
このrubyの人はpython使ってるの?
882:デフォルトの名無しさん
22/11/19 00:25:37.14 GBhwsA7a0.net
すみません、質問いいですか?
883:デフォルトの名無しさん
22/11/19 00:47:22.64 UL/detO70.net
rubyの人最近見なくなったと思ったら
また自己主張してきたな
884:デフォルトの名無しさん
22/11/19 11:12:56.68 mOhQy7yjM.net
半島人は日本人女性を強姦しまくってる!
885:デフォルトの名無しさん
22/11/19 11:38:44.50 N2zY4TUb0.net
千葉県民に喧嘩売ってんのかコラ
886:デフォルトの名無しさん
22/11/19 12:30:11.97 o7Lf802R0.net
千葉県は恐ろしい田舎なうえ、今もドンドン衰退してる最中。
でも、関東以外の人はそんなこと知らないから、東京の一部みたいな顔できるよ。
887:デフォルトの名無しさん
22/11/19 12:31:01.14 xRYqKE7Q0.net
横須賀市民 「東京原人と一緒にしないでくれ」
888:デフォルトの名無しさん
22/11/19 12:43:32.19 o7Lf802R0.net
逆に考えることもできるよ。
電車一本で東京に出れる田舎って最強。
みたいな。
889:デフォルトの名無しさん
22/11/19 13:00:44.68 A7QHTxNqH.net
ぶぼぼ
890:デフォルトの名無しさん
22/11/19 13:04:21.61 zkXQWCUr0.net
沿線の人だけやん
891:デフォルトの名無しさん
22/11/19 16:23:26.89 F8GIHVyHa.net
久里浜も上総一ノ宮も似たようなもんやろ
892:デフォルトの名無しさん
22/11/20 02:18:52.83 Wzaj0Q6e0.net
すみません、python超初心者なのですが
URLリンク(github.com)のpython LpkUnpacker.py /path/to/lpk outputdir /path/to/config.jsonのコードを使いたいのですが、何回やっても
python LpkUnpacker.py "C:\11302997995514316369.lpk" "C:\aaaa" "C:\config.json"
^^^^^^^^^^^
SyntaxError: invalid syntaxのエラーが出てできません。
どうかご教授の程よろしくお願いいたしますm(__)m
893:デフォルトの名無しさん
22/11/20 02:34:00.03 TRWjspKo0.net
>>882
そのコードをpythonから読み込んでいますか?
894:デフォルトの名無しさん
22/11/20 04:33:04.83 ehdgoKhb0.net
>>882
SyntaxErrorなんで構文に間違いがあるんだけど、ここじゃ正確なコードが貼り付けられないから、自力解決を目指すか、外部サービスを利用してコードを晒すかしてください
895:デフォルトの名無しさん (ワッチョイ 4b02-kiOm)
22/11/20 06:11:26.69 ZkE4F4/w0.net
>>882
ファイルパスの¥を2個つけないとエスケープ文字になるんじゃ
896:デフォルトの名無しさん
22/11/20 09:38:29.85 f5Y3Vp3X0.net
Cドライブのルートなんかに置くなよ
897:デフォルトの名無しさん
22/11/20 12:40:41.69 zjEDBX2J0.net
うろ覚えで関数名だけわかってるような状態で
関数の使い方がよくわからなくなることがある
たまにドットが前に来るやつあるじゃん
kansu(引数)
.kansu(引数)
aaa.kansu()
モジュールがどうとかいう話なんだろうけど
こういうのみんなどうやって覚えてるの?
898:デフォルトの名無しさん
22/11/20 12:46:02.71 +Dw5cfeT0.net
組み込み関数は全部覚える
そこに無ければオブジェクトのメソッド
.sort()とsorted()みたいに両方にあったりもする
899:デフォルトの名無しさん
22/11/20 13:01:55.30 7a4yJys50.net
IDEを頼るのです
ここかここがええんかと関数名をちょっとタイプしてみてああんそこはダメぇ(OKという意味)と出たシグネチャを使えばよい
900:デフォルトの名無しさん
22/11/20 13:12:36.84 oY/pzgY90.net
関数一覧を印刷した下敷きとか無いのか
901:デフォルトの名無しさん
22/11/20 13:14:27.88 AxU0uBeT0.net
>>887
ググる
902:デフォルトの名無しさん
22/11/20 13:35:47.19 mq06SBbE0.net
>>882
LpkUnpacker.pyがあるディレクトリまで移動して
python LpkUnpacker.py だけでやってみて
usage:ほにゃららってでてるか?
903:デフォルトの名無しさん
22/11/20 16:06:56.79 V6m7XEpp0.net
URLリンク(mobile.twitter.com)
ゆきや@創薬エンジニア
@yukiya285
機械学習の分野でPythonがよく使われる理由は、ざっくり言ってしまうと、理論の根底にある数式が理解できていなくても機械学習ができるから、ということになります。理論の理解は後回しにして、とりあえずいろいろやってみる、ということができるのがPythonということになります。
(deleted an unsolicited ad)
904:デフォルトの名無しさん
22/11/20 16:21:51.45 u5cvtrdO0.net
考えるな、感じるんだ!
905:デフォルトの名無しさん
22/11/20 17:32:04.11 DbVvLhq7r.net
理由が理由になってなくね?
NumPyやsklearnのようなお手軽ライブラリが充実してることが理由じゃないのか
906:デフォルトの名無しさん
22/11/20 17:50:29.42 ZkE4F4/w0.net
cをやろうがアセンブラをやろうが
誰かが作った技術の上でしょ
スクリプト言語を使う1番の理由は生産性の高さだよ
907:デフォルトの名無しさん
22/11/20 17:55:33.30 mdre8ZhB0.net
Pascal なんかは
プログラミング教育を意識して作られてたものだが
真逆の発送のツイートだな
908:デフォルトの名無しさん
22/11/20 22:48:59.09 LvscILW00.net
>>893
どうだろ
俺は数学できるけど早いcが書けないからライブラリに頼れるpython選んだのが始まり
909:デフォルトの名無しさん
22/11/20 23:19:03.19 rB1ul6QT0.net
ライブラリとか言っても判らない人向けの説明なんでしょ
910:デフォルトの名無しさん
22/11/20 23:22:17.03 oxX6pjp40.net
やってみるのはいいことだけど
ライブラリ任せにするのは他力過ぎて草
911:デフォルトの名無しさん
22/11/21 00:00:01.51 MXiqZevU0.net
ライブラリ最高や!ワイよりちゃんとした実装してるしな。ワイが書く必要なんて無いんや………
って気持ちになるから嫌い
912:デフォルトの名無しさん
22/11/21 00:08:01.41 KDDXOYAA0.net
ライブラリ任せにするのはダメな人はコンパイルはコンパイラに任せずに自分でやってるのかな...
913:デフォルトの名無しさん
22/11/21 00:08:51.60 5iZ5HFRw0.net
人生は短いんやで
914:デフォルトの名無しさん
22/11/21 00:10:28.72 Q4I6Hwd50.net
もしかしてライブラリに使われてるcのソース読まない人たちばかりなのw
915:デフォルトの名無しさん
22/11/21 00:11:26.61 Q4I6Hwd50.net
プププー
916:デフォルトの名無しさん
22/11/21 00:52:51.07 KDDXOYAA0.net
必要ならライブラリのソースも読むけど普通は読まんな
で>>904はコンパイラのソースを読んでるの?w
917:デフォルトの名無しさん
22/11/21 00:54:44.72 ZuT5szBi0.net
>>896
おめーらホント視野の狭いクズばっかだな
最適な言語を使うのは
プログラマの基本中の基本だぞ?
それとスプリプト言語使う仕事なんてのは
どんなバカでも出来る仕事であって、
それだからこそ、プログラマはスプリプト言語を使う機会は少ないのだよ。
おめーのようなバカは
プログラマ気取りの
ただのコーダーだw
半島ヘかえれよチョソ!
918:デフォルトの名無しさん
22/11/21 01:09:57.53 Q4I6Hwd50.net
>>906
ライブラリの話からなんでコンパイラが関係してくるんだよ
それとコンパイラってソース公開されてたっけ?
読めるかどうか自信ないけど、公開されてんなら読んでみたい
919:デフォルトの名無しさん
22/11/21 01:13:37.10 KDDXOYAA0.net
>>908
> それとコンパイラってソース公開されてたっけ?
マジで言ってるのか?
そんなレベルでよく
> もしかしてライブラリに使われてるcのソース読まない人たちばかりなのw
なんて煽れるもんだな
920:デフォルトの名無しさん
22/11/21 01:15:39.89 Q4I6Hwd50.net
>>909
どっちだと思う?w
ここではっきりさせないほうがあなたのためになるんだと思うよ
921:デフォルトの名無しさん
22/11/21 01:23:32.91 fZMCNRrt0.net
>>908
他人の書いたコード任せというのはコンパイラを使うことにも当てはまるからだろ
922:デフォルトの名無しさん
22/11/21 01:35:32.06 KDDXOYAA0.net
>>910
> それとコンパイラってソース公開されてたっけ?
なんて聞く奴なんてどっちでもいいわw
923:デフォルトの名無しさん
22/11/21 01:57:19.90 mQv3uxAK0.net
たまにPythonの実装(C言語)を読めるのが正義、みたいに思ってるやつおるけど
大抵の場合は読む必要は無いし、勉強がてら読むか、
ライブラリ使ってて気になる挙動(不具合の可能性があるやつ)に遭遇した時に
実装確認するぐらいじゃね?
924:デフォルトの名無しさん
22/11/21 02:12:22.30 5iZ5HFRw0.net
最速を争う言語ならコンパイラの実装に寄せて速度を稼ぐのもアリだけど、Pythonでそんなことする意味は1㍉もない
925:デフォルトの名無しさん
22/11/21 06:45:31.12 rqiuWDpI0.net
>>907
生産性の高さという使い分けの話をしてるのに何を言ってるんだ
プログラマがPythonを使わないと言うならそうなんだろうよ
マ版に帰れよ
926:デフォルトの名無しさん
22/11/21 07:28:42.29 +ijCE8q30.net
>>915
さわるなよ...
927:デフォルトの名無しさん
22/11/21 08:01:45.80 ctQ1pKCNM.net
ノーガードで背中向き合わせて殴り合うのやめろよ
928:デフォルトの名無しさん
22/11/21 12:00:35.94 JkH4gCyV0.net
伸びてると思ったらまたいつもの彼だった
929:デフォルトの名無しさん
22/11/21 14:37:06.50 LzW8OiBha.net
pythonのC実装ってPyObject*観たらおしまいやで
930:デフォルトの名無しさん (ワッチョイ e263-TaOI)
22/11/21 15:00:05.29 V6ODuo3F0.net
死ぬのか、考え直せ
931:デフォルトの名無しさん (ワッチョイ fb32-Wmq2)
22/11/21 17:00:36.18 p4sth+TF0.net
韓国どーたら言ってるスクリプトかと思ってた
932:デフォルトの名無しさん
22/11/21 17:55:36.53 QoaHhDq70.net
a = [0.2,0.6,0.1,0.3,0.9]
b = ['A','B',C''D,'',E'']
とあって、aを0.5以上ならTrue、違えばFalesの真偽値に変えて、
bからTrueのところだけ抜き出すにはどのように書けば良いですか?
933:デフォルトの名無しさん
22/11/21 18:03:20.26 QQ2H2Fut0.net
a = [0.2,0.6,0.1,0.3,0.9]
b = ['A','B',C''D,'',E'']
c = [y for (x, y) in zip(a, b) if x >= 0.5]
934:デフォルトの名無しさん (ワッチョイ 62da-fSBT)
22/11/21 18:13:38.64 QoaHhDq70.net
>>923
リスト内でfor文とif文使うんですね
ググってそれっぽい感じではあったのですが
Rのノリで書けないかなと困ってました
ありがとうございました
935:デフォルトの名無しさん
22/11/21 19:45:08.40 fZMCNRrt0.net
>>922
numpy使えば直感的にできる
a = np.array([0.2,0.6,0.1,0.3,0.9])
b = np.array(['A','B',C''D,'',E''])
print(b[a>=0.5])