22/10/18 14:53:46.55 zc0QoIzs.net
差とったバージョン貼るの忘れてました >>329
URLリンク(ideone.com)
せっかくnumpyやpandas使っているのにforで回す感じが納得できませんが妥協します
338:デフォルトの名無しさん (アウアウアー Sa7f-40n0)
[ここ壊れてます] .net
直前のコマンドの実行結果の確認ってどうやるんですか?
shellで言う、echo $? をやりたい
339:デフォルトの名無しさん
22/10/18 20:19:11.20 wvci1M8ka.net
[{'id': 1, 'name': 'hogehoge', 'start_time': datetime.time(22, 0)}]
ってリストを
{'id': 1, 'name': 'hogehoge', 'start_time': datetime.time(22, 0)}
と言う辞書に簡単に変換する方法ってありますか?
クエリーセットから辞書に出来れば一番いいんだけど...。
340:デフォルトの名無しさん
22/10/18 20:24:46.13 BZdlnClE0.net
>>335
普通に最後に[0]つけるだけでは?
341:デフォルトの名無しさん
22/10/18 20:27:28.02 8ovbGjhuM.net
>>333
こんな感じじゃ駄目?
URLリンク(ideone.com)
342:デフォルトの名無しさん
22/10/18 20:32:38.62 wvci1M8ka.net
>>336
ほんまや!ありがとう!
343:デフォルトの名無しさん
22/10/18 21:48:30.15 zc0QoIzs.net
>>337
cross地点のラインとか見やすくていいですね
実際に使うチャートのプロットに使ったら良い感じになりました!
ありがとうございます!!
344:デフォルトの名無しさん
22/10/19 11:35:50.09 XPI64Z3+0.net
Wsl2上Ubuntu20.04でtorch使って機械学習させてたんだけど、3万イテレーションぐらいで
Segmentation fault
とだけ出て落ちてた
VRAMの容量が不足したと考えてあってる?
あとLinux環境でこれをデバッグするなら何がいいか教えて欲しい
345:デフォルトの名無しさん
22/10/19 11:54:47.46 tuP7W/zl0.net
SageMakerだな
346:デフォルトの名無しさん
22/10/19 12:36:42.67 rgBskw8B0.net
Linuxの組み込みRuby・mruby とかは、Top, Valgrind などを使うのかな?
347:デフォルトの名無しさん
22/10/19 22:23:16.68 3NiqH8qVM.net
>>1
p = [0,1]
q = [2,3]
を
r = [0,2,1,3]
にまとめたい、、、
348:デフォルトの名無しさん
22/10/19 23:34:10.81 bkANZ+VWM.net
>>338
良かった。おめでとう
>>343
zipとflatten使えばできる、flattenは自前で書いても可
349:デフォルトの名無しさん
22/10/19 23:37:46.30 bkANZ+VWM.net
>>340
再現性あるかどうかは大事。ないなら電圧降下とか宇宙線とか回避できない事象かもしれない。
再現性あるならまずはメモリのテストとか?
350:デフォルトの名無しさん (ワッチョイ efe8-TyQf)
22/10/20 00:13:53.61 mcMX29GY0.net
メモリ壊れててSegmentation faultは運良すぎる
十中八九バグ踏んでる
351:デフォルトの名無しさん (アウアウウー Sacf-zhLr)
22/10/20 00:21:35.47 Ia5AvZ4ba.net
>>340
まずは普通のubuntu環境でやってみな
352:デフォルトの名無しさん
22/10/20 06:33:42.06 h2hzFpVPM.net
note.nkmk.meブログ書いてる人は一体何者なん?凄すぎでしょ
353:デフォルトの名無しさん
22/10/20 09:06:52.31 rssHMFyJM.net
>>344
ありがとう
354:デフォルトの名無しさん
22/10/20 11:03:22.52 rq8DqaFj0.net
.pyの拡張子のプログラムファイル送られてきたんだが
ひらきかたがわからん
355:デフォルトの名無しさん
22/10/20 11:07:41.43 5IJGeHxC0.net
単に開きたいならテキストエディタでおけ
よくわからんものをいきなり実行しないほうがいいでしょ。
356:デフォルトの名無しさん
22/10/20 11:33:20.98 SiOwIn850.net
送ってきた相手が知人だとしても疑うべき
357:デフォルトの名無しさん
22/10/20 11:59:34.42 rq8DqaFj0.net
返信ありがとう。
ココナラの仕事関連で贈られたブツだから
妖しくはないと思う。
ただひらき方がわからんだけw
テキストね。ありがとう!
358:デフォルトの名無しさん
22/10/20 14:07:22.08 rq8DqaFj0.net
.pyだからgoogle colabとかvsでもひらけますか?
359:デフォルトの名無しさん
22/10/20 14:15:44.78 SM0e0PhV6.net
はい。
360:デフォルトの名無しさん
22/10/20 14:46:25.62 VKVL3k1N0.net
すまんが、開発環境について教えて欲しいんだけどさ
NumPyの行列がどんな形してるか、あらかじめ推測がつく場合にVSCodeのエディタ上で表示してくれるような機能ってなんかないのかな?
あったら教えてほすぃ
361:デフォルトの名無しさん
22/10/20 15:41:29.99 Ia5AvZ4ba.net
ない
型で指定できない以上無理
362:デフォルトの名無しさん
22/10/20 16:40:26.62 fK+SugQF0.net
URLリンク(numpy.org)
これで型ヒント書いてPylance/Pyrightさんがどこまで対応してきてるかやな
363:デフォルトの名無しさん
22/10/20 16:52:22.34 rq8DqaFj0.net
>>355
今グーグルコラボひらいたんやが。
ファイル、編集、表示、挿入などあるけど。
なかなかファイルを読み込むっていうのができひんねん。
教えて下さい!
364:デフォルトの名無しさん
22/10/20 16:55:29.69 rq8DqaFj0.net
ファイル→ノートブックをアップロード→ダウンロードできひんw
365:デフォルトの名無しさん
22/10/20 17:02:32.17 5IJGeHxC0.net
当該ファイルをテキストエディタで開いてコピペしたらええんでないの?
366:デフォルトの名無しさん
22/10/20 17:44:01.65 aiWxu/Mz0.net
Pythonの乱数はCPUのbit長とあまり関係ないみたい
64bit= 8バイトや128bit = 16バイトが効率がいいのかとおもったが
一度にまとめて長いのを生成したほうがいいみたい
URLリンク(ideone.com)
import random
from time import perf_counter
def randcomp(byte = 4, loop = 100000):
N =[]
K =[]
for i in range(3):
K.append(2**i)
N.append (2**(8*byte*K[-1]) -1)
for i in range(3):
t = perf_counter()
for n in range(loop * int(4/K[i]) ): random.randint(0, N[i])
t = perf_counter() - t
print("%d%s : %0.3f sec" % (8*byte*K[i], "バイトで乱数生成" , t), flush=True)
print("同一長乱数はまとめて生成したほうがいいが分割したほうがいいか")
randcomp(100, 30000)
367:デフォルトの名無しさん
22/10/20 18:21:28.94 fK+SugQF0.net
>>362
URLリンク(docs.python.org)
> ほとんど全てのモジュール関数は、基礎となる関数 random() に依存します。
ソースまで追ってないけど係数掛けてるだけでない?精度求めないなら構わないけど
368:デフォルトの名無しさん
22/10/20 18:38:57.83 aiWxu/Mz0.net
納得
整数の乱数も浮動小数点から生成してるのね
整数値はCPUの整数演算から生成してるとおもってた
369:デフォルトの名無しさん
22/10/20 18:57:44.54 0LxHKv3Y0.net
>>356
PyCharmのPro版ならそういう機能あったかも。まあ有料だけど
370:デフォルトの名無しさん
22/10/20 19:05:49.55 VKVL3k1N0.net
年3万かあ・・・・教えてくれたのはありがたいけどちょっとこれは・・・・
371:デフォルトの名無しさん
22/10/20 19:38:31.27 tMcnfqkZa.net
randomは整数じゃないか?
372:デフォルトの名無しさん
22/10/20 19:57:06.72 zFT+mBQ80.net
熱雑音から生成するのなかったっけ
373:デフォルトの名無しさん
22/10/20 20:09:52.87 tMcnfqkZa.net
あるよ
量子論的ななんかもあるよ
374:デフォルトの名無しさん
22/10/20 20:13:14.05 zFT+mBQ80.net
大勢で祈ると値が偏る奴
375:デフォルトの名無しさん
22/10/20 20:18:06.06 SiOwIn850.net
競馬場でやって
376:デフォルトの名無しさん
22/10/20 20:59:29.59 kx/1mwDkM.net
計算結果を観測するまで分からない乱数
377:デフォルトの名無しさん
22/10/20 21:14:59.71 zFT+mBQ80.net
量子使う奴は意思が入り込むよ
未来の科学ではそんなの当たり前になってるだろうけど、現時点ではオカルト
二重スリット実験とかも本当は不思議でも何でもない
378:デフォルトの名無しさん
22/10/20 23:49:24.98 PbiytdPqM.net
ほんとの乱数を使う必要がある場合と疑似乱数でいい場合は区別したほうが良くないか。
Pythonで出し分ける方法は調べてないから知らないけど。
379:デフォルトの名無しさん (ワッチョイ ef66-MUdf)
22/10/21 08:18:44.01 qQxL52gE0.net
seedを物理的に作ってあとは擬似乱数だな
組み込みだとADコンバータのLSBを使ったりする
380:デフォルトの名無しさん
22/10/21 08:50:48.36 Yzioqt7t0.net
pythonの資格取りたいんですが難しいですか?
どれくらい勉強すれば行けますか
381:デフォルトの名無しさん
22/10/21 13:17:33.66 d7WYWX6T6.net
>>345-347
wsl2上ではイテレーションはまちまちだけど再現してる
ノーマルなubuntu環境構築して再現性あるか見てみるわ
382:デフォルトの名無しさん
22/10/21 16:11:11.34 QvDTOA5Y0.net
>>376
2万時間くらい
383:デフォルトの名無しさん
22/10/21 17:01:14.33 Yzioqt7t0.net
>>378
2万時間の根拠は?
384:デフォルトの名無しさん
22/10/21 17:19:59.05 KvwM7lznM.net
調べりゃ解ることを
わざわざ聞くやつは
2マン時間で十分だと言うことだろう
385:デフォルトの名無しさん
22/10/21 17:25:07.63 2aEevlzi0.net
調べると分かるのか
386:デフォルトの名無しさん
22/10/21 17:50:39.73 +NQJkQPg0.net
小さめファイルのハッシュ値を計算したい人です
ファイルIOにかかる時間のほうが圧倒的に時間食うことがわかりました
ハッシュ計算が3倍遅いほうでも差がほぼないようです
387:デフォルトの名無しさん
22/10/21 17:52:02.77 +NQJkQPg0.net
ここに書き込んだのでは話ではなかった
388:デフォルトの名無しさん
22/10/21 18:01:25.42 Ty04Hsfm.net
データフレームのある列で、0が連続する値だけを起点にデータを分割する
いわゆるビニング処理をしたいのですが
こういう感じにしました
URLリンク(ideone.com)
たぶん期待通りの処理(df_sample["b"]で0以外の値が連続するブロックだけ抽出)になったのですが
改善できないでしょうか
389:デフォルトの名無しさん
22/10/21 21:02:47.32 QvDTOA5Y0.net
>>379
君には難しいだろう。
たぶん無理だから諦めた方がいい。
Pythonは統計とマシンラーニング課題も出るからそれらの背景知識がなければ受からないと考えたほうがいいし、Pythonを学ぶ意味も意義もなんの価値もない
というのと、そんなことでいちいち根拠は?と思考停止する程度であればなにも成すことはできない。
よってそれら含めて知識として習得するつもりがあり、そのはじめの一歩として資格試験に挑戦するというのであれば、勝手に挑戦すればいい
390:デフォルトの名無しさん
22/10/21 21:10:42.50 QvDTOA5Y0.net
>>379
マジで厳しいこというかもしれないが
何のためにその資格を取りたいと思ったのか
何のためにPythonを学ぼうと思ったのか
心から学びたいと言う欲求があなたの中にあるのか
あなた自身がこれら命題に答えられなければ、時間の無駄になるだろう
391:デフォルトの名無しさん
22/10/21 21:15:29.58 NoO+J0RZ0.net
>>385
392:デフォルトの名無しさん
22/10/21 21:23:51.77 BRobyhizH.net
愚直おじさん流
URLリンク(ideone.com)
393:デフォルトの名無しさん
22/10/21 21:29:44.35 Yzioqt7t0.net
>>386
めっちゃ早口で言ってそう
394:デフォルトの名無しさん
22/10/21 21:34:27.68 xWrdmgB3M.net
Pythonは一般人でも使いやすいからシェアNo.1になってるような言語でしょ
ラズパイIoTでも使うしAIのためだけの言語では無いよ
395:デフォルトの名無しさん
22/10/21 21:37:59.27 7KwYuZana.net
>>376
URLリンク(m.youtube.com)
仕事で使う人で2年程度はかかるらしいよ
396:デフォルトの名無しさん
22/10/21 21:39:34.25 qQxL52gE0.net
ひろゆきが言ってるんだから嘘に決まってるだろ
397:デフォルトの名無しさん
22/10/21 23:30:16.98 X//QLN3D0.net
ひろゆきは自分で試していない。
検索して、それを話しているだけ
自分の経験に基づかないから、いつも話が浅い。
だから聞くだけ、時間の無駄
検索して分かるような事しか話さない
Python は良いみたいですよ。
流行っているからとかw
398:デフォルトの名無しさん
22/10/21 23:38:32.06 X//QLN3D0.net
Python は文系は無理。
大学院数学科か、AWS 機械学習の資格が必要
だから、YouTube で有名な雑食系エンジニア・KENTA とか、
たにぐちまことも、Pythonの動画を作れない
だから、英語だけできる文系女は皆、Ruby on Rails へ行く。
Railsは算数で十分
Pythonの文法だけ知っている香具師は、いらない。
仕事ができないから
399:デフォルトの名無しさん
22/10/21 23:39:38.76 2aEevlzi0.net
フランス語で講釈たれたときもそうだな
フランス語の専門家が誤りに突っ込んできて
それで黙ってしまった
400:デフォルトの名無しさん
22/10/21 23:48:12.69 sRGYRPn90.net
>>389
効いてて草
401:デフォルトの名無しさん
22/10/22 00:19:42.69 zwJTxOqra.net
ケンタって人pythonをスルーしてるのはなぜなんだろう
402:デフォルトの名無しさん
22/10/22 00:46:25.52 5ajtmD/n0.net
KENTA は文系でしょ。
TOEIC も、800点以上取っていたかも?
英語ができるから、10言語以上のプログラミングに強い
でも、Python は別。
大学院レベルの特殊な勉強が必要だから、文系では無理
403:デフォルトの名無しさん
22/10/22 00:55:51.48 OES5lhv+a.net
うーんニューラルネットワークってそんなに難しいことしてないんだけどな
404:デフォルトの名無しさん
22/10/22 04:24:24.02 +A4lsW440.net
ニューラルネットワークはともかく、他の言語出来たらPythonだって出来るでしょ。NumPyとかPyTorchだけがPythonじゃないし。なんか知らんYouTuberを根拠にするとか頭おかしすぎる 正直BASICみたいなもんだろ、
405:デフォルトの名無しさん
22/10/22 04:31:36.51 x/c/WoEY0.net
PythonはCとかで作れられたソフトのラッパーにすぎないだろ
元の操作が難しくても初心者向けにラッピングしてあるんだろ
BASICみたいというのはその面あるかと
当時だとアセンブラのラッパーといえるだろうが
406:デフォルトの名無しさん
22/10/22 04:40:27.23 x/c/WoEY0.net
Pythonで記述法が独特だとおもってたけど
いま高級言語の FORTRAN BASICを調べたらまあまあ似てた
407:デフォルトの名無しさん
22/10/22 05:47:55.19 7jLTm2VBM.net
とにかく手軽で便利、マルチプラットフォームで動く高機能なスクリプト言語
一般人から研究者まで、エンジニアじゃなくても手軽に扱えるシェアNo.1のプログラミング言語
さあ今すぐPythonを始めよう!
408:デフォルトの名無しさん
22/10/22 06:53:31.27 J46viSc60.net
プログラム全く触ったことなくても独学でもいける?
409:デフォルトの名無しさん
22/10/22 07:35:37.88 7AfcIHJs0.net
やる気次第でしょ
インフラ屋さんだけどPythonとGoがあれば仕事が楽になる
410:デフォルトの名無しさん
22/10/22 14:21:00.87 8gOeqRywp.net
生まれて初めてカキコします。
pythonでエクセル内の
指定したセル範囲を画像として保存することはできるのでしょうか?
openyxl等の使い方を見ましたが該当する機能が見つからず。。。
411:デフォルトの名無しさん
22/10/22 14:33:36.41 RBHYYj24a.net
カキコって何歳
412:だよ 画像は難しそうだよな ブラウザ経由ならまだ割となんとかなるかもしれんけど
413:デフォルトの名無しさん
22/10/22 14:43:30.59 N7+wBa/e0.net
URLリンク(support.microsoft.com)
うーん
414:デフォルトの名無しさん
22/10/22 14:58:25.99 5YUu7WUo0.net
xlwingsでExcel操作してセルを表示
URLリンク(learn.microsoft.com)
もしこの操作ができるならpillowのImageGrab.grabclipboardで画像化
できそうにないなら同じくImageGrab.grabでスクショ
415:デフォルトの名無しさん
22/10/22 15:10:03.03 /+WXYBmxM.net
>>406
5chははじめてか、力抜けよ
画像は難しい(意訳: 無理とは言ってないが見当がつかない)
416:デフォルトの名無しさん
22/10/22 18:12:09.05 r8ZBR+82H.net
>>404
そんなことを逝っていたらいつまでたっても創められない
なんでもいいからすぐにやれ!
417:デフォルトの名無しさん
22/10/22 18:42:20.42 J46viSc60.net
>>411
わかった、明日本屋さん行ってくる。
418:デフォルトの名無しさん
22/10/22 18:44:23.56 OES5lhv+a.net
>>404
無理
そういう質問してくるやつは全員使い物にならなかった
419:デフォルトの名無しさん
22/10/22 19:41:53.56 +A4lsW440.net
独学で行ける奴は独学で行けるかどうか質問する前に独学できる範囲は独学しちゃうからなあ。
その質問が出る人と出ない人の違いが不思議だよね。
子供の頃に近くに誰も教えてくれないジャンルで何かを自分で調べてやったかどうかの違いなのかなあ。
420:デフォルトの名無しさん
22/10/22 19:55:08.06 YnOyl9oPM.net
全くのプログラミング初心者はCとJavaをやってからPythonやるのおススメ
するとCでポインタに挫折し、Javaでオブジェクト指向に挫折するはず
次にPythonをやると大幅に難易度が下がり感激して習得が進む
421:デフォルトの名無しさん
22/10/22 20:14:23.22 TcV0m7it0.net
独学ってなんだろうなとは思う
今やネット使えば相互で学びを得られるわけだし
422:デフォルトの名無しさん
22/10/22 20:15:49.62 OES5lhv+a.net
できるやつはそんなくだらない質問してる間に書いてるからな
よほど頭が良いやつを除けばプログラミングなんてスポーツに近い
ある程度書きまくって理解するという面がかなりある
423:431
22/10/22 20:35:33.98 kATB1i3DH.net
>>412
素直でよろしい
わからないことがあったらすぐにここで聞くがよい、少なくとも私は答えてあげよう
424:デフォルトの名無しさん
22/10/22 20:36:23.36 F0QzgmDAM.net
変なトレーナーだと上達も遅いし悪い癖がつく
425:デフォルトの名無しさん
22/10/22 21:47:35.31 cKHN2pKRH.net
?
426:デフォルトの名無しさん
22/10/22 23:09:50.86 SZlNO/Fu0.net
PythonのpyautoguiでDMMGAMEPLAYERのクリック操作ができません
多分他にもできないソフトや操作がある気がします
できるようにする方法をご存知の方いませんか?
427:デフォルトの名無しさん
22/10/22 23:15:54.82 r1O0tjlF0.net
管理者権限では
428:デフォルトの名無しさん
22/10/22 23:23:38.12 SZlNO/Fu0.net
管理者権限でPythonやVSCodeを動作させるというのはやってみましたがダメでした
それとは違うものですか?
429:デフォルトの名無しさん
22/10/23 00:17:15.41 a/Rc5ERJM.net
クリックスピードが速すぎて認識しないことあったけどそれとは違うかな
430:デフォルトの名無しさん
22/10/23 05:29:58.37 LnniM1YV0.net
循環参照とグローバル変数の解放忘れは
どうにもならずでよい?
431:デフォルトの名無しさん
22/10/23 07:56:50.73 YjL8eIdN0.net
>>421
それなー制御レイヤでガードがかかってて出来ないんだよ
仮想環境でプレイヤー動かして外からマウス操作するとできる
ahkならうまくいくと昔見た気がする
432:デフォルトの名無しさん
22/10/23 08:34:16.23 a/Rc5ERJM.net
昔MMOでマクロ動かしてたときにjoytokeyは通るのにUWSCが通らないのは何でだと思ったらJoytokeyは使ってるAPIが古かったのを思い出した
433:デフォルトの名無しさん
22/10/23 20:18:15.84 VvU+DrMM0.net
GUIは他で作って呼べばいいやとか思ってたけど
触ってみたら楽しくなってきちゃった…
434:デフォルトの名無しさん
22/10/23 20:40:08.90 YdoHOOqzM.net
自分で使うのは勝手だが、他人に無理に使わせようとして面倒をかけないようにしろよ
435:デフォルトの名無しさん
22/10/23 21:21:44.61 E8ProAkZ0.net
パイソンって何のOSで作って、何のOSで動かして
どんなハードウェア使ってるのかイメージわかない
436:デフォルトの名無しさん
22/10/23 21:29:22.91 QUHPaesz0.net
>>430
パイソン以外なら分かるのか?
437:デフォルトの名無しさん
22/10/23 22:09:00.29 HOBBKeJ+a.net
>>430
え?
438:デフォルトの名無しさん
22/10/23 22:20:33.87 PSjFlE960.net
昔はアプリ内スクリプティングによく使われてたし
そこまでOS依存ないよね
439:デフォルトの名無しさん
22/10/23 22:22:13.84 Gerqh3Hc0.net
今は何が使われてるの?
440:デフォルトの名無しさん
22/10/23 22:22:47.20 NZM9O6ur0.net
>>430
何のOSでと言ってる時点で適性無さすぎ
441:デフォルトの名無しさん
22/10/23 22:40:47.26 ryZHmhMT0.net
渋谷のOSは人気があったんだけど、なくなってしまいました
442:デフォルトの名無しさん
22/10/23 23:07:36.81 ukbFQOFRM.net
「オーエス!オーエス!」
謎の掛け声の語源は?
443:デフォルトの名無しさん
22/10/23 23:21:29.90 EIV6aNFQM.net
>>435
いやーこの辺の理解は難しいよ
俺はPythonがC言語で作られていることを知っているが
C言語が何で作られているかは知らない
444:デフォルトの名無しさん
22/10/24 00:31:12.46 GUF0AyIv0.net
>>438
大本の大本を辿ればハンドアセンブルに行き着く
始めは機能が限定されたCコンパイラを作り、だんだん必要な機能全てが揃ったCコンパイラを作る
445:デフォルトの名無しさん
22/10/24 01:02:39.86 aNKyy4xv0.net
最初のは計算ごとに配線を替えてたぞ
446:デフォルトの名無しさん
22/10/24 01:09:51.15 m3/1dAn60.net
>>438
え?
Cコンパイラ使ったことあらず?
447:デフォルトの名無しさん
22/10/24 02:58:26.65 wO6abJhfM.net
>>441
Cコンパイラが何でできているか知っているのは
コンパイラを作った人だけだからね
君は作ったことあるのかい
448:デフォルトの名無しさん
22/10/24 03:19:34.54 m3/1dAn60.net
>>442
gcc知らず?
clang知らず?
cl知らず?
何でできてるかって実装言語?
gccならCだよ
clangはC++
clは詳細はわからんがC/C++でしょう
449:デフォルトの名無しさん
22/10/24 05:15:28.86 p6w8R1yaM.net
キーワード引数の違いで引数cがあるときだけ下側を呼ぶような関数オーバーロードってできないんですかね
def myfunc(a:int,b:int)
def myfunc(a:int,b:int,c:int)
450:ハノン
22/10/24 06:55:32.96 +/V2/OmRH.net
>>443
gcc はカバのダンスの調教に疲れて c++ になったかと
451:デフォルトの名無しさん
22/10/24 07:32:37.40 FaCSJwQ/0.net
ラズパイを動かすための言語って思ってる人もいるかもしれない
452:デフォルトの名無しさん
22/10/24 07:46:28.41 LLDppSf/0.net
>>443
それはそう言う例があるってだけの話
テキストを読んでバイナリを出力できる言語なら(面倒かどうかは別にして)コンパイラを作れるだろ
453:デフォルトの名無しさん
22/10/24 08:02:02.76 m3/1dAn60.net
>>447
例ってなんだよw
454:デフォルトの名無しさん
22/10/24 08:45:07.46 ps8GOOL70.net
はじめにCありき
455:デフォルトの名無しさん
22/10/24 08:48:17.61 LLDppSf/0.net
>>448
念の為に聞いておくけどC言語はC/C+でないと作れないとか思ってないよね?
456:デフォルトの名無しさん
22/10/24 12:57:00.37 m3/1dAn60.net
>>450
何を言ってるんだ?
支離滅裂だぞ
Cコンパイラの作り方を知りたいのか?
字句解析、構文解析、意味解析、コード生成、最適化とかを知りたいのか?
コンパイラの教科書でも読めば?
ちな俺は大学でその辺やってたから教えても良いよ
457:デフォルトの名無しさん
22/10/24 13:06:44.24 m3/1dAn60.net
Cコンパイラ作りたいなら湯淺太一先生のコンパイラの教科書読みな
この本は昔大学で使っててアセンブリ言語のコード生成までちゃんと書いてある
著者はLisp処理系とか作ってた人
この本読めばRustがどういうコード生成してるかもわかる
458:デフォルトの名無しさん
22/10/24 13:14:19.77 LLDppSf/0.net
>>451-452
御託はいいから>>450にyes/noで答えろよ
459:デフォルトの名無しさん
22/10/24 13:15:55.81 rCA25jH/a.net
>>453
なんでCでしか作れないんだよw
おちょくるのもいい加減にしろ
460:デフォルトの名無しさん
22/10/24 13:17:22.92 rCA25jH/a.net
というかマジでわかってない?
コンパイラとリンカとか知らんのかな
それなら謝るけど
461:デフォルトの名無しさん
22/10/24 13:17:23.04 oX2BqG4d0.net
どーでもいいw
すれち
462:デフォルトの名無しさん
22/10/24 13:19:20.96 rCA25jH/a.net
あまりに前提知識が無さすぎるが故に煽りっぽくなってしまったのなら俺の責任だからそこは謝るよ
463:デフォルトの名無しさん
22/10/24 13:21:10.71 rCA25jH/a.net
どうでもよくないよ
コンパイラのこと知らずにRust書いてるならかなり怖い
464:デフォルトの名無しさん
22/10/24 13:23:06.14 oX2BqG4d0.net
PythonのスレでRust書いてる前提で話すほうが怖いわw
465:デフォルトの名無しさん
22/10/24 13:35:13.05 rCA25jH/a.net
>>459
ん?あ、すまんw
リアルに勘違いしてたw
アスペ出たなあ
466:デフォルトの名無しさん
22/10/24 13:35:23.26 8nSTkhtC0.net
ほとんどのスレが閑古鳥だからかスレチでも書きたい欲求が上回るんだろうね
467:デフォルトの名無しさん
22/10/24 13:40:32.83 rCA25jH/a.net
ただpythonでC/C++拡張を書く場合には普通に有効だし
知っていて損はないと思うけどね
スレ違いスマソ
468:デフォルトの名無しさん
22/10/24 13:45:13.84 LLDppSf/0.net
>>454
お前には聞いてないからいちいち絡んでくるなよ...
469:デフォルトの名無しさん
22/10/24 14:40:45.31 Ifzcx8SRd.net
アウアウウー Sa45-sGwS、ワッチョイ 81f0-sGwS
は同一人物でしょ
スレ違いだけど、こっちの流れのほうがわからん
462の発言に対して463が否定した
その後の467が???
>>442 テテンテンテン MMe6-zh4g
> Cコンパイラが何でできているか知っているのは
> コンパイラを作った人だけ
>>443 ワッチョイ 81f0-sGwS
> gccならCだよ
> clangはC++
>>447 ワッチョイ 8201-yYWu
> それはそう言う例があるってだけの話
> テキストを読んでバイナリを出力できる言語なら(面倒かどうかは別にして)コンパイラを作れるだろ
470:デフォルトの名無しさん
22/10/24 14:57:03.94 LLDppSf/0.net
>>464
だからC言語(のコンパイラやインタプリタ)はC/C++言語でなくても作れるって話
>>443 は単なる一例
もちろんPythonでも同様
471:デフォルトの名無しさん
22/10/24 15:22:20.03 2pr4kIm+d.net
>>465
一例ってことは、
462に対して例をあげて否定した463を肯定しつつ、新たな話題で絡んだってことよね
463以前でもそれ以降でも「C/C++以外では作れない」なんて言ってないのに
472:デフォルトの名無しさん
22/10/24 15:36:46.66 LLDppSf/0.net
>>466
どうやったそんなアホな解釈になるんだよw
462 はコンパイラ一般の話を書いてるのにそれに対して個々のコンパイラの例を挙げても否定にも何にもなってないって話だぞ
473:デフォルトの名無しさん
22/10/24 16:17:10.49 ZTzctXE7d.net
>>467
>>442 コンパイラ一般の話と
>>443 いくつか例外があるぞと
>>447 いくつか例外をあげても意味ないぞ
こういう流れだったか
> テキストを読んでバイナリを出力できる言語なら(面倒かどうかは別にして)コンパイラを作れるだろ
んで、2行目のこれは「どこに」かかってるんだ?
474:デフォルトの名無しさん
22/10/24 16:37:51.01 LLDppSf/0.net
>>468
頼むから書いてもない例外とかいきなり出してこないでくれ
> んで、2行目のこれは「どこに」かかってるんだ?
いくつかの例以外のものを作れるだろって話
475:デフォルトの名無しさん
22/10/24 17:06:30.10 /FISPYrld.net
例外 → 一般とは違う例
と読み替えてくれ
その作られている例と作れる話が繋がらなかったんだ
とりあえず流れは理解したわ
横槍すまんかった
476:デフォルトの名無しさん
22/10/24 17:39:36.14 LLDppSf/0.net
>>470
> 例外 → 一般とは違う例
> と読み替えてくれ
意味不明、487の一般の意味がわかってないだろ...
全般と書けばわかるかな?
477:デフォルトの名無しさん
22/10/24 17:44:48.33 aNKyy4xv0.net
しつこいと嫌われるぞ
478:デフォルトの名無しさん
22/10/24 18:01:08.06 neM6LaqeM.net
そもそもPythonもC言語で実装されているとは限らないしね。普通はCPython以外のことを考えなくていいと思うけど、今でもpypyとか使おうと思ったら考えなくちゃだしな(使ったことないのでよく知らないけど)
479:デフォルトの名無しさん
22/10/24 20:11:23.46 FaCSJwQ/0.net
c++で思い出したんだけどboost.pythonでndarrary渡したあとそのままndarrary操作してたら処理にアホほど時間がかかったわ
結局vectorに入れ替えて処理したあとpythonのリストに変換して戻したら早かった
今思えば最初から渡すのリストで良かったな
ndarray渡す利点なんかあるのかな?
480:デフォルトの名無しさん
22/10/24 20:35:32.52 Uzj8AQ880.net
>>474
コピーを減らせるのが利点だけど、アクセス時のチェック等で遅くなったら意味ないのでポインタを使う。
コピーをするにしても、ndarrayのデータは連続してるのでリストより速くなると思う。
481:デフォルトの名無しさん
22/10/24 20:57:46.29 1daaREig0.net
初めてvsコードに触ったんだが
pyhtonのバージョンはどうやってわかるんですかねー
教えて偉い人!
482:デフォルトの名無しさん
22/10/24 20:57:59.34 SgELnO580.net
flex とか bison は古典芸能ですか?
483:デフォルトの名無しさん
22/10/24 21:01:12.11 1daaREig0.net
September 2022 (version 1.72)
これのことかな?
すまん。よくわからんw
484:デフォルトの名無しさん
22/10/24 21:07:00.51 FaCSJwQ/0.net
>>475
データが連続してるからリストより早いってのはありそう
昔のコード発掘できたら試してみるわ
485:デフォルトの名無しさん
22/10/24 21:58:07.47 OQANp5iI0.net
>>477
今はPEGベースが流行りだね。
486:デフォルトの名無しさん
22/10/24 22:16:28.14 dNNjxJBr0.net
>>476
右下に表示されてる
そこクリックしたらインタープリターを選択っていうのがでてくる
487:デフォルトの名無しさん
22/10/24 22:38:27.05 1daaREig0.net
>>481
右下だとこうなります。
imgur.com/a/6CZm37Y
なかなかに初心者には難しいです。
488:デフォルトの名無しさん
22/10/24 22:44:52.56 1daaREig0.net
あ!できたっぽいw
python3.9.0ってでてきた。
これかな?
489:デフォルトの名無しさん
22/10/26 11:41:31.93 IsZcNO330.net
半島系のクズは皆殺しでOK
日本に来て強姦と窃盗を繰り返す極悪非道の朝鮮人
490:デフォルトの名無しさん
22/10/26 15:13:34.34 /Jbhrlo+a.net
>>477
RubyやPHPで使われてるから普通に現役だよ
手書きだとCFGから左再帰の除去だとか
先読みトークン数の問題とかすげー面倒だから
初心者はまずbison使えば良いんじゃないか
491:デフォルトの名無しさん
22/10/26 22:25:06.76 HUwfFIwe0.net
質問です
この引数は普通関数と可変引数ですが
この関数を簡単にする方法ありますか?
5個以上の場合も全部記述するしかないですか?
def connect(F, *x) :
l = len(x
492:) if l==0 : F() elif l==1 : F(x[0]) elif l==2 : F(x[0],x[1]) elif l==3 : F(x[0],x[1],x[2]) elif l==4 : F(x[0],x[1],x[2],x[3])
493:デフォルトの名無しさん
22/10/26 22:26:26.51 HUwfFIwe0.net
>>486は
消費メモリと消費時間を計測するベンチマークの補助関数としてつかいたいのですが
494:デフォルトの名無しさん
22/10/26 22:39:31.86 Gwv5fEeF0.net
>>486
F(*x)
495:デフォルトの名無しさん
22/10/26 22:43:13.09 HUwfFIwe0.net
>>488
サンクス
F(x)で駄目だったですが
それでいいんですか
496:デフォルトの名無しさん
22/10/26 22:48:38.63 1pgEFdE40.net
python3.11どうですか
497:デフォルトの名無しさん
22/10/26 23:22:36.27 iEeVk++I0.net
>>489
4.8.5. 引数リストのアンパック
URLリンク(docs.python.org)
498:デフォルトの名無しさん
22/10/26 23:24:41.91 iEeVk++I0.net
ていうかFって
499:デフォルトの名無しさん
22/10/26 23:32:56.52 3tunJph20.net
すべてが…
500:デフォルトの名無しさん
22/10/27 00:18:45.07 F/o6kN8OM.net
韓国人は強姦魔
処刑すべし!
501:デフォルトの名無しさん
22/10/27 00:19:10.85 H28rwqsV0.net
>>488
ウホッありがとな※
502:デフォルトの名無しさん
22/10/27 22:55:12.85 5KytWWZZ.net
FastAPI気軽に使えて良いわ
自動で/docs作られるからUI作んの完全に後回しにできる
ついでにSQLModelも、と思ったけどrelationship周りがエラー出たり出なかったりおかしかったが原因がわかった
SQLAlchemyのバージョンが最新のものだrelationshipが効かない、1.4.35だといける・・
あとCRUDの並行処理は無理ぽいかも。
これらさえなければ個人でさくっとお気軽にウェブアプリ作るフレームワークとして完璧なんだが
503:デフォルトの名無しさん
22/10/27 23:14:24.71 9zZ/mg550.net
tortoiseはどうですか
504:デフォルトの名無しさん
22/10/28 00:04:09.43 aYQ1muJl0.net
ちょんだらけw
505:デフォルトの名無しさん
22/10/28 01:57:08.28 dcIx+1f70.net
>>496
URLリンク(fastapi.tiangolo.com)
ユーザじゃないけどこれ読んだかぎりセッションを自前で管理してないからじゃ
仕組みは用意してないと書いてる
506:デフォルトの名無しさん
22/10/28 08:27:01.13 aYQ1muJl0.net
ちょんてさ、半島に帰れば差別されないのに絶対に半島に帰らないよね?
それは、日本が平和で豊かで、
日本人はみな親切だからです。
なのにちょんは差別されてると妄想をいだいて
日本人女性を強姦しまくってる!
ちょんは皆殺しにするしかない!
507:デフォルトの名無しさん
22/10/28 08:47:10.38 aYQ1muJl0.net
半島に絶対帰らないちょんw
日本人は犯罪者に親切し過ぎる!
508:デフォルトの名無しさん
22/10/28 09:16:34.07 lPPjHZ9qa.net
発作か
509:デフォルトの名無しさん
22/10/28 10:42:02.56 6fPFyEs10.net
統一教会が追い詰められてきたから焦ってるんだろ
510:デフォルトの名無しさん
22/10/30 03:06:48.95 9F5gJDkR0.net
Python初心者ですが新事実を発見しました
クラスのメンバ変数はデフォルト値が設定してあっても
コンスタントラクタで初期化しないかぎり、別に生成したクラスobjと共有されてるようです
リストとか特定の変数限定かもしれないですが
511:デフォルトの名無しさん
22/10/30 03:14:13.07 9F5gJDkR0.net
具体的にこれですが
class A :
L = []
def __init__(self): pass
class X :
L = []
def __init__(self): self.L = []
a = A()
a.L.append(7)
b = A()
print(b.L) # 新規生成なのに値が入ってる
a = X()
a.L.append(7)
b = X()
print(b.L) # 正常
print(a.L) # 正常
512:デフォルトの名無しさん
22/10/30 04:02:03.41 2IVXofav0.net
それはメンバ変数でなくてクラス変数だからだよ
513:デフォルトの名無しさん
22/10/30 04:51:48.91 9F5gJDkR0.net
そういうことか
Pythonでクラス変数とインスタンス変数を取り違えてハマった
URLリンク(qiita.com)
514:デフォルトの名無しさん
22/10/30 05:37:36.99 q24pCrd50.net
韓国人は神さま!
全財産を寄進せよ!
マンセー!
515:デフォルトの名無しさん
22/10/30 07:07:55.87 PYm3clPCM.net
>>505
pythonから入った者には
そらそうだろとしか思わないw
たぶんオレは他言語扱えないな
516:デフォルトの名無しさん
22/10/30 07:49:05.29 2N6ePwSn0.net
他の言語でも同等の機能を持つものはあるけどpythonはどちらの変数なのかを明示しないから混乱し易い
517:デフォルトの名無しさん
22/10/30 07:56:11.62 WAC/PohS0.net
どっちも同じに見えるのはその方が便利だと思ったんだろうか
必要なら使う側で見分け付くように名前を付ければいいという柔らか運用
518:デフォルトの名無しさん
22/10/30 08:30:50.67 2N6ePwSn0.net
>>511
> どっちも同じに見えるのはその方が便利だと思ったんだろうか
変数宣言をしないって言うポリシーなので最初に使った場所で決めるようにした/せざるを得なかったじゃないかなって思ってる
> 必要なら使う側で見分け付くように名前を付ければいいという柔らか運用
使う側はそれでいいけど宣言する人が勘違いしてたら意味ないわけで...
519:デフォルトの名無しさん
22/10/30 08:44:46.72 YV/Jz1Xt0.net
つい最近同じように、クラスを覚えようと
「python class」でググった一番上のサイトにやられた
URLリンク(camp.trainocate.co.jp)
クラス変数もインスタンス変数もめちゃくちゃだった
520:デフォルトの名無しさん
22/10/30 08:51:51.63 KYgyTmU4M.net
クラス変数をself.でアクセスしない運用にすれば取り敢えず解決
521:デフォルトの名無しさん
22/10/30 08:58:13.36 ejVjSPjsH.net
self.__class__.foo
self.FOO
522:デフォルトの名無しさん
22/10/30 11:40:59.42 0ss8sts10.net
質問です。
requestsを使って画像をダウンロードする時、
一定のサイズ以下の物をダウンロードしないようにしたいです。
どのようにするといいでしょう?
523:デフォルトの名無しさん
22/10/30 12:00:39.70 Ofy0PT2CM.net
>>516
どうすればいいって
自分で質問して自分で答え言ってるじゃん
524:デフォルトの名無しさん
22/10/30 12:02:51.23 o3zlfJHfa.net
streamを有効にして、ちびちびと確認しつつ取得
525:デフォルトの名無しさん
22/10/30 12:03:47.95 o3zlfJHfa.net
事前にわかってりゃその時点で止めればいいけどね
526:デフォルトの名無しさん
22/10/30 12:10:52.74 0ss8sts10.net
>>519
つまり一度ダウンロードしてからcv2等でサイズを確認し、
OKならリネームして保存、NOなら削除
という感じでしょうか?
527:デフォルトの名無しさん
22/10/30 12:28:08.24 WAC/PohS0.net
そうでないことは質問者なんだから判ってるだろうに
528:デフォルトの名無しさん
22/10/30 12:37:02.73 0WCgMjCVM.net
requests ファイルサイズってググれば一番上に出てくる
529:デフォルトの名無しさん
22/10/30 12:37:56.59 o3zlfJHfa.net
サイズって、実データのサイズじゃなくて画像のピクセル数とか色のサイズってこと?
530:デフォルトの名無しさん
22/10/30 12:41:23.93 ejVjSPjsH.net
画像のサイズっていう文脈なら俺はim.sizeとかを想定するなー
request文脈なら容量のサイズだけどな!
531:デフォルトの名無しさん
22/10/30 12:41:44.93 0ss8sts10.net
すいません。
質問の仕方がまずかったです。
画像の横幅とか縦幅の方のサイズのことです。
横幅350px以下の画像をダウンロードする時に除外したいのです。
532:デフォルトの名無しさん
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
それも友人に、グローバル変数は少なければ少ないほどいい、と言われたのを
受けてのことです