Pythonのお勉強 Part70at TECH
Pythonのお勉強 Part70 - 暇つぶし2ch285:デフォルトの名無しさん
23/05/22 18:35:07.65 TcXdI8Pp0.net
key は整数型とドキュメントに書かれているが?

286:デフォルトの名無しさん
23/05/22 18:50:31.32 jGNTm+uC0.net
>>282
それはシーケンス型の場合って書いてませんか?
dict型のエミュレーションが目的なんですが
ちなみにin比較しないでmyclass[key]の場合は動作は期待通りです
inで比較したいのにエラーなるのでなぜかわからない事態です
キーは実際にあるので__missing__の実装とは関係ないかと思うのですが

287:デフォルトの名無しさん
23/05/22 19:06:11.68 jGNTm+uC0.net
自己解決しました
>__contains__() を定義しないオブジェクトに対しては、メンバシップテストはまず、 __iter__() を使った反復を試みます
でした

288:デフォルトの名無しさん
23/05/22 19:15:00.64 2xhSnxHv0.net
a, b, c = list[:3]
とすると、中身があればいいけど無いとエラーになる
無い時はNoneが入るようにしようと思うと、
a, b, c = list[:3] + [None, None, None]
みたいにしないといけない
なんかもやもやするので、もっといい書き方ある?

289:デフォルトの名無しさん
23/05/22 19:52:51.64 Y3GhwDFGp.net
List_A
List_B
List_C
があって、CSVに出力すると1行目にA,2行目にBっていうふうになります。
これを縦に並べて1列目にA,2列目にB,3列目にCと出力したいです。
パンダスで行列に変換してから転置、転置したものの1行目をリストA',2行目をリストB'みたいにして出力して対応はできたのですがもう少しスマートなやり方ないでしょうか?

290:デフォルトの名無しさん
23/05/22 20:17:51.14 sAlsu4+P0.net
>>286
URLリンク(docs.python.org)

291:デフォルトの名無しさん
23/05/22 22:53:16.45 XGVinkOj0.net
>>285
いいやり方ないね
a, b, c = unpack_or_default(mylist, 3)のように自分で関数化かな

292:デフォルトの名無しさん
23/05/22 22:55:57.03 sAlsu4+P0.net
おおがかりでもよければ
from more_itertools import *
a, b, c = take(3, pad_none(lst))

293:デフォルトの名無しさん
23/05/22 23:03:18.26 2xhSnxHv0.net
やってること一緒だもんな
足りてない時はNoneで埋めます、を暗黙にする訳にはいかなくて、
何らかの方法でそれが判るように書かないといけないなら、元のままが一番素直かもしれん

294:デフォルトの名無しさん (ワッチョイ defb-Pn9L)
23/05/23 03:09:27.85 gLCisDzi0.net
お前らのせいでクララが立ったんだが

295:デフォルトの名無しさん
23/05/23 10:49:55.37 X1m2WkvHa.net
a, b, c, _ = (list + [None] * 3)[:3]

296:デフォルトの名無しさん
23/05/23 10:57:50.75 Kb7aSTvI0.net
_はなんで要るの?

297:デフォルトの名無しさん
23/05/23 16:45:29.43 koKlYaEi0.net
printで文字列と数値を合わせて表示する場合
formatメソッド使うとstr関数で数値を文字列に変換する必要が無い?

298:デフォルトの名無しさん
23/05/23 16:53:43.43 d8FV5sbM0.net
何故試さないんだ?

299:デフォルトの名無しさん (ワッチョイ 4f54-FIIW)
23/05/23 18:06:50.19 Kb7aSTvI0.net
formatって自由度高すぎて逆に正解が判らん

300:デフォルトの名無しさん (ワッチョイ de7b-nmQz)
23/05/23 18:21:05.98 d8FV5sbM0.net
n=1
print(f"とりあえず{n}回試してみたらいいんだよ")

301:デフォルトの名無しさん (ワッチョイ 0363-SkZo)
23/05/23 18:26:28.31 2KukQYy00.net
古い人間なんで
print('とりあえず{}回試してみたらいいんだよ'.format(n))

302:デフォルトの名無しさん (ワッチョイ 0310-owa4)
23/05/23 18:56:03.36 JMXPuiCR0.net
Formatは使わずに

a=1
print("a:")
print(a)

とかやっちゃうな。

303:デフォルトの名無しさん (ワッチョイ 4f54-FIIW)
23/05/23 18:58:29.83 Kb7aSTvI0.net
print(f'{a=}')
が使えない期間はどのくらいあったんだっけ

304:デフォルトの名無しさん (ワッチョイ defb-Pn9L)
23/05/23 19:02:29.48 gLCisDzi0.net
%dがないと書けないだろそれ

305:デフォルトの名無しさん (ワッチョイ 0310-owa4)
23/05/23 19:37:45.42 JMXPuiCR0.net
a=1
print('aは', a, 'です')

で1行に書ける。
桁数指定等しないならformatを使わなくてもよい。

306:デフォルトの名無しさん (ワッチョイ 4f54-FIIW)
23/05/23 19:44:20.80 Kb7aSTvI0.net
それでいいじゃんという思いがあったから、f文字列の実装があんなに遅かったんだろうな

str = f'aは{a}です'
print(str)

ができるので、文字列にしちゃった方が取り回しがいい

307:デフォルトの名無しさん (ワッチョイ 0310-owa4)
23/05/23 19:46:06.48 JMXPuiCR0.net
>>302
はpython3の場合ね

308:デフォルトの名無しさん (ワッチョイ 6b10-cbOI)
23/05/23 20:26:41.69 vaXvQcIB0.net
PILでカウントアップするgif画像を生成するプログラムを作りたいのですが、gif画像が動きません。
URLリンク(dpaste.com)

希望では開くと順次数字がカウントアップされるgifファイルとなるはずなのですが、
どこがわるいのかわかりません。

309:デフォルトの名無しさん
23/05/23 20:37:30.97 vaXvQcIB0.net
自己解決しました。
最終行のパラメータが
append_image
になってました。正しくは、append_imagesでした。

310:デフォルトの名無しさん
23/05/23 22:16:27.17 gLCisDzi0.net
python2.2くらいのころ

311:デフォルトの名無しさん
23/05/27 08:52:36.37 kNCRj74ed.net
スクレイピングしようとbs4でしたところ
URL:http---.jpgがあってそのままだと吸い出せず
そのあとにつづく.netでした
けれどの\sや\nなどでやっても結合できず
置き換えでやったところprintで見ると.netの部分が空白行になってました
要素か何か別々になってるような感じで、、、
初心者過ぎてよく分かりません
soup = BeautifulSoup(res.text, "html.parser")
[tag.extract() for tag in soup(string='n')]
elems = soup. find_all("img", class_="ほにゃらら")
for elems in elems:
elems = elems.get("data-src")
elems = elems.replace('.net','')
elems = elems.replace('jpg','jpg.net')
elems = elems.replace('png','png.net')
if elems.startswith("http") and (elems.endswith('')):
printした時こうなります
http jpg.net
http jpg.net
http jpg.net
改行のようではなかったのでどのように結合させて
ファイルを1.jpgから順に書き出すにはどうしたらいいですか?

312:デフォルトの名無しさん
23/05/27 09:00:31.23 L2vd50qR0.net
初心者はスクレイピングはするなよ

313:デフォルトの名無しさん (ワッチョイ eb68-jfx8)
23/05/27 09:25:50.64 UvPowDbL0.net
AIに聞け

314:デフォルトの名無しさん
23/05/27 12:02:06.97 fcbjf6f+0.net
skyscraping

315:デフォルトの名無しさん
23/06/01 16:52:29.22 gN7DNRA50.net
import ffmpeg
# 出力①
stream = ffmpeg.input("test1.wav")
stream = stream.filter('afade', type='in', start_time=0, duration=5)
stream = ffmpeg.output(stream, "test1.mp3")
ffmpeg.run(stream)
# 出力②
stream = ffmpeg.input("test2.wav")
stream = stream.filter('afftdn')
stream = ffmpeg.output(stream, "test2.mp3")
ffmpeg.run(stream)
この様にした場合出力①のフィルターは出力2でも有効なのでしょうか
streamのオブジェクトをリセットできませんか

316:デフォルトの名無しさん
23/06/01 17:09:12.89 2ejdPdKk0.net
ffmpegの挙動は謎が多いからなあ
コマンドラインからでもよく判らんものをさらに上から被せたらもっと判らん

317:デフォルトの名無しさん
23/06/01 17:10:47.28 gN7DNRA50.net
stream = Noneとかしておけばいいのかな

318:デフォルトの名無しさん
23/06/01 19:28:49.46 9UkFjNvY0.net
streamのインスタンスはそれしても変わらんから
ライブラリの実装がまずいならPython側でプロセス分けるとか
fork、multiprocessing他

319:デフォルトの名無しさん (スププ Sda2-UeIx)
23/06/03 18:43:23.62 vl84qNBAd.net
>>308だけど
URLを格納したのを表示させたら\n\nでした
それを無くせば良かっただけでした
それで処理からカウントjpgにして、、、

このやり方だと元ファイルがpngとかのフォーマットだとjpgに置き換えてるだけでそれを変換するのが分からないのと
一つ一つDLするとものすごく遅いので
webには並列の非同期asyncioが良いとされているんですが
処理が終わった状態のからカウントjpgになるんですかね?
そのasyncioもこれからなんですけど初心者には難し過ぎるよ、、、


URLリンク(i.imgur.com)

320:デフォルトの名無しさん
23/06/03 20:59:56.61 uw9I+Q3M0.net
>>316
>>309

321:デフォルトの名無しさん
23/06/03 22:18:25.13 ZC+gxQ5g0.net
asyncio使うのはいいけど負荷に気をつけろよ

322:デフォルトの名無しさん
23/06/03 23:03:36.74 2QEQ5+1m0.net
調子乗って処理させたら青画面なった

323:デフォルトの名無しさん
23/06/04 03:47:02.55 XolxJINE0.net
とりあえずテキストエディタの背景が白いのをやめるんだ

324:デフォルトの名無しさん
23/06/06 11:15:45.11 NOo63SXR0.net
ピソン、
なんでもできる言語だと聞きましたが
ブログとか作ろうと思ったら
HTMLのほうがいいんですか?
JAVAの人気もそうですが、
パイソンが出てきても他の言語が駆逐されてないんですね…

325:デフォルトの名無しさん (ワッチョイ 065f-N/Lw)
23/06/06 11:20:43.65 NOo63SXR0.net
すみません、誤爆しました
初心者スレ行けですね

326:デフォルトの名無しさん
23/06/06 12:40:14.37 thyMI4pi0.net
ドストエフスキーの文章よりも難しいな

327:デフォルトの名無しさん
23/06/06 13:18:02.81 h4TMdgn6a.net
マルチ判定リクエスト中

328:デフォルトの名無しさん
23/06/06 13:49:56.81 c5Tg6KEz0.net
出てきてもとか言ってるけどpython自体は確か30年以上前から開発されてる言語だけどな

329:デフォルトの名無しさん (ワッチョイ 7d5f-+AdM)
23/06/06 14:19:20.43 TOjFiGIo0.net
1.5.2より前から使ってるから妻よりつきあい長くて草

330:デフォルトの名無しさん (ワッチョイ 9d54-tyMo)
23/06/06 14:21:55.09 763lc9G+0.net
会社の環境が3.6で固定されてるので、変な回避技が身につく

331:デフォルトの名無しさん
23/06/06 14:55:53.55 qDf8J72k0.net
>>326
奥様の初期版は幾つですか。

332:デフォルトの名無しさん (ワッチョイ eea7-eC91)
23/06/06 19:27:25.63 vWLMTBxN0.net
flaskを使ってloggingでログをファイルに出力しようとしています。
ログを見るとエスケープシーケンスがうまく働いていない?のですが、どうすれば綺麗に読める文字列のみ出力されるでしょうか。

自分なりに調べたらフォーマットを指定していないとこうなるという情報があったのですが、きちんと指定しており実際その通りの形式で出力されているので反映はされていると思っています。

図中の赤い箇所(ESC[31mなどとなっている部分)です。

URLリンク(i.imgur.com)

333:デフォルトの名無しさん
23/06/06 19:42:24.47 763lc9G+0.net
環境による
多分windowsで、その場合は儀式が必要

334:デフォルトの名無しさん
23/06/06 23:57:03.60 On4pFXf00.net
URLリンク(qiita.com)
このPyAudioをつかう方のソースをコピペして、cmdで起動して
リブートってマイク入力すると再起動って表示されるんだけど
recognize_google()なにかおかしいのかな

335:デフォルトの名無しさん (ワッチョイ 7d5f-92fi)
23/06/07 05:30:31.36 aCOIJr4k0.net
>>329
chatGPTに聞いてみたよ

Flaskでログをファイルに出力する場合、デフォルトではログレベルがINFOに設定されており、色付きのログが出力されることがあります。これはターミナルでログを表示する際に役立つものであり、ログファイルではうまく表示されません。

ログフォーマットを指定する際に、色付きログを無効にするよう設定することで、ファイルに綺麗に読める文字列のみ出力されるようになります。具体的には、以下のような設定を追加してみてください:

```python
import logging
from flask import Flask

app = Flask(__name__)
app.logger.setLevel(logging.INFO)

# ログフォーマットを指定
formatter = logging.Formatter('%(asctime)s %(levelname)s: %(message)s')

# 色付きログを無効化するハンドラを追加
handler = logging.StreamHandler()
handler.setFormatter(formatter)
app.logger.addHandler(handler)

# 以下はログの出力例
app.logger.debug('デバッグメッセージ')
app.logger.info('インフォメーションメッセージ')
app.logger.warning('警告メッセージ')
app.logger.error('エラーメッセージ')
```

この設定を使用すると、色付きのエスケープシーケンスがログファイルに出力されず、綺麗に読める文字列のみが出力されるはずです。

336:デフォルトの名無しさん (ワッチョイ 7d5f-92fi)
23/06/07 05:40:47.02 aCOIJr4k0.net
>>330
同じく聞いてみた

以下のようなコードを使って、リブートと入力すると、再起動と表示されます。期待する結果はリブートとそのまま表示されることですが、何かおかしいところはありますか?

以下回答
会話が噛み合ってないけど内部で一度英語に変換されてるからなんだろうと思う
それを考慮すると噛み合ってんのかなあと

このコードにはいくつかの問題があります。

1. `import speech_recognition as sr`の前に`import pyaudio`を追加する必要があります。

2. `stream_callback=callback`の行の前に`callback`関数を定義する必要があります。コードの上部に`def callback(in_data, frame_count, time_info, status):`を追加してください。

3. `sprec.recognize_google(audiodata, language='ja-JP')`の行の前に`sprec`を初期化するコードが必要です。`main()`関数内の`sprec = sr.Recognizer()`をコメント解除してください。

これらの修正を行った後、再起動と入力すると、"再起動"と表示されるはずです。

337:デフォルトの名無しさん
23/06/07 05:41:49.43 aCOIJr4k0.net
アンカー間違えた
>>331
332
333
とも実際に試してはいない

338:デフォルトの名無しさん
23/06/07 05:47:14.44 yPtLBTHe0.net
通例エスケープシーケンスつけるのは出力先が対応してるときだけで
FlaskかPythonのWindows対応がマズくて画面に見えちゃってるけども
ファイル出力するならそうはならんでしょ

339:デフォルトの名無しさん
23/06/07 07:45:36.76 uhVmgr37a.net
常に平気で嘘を吐く ChatGPT

340:デフォルトの名無しさん
23/06/07 07:47:50.59 pHrUHK5+0.net
色付きで表示するよ、というパッケージはいろいろあるけど、
エスケープシーケンスの文字列を定数にしてるだけで、自分で作った方がまし
colorama.init() さえやっとけばok

341:デフォルトの名無しさん
23/06/07 08:03:00.41 YNIOL4trM.net
>>336
本当かのように嘘付くよな

342:デフォルトの名無しさん
23/06/07 08:44:55.80 bO+mGfX90.net
windowsで人工知能 deep learning データ解析とかをpythonで勉強したいのですが、
wsl2とかいうのにpythonをインストールしたほうがいいのですか?
一応古くて安い奴だけどグラフィックボードgeforce2060が取り付けてます。これを生かすにはそっちのほうがいいのですか?

343:デフォルトの名無しさん
23/06/07 08:55:02.41 pHrUHK5+0.net
特に違いは無いのでは

344:デフォルトの名無しさん
23/06/07 08:59:29.26 pHrUHK5+0.net
と思ったけどwindowsの方が遅いという計測結果があるから、linuxの方がいいらしい

345:デフォルトの名無しさん
23/06/07 11:47:01.88 V1RpM5Mg0.net
ここで詰まるようではDLにたどり着くには何年かかるか…

346:デフォルトの名無しさん
23/06/07 11:49:34.84 pHrUHK5+0.net
まあ、高速化したいと思った時に乗り換えでも困らないけど

347:デフォルトの名無しさん (ワッチョイ 095f-N/Lw)
23/06/07 23:20:02.31 bO+mGfX90.net
>>341 343
とりあえずwsl挑戦することにしました。ありがとうございました。

348:デフォルトの名無しさん
23/06/08 22:39:09.80 Q71DyilT0.net
PythonからTorプロキシ刺してIP変わってるか確認するコード動かすとエラーになるんだけど、このスレで質問してもいいですか?

349:デフォルトの名無しさん
23/06/09 00:14:58.20 5qXtjY9+0.net
エラーメッセージ見ても対応できんのなら、ここで聞いても無駄じゃね?
ググって出てくること以上の回答なんかないぞ

350:デフォルトの名無しさん
23/06/09 01:08:05.56 n1DTPL+N0.net
ググりまくったけどわかんなかったんで聞こうと思ったんです。
5ちゃんの天才方なら知ってるかなぁって。

351:デフォルトの名無しさん
23/06/09 05:49:46.21 AE/orgDH0.net
torなら自力で解決できるようになるまでさわるな
絶対に他人に迷惑かけてる

352:デフォルトの名無しさん
23/06/09 07:05:57.87 Oq0Svxoj0.net
>>345 がどういうコードとエラーか知らんけどオレが試したら問題なかった
imgur.com/a/WGJSCEi

353:デフォルトの名無しさん
23/06/09 11:28:02.80 5qXtjY9+0.net
まあ、torで何をしたいのかをちゃんと説明したら
優しい人なら回答してくれるかもねw

354:デフォルトの名無しさん
23/06/09 15:55:47.91 m5Jmc/8C0.net
そのコードでいうとTor依存じゃなくSOCKS Proxy使ってるだけだから
Tor側がちゃんと起動してないだけじゃないの?
ブラウザが同じProxy設定で使えてるかまず確認した方がいい
それかPythonを仮想マシンで動かしてるか

355:デフォルトの名無しさん
23/06/09 18:30:17.12 ueZRd9hZ0.net
WSLでGUI動かすと激重だからコーディングするのWindows側になるじゃん
そしたらそのままVS Codeで起動すれば良くねってなるから
結局WSL要らなくね

356:デフォルトの名無しさん
23/06/09 18:41:41.13 Oq0Svxoj0.net
基本的に仮想環境って自身の開発環境とは別の本番環境を想定して使うものじゃない?
自身のPCで動かすもの作ってるんだったらわざわざ仮想環境なんて作らなくていいと思うけど

357:デフォルトの名無しさん
23/06/09 19:32:50.07 HOKl4gpB0.net
windows用のバイナリを作るのにWSL2からクロスコンパイルした方が楽だったりする

358:デフォルトの名無しさん
23/06/09 22:00:09.19 n1DTPL+N0.net
345だけど書き込みができない...

359:デフォルトの名無しさん
23/06/09 22:13:43.14 OxCpfWI40.net
???

360:デフォルトの名無しさん
23/06/09 22:40:27.64 n1DTPL+N0.net
あ、できてた!
345だけど、IPの秘匿化に関して実験してるだけなのよ。
興味があっただけでそれ以上何かするつもりないのよ。
力を貸してください(泣)
[目的]
Pythonでtorのプロキシを使って接続し、IPが変わってる事を確認したい。
[環境]
Torブラウザ(12.0.6)
PCはsurface go 3
python実行環境はjupyter lab
接続はテザリング
OSはWindows11

361:デフォルトの名無しさん
23/06/09 22:44:54.65 n1DTPL+N0.net
[結果]
[WinError 10061] 対象のコンピューターによって拒否されたため、接続できませんでした。 とエラーが出て接続できない
[参考]
・Torブラウザ単体でwebに接続した場合は問題なく接続でき、IPが変わってた。
・ファイアーウォール無効でもダメだった
・Torに設定されてるプロキシ情報がどこにも無くて困ってる(デフォは127.0.0.1で9050らしいけど...どこに設定されてるのよ)
・テザリングでも自宅のLANでも同じ現象が発生

362:デフォルトの名無しさん
23/06/09 22:45:56.07 n1DTPL+N0.net
[ソース]
import requests
proxies = { 'http':'socks5://127.0.0.1:9050', 'https':'socks5://127.0.0.1:9050' }
res = requests.get('IPインフォのURL',proxies=proxies).json()
print(res)

363:345
23/06/09 22:48:13.26 n1DTPL+N0.net
連投すません。
長すぎたのと、リンクがあると書き込みできなかったので小分けにしました。
何卒よろしくおねがいします。

364:デフォルトの名無しさん
23/06/09 23:00:49.15 m5Jmc/8C0.net
EdgeでもChromeでもそのSOCKSプロキシを設定してみ
それで接続先が正しいか切り分けできるでしょ
>>349 が動いてるから明白だけど

365:デフォルトの名無しさん
23/06/09 23:48:18.41 n1DTPL+N0.net
>361
EdgeとChromeどちらでも、SOCKSプロキシを設定してみたのですが、ネット接続が切れるだけでダメでした。
いろんな人に聞いても、何も設定などせずTorブラウザ立ち上げとくだけで、PythonからTorプロキシ刺せるっていうんです。
自分の環境だけ何でできないんだろうか...

366:デフォルトの名無しさん
23/06/10 00:47:43.47 r0ySRgqu0.net
下手なんでしょ、色々と

367:デフォルトの名無しさん
23/06/10 01:31:58.04 Zq/8zyxv0.net
>>358
tor.exeを実行してるときとTorブラウザを実行してるときとで、使うポート番号違うんだけどそれはもう試した?
ブラウザの場合は9050じゃなくて9150で、読んだか分からんけど>>349のURLに貼ってあるソースでは9150使ってる。

368:デフォルトの名無しさん
23/06/10 04:58:26.12 l45aDm8W0.net
torは機械アクセスで使用するようなリソースじゃない
迷惑だからやめとか

369:デフォルトの名無しさん
23/06/10 09:58:16.55 Zq/8zyxv0.net
念の為jupyter labからも試したけどちゃんとip変わった
URLリンク(i.imgur.com)

370:デフォルトの名無しさん
23/06/10 12:57:50.19 6IGx049dd.net
copilotやってみたけど、
楽しいな
コードよりコメントを丁寧に書くようになるw

371:デフォルトの名無しさん
23/06/10 14:24:42.38 muD8D6FKd.net
345です。
>364
あなたは天才です。
9150で刺したら通りました。
他にも回答していただいた方々本当にありがとうございました!
ちゃんと勉強します。

372:デフォルトの名無しさん
23/06/10 21:31:03.52 HKPT3ucF0.net
>>367
コピロットってどこでできんの?

373:デフォルトの名無しさん
23/06/11 00:13:53.27 LyU8IF5C0.net
>>369
githubで申し込んで
vscodeのプラグインいれる
pycharmでも、いけるんかいな

374:デフォルトの名無しさん
23/06/12 16:25:28.47 VmiV3Y6z0.net
>>370
サンクス入れてみた
ってこれ有料か

375:デフォルトの名無しさん
23/06/12 16:35:27.44 Lj2zWY+Q0.net
>>371
有料だけど、未来が垣間見れる
出来たコードをgptに読ませると、また面白い

376:デフォルトの名無しさん
23/06/12 16:42:19.86 qTkaXJUF0.net
AIがAIを開発するようになるとシンギュラリティ起きるぞ

377:デフォルトの名無しさん
23/06/12 17:13:57.24 rYc4uFtU0.net
aiでエロ動画作りたいのですが、スタンダードなツールありますか(´・ω・`)

378:デフォルトの名無しさん
23/06/12 18:44:06.75 Lj2zWY+Q0.net
コメントを変数名まで指定して書くと
丁寧に補完してくれる
性格は結構せっかちだな

379:デフォルトの名無しさん
23/06/13 10:07:06.61 40Mg8HNk0.net


380:デフォルトの名無しさん (オイコラミネオ MMd5-koSu)
23/06/14 07:49:11.95 D3Gndqn3M.net
>>352
WSL側にファイルそのものや実行/デバッグ環境を置いて、WindowsのVSCodeからリモート接続する。

381:デフォルトの名無しさん (ワッチョイ 8bbb-f0F1)
23/06/14 12:40:23.94 zQTHCkUD0.net
pythonというかおそらくVS code の問題なんだろうけど
特定のスクリプトを実行するときにデバッグポイント素通りしてしまいます
pyファイルにはclassが一つだけあって
スクリプト実行時にはそのクラスのインスタンスを作って
メソッド呼ぶだけなんですが
if __name__ == ‘__main__’:
にブレイクポイント置いてもそこすらすり抜けてもはや意味わかりません
別のスクリプトからモジュールとしてインポートする時は期待どおりに動きます
また、他のpyファイルではブレイクポイントに問題ありません
launch.jsonでは’stopOnEntry’ : trueにしてます
対処法教えてください

382:デフォルトの名無しさん (ワッチョイ 8bfb-Xx8j)
23/06/14 12:54:34.72 XWt8afSz0.net
プークスクス

383:デフォルトの名無しさん (アウアウウー Sadd-g1CP)
23/06/14 13:03:44.01 iWYHYN4ra.net
__name__ が '__main__' になるのは自分を実行したときだけだが

384:デフォルトの名無しさん (ワッチョイ 8bbb-f0F1)
23/06/14 13:17:40.25 zQTHCkUD0.net
${file}をデバッグ起動してるから
__name__はmainになるはずだし
if __ name__ == ‘__ main__’:
pass

だと実際そこで止まるんだけど

if __ name__ == ‘__ main__’:
 h == hoge()

とするとifで止める事すらできなくてなぜか全部実行されるので
意味がわからんのです
最初class hogeのdef __init__がおかしいのかなって思ったけど
そもそもすべてのブレークポイントが反応しない
1行ごとに置いてもだめ
syntax errorも出てないしもちろんマルチスレッドでもない

385:デフォルトの名無しさん (アウアウウー Sadd-g1CP)
23/06/14 13:22:46.46 iWYHYN4ra.net
if __ name__ == ‘__ main__’:
以外のところで何かやってない?

386:デフォルトの名無しさん (アウアウウー Sadd-g1CP)
23/06/14 13:24:16.40 iWYHYN4ra.net
ああ編集してるのと違うファイルが実行されてる可能性もあるな

387:デフォルトの名無しさん (ワッチョイ 8bbb-f0F1)
23/06/14 13:28:21.48 zQTHCkUD0.net
>>382
from importが15行くらい
折りたたむと全部隠れるのでclass以外に実行してるコードは無し
自分の書いたモジュール以外だと

tqdmが外部ライブラリで
これが怪しそうだけど確信はない

388:デフォルトの名無しさん (ワッチョイ 8bbb-f0F1)
23/06/14 13:31:04.88 zQTHCkUD0.net
>>383
“program


389: : “${file}”で”module”は指定してません



390:デフォルトの名無しさん (ワッチョイ 315f-WDtW)
23/06/14 14:44:35.81 bsnrwMoS0.net
MS標準のPython拡張だと問題なく止まるけどどういう環境?
こんなかんじで実行されてる
% /usr/bin/env /opt/homebrew/bin/python3 ~/.vscode/extensions/ms-python.python-2023.10.1/pythonFiles/lib/python/debugpy/adapter/../../debugpy/launcher 53796 -- /PATH/TO/test.py

391:デフォルトの名無しさん (ワッチョイ 8bbb-f0F1)
23/06/14 14:53:59.57 no7cETpk0.net
windowsアップデート来てたから再起動かけたら直ったかも
止まるようになった…

392:デフォルトの名無しさん (アウアウウー Sadd-qEZs)
23/06/15 19:02:34.97 YfplQawpa.net
エラーメッセージはChatGPTにコピペして教えてもってるわ

393:デフォルトの名無しさん (ワッチョイ 315f-2N5/)
23/06/15 19:16:40.16 D64wDQkR0.net
でも明らかなインデントエラーも見落とすからな、chatgpt
もうちょいでいいから、賢くなってくれればいいのに

394:デフォルトの名無しさん (ワッチョイ 8bfb-Xx8j)
23/06/15 19:19:44.10 M9bt3STi0.net
可能性見てるだけやからな
つまり当たり外れあるよってこと

395:デフォルトの名無しさん (ワッチョイ 315f-2N5/)
23/06/15 19:24:36.87 D64wDQkR0.net
コードの一行一行はうまく解釈してくれる
でも全体を見るとなると、適当になるんだよな

396:デフォルトの名無しさん (ワッチョイ 8bfb-Xx8j)
23/06/15 19:28:55.29 M9bt3STi0.net
次に来る文節の可能性みてるだけだからな

397:デフォルトの名無しさん (ワッチョイ 8bfb-Xx8j)
23/06/15 19:30:14.90 M9bt3STi0.net
つまり当たり外れあるよってことよ

398:デフォルトの名無しさん (アウアウウー Sadd-Xx8j)
23/06/15 19:37:13.41 +DcTqNCxa.net
次に来る字句が適切かの可能性を評価して学習して平均的かつ多数であれば、適切と評価しちゃうんだよな
多数であっても、評価結果に影響がないように出来てるっぽいので、可能性が高い方が出力される仕組みだよね

399:デフォルトの名無しさん (アウアウウー Sadd-g1CP)
23/06/16 09:10:18.67 ly+Q1cW8a.net
まだ脊髄反射レベルにさえ達していない

400:デフォルトの名無しさん (ワッチョイ 8b7b-mlUh)
23/06/16 09:12:51.55 QtztxJ5V0.net
脊髄ないしな

401:デフォルトの名無しさん (スフッ Sd33-pDI4)
23/06/16 12:47:07.07 AFoiPDKcd.net
これはひどい
detail.chiebukuro.yahoo.co.jp
/qa/question_detail/q13281535528

402:デフォルトの名無しさん (ワッチョイ a9a8-3D3L)
23/06/16 19:18:04.90 Xntsmxpr0.net
a=100
if a == 100:
print("100点満点")
else:
print("ざんねん")
昨日勉強し始めたばっかりで質問です。
インデントはスペース4つか2つと書いてあり、ズレたらエラーになると書いてたのですが、0.2.3.4.5試したのですが、エラーにならないです。
どうやったらエラーになりますか?

403:デフォルトの名無しさん (ワッチョイ 7b61-gq1f)
23/06/16 19:34:39.11 ZPTtRGB70.net
ブロック内でインデントズレてるとエラーにならない?
例えば↓の100点満点とやったねはインデントが揃ってないといけないけどズレてるからエラーになるはず
if a == 100:
 print("100点満点")
  print("やったね")
else:
  print("ざんねん")

404:デフォルトの名無しさん (ワッチョイ a9a8-3D3L)
23/06/16 19:48:22.60 Xntsmxpr0.net
>>399
ありがとうございます。

405:デフォルトの名無しさん (ワッチョイ a9a8-3D3L)
23/06/16 19:52:34.54 Xntsmxpr0.net
>>399
インデントを揃えてたら何個でもいいってことですか?

406:デフォルトの名無しさん (ワッチョイ 1302-8sUu)
23/06/16 21:40:00.82 MAnoUayu0.net
(自分でやってみた方が早いんじゃないだろうか・・・)

407:デフォルトの名無しさん (ワッチョイ 7154-2rqm)
23/06/16 22:05:22.73 Qr7qGmVF0.net
strip()で全角スペースも除去するんだったら、
インデントに使わせてくれてもいいのに

408:デフォルトの名無しさん (ワッチョイ 793d-C6j3)
23/06/17 13:43:48.34 nv4PMJEL0.net
URLリンク(github.com)
短文だと問題ないのですが1000文字くらいの長文だと途切れてしまったり、一部分しか送信されなかったりするのですが何処が駄目なんですかね。

409:デフォルトの名無しさん (ワッチョイ f661-oNF8)
23/06/17 14:33:52.44 Fi2FK6UR0.net
>>404 そもそもこのアプリケーション利用規約違反じゃね?
うろ覚えだけどボットアカウント以外を自動化して何か行うのダメだった気がするけど

410:デフォルトの名無しさん (ワッチョイ f661-oNF8)
23/06/17 14:59:56.92 Fi2FK6UR0.net
>>404 規約も見つけたから URL 貼っておくわ
discord.com/developers/docs/topics/oauth2#bot-vs-user-accounts
> Developers must abide by the terms of service, which includes refraining from automating standard user accounts (generally called "self-bots") outside of the OAuth2/bot API.
以下 DeepL 訳
開発者は、OAuth2/bot API以外の標準的なユーザーアカウント(一般に「セルフボット」と呼ばれる)を自動化することを控えるなど、利用規約を遵守する必要があります。

411:デフォルトの名無しさん (ワッチョイ 793d-C6j3)
23/06/17 15:26:31.62 nv4PMJEL0.net
>>405,406
となるとディスコ側で弾いてる可能性もありますね
BANされるのも嫌なので今回はやめておこうと思います
ありがとうございました

412:デフォルトの名無しさん (ワッチョイ f661-NCu+)
23/06/17 20:49:20.63 Fi2FK6UR0.net
うん、一定間隔でメッセージ送信するくらいだったら簡単に作れると思うから、ボット作っちゃったほうがいいと思う。
ただ、サーバーの管理者じゃないとボット参加させられないけど。
まぁあとdiscord.pyは揉め事があって開発再開してから今どうなってるかわからないけど。

413:デフォルトの名無しさん (ワッチョイ 793d-C6j3)
23/06/17 21:25:30.40 nv4PMJEL0.net
>>408
ディスコの運用初心者で詳しくないのですが、ボットで違うサーバに自動投稿というのは出来ないんですよね?
やりたいのはゲームのチーム募集で10時間に一回投稿という感じなのですが

414:デフォルトの名無しさん (ワッチョイ f661-NCu+)
23/06/18 03:49:42.01 FVqhDmcT0.net
ボットが参加してるサーバーじゃないと無理だね
あとチャンネルにメッセージ送信できる権限も必要

415:デフォルトの名無しさん (ワッチョイ 793d-C6j3)
23/06/18 08:30:36.69 GZZlDb8U0.net
>>410
まあ自動投稿って荒らしがやりそうな事ですもんね
手動投稿でがんばります

416:デフォルトの名無しさん (ワッチョイ 8950-wtyc)
23/06/19 16:31:51.04 1BUWfJEl0.net
環境変数の文字列を置換するのに何か方法ありませんか?
以下ではエラーでした。
aaa = "$HOME/xxx"
re.search("(\$[^/$ ]+)", f"{os.environ(\1)}", aaa)

417:デフォルトの名無しさん (ワッチョイ 5e61-gPkm)
23/06/19 17:24:28.76 Glrukv1f0.net
>>412
hoge = re.sub("\$([^/$ ]+)", lambda x: os.environ[x.group(1)], aaa)

418:デフォルトの名無しさん (ワッチョイ 8950-wtyc)
23/06/19 18:02:40.50 1BUWfJEl0.net
>>413
確認できました。
助かりました。ありがとうございます。

419:デフォルトの名無しさん (アウアウウー Sacd-kPXK)
23/06/21 04:25:45.06 J4l8RQKca.net
DISCOってよくわからんが、ブラウザで動くならSeleniumで自動化したらいいんじゃない?

420:デフォルトの名無しさん (ワッチョイ f661-NCu+)
23/06/21 06:09:22.65 0uJYSTxc0.net
>>415 そういう事するのが利用規約違反って話

421:デフォルトの名無しさん (テテンテンテン MM96-sgG1)
23/06/21 07:37:30.57 t9LzbMUnM.net
ルール通りAPI使えば済む話だろ

422:デフォルトの名無しさん (ワッチョイ f661-oNF8)
23/06/21 08:37:09.02 0uJYSTxc0.net
APIだろうが外部のアプリケーションだろうが、Discordの利用規約では「ボットアカウント以外を自動化するのが禁止」という話。
もう終わった話だからこれ以上これについて議論する価値が無いと思う
>>404からをよく読んで欲しい

423:デフォルトの名無しさん (ワッチョイ 8554-MfA7)
23/06/21 15:02:01.93 H/mww/Ws0.net
bot APIを使えばいい

424:デフォルトの名無しさん (ワッチョイ f661-oNF8)
23/06/21 16:35:28.17 0uJYSTxc0.net
>>419 793d-C6j3 は自分のサーバーに自動投稿したいんじゃなくて、他のユーザーが管理してるサーバーに自動投稿したいという話。
なので Bot 作ってもそのサーバーの管理者がその Bot をサーバーに追加してくれないことには意味無い。
っていう話も >>409 あたりから書いてあるんだけどちゃんと読んでからレスしてる?

あと Discord 公式に「bot API」なんてものは存在しないからよくドキュメント読んでから書いた方が良いよ
discord.com/developers/docs/intro

425:デフォルトの名無しさん (ワッチョイ 927d-/M2v)
23/06/21 21:34:20.09 0ajJDSrZ0.net
【プログラミング言語】企業が求めるエンジニア言語ランキング 2位「R」、3位「Go」 1位は? 企業DB運営会社が発表
スレリンク(scienceplus板)

426:デフォルトの名無しさん (ワッチョイ 655f-GTOq)
23/06/21 21:49:16.50 73YbeCUa0.net
Rは言語っちゅうよりツールだよな

427:デフォルトの名無しさん (ワッチョイ 5efb-+wmN)
23/06/21 22:17:17.38 nOYD/YvV0.net
デフォでエクセル読み込めないRがなんだって?

428:デフォルトの名無しさん (ワッチョイ 8554-MfA7)
23/06/21 22:29:38.95 H/mww/Ws0.net
URLリンク(image.itmedia.co.jp)
ええー
perlは?

429:デフォルトの名無しさん (ワッチョイ 12bd-u/GO)
23/06/22 01:06:30.61 trtsfi5v0.net
Perl大好きだったDeNAも今はほとんど使ってないだろ

430:デフォルトの名無しさん (ワッチョイ 0d59-Yu/H)
23/06/22 02:16:00.37 hPQpnAZR0.net
Cなの??

431:デフォルトの名無しさん (ワッチョイ 8554-MfA7)
23/06/22 08:41:10.37 6qCgvqyK0.net
Cは納得するけどRの違和感がすごい

432:デフォルトの名無しさん (ワッチョイ 692c-OubL)
23/06/22 16:27:42.10 ry2OhFJB0.net
Rustはどこいったんだよぉ

433:デフォルトの名無しさん (ワッチョイ 5e12-Hbd9)
23/06/22 16:59:36.96 I0fx1jsA0.net
機械語吐ける処理系は
便利さより簡明さの方が優先なんだろうな

434:デフォルトの名無しさん (ワッチョイ b163-uLoI)
23/06/22 18:58:58.97 eFYWna5Y0.net
Cが多いのはああそういう母集団なんだなと思うだけたがそれと同等でRが並ぶのは謎すぎる

435:デフォルトの名無しさん (ワッチョイ 8554-MfA7)
23/06/22 19:09:00.39 6qCgvqyK0.net
これからRで新規に何か作ったりはしないだろうから、
既存システムのメンテ要員なんだろうけど、何をそんなにたくさんRで作ったんだ

436:デフォルトの名無しさん (ワッチョイ 655f-7ZjA)
23/06/22 21:37:10.06 4vIH+GrL0.net
aws transcribeをboto3で使ってるけど、凄い便利で精度も凄い
でもリアルタイム処理もやりたい
chromeからリアルタイムで音声を受け取ってawsに投げて、リアルタイムで音声認識できたら最高だけど
awsのサーバーレスLambdaでやればいいのか、それともflaskでやるのか迷ってる
いい方法ないかな
大人しくJavascriptでやれ、と言われそうだけど

437:デフォルトの名無しさん (ワッチョイ 8554-MfA7)
23/06/22 21:46:27.68 6qCgvqyK0.net
多分これあれだな
求人情報で持ってて欲しいいろんなスキルを集計した奴だ
excelとかもあったけど、それは言語じゃないから省いた
Rも便利に使えて欲しくて、一応言語だから残ったけど、それで開発する訳ではない

438:デフォルトの名無しさん (ワッチョイ 5efb-+wmN)
23/06/22 22:00:42.51 GMczMVxU0.net
RとJavaが逆じゃねってっくらい案件数違う
JavaScript入るのにmatlabは無いのおかしいだろ

439:デフォルトの名無しさん (テテンテンテン MM96-l8k0)
23/06/23 02:16:39.84 FiJyLSIOM.net
Pythonをやってみてしみじみわかる
自分が昔Cに挫折した原因は、Cが原始的過ぎるのだと
何せCには俺らがPythonで何気なく使っているリストがなく、
データ構造の実現には配列や構造体を組み合わせてポインタでアクセスすることが求められる
これでは毎回Pythonのリスト機能を一から手実装しているようなものだ
コードの大半がデータ構造アクセスに浪費され、肝心のロジックを書く前にプログラマーが消耗してしまう

440:デフォルトの名無しさん (ワッチョイ f661-NCu+)
23/06/23 06:34:45.67 PvP1hDIF0.net
string型もないしな

441:デフォルトの名無しさん (ワッチョイ 769a-Mhnf)
23/06/23 06:44:34.67 fMNbteF10.net
まあ各種データ型は一旦コードを書いたらライブラリ化して再利用してもいいし、
何かのAPIを使ってコード書いてるときにはそのAPIが各種の型も提供している場合がある
けどね

442:デフォルトの名無しさん (ワッチョイ 5e46-CMa5)
23/06/23 10:12:50.43 jQcBUz850.net
リスト型はともかく、
車輪が必要になって、「pip 車輪」すりゃよいものを、再発明してしまうことはよくある。

443:デフォルトの名無しさん (ワッチョイ 8554-MfA7)
23/06/23 14:55:50.06 hn7rk+Ru0.net
wheelのこと?

444:デフォルトの名無しさん (アウアウウー Sacd-Hkv7)
23/06/23 16:03:42.34 lCxAQSJFa.net
今日 AWS のテレビコマーシャル初めて観た
普通の人あれ観て何のCMか判るんかな
どういうマーケティングなんやろ

445:デフォルトの名無しさん (アウアウウー Sacd-Hkv7)
23/06/23 16:06:06.70 lCxAQSJFa.net
>>435
STL使うならC++
Cなら今はtcl/tkのクラス使うと便利

446:デフォルトの名無しさん (ワッチョイ 2302-X2sk)
23/06/27 17:12:41.59 qBS161b80.net
AIプログラマーになりたいんですが、書店の参考書読めばなれますか?
今まではXbox系、Playstation系のプログラマーをやってきて、
もちろんC++やPythonは使ってます。

447:デフォルトの名無しさん (ワッチョイ 4bbb-wJdI)
23/06/27 17:15:41.51 18qbID/D0.net
>>442
くくりがでかすぎるから、まず本屋でどんな分野があるのか調べるとこからだと思うよ
てか、実績のくくりもおかしいから人に相談する前にまずは自身のスキルセットの整理からかも

448:デフォルトの名無しさん (ワッチョイ ad5f-q5lI)
23/06/27 17:42:34.35 WeQZqkEK0.net
Kaggle(じゃなくてもいいけど)に興味がある分野があれば挑戦してみては
本は基本遅いし誤りも多いからとっかかりで読むだけ

449:デフォルトの名無しさん (ワッチョイ 23bd-HQei)
23/06/28 00:25:23.03 89dyc+Yr0.net
5chで質問してる時点で無理

450:デフォルトの名無しさん (ワッチョイ 4bfb-gbu0)
23/06/28 10:08:46.19 h1/9qa9W0.net
>>442
データサイエンスのある学部に3年次編入したら?書籍買買い漁るもありだけど、体系的に学ぶ方がとっかかりやすい

451:デフォルトの名無しさん (ワッチョイ 4bd6-phf2)
23/06/28 10:14:19.41 xFveyc720.net
AIプログラマーにはなれないだろうけどe資格でも取ればいい

452:デフォルトの名無しさん (ワッチョイ 2302-X2sk)
23/06/28 10:49:00.73 5nvtk/TU0.net
>>444
ありがとうございます。
Kaggleはよさそうですね。
無料で利用できるみたいですね。

453:デフォルトの名無しさん (ワッチョイ 2302-X2sk)
23/06/28 10:52:17.26 5nvtk/TU0.net
>>446
ありがとうございます。
私は国立大学(東京大学)の情報工学出身なので、
それなりに基本は理解してるかなと思い、いい本で勉強できればいいな、とか思ってました。

454:デフォルトの名無しさん (ワッチョイ 4bbb-WxNW)
23/06/28 12:36:52.52 x7EqKs650.net
院に上がればいいじゃん

455:デフォルトの名無しさん (ワッチョイ 3501-OfpS)
23/06/28 12:40:15.98 yVk2loca0.net
アメリカの大学に行くのが正解だな

456:デフォルトの名無しさん (オイコラミネオ MM31-JHC8)
23/06/28 13:31:40.23 YUZzapSuM.net
東大卒が便所の落書きで質問して市販本で勉強するわけない

457:デフォルトの名無しさん (ワッチョイ 3501-F8yx)
23/06/28 13:51:51.94 xJ5N72uh0.net
掲示板で自己紹介しても本人証明はできんからな

458:デフォルトの名無しさん (ワッチョイ 3501-F8yx)
23/06/28 13:53:14.64 xJ5N72uh0.net
否定する理由もないから
あっそう  てなところだな

459:デフォルトの名無しさん (ワッチョイ 9d63-F8yx)
23/06/28 18:34:56.74 eg2z38w70.net
相手をしてもらっただけでめっけもんなんじゃないの?
養分とはよく言ったもんだ

460:デフォルトの名無しさん (ワッチョイ 6d54-iX87)
23/06/29 10:35:46.35 97xspd+w0.net
def func():
 func.counter += 1
みたいに、関数名.変数名で前回の値が保持できるけど、
これはどういう名称?
static変数でいいの?

461:デフォルトの名無しさん (ワッチョイ 2302-X2sk)
23/06/29 10:43:55.35 nlvFIcH90.net
バカどもが、
ゴミ書き込みをして、人を叩いて満足するスレ
バカが…

462:デフォルトの名無しさん (ワッチョイ 4b7b-i0vF)
23/06/29 10:50:50.20 sVqSU9Dt0.net
わざわざバカの集まるところにマウンティングをしにきて
自己肯定感を満足させようとするが
それすら叶わず捨て台詞を置いていくスレの間違いです

463:デフォルトの名無しさん (ワッチョイ 2302-X2sk)
23/06/29 10:53:26.88 nlvFIcH90.net
また
ゴミ書き込みバカ登場
バカが…

464:デフォルトの名無しさん (ワッチョイ 4b46-GfJH)
23/06/29 11:08:49.93 WQ4uFLEn0.net
>>456
知らんけど、(関数オブジェクトの)オブジェクト変数?
逆に訊きたいのだけど、それ、保証された動作なの?

465:デフォルトの名無しさん (ワッチョイ 6d54-iX87)
23/06/29 11:27:51.39 97xspd+w0.net
え、駄目なの?
グローバル変数を使うよりよっぽどスマートだと思うけど
外部から初期化するのが面倒なだけで

466:デフォルトの名無しさん (ワッチョイ a301-dWHu)
23/06/29 13:11:09.10 zn3rSI/c0.net
自動で初期化されるようにしようとすると面倒だし初期化を強制することもできないので
普通にモジュールグローバル・クラス変数・インスタンス変数を使ったほうがよっぽどスマートだと思う

467:デフォルトの名無しさん (ワッチョイ ad5f-q5lI)
23/06/29 16:28:15.36 NJ3ikdMQ0.net
クロージャだから外に変数おけばいいんだけど
名前空間汚さないのはいいかも
def func(): ...
func.counter = 0
並べて書けば必ず初期化はされるし

468:デフォルトの名無しさん (ワッチョイ a301-dWHu)
23/06/29 22:46:19.39 zn3rSI/c0.net
いろいろデメリットがあるから使い捨ての短いプログラム以外ではやめといたほうがいいと思う
クラスにするのがオーバーキルと感じる場合ならクロージャ使う

def make_counter(i=0):
__def inner():
____nonlocal i
____i += 1
____return i
__return inner

デフォルト引数にmutable objectを使うやり方もあるけど
あれもちょっとしたハックなので避けたほうがいい良いと思う

469:デフォルトの名無しさん (ワッチョイ 6d54-iX87)
23/06/29 22:58:21.86 97xspd+w0.net
聞きたかったのは是非ではなく名称なんだけど
結局誰も知らないということかな

470:デフォルトの名無しさん (ワッチョイ 4bcf-jKYg)
23/06/30 00:07:55.24 k2cLJ2r80.net
関数オブジェクトにプロパティ追加してるだけ

471:デフォルトの名無しさん (ワッチョイ a301-dWHu)
23/06/30 10:42:56.33 bRI+/epy0.net
Python用語では「関数属性」と呼ばれてる

472:デフォルトの名無しさん (ワッチョイ ad5f-q5lI)
23/06/30 12:03:51.62 eJGBY8G60.net
URLリンク(peps.python.org)
これか

473:デフォルトの名無しさん (ワッチョイ 4bfb-gbu0)
23/06/30 12:11:46.76 YNoPlx540.net
強い人はどのようなところを見ているか参考になるなぁ

474:デフォルトの名無しさん
23/06/30 14:01:00.28 01oPuE97.net
命名規則が今いち定まらない
たとえばデータベースでリレーションシップ組むときに
userが投稿したpostという設計だったとき
UserモデルとPostモデル
そのリレーションモデル名をPostUserにするのかUserPostにするのか
user,postはまだ一対多なのでわかりやすいけど
もし一対一の関係だった場合、どっちがどっちでもいいじゃんってなるような・・
頻繁に困りはしないけどコードを後で見直したときに
どっちが先だったっけ?ってモヤモヤする

475:デフォルトの名無しさん (ワッチョイ 4ba7-cUyJ)
23/06/30 14:18:27.36 7I3jd3Xx0.net
userpostだとユーザーがポストした内容そのもの
posruserだとポストしたユーザーの情報

476:デフォルトの名無しさん (アウアウウー Sa69-gbu0)
23/06/30 14:29:22.66 COdzz4kma.net
変数ならなにをどうしたものか
メソッドならなにをどうするものか動詞句を用いて記述するのがオヌヌメ
曖昧さを回避するなら
create post session
get input by user from contentviewer
query results
validate from controller
とかが鉄板

477:デフォルトの名無しさん
23/06/30 15:08:45.48 01oPuE97.net
そういうメソッド名の命名規則というより
JOIN文でどのテーブル名を先に書くか
みたいな問題と似てると思う >>471-472

478:デフォルトの名無しさん (ワッチョイ 6d54-iX87)
23/06/30 16:22:36.82 ko6oOWb50.net
名前決めてくれるサイトがあった

479:デフォルトの名無しさん
23/06/30 16:56:20.54 01oPuE97.net
命名専用サイト使うほど、変数名つけること自体はそこまで難しくないし言うほど困らない
翻訳とかChatGPTでいいし

480:デフォルトの名無しさん (ワッチョイ ce9a-EKe4)
23/07/03 00:10:29.29 gwE/4uCf0.net
プログラミングの経験を聞かれた時に「パイソンチョトデキル」と答えてもいい基準は?

481:デフォルトの名無しさん (ワッチョイ 4359-h6Xl)
23/07/03 00:18:28.77 pHhD+O8v0.net
開発の実務経験でしょ

482:デフォルトの名無しさん (ワッチョイ 2b54-LnEc)
23/07/03 00:39:30.70 Xaa1oBX80.net
python開発者にならないと

483:デフォルトの名無しさん (ワッチョイ 62bd-3PuC)
23/07/03 01:14:10.43 Gvp+84VE0.net
自分ができると思ってればそういえばいい
そんなフワッとした質問に厳密性は求めてない

484:デフォルトの名無しさん (ワッチョイ ce9a-Ex8n)
23/07/03 15:06:18.12 vDP44hRQ0.net
今までJavaとかC++でコツコツコードを書いてたんですよね
で少し前から機械学習のことをやってて、Pythonはそこで各種ライブラリを呼び出すのに
しか使ってないんですよね、基本的には
Pythonそのものよりライブラリをどう使うかに重点がある感じ
こんなでも「パイソンチョトデキル」と言ってみてもいいですか?

485:デフォルトの名無しさん (ワッチョイ 86bb-p0MK)
23/07/03 15:18:48.53 Qelwnf7e0.net
478のコメントで満足しとけよ
オマエうざいわ

486:デフォルトの名無しさん (ワッチョイ 06fb-LZTt)
23/07/03 17:44:19.22 O7SCHRRk0.net
応用情報とpython認定試験の2つの資格(基礎・データ分析)と実務経験5年以上位でちょっとできるでいいと思う

487:デフォルトの名無しさん (ワッチョイ cb5f-gKyC)
23/07/03 17:57:08.16 As32LQND0.net
そんなのとってるPythonistaどこにおるん?

488:デフォルトの名無しさん (ワッチョイ df01-hRAP)
23/07/03 18:06:55.69 CSWTIyVV0.net
ITSSのレベル2~3くらいだね

489:デフォルトの名無しさん (アウアウウー Sabb-LZTt)
23/07/03 18:32:08.53 FqLUwTrja.net
実際コーディング試験で能力測るからいいんじゃねーの
資格取ってる人は民間に証明してもらえるから案件獲得時のアピールにはなる

490:デフォルトの名無しさん (ブーイモ MM02-Mxvu)
23/07/03 18:35:13.90 EKa0XJn3M.net
python認定試験とか誰が受けてんだよ

491:デフォルトの名無しさん (ワッチョイ df01-hRAP)
23/07/03 18:59:10.80 CSWTIyVV0.net
齢を取ればわかるが
こいつが 何がどの程度できるか 会っただけじゃわからんのだから
資格持ちかどうかでとりあえず足切りできる

492:デフォルトの名無しさん (ワッチョイ 2b54-LnEc)
23/07/03 19:02:14.07 Xaa1oBX80.net
判らんというとこまでは合ってる
使って駄目だった時に、でもこいつ資格持ってたから、と採用担当が言い訳する為にある

493:デフォルトの名無しさん (ワッチョイ 22ea-hRAP)
23/07/03 21:26:04.92 wow6f6TN0.net
パイソン4級もってるお

494:デフォルトの名無しさん (ワッチョイ f78c-q98R)
23/07/03 23:44:38.12 5m8mumv50.net
二次元配列の0埋め初期化調べたら
list = [[0]*13]*20
とか書いてあったけどこれ内側の配列のidがすべて同じになっててダメじゃん
なんで複数のサイトでコレで解説されてるの…解決に無駄に時間食った…

495:デフォルトの名無しさん (ワッチョイ 2b54-LnEc)
23/07/03 23:53:47.85 Xaa1oBX80.net
配列を埋めて初期化して
array[n]
にいつアクセスしてもエラーにならないんだ
という考えは古いので、そんなことをしなくても済む方法を考えた方がいい

496:デフォルトの名無しさん (ワッチョイ a201-XP6B)
23/07/04 00:54:41.68 CD2OXxFv0.net
>>490
numpy.zerosで

497:デフォルトの名無しさん (アウアウウー Sabb-bEzi)
23/07/04 06:44:39.73 TkEucfjya.net
列毎にencode指定するにはどうしたらいいの?
文字列にしたい列と数値にしたい列が混在してる。
csvインポート時に指定したらいいのかエクスポート時なのかもよく分かってない。
csvインポートしてsumまではできたけど文字化けと数値が文字列判定で文字がくっついた状態。12+34=1234みたいな。
でも文字列指定にしないと0落ちする列がある…。

498:デフォルトの名無しさん (ワッチョイ 06a7-Y3h2)
23/07/04 06:57:35.95 ivBNorbE0.net
>>493
pandas使えばいいのでは

499:デフォルトの名無しさん (テテンテンテン MM8e-HXOp)
23/07/04 08:25:21.63 4uPHnKtKM.net
ググればすぐ解る

500:デフォルトの名無しさん (アウアウウー Sabb-hiKC)
23/07/04 09:49:02.57 X5jhzPkAa.net
>>490
いまだにそんな解説してるサイトは君がここに晒して知識の共有DB化に貢献してくれ
あと普通はリストじゃなくて配列はnumpy使え

501:デフォルトの名無しさん (ワッチョイ 2b54-LnEc)
23/07/04 19:04:03.10 jEw6QJzt0.net
配列とリストは似たようなもん
という考えを、perl使ってたから最近まで引きずってた
$array[10] = 1;
とかいきなり書いても平気
その時の$array[0]は空なので、1を足してもいいし文字列を結合してもいい

502:デフォルトの名無しさん (ワッチョイ 0646-8QP+)
23/07/04 19:20:37.82 VrKRGNM40.net
>>497
何それ。$array は
[1,0,0,0,0,0,0,0,0,0] になるの?
[1,1,1,1,1,1,1,1,1,1] になるの?
それとも全く別の何か?

503:デフォルトの名無しさん (ワッチョイ 0646-8QP+)
23/07/04 19:22:44.58 VrKRGNM40.net
あ、単に
[0,0,0,0,0,0,0,0,0,0,1] か。

504:デフォルトの名無しさん (ワッチョイ cb5f-gKyC)
23/07/04 19:25:29.97 E4cNaUeN0.net
>>497
配列と連想配列をいっしょくたにしてそうなのと
BASICのようなPerlの緩さはまた別の話

505:デフォルトの名無しさん (ワッチョイ 2b54-LnEc)
23/07/04 19:28:31.63 jEw6QJzt0.net
単に空になる
空は数字として評価すれば0だし、文字列として評価すれば''

506:デフォルトの名無しさん (ワッチョイ c633-hRAP)
23/07/04 20:03:53.48 BtduUDpY0.net
>>497の意味が分からん
perlの配列とPythonのリストを同じようなものと考えてたっていうこと?

507:デフォルトの名無しさん (ワッチョイ 2b54-LnEc)
23/07/04 20:19:24.19 jEw6QJzt0.net
Cの配列だな
領域を切ってしまえば途中のインデックスにいきなりアクセスできて当然という感覚
perlのリストとpythonのリストは見た目も挙動もよく似てるけど、
根本のところが全然違う

508:デフォルトの名無しさん (ワッチョイ 43bb-c6L3)
23/07/04 23:04:19.26 HXHLoMzH0.net
すみませんasyncioなんですが
asyncio.run(main())
というのは
asyncio.run(main)
ならわかるんですが、なんで asyncio.run(main()) なんですか?
関数呼び出してますよね?
納得できる理解が出てこないんですが

509:デフォルトの名無しさん (ワッチョイ 43bb-c6L3)
23/07/04 23:05:53.72 HXHLoMzH0.net
それとも asyncio.run() は mainの返り値を受け取ってるだけでしょうか?
それならわかりますが

510:デフォルトの名無しさん (ワッチョイ 43bb-c6L3)
23/07/04 23:08:11.81 HXHLoMzH0.net
自己解決しました

511:デフォルトの名無しさん (ワッチョイ b76b-k9yq)
23/07/08 08:44:42.01 O5MPIwDu0.net
DataFrame df があったとき、たとえば
df["A"] > 0
とすれば列 df["A"] の各要素が 0 より大きいかどうかを示す真偽値の列が返りますよね。
10 より大きいか、0 より大きく 10 より小さいか、0 より小さいか、という 3 値の分類をしたいときはどのようにするのが良いでしょうか?
apply で行ごと処理するやり方は分かるのですが、上の例のような高速なやり方を知りたいです。

512:デフォルトの名無しさん (スフッ Sdbf-5tAh)
23/07/08 10:01:14.37 a3G/XYZLd.net
0と10は放置で良いのか?

513:デフォルトの名無しさん (ワッチョイ b754-gTYV)
23/07/08 10:13:23.90 NHSo0HCe0.net
どう頑張っても真偽値は2種類なので、その組み合わせになるだろう

514:デフォルトの名無しさん (ワッチョイ 779b-k9yq)
23/07/08 10:25:56.65 jhsaf/8G0.net
>>508
ああ間違えた
もちろん含むように定義します
>>509
DataFrameの書き方ではどうか、という質問です

515:デフォルトの名無しさん (スフッ Sdbf-5tAh)
23/07/08 14:35:33.75 wniS2YMkd.net
(df['A']<0)*1+(0<df['A']<10)*2+(df['A']>10)*4

516:デフォルトの名無しさん (スフッ Sdbf-5tAh)
23/07/08 14:47:11.67 R+7Yl+5pd.net
訂正
(df['A']<0)*1+((0<df['A'])*(df['A']<10))*2+(df['A']>10)*4

517:デフォルトの名無しさん (ワッチョイ d7c0-SCup)
23/07/08 17:48:44.07 hY1qVx7y0.net
はるか昔にBASICで速度稼ぐために条件式組んでたのに似てるね

518:デフォルトの名無しさん (ワッチョイ ffbb-CBkq)
23/07/08 18:13:40.82 pyRMyuKU0.net
条件だけ見るとこれでよくね?
(df['A']<0)+((0<df['A'])*(df['A']<10))*2

519:デフォルトの名無しさん (ワッチョイ ffbb-CBkq)
23/07/08 18:18:05.83 pyRMyuKU0.net
あ、これでいいかw
(df['A']<0)+(df['A']>10)*2

520:デフォルトの名無しさん (ワッチョイ b754-gTYV)
23/07/08 18:19:37.71 NHSo0HCe0.net
3パターンしか無いのに3bit必要という時点でおかしい

521:デフォルトの名無しさん (ワッチョイ 9f01-Trzc)
23/07/08 18:43:10.62 9tTQWgpe0.net
3周することになっても単純に各条件でboolの結果を得たほうが速いと思う
1周で済ませたければTrue/Falseの意味がちょっと変わるけどブロードキャストすれば速い
df[‘A’].to_numpy()[..., None] < [0, 10]

522:デフォルトの名無しさん (ワッチョイ 779b-k9yq)
23/07/08 19:29:00.77 jhsaf/8G0.net
>>511-512
ありがとうございます
locにブール列を渡すのでも良さそうだと思いました。

523:デフォルトの名無しさん (ワッチョイ 779b-k9yq)
23/07/08 19:31:32.45 jhsaf/8G0.net
>>514-517さんももちろんありがとうございます

524:デフォルトの名無しさん (ワッチョイ f759-RRFc)
23/07/08 22:16:31.30 N9Ky4OK40.net
exeにしてダブルクリックすると起動するんだが黒い画面が出てくるんだけどこれって消せる?

525:デフォルトの名無しさん (ワッチョイ b75f-QjlB)
23/07/08 22:21:59.70 Wa1j7G/90.net
exeにしてって操作がPython標準じゃないからなんともいえんけど
使ってるツールにコンソール無効化みたいなオプションあるはず

526:デフォルトの名無しさん (ワッチョイ f710-STDj)
23/07/09 00:49:41.22 IRbmqSts0.net
pyinstaller xxx.py --noconsole

527:デフォルトの名無しさん (ワッチョイ f759-RRFc)
23/07/09 01:28:43.17 LTD59+Eo0.net
>>522
ありがとう、やってみる

528:デフォルトの名無しさん (ワッチョイ ffbb-YiFt)
23/07/09 21:13:55.30 3iZocu1K0.net
pypyでbeautifulsoupとかのライブラリ使えないのなんとかならんの?
自分でhtmlパーサーなんて組めないぞ

529:デフォルトの名無しさん (ワッチョイ b754-gTYV)
23/07/09 21:26:46.05 +zrdKLhN0.net
なんでそんなん使ってるの

530:デフォルトの名無しさん (アウアウウー Sa9b-HEX/)
23/07/10 19:00:47.80 ebofKpc7a.net
>>520
ソースを hoge.pyw にすると消える

531:デフォルトの名無しさん (ワッチョイ d710-QjlB)
23/07/12 21:03:15.12 pcy3cOib0.net
>>524
pypyつかうくらいだから問題はわかってんでしょ?
素直にPure Pythonなモジュールか
自前で外部ライブラリをCFFIやcppyyで使えばよろし

532:デフォルトの名無しさん (ワッチョイ b77f-rqKn)
23/07/13 05:19:15.27 P+pcu+dV0.net
Pylanceが急に日本語に切り替わってて気持ち悪い

533:デフォルトの名無しさん
23/07/13 12:39:21.74 NisY6ZLZ.net
ファイルやディレクトリ名の頭文字を数字にすると
importするときにエラーになる
一体どうすれば・・
例 5chモジュール作りたい
5ch.py
import 5ch # error
_5ch.py
ch5.py
【目的】_5ch.py
なんかダサいけど仕方ないか

534:デフォルトの名無しさん (ワッチョイ d710-UoGw)
23/07/13 13:00:03.04 SuCqDk4B0.net
先頭数字の識別子が使えるほうがマイナーだから
命名の時点で候補から外すしかない

535:デフォルトの名無しさん (ワッチョイ d701-kkOg)
23/07/13 14:27:15.58 ZYHhnIor0.net
>>529
import importlib
_5ch = importlib.import_module("5ch")

536:デフォルトの名無しさん (ワッチョイ b754-1VI2)
23/07/13 19:03:09.05 e6fQTteq0.net
全角ならいけるのでは

537:デフォルトの名無しさん (ワッチョイ fffb-RbNf)
23/07/13 19:24:12.45 SIvxUY2q0.net
ちんこかゆい

538:デフォルトの名無しさん (ワッチョイ f746-f2iC)
23/07/13 20:45:16.67 CbGMPheV0.net
>>529
例えに敢えて突っ込む。
ひろゆきが5chを奪還したら、モジュールを改名せなならんでしょ。なので、chmate に倣い ch.py。

539:デフォルトの名無しさん (ワッチョイ b754-1VI2)
23/07/13 20:49:16.40 e6fQTteq0.net
5番目のチャンネルならch5が普通なんだよな

540:竜馬
23/07/14 14:13:31.88
windows10
Anaconda3  Spyder  Python

import datetime as dt
from datetime import datetime

end = dt.date.today()        # end = '2023-07-09'
startをendの5年後にする計算したいんです。

541:デフォルトの名無しさん (ワッチョイ d78c-XD1j)
23/07/14 09:51:10.95 WrWkCYWC0.net
スペースちゃんねる 5

542:デフォルトの名無しさん (ササクッテロル Sp88-/C8I)
23/07/15 04:45:11.52 GxGOjSejp.net
そういえばAIに特化した言語が新しく出来るんじゃなかった?

543:デフォルトの名無しさん (ワッチョイ fb54-3Gka)
23/07/15 07:45:46.55 L14bh+x+0.net
そんなのはそろそろAIが勝手に作るだろ

544:デフォルトの名無しさん (ワッチョイ cec0-asTj)
23/07/15 08:50:48.64 WLzbmngd0.net
それってもはや機械語じゃない?それに人間には読解不能な奇怪語かも知れん

545:デフォルトの名無しさん (ワッチョイ fb54-3Gka)
23/07/15 09:22:20.54 L14bh+x+0.net
AIが一人で考えるなら言語なんか要らないけど、
複数のAIが話し合いをしようとすると何らかの共通言語は要るだろうな

546:デフォルトの名無しさん (ワッチョイ ac46-5gN0)
23/07/15 09:55:24.27 xHAexrGh0.net
聖帝「AIなど要らぬ!!」

547:デフォルトの名無しさん (ワッチョイ d9cf-rqn1)
23/07/15 10:23:04.50 sgI1NpCc0.net
そんなニュースはあったな。
終わりの始まり…? 独自言語で話しはじめた人工知能、Facebookが強制終了させる
URLリンク(www.gizmodo.jp)

548:デフォルトの名無しさん (ワッチョイ 6602-5Iwu)
23/07/15 10:48:59.50 HUYc3ujc0.net
AIイラストで背景や服に描かれてる謎の文字がそれじゃね?

549:デフォルトの名無しさん (アウアウウー Sa83-VT7O)
23/07/15 12:29:00.80 FawF2Viqa.net
ただでさえ人間の言語でも色々あるし
プログラミング言語だって一つじゃないのに
AIが言語使い始めたらそれこそ百花繚乱になるだろうな

550:デフォルトの名無しさん (ワッチョイ fb54-3Gka)
23/07/15 12:44:22.86 L14bh+x+0.net
地球ピジン語みたいなエスペラントに代わるものができるかもしれん

551:デフォルトの名無しさん (ワッチョイ 5cfb-cHdk)
23/07/15 14:09:07.13 bqZq+Kwu0.net
そんなことよりインタープリタからの脱却はまだまだ先なのかね

552:デフォルトの名無しさん (ワッチョイ ac46-rpZg)
23/07/15 14:09:10.71 xHAexrGh0.net
不美人語や醜女語、人三化七語があるのかと思ってしまった。

553:デフォルトの名無しさん (テテンテンテン MM34-rP6O)
23/07/15 14:36:36.53 tBtSZ9aSM.net
>>547
ソースと実行ファイル両方管理すんのマンドクセ
インタープリタこそ至高

554:デフォルトの名無しさん (ササクッテロロ Sp10-/C8I)
23/07/16 00:13:05.89 tV35rrDMp.net
つかPythonこそChatGPTのcode interpreterで十分やろと

555:デフォルトの名無しさん (ワッチョイ 8cbb-S0DD)
23/07/16 23:04:15.17 /c1wD1eS0.net
別にコンパイルしようと思えば出来るじゃん
それにインタープリターのメリットは実行環境選ばないところにあるから

556:デフォルトの名無しさん (ワッチョイ 8cbb-S0DD)
23/07/16 23:05:54.93 /c1wD1eS0.net
>>540
機械語じゃなくて中間言語になるだろ
機械語同士は方言多いから

557:デフォルトの名無しさん (アウアウウー Saab-Fman)
23/07/18 12:57:58.25 U1yb2f1Da.net
>>551
計算によってはハードやOSの違いで値が変わることもあるけどな

558:デフォルトの名無しさん (ワッチョイ 8cbb-KXil)
23/07/18 17:16:45.69 W27H1kNN0.net
ちょうどCythonがメジャーアップデートしたらしいから使ってみたら

559:デフォルトの名無しさん (ワッチョイ 5cfb-cHdk)
23/07/18 18:14:48.63 xmXOk1Vf0.net
お前ら知らないようだから教えてあげようと思ったんだがやはり止めることにしたんだ。

560:デフォルトの名無しさん (ワッチョイ 961d-Tqtv)
23/07/19 14:34:57.36 /XJELpjn0.net
seleniumでプロキシを通すとき、ローテーションタイプのエンドポイントだといちいち認証ダイアログ突破しなきゃならないのがめんどい
例えば URLリンク(username:password@host:port) みたいなのだと
--proxy-server=でchromeドライバーのオプション設定しても認証無理だった
profile上書きして、みたいな解決策はあるみたいだが

561:デフォルトの名無しさん (ワッチョイ 3abd-EfLL)
23/07/19 14:43:10.35 k5f5k9F30.net
急になんだよ

562:デフォルトの名無しさん (ワッチョイ 4e10-3jKb)
23/07/19 14:53:53.97 Ewgs5Hf50.net
>>556
URLリンク(developer.mozilla.org)
HTTPヘッダで渡せん?

563:デフォルトの名無しさん (ワッチョイ d0f8-N2q1)
23/07/19 15:28:03.19 4BqgSJod0.net
>>558
それは自分で実際やってみて出来たってこと?
一応やってみようと思うが、過去にadd_optionとかでやった気がするかもしれないが
ぐぐってStackOverflowに無かったと思うのでたぶんできなさそうな気もする

564:デフォルトの名無しさん (ワッチョイ 4e10-3jKb)
23/07/19 15:44:25.18 Ewgs5Hf50.net
>ぐぐってStackOverflowに無かったと思うので
技術者辞めたほうがいいよwww

565:デフォルトの名無しさん (テテンテンテン MM34-b40P)
23/07/19 17:00:10.42 u+cdsS/3M.net
そもそもselenium使うのがダメなんだと思うよ

566:デフォルトの名無しさん (JP 0H92-pBIq)
23/07/19 18:25:21.36 sF8RrwrcH.net
>>560
なんで笑ってるのかまったくわからんけど
StackOverflowにすら無かったかも、逆にあったら試し済みかも
って意味な
で、結局
>HTTPヘッダで渡せん?
ってのは自分で試してできたのだろうか
そこ聞きたかったのに完全スルーされてる
ちなみに認証ヘッダ作成してadd_argumentする方法は通らなかった
というかその程度で解決してるならstackoverflowにすでにやってる人がいると思う
そもそもプロキシサービスが提供するベーシックな解決方法が
今のseleniumじゃ--headlessでは無理ですスマン、みたいな説明だったし
てかstackoverflowに限らずまずざっと同じ事例調べんのって普通のことだと思ってたけど違うのか
>>558>HTTPヘッダで渡せん?(だろうか)
のようにまずアタリつけて、「お、イケた よっしゃー!」みたいな?笑
もちろんそういう喜びはあるけど今回みたいにダメだった時どうすんだろ
べつに煽ってるわけではないが気になるなぁ

567:デフォルトの名無しさん (ワンミングク MM3e-Y6s1)
23/07/19 19:05:27.52 a1zHaHr9M.net
そういうところだぞ

568:デフォルトの名無しさん (ブーイモ MM5e-IGBM)
23/07/19 21:10:46.70 ES61DorgM.net
こういうメンタリティの人は何やってもダメだわな

569:デフォルトの名無しさん (ワッチョイ 9ca5-dOyP)
23/07/19 21:17:25.88 6R5NftZQ0.net
たしかに、自分で試したこともない方法で助言するメンタリティの人は何をやってもだめだろうなぁ

570:デフォルトの名無しさん (ワッチョイ 7033-/jfo)
23/07/19 21:28:55.17 XLDi8Tb/0.net
>>558は可能性の一つを示しただけだろ
それを否定して、しかもその根拠がQ&Aサイトに載ってないから、だぞ
だいぶやばいだろ

571:デフォルトの名無しさん (ワッチョイ 1aaa-wK2A)
23/07/19 21:30:37.27 oHydL3V30.net
探し物してるときに一番ハッキリさせておきたいのは
そもそも無い物を探してた
かどうかってところ
あそこにあったんじゃなーい?
とか助言どころかむしろ邪魔でしかない

572:デフォルトの名無しさん (ワッチョイ 1e8c-Y6s1)
23/07/19 21:44:27.57 nKTepp9S0.net
普通は可能性を示されたらそれが正か否かの確認を自分でしない?
パソコン自体の不具合もそうやって絞り込んでいくし

573:デフォルトの名無しさん (ワッチョイ dc02-Mpql)
23/07/19 21:47:43.09 Hzpaw23F0.net
まずググれとは言うくせに
助言者には、出来ると思うじゃなくまず自分で試せ
とは言わない謎
相手がぐぐっていたら、それ試しましたって不毛になる可能性も高まるのに
なぜか上から目線で自分に甘い
実際、試して出来ました出来ませんでしたって事例があるのがstackoverflowなどのナレッジコミュニティ
>>566は根本的に勘違いしてるけど>>556は1㍉も助言は求めてないぞ

574:デフォルトの名無しさん (ワッチョイ feba-AHk/)
23/07/19 21:52:00.02 FbW6mKxi0.net
どこそこで壺買ったらうまくいったぞ
という可能性を示されたら生か否か確認を自分でしないとな笑
いや、そんなことでうまくいかないと知ってる側からすれば確認などするわけない
まずおまえが自分で試せ、となるだけ

575:デフォルトの名無しさん (ワッチョイ 3eba-Yhx6)
23/07/19 22:01:23.39 ihTqsCIr0.net
A「わからないんです 教えてください」 →�


576:@B「○○すればええのでは」 → A「わかりました試します」 これはわかる A「これは出来ないっぽいぞ」 → B「○○すればええのでは」 → A「そんな事例ないけど、自分それでできた?」 → B「知らんけど、可能性を示されたら自分で試せや」 これはまったく理屈がわからない 現実的に後者のやつがいたらごくごく普通に不信感抱くけど



577:デフォルトの名無しさん (ワッチョイ 4e10-3jKb)
23/07/19 22:11:14.22 Ewgs5Hf50.net
>>556のURLみるとBasic認証だったんで
技術的には固定のHTTPヘッダを出力するだけなのを案内
うまくいかないのはヘッダ出力か、なーるほどとなると甘く考えてた
おなじように site:stackoverflow.com 縛りでググったけど
add_argumentは仕様でできないからrequest_interceptorをつかえと
いくらでもヒットするし意味わからん

578:565 (ワッチョイ 7033-/jfo)
23/07/19 22:57:06.27 XLDi8Tb/0.net
ごめんなさい、間違ってました
悪いのはID:Ewgs5Hf50です

579:デフォルトの名無しさん (ワッチョイ 876b-Rp6Z)
23/07/22 08:54:19.91 xOnSvjXE0.net
任意の長さのlistを受け取る関数で、listが一つの要素しか持たないときはlistの代わりにその要素を渡しても良いことにしたいのですがどうするべきでしょうか?
つまり
func([hoge])
の代わりに
func(hoge)
と書くのを許したいということです。
C++ならオーバーロードするだけですが、Pythonの場合はどのようにしますか。

580:デフォルトの名無しさん (ブーイモ MMab-3wqI)
23/07/22 09:22:02.65 CGuNy4vJM.net
>>574
API設計の良し悪しは置いとくとして
何もしなくても関数の引数に違う型を渡すのは許されてる
type hintの話ならunion使えばいい
int | list[int]
オーバーロード的に別関数にしたいなら関数名を変える

581:デフォルトの名無しさん (ワッチョイ 7f46-ut6A)
23/07/22 09:27:38.97 i05cYusF0.net
listが一つの要素しか持たないときでも、例外を設けずlistを渡すべきだ。

582:デフォルトの名無しさん (ワッチョイ 2781-FYg4)
23/07/22 09:28:28.85 2b3RUs8b0.net
自前で型を判定して分岐する。
def func(arg):
 if not isinstance(arg, list):
  arg = [arg]
 return arg
print(func(1)) # [1]
print(func([1,2,3])) # [1,2,3]
一応、オーバーロードっぽい書き方もできる。(結果は上と同じ)
singledispatch という名前の通り、先頭の引数にしか効かないけど。
from functools import singledispatch
@singledispatch
def func(arg):
 return [arg]
@func.register
def _(arg: list):
 return arg

583:デフォルトの名無しさん (ワッチョイ 8754-GsLg)
23/07/22 10:54:42.82 v5hjaRdU0.net
a, _, b, _, c = list
みたいにせずに、
a, b, c = list[0, 2, 4] # 誤り
みたいな感じにリストの一部だけ抜き出すにはどうすれば

584:デフォルトの名無しさん (スププ Sdff-8Gu3)
23/07/22 12:11:10.18 RUx94lS4d.net
>>576
賛成
例外投げるべき

585:デフォルトの名無しさん (ワッチョイ df00-Rp6Z)
23/07/22 12:11:33.92 265f1RXI0.net
>>575-577
アザトゥース!

586:デフォルトの名無しさん (スププ Sdff-8Gu3)
23/07/22 12:13:57.55 RUx94lS4d.net
>578
a, b, c = (list[0], list[2], list[4])
あと変数名を'list'にするのはよせ
numpyやpandas使うともうちょっと気の利いた書き方もあり

587:デフォルトの名無しさん (アウアウウー Sa2b-tGd7)
23/07/22 12:24:49.80 YLqzZrt5a.net
>>578
>>> L = [1, 2, 3, 4, 5]
>>> a, b, c = (L[n] for n in [0, 2, 4])
>>> a, b, c
(1, 3, 5)

588:デフォルトの名無しさん (アウアウウー Sa2b-tGd7)
23/07/22 12:34:17.51 YLqzZrt5a.net
>>578
>>> import pandas as pd
>>> L = [1, 2, 3, 4, 5]
>>> L = pd.Series(L)
>>> a, b, c = L[[0, 2, 4]]
>>> a, b, c
(1, 3, 5)

589:デフォルトの名無しさん (アウアウウー Sa2b-tGd7)
23/07/22 12:37:31.89 YLqzZrt5a.net
>>578
>>> import numpy as np
>>> L = [1, 2, 3, 4, 5]
>>> L = np.array(L)
>>> L
array([1, 2, 3, 4, 5])
>>> a, b, c = L[[0, 2, 4]]
>>> a, b, c
(1, 3, 5)

590:デフォルトの名無しさん (ワッチョイ 8754-GsLg)
23/07/22 12:46:18.36 v5hjaRdU0.net
現状はリストのインデックスにリストがくるとただのエラーになるから、
pythonがpandasやnumpyの仕様を取り込んでくれればいいのに

591:デフォルトの名無しさん (ワッチョイ 8754-GsLg)
23/07/22 12:50:42.27 v5hjaRdU0.net
まあ、
a, b, c = L[[0, 2, 4]]
こう書く代わりに
a, b, c = np.array(L)[[0, 2, 4]]
こう書けばいいだけか

592:デフォルトの名無しさん (ブーイモ MMff-3wqI)
23/07/22 14:23:00.24 QXCscxEqM.net
不要な要素を除去するステップと
個別の変数や辞書にマッピングするステップは
分けた方がいいんじゃないかという気がする

593:デフォルトの名無しさん (ブーイモ MMff-3wqI)
23/07/22 14:38:32.38 kcC8tnpEM.net
良く考えてみたら分けられてるといえば分けられてるのか
ただ両辺の要素数の一致を保証できるコードか
一致しない場合も考慮したコードじゃないとモヤモヤする

594:デフォルトの名無しさん (ワッチョイ 8754-GsLg)
23/07/22 18:28:57.35 v5hjaRdU0.net
具体的にどういう用途だったかというと、excelのシートを一旦2次元配列に読み込んで、
その中から必要な部分を抜き出している

先頭の行をインデックスにして、そこに書かれた名前でやるのが普通だけど、
得体の知れない手作りデータがソースだと、そんなこともある

595:565 (ワッチョイ 7f33-onGn)
23/07/22 21:02:36.96 uM7XUdqd0.net
>>589
それならfilterのが楽じゃないか
>その中から必要な部分を抜き出している
これをコードに落とし込めるならだけど
filter(lambda x: x % 2 == 0, l)

596:デフォルトの名無しさん (ワッチョイ 8754-GsLg)
23/07/22 21:50:00.68 v5hjaRdU0.net
飛び飛びだよ、という意味で0, 2, 4なだけで、もっと続けると、
0, 2, 4, 7, 11, 12 みたいな感じになる

597:デフォルトの名無しさん (ブーイモ MMab-3wqI)
23/07/22 22:01:05.17 oa2ckNVGM.net
そういう用途ならpandasのread_csvやread_excelでskiprowsやusecolsを指定して必要な部分だけ読み込むかな

csv.reader縛りでも同じように
usecols = [0, 2, 4]
[row[i] for i in usecols]的な処理をする

入力データを整形するステップと
整形したデータをもとに計算加工するステップは分離しておきたい

598:565 (ワッチョイ 7f33-onGn)
23/07/22 22:22:00.69 uM7XUdqd0.net
>>591
>>590のコードはあくまで例で、必要な部分を抜き出す処理を関数化できるならっていう意味です

599:565 (ワッチョイ 7f33-onGn)
23/07/22 22:31:52.11 uM7XUdqd0.net
官公庁から送られてくるデータで、csvとかjsonで送ってくれたら楽なのにexcelファイルでしか送ってくれないとかいうのあったな

600:デフォルトの名無しさん (ワッチョイ 8754-GsLg)
23/07/22 22:40:18.16 v5hjaRdU0.net
取り消し線で消した部分は無効にしないといけないexcelとか地獄
あと何故かみんなセル結合大好き

601:デフォルトの名無しさん (ワッチョイ 2705-TI2y)
23/07/22 23:01:13.06 pjILcF770.net
マイナンバーとか上手く行かないハズだわ

602:デフォルトの名無しさん (ワッチョイ 8754-GsLg)
23/07/22 23:06:41.26 v5hjaRdU0.net
マイナンバーは作った時に暗証番号の登録が大量にあった時点で、
これは絶対駄目だわと思った

行政に理系が皆無なんだよな
理系なら絶対せんやろということを平気でやって失敗する

603:デフォルトの名無しさん (ワッチョイ 7f10-fN/z)
23/07/22 23:09:58.01 ywRUx2Al0.net
いまだにコンビニで誤交付あるのがなんとも

604:デフォルトの名無しさん (ワッチョイ 8754-GsLg)
23/07/22 23:15:46.42 v5hjaRdU0.net
システムは別に間違ってない
紐づけの処理を間違ったヒューマンエラー

何故間違ったかというと、前の人の画面のまま次の人の入力したから

605:デフォルトの名無しさん (JP 0H0b-0blL)
23/07/22 23:31:58.51 VWoIL+TEH.net
うんちをすると、おしっこも同時に出るようなものかな。

606:デフォルトの名無しさん (ワッチョイ 7ffb-p1qB)
23/07/23 00:10:42.60 Y2dIYUXH0.net
>>594
官公庁はR使ってるからな
互換性持たせるためにpandasつかえってことでしょ

607:デフォルトの名無しさん (ワッチョイ 7fbb-IQbN)
23/07/23 01:53:23.55 a7j2OMe40.net
マイナンバーをプライマリーキーにすれば95%くらい解決する話
要件定義で失敗してる

608:デフォルトの名無しさん (テテンテンテン MM8f-bhyX)
23/07/23 08:48:42.98 XMl58DhzM.net
設計開発した企業の名前は全部公表して欲しいな

609:デフォルトの名無しさん (ワッチョイ 8754-GsLg)
23/07/23 09:06:55.98 1hxNS+Jv0.net
その段階でのミスはただのバグで容易に修復が可能
仕様や要件がそもそも間違ってるので、もうどうしようもない

610:デフォルトの名無しさん (ブーイモ MMff-3wqI)
23/07/23 09:09:02.32 B6RMz+SmM.net
>>602
マイナンバーをプライマリキーにしたらダメだよ
クレジットカード番号をプライマリキーにしないのと同じ

611:デフォルトの名無しさん (ワッチョイ 678c-FGcY)
23/07/23 09:11:22.21 ijFwVi/G0.net
一体どういうシステム組めば同姓同名の他人と取り違えて登録できるんだよというのは疑問だった

612:デフォルトの名無しさん (ワッチョイ 8754-GsLg)
23/07/23 09:12:09.24 1hxNS+Jv0.net
そんなケースあった?

613:デフォルトの名無しさん (ワッチョイ 2705-TI2y)
23/07/23 09:13:28.92 NhS1+0R50.net
まあマイナンバーに限らず官公庁は昔から富士通系

614:デフォルトの名無しさん (ワッチョイ 7f10-fN/z)
23/07/23 09:18:19.30 E9NR74nn0.net
入力ミスじゃなくて富士通がバグ直してなかった

615:デフォルトの名無しさん (ワッチョイ 2705-TI2y)
23/07/23 09:22:35.53 NhS1+0R50.net
まあ普段からEXCELしか触らない事務員からすればcsv何それだからね

pandas使うにしろ目視手操作による前処理はまあ必要

616:デフォルトの名無しさん (ワッチョイ 2705-TI2y)
23/07/23 09:38:52.76 NhS1+0R50.net
人間一人一人を本気で識別しようと思ったら塩基パターンのダイジェスト値でも求めるしかなさそう
いやそれこそ個人情報だけどな

617:デフォルトの名無しさん (ワッチョイ 8754-GsLg)
23/07/23 09:41:09.96 1hxNS+Jv0.net
DNAの個人差なんか殆ど無いよ

618:デフォルトの名無しさん (ワッチョイ 2705-TI2y)
23/07/23 10:40:07.53 NhS1+0R50.net
え?警察のDNA鑑定も無駄だってこと?

619:デフォルトの名無しさん (ワッチョイ 7f46-ut6A)
23/07/23 10:49:52.76 SbvWaAdq0.net
>>613
八卦占いレベルと聞いているが、向上したのかな。

620:デフォルトの名無しさん (アウアウウー Sa2b-tGd7)
23/07/23 10:58:57.84 kMNWXVHya.net
>>599
主張1「前の人がログアウトしてない」
>>606
主張2「同姓同名の人が重複」
つまり2の原因が1だと言ってることになる
そんな奇蹟的なことがあるか?
政府の発表は嘘だということ

621:デフォルトの名無しさん (ワッチョイ 2705-TI2y)
23/07/23 10:59:49.13 NhS1+0R50.net
人とチンパンジーの遺伝子が99%同じって話もこれ100分率が尺度として粗すぎるって事だけどな

622:デフォルトの名無しさん (アウアウウー Sa2b-tGd7)
23/07/23 11:02:16.46 kMNWXVHya.net
>>611
最近プーチンの影武者が話題になっているが
NE○が自慢してる画像だけで100億分の一で判定出来る顔認証AIで判定して欲しいものだ

623:デフォルトの名無しさん (ワッチョイ 27cf-FYg4)
23/07/23 11:28:45.57 foNozPN40.net
>>605
どのテーブル/エンティティを対象にしているかを抜かして議論するのがそもそもダメ。
マイナンバーに紐付くべき情報を保持するテーブルでマイナンバーをキーにするのは何もおかしなことはない。

624:デフォルトの名無しさん (ブーイモ MM8f-3wqI)
23/07/23 17:04:38.87 SI3XE8qvM.net
>マイナンバーに紐付くべき情報を保持するテーブルでマイナンバーをキーにするのは何もおかしなことはない。
マイナンバーを発行する機構のシステムでもアクセスキーを持つ情報保有機関のシステムでもそんな設計したらダメだよ
詳しく知りたければDB設計スレにでもどうぞ

625:デフォルトの名無しさん (ワッチョイ 8754-GsLg)
23/07/23 17:07:00.98 1hxNS+Jv0.net
詳しくは知りたくないがざっくり説明すらできないのは何も知らんとしか

626:デフォルトの名無しさん (ワッチョイ 27cf-FYg4)
23/07/23 17:30:31.15 foNozPN40.net
>>619
まずはどういう理由でダメなのかを一言で説明してみて。
更新異常とかパフォーマンスとかセキュリティとかいろいろあるわけだし。

627:デフォルトの名無しさん (ワッチョイ 2705-TI2y)
23/07/23 17:37:23.40 NhS1+0R50.net
マ板的な話題かも知れんね

なぜマイナンバーカードはうまくいかないのか
スレリンク(prog板)

まあこういう話題は身近なプロジェクトでも起こりうるのであながち無縁ではない

628:デフォルトの名無しさん (ワッチョイ 27cf-FYg4)
23/07/23 17:42:43.73 foNozPN40.net
>>619
じゃあよろしく。

DB設計を語るスレ 11
スレリンク(db板:307番)

629:デフォルトの名無しさん (ワッチョイ a701-bxGm)
23/07/23 18:13:42.78 y9AcmLwP0.net
>個人番号(マイナンバー)は原則として生涯同じ番号を使い続けていただき、自由に変更することはできません。
>ただし、漏えいして不正に用いられるおそれがあると認められる場合に限り、ご本人の申請または市町村長の職権により変更することができます。

対策1
新しいレコードを作成して対応(個人番号を主キーと出来る)

対策2
個人番号+適用期間のテーブルを持つ(個人番号を主キーと出来ない)

DB設計的に綺麗なのは後者だけど、実装が楽で高速なのは前者
テーブル結合が発生するやり方は性能設計的にやりたくない

630:デフォルトの名無しさん (ワッチョイ 2763-RZpt)
23/07/23 18:23:19.83 gta1+Avk0.net
個人番号自体は悪用された場合等に変更されることもあるんじゃなかったっけ?
だとすれば、これをプライマリーキーにしたらまずいと思うんだけど

631:デフォルトの名無しさん (ワッチョイ 8754-GsLg)
23/07/23 18:43:52.80 1hxNS+Jv0.net
例外なく個人と生涯対応した隠しIDみたいなのがあって、それで管理されている
個人番号はそれと紐付けられた情報の一つ

632:デフォルトの名無しさん (ワッチョイ 27cf-FYg4)
23/07/23 19:10:08.65 foNozPN40.net
>>625
それは個人とマイナンバーをちゃんと区別する話。
再発行があるなら古いナンバーに紐付く情報と新しいナンバーに紐付く情報が個別に存在するかもしれないし。

633:デフォルトの名無しさん (ワッチョイ 7ffb-p1qB)
23/07/23 19:58:18.01 Y2dIYUXH0.net
個人番号をある数値で割って剰余を〇〇みたいな古典的な暗号化だったら笑う

634:デフォルトの名無しさん (ワッチョイ 672c-Ib0W)
23/07/23 20:31:45.21 EYaHQibB0.net
個人番号って秘密にするものなの?
身分証明証として使えばふつうに漏洩するじゃん。
どっかの店の会員登録したり、使うケースは今後多くなるんじゃない?
なぜなら保険証も免許証もなくなるのだから。

635:デフォルトの名無しさん (オイコラミネオ MM6b-NlyP)
23/07/23 20:37:40.81 uD38j19SM.net
番号自体でどうこうできないけども
トラッキングに使えるから収集は制限されてる

636:デフォルトの名無しさん (ワッチョイ 8754-GsLg)
23/07/23 20:56:43.81 1hxNS+Jv0.net
個人情報は保護しなければ
と理由もなく思い込んでるフシがある
昔は住所も電話番号も普通に公開してたのに
スウェーデンみたいに番号知られたって何も困らんというスタンスの方がいろいろ便利

637:デフォルトの名無しさん (テテンテンテン MM8f-QBmF)
23/07/23 22:00:31.57 ZJTCwnE/M.net
10年以上Python使ってきたけど、今日ドキュメントを見ていてmatch文て存在を初めて知って軽いカルチャーショックだわ
これCとかのswitchだよね?
Pythonはswitchがなく、複数の条件分岐にはif~elifを使うってのが常識だったように思うが俺が見落としていたのか

638:デフォルトの名無しさん (ワッチョイ 0763-yXMF)
23/07/23 22:15:19.88 AOK+XCDI0.net
まあまあ最近に追加されたから知らなくてもおかしくはないかな
Cのswitch/caseとしても使えるしもっと複雑なこともできる

639:デフォルトの名無しさん (ワッチョイ 678c-FGcY)
23/07/23 22:20:57.34 ijFwVi/G0.net
Python 3.10からなら超最近じゃん

640:デフォルトの名無しさん (テテンテンテン MM8f-QBmF)
23/07/23 23:25:41.19 ZJTCwnE/M.net
職場で個人的にEUCを推進していてさ
自分で書いた小物ツールを他者に説明したりするんだけど
偉そうに「Pythonはシンプルを旨とし、一つのことをするのに
複数の書き方はできないようになってる。
よって条件分岐はifしかない」なんて能書き垂れてたんだよね
人に教える立場の者は常に勉強してないといけないなって反省

641:デフォルトの名無しさん (ワッチョイ 8754-GsLg)
23/07/23 23:28:32.79 1hxNS+Jv0.net
sjisの方がよくね

642:デフォルトの名無しさん (ワッチョイ 7f10-fN/z)
23/07/23 23:41:11.15 E9NR74nn0.net
matchそのまま代入できたらよかったのに

643:デフォルトの名無しさん (ワッチョイ 7f33-DCff)
23/07/24 07:42:50.24 bhgXPbrR0.net
>>635
ちなみに、utf-8よりEUCを推奨する理由についてはどう説明してるんですか

644:デフォルトの名無しさん (テテンテンテン MM8f-QBmF)
23/07/24 08:10:31.42 E+poxZzBM.net
>>636の意味がわからなかったけど>>638で把握
マジレスしとくとエンドユーザーコンピューティング
エンドユーザー部門が自力でツールを開発メンテすれば金がかからず仕事も楽になる

645:デフォルトの名無しさん (オイコラミネオ MM3b-vA7O)
23/07/24 08:23:31.68 OTkPxk5XM.net
>>636
eucはsjisより後に作られた。もちろん理由があってのことだ。

646:デフォルトの名無しさん (ブーイモ MMcf-2YhC)
23/07/24 08:55:56.30 hxZ6wCW4M.net
UTF-8が標準なのもなんかなぁ
マルチバイト環境ならUTF-16のが効率よくね

647:デフォルトの名無しさん (ワッチョイ 678c-FGcY)
23/07/24 08:58:01.85 SSci5eI60.net
世界的に普及している中で世界中の文字をそれなりに扱えるのがUTF-8だから

648:デフォルトの名無しさん (アウアウウー Sa2b-dDmk)
23/07/24 09:21:53.31 opC+VrO7a.net
EUCが一番不要
何のメリットがあるんだよ

649:デフォルトの名無しさん (アウアウウー Sa2b-tGd7)
23/07/24 09:30:34.81 b4teMFwba.net
>>624
そもそも12桁って少な過ぎる
絶対将来枯渇するよな

650:デフォルトの名無しさん (アウアウウー Sa2b-tGd7)
23/07/24 09:33:25.07 b4teMFwba.net
>>629
そもそも秘密なら「教えろ」って言ってくるはずが無い訳だが
そういう仕組みにはなっていないね

651:デフォルトの名無しさん (アウアウウー Sa2b-tGd7)
23/07/24 09:36:09.41 b4teMFwba.net
>>637
どこのRustの人ですか

652:デフォルトの名無しさん (アウアウウー Sa2b-tGd7)
23/07/24 09:39:02.04 b4teMFwba.net
>>643
unicodeのcodepointのうちで
sjisに変換不可能な文字は存在するが
eucなら変換出来るんじゃないかな
それだけでもsjisがいかに糞か判る

653:デフォルトの名無しさん (ワッチョイ 7f33-DCff)
23/07/24 10:43:02.36 bhgXPbrR0.net
>>639
とりあえず、>>638
っていうか、utf8普及しまくってるのに何でわざわざeucにするんですかって聞かれ時はどう答えてるの?

654:デフォルトの名無しさん (ワッチョイ 7f90-HmGg)
23/07/24 11:23:39.95 4YyKbOUI0.net
>>648
読み間違えてるよ
誤:EUC(Extended Unix Code)を推奨する
正:EUC(End User Computing)を推進する

655:デフォルトの名無しさん (ワッチョイ 7f46-ut6A)
23/07/24 12:11:52.51 jISsTKbU0.net
EUC(European Union Center)だろ。

656:デフォルトの名無しさん (ワッチョイ a701-bxGm)
23/07/24 18:28:38.98 NnxoLtiq0.net
>>644
日本が存続する限り運用するなら何桁にしても枯渇する

657:デフォルトの名無しさん (ワッチョイ df02-/dWn)
23/07/25 01:07:45.39 BpssBnM30.net
足りなくなったら電話番号みたいに桁増やすでしょ
その時はお役所仕事でグダグダになるんだろうけど

658:デフォルトの名無しさん (ワッチョイ 8754-GsLg)
23/07/25 05:40:35.68 xb+ZpjMN0.net
IPアドレスの枯渇とかと同じだと思ってるな
ビット数なんか決まってないんだからどうにでもなる
内部的には19桁までいける筈

659:デフォルトの名無しさん (テテンテンテン MM8f-bhyX)
23/07/25 07:01:10.71 VkH/on+mM.net
web3は国策のはずだがどうなったのだろうな
失敗するんだったらコッチで失敗した方が後の糧となるのにな

660:デフォルトの名無しさん (ワッチョイ 678c-FGcY)
23/07/25 07:37:27.20 7bxToldZ0.net
web 2.0の時点で何それ知らんだったのにまだやるのか

661:デフォルトの名無しさん (ワッチョイ bf63-4dwq)
23/07/25 14:07:53.28 rWqhM1Bk0.net
from importってどこで定義すれば良いのか規則とかあるのでしょうか?
from . import samples
def util():
 pass
def main():
 ここでsamples.aaaなどを参照する処理
とかやった場合にsample.aaaでutil参照してる場合に循環importエラーでますよね
なのでmain関数の中でfrom .import samples
にするかそもそもutile関数を分けるか、だとおもうのですが
そういう場合は、って慣習があるのか気になりました

662:デフォルトの名無しさん (アウアウウー Sa2b-QKap)
23/07/25 14:33:36.56 iTChcdyRa.net
as hogehoge するとか
ディレクトリ造って __init__.py の方でなんとかするとか

663:デフォルトの名無しさん (ワッチョイ 5f32-QY1y)
23/07/25 14:50:47.21 SopfjPcB0.net
最小構成はこんな感じです
URLリンク(pastebin.com)
要は、samplesとhogeはお互いの機能を使い合いたい、感じです
仮に、aaaでしかsamples.util使わないならaaaの中でimportすれば循環は回避できます。
また、
hoge.utilの中ではsamplesを参照しない、
のは誰が書いても論理的に確定しているから
hoge.mainの中でsamplesをimportする
という方がしっくりきます
しかし、hoge.main以外にmain1,2と増えた場合に毎度その中で書くことになります
なのでそれが通例?なのかな、と。または別の慣習があるとか
それだったらもう、
「samplesの機能を使うようなモジュールとそうでないモジュール」
として、hoge.utilを完全に隔離した方がシンプルで迷うことは無いのではと考えました
こういうの__init__.pyとかで解決できるんですかね・・?
ちょっと調べてみようと思います >>657
感情論で言うと
「hoge.util内でsamplesの機能ひとつも使っていないのに、どうしてhoge全体でsamplesをimportしたの?」
が根本的な問題なような気がして・・

664:デフォルトの名無しさん (アウアウウー Sa2b-QKap)
23/07/25 16:03:23.98 iTChcdyRa.net
hoge.py の中で from samples import aaa

665:デフォルトの名無しさん (ワッチョイ e7da-elOp)
23/07/25 17:03:52.28 vV5HZ24s0.net
>>659
>>656の>ここでsamples.aaaなどを参照する処理
の”など”というのは、もしかしたらbbbかもしれないしcccかもしれないし
mainの引数を受け取って条件分岐したりgetattrしたりするかもしれない
ということです
つまりhoge.mainをもう少し汎用的に書くとすれば
hoge内でsamplesから使う機能を把握しておき、例えば
from samples import aaa,bbb,ccc,ddd
など使う可能性のある機能だけを事前に宣言しておいて
def main(sample_type):
のように条件分岐する設計がベストということでしょうか
たしかにこれならmainと同じ場所にutilを書いても論理性が担保されるなと思いました。
デメリットは、samples側でsamples_typeに渡す引数に変更があった場合
import aaa,bbb,ccc,ddd の行 と hoge.mainの条件分岐内のコードも修正しなければならない
ということくらいでしょうか

666:デフォルトの名無しさん (ワッチョイ 7fcf-WOXz)
23/07/25 17:18:07.90 igfKK3yD0.net
というかsamplesでfrom .hoge import utilしていると
hoge.pyの中で部分的に from samples import しても循環エラー出ますね。 >>659
やはり、使わない機能は隔離して一方向でimportする
というのがベストなのかもしれない

667:565 (ワッチョイ 7f33-onGn)
23/07/25 19:50:56.15 UAjCsPDR0.net
何でそういう構成なのかよくわからんからあれだけど、そのままでいくならhoge.pyのmainを__int__.pyに移すとかじゃない


668:



669:デフォルトの名無しさん (アウアウウー Sa2b-X5BL)
23/07/25 21:22:26.38 VfuQkNGra.net
>何でそういう構成
構成にしているというか、現状はしてません
samples.pyとhoge.pyでお互いの機能をimportし合うケースってあるよね
というのが前提にあって、かつ
「hoge.mainとhoge.utilは機能的に関連性が高いので同じpyファイルにまとめる」
と循環が起きる
対策は
(1)importの場所を変える
(2)pyファイルを分ける
(3)__init__.pyでやる
で、今は(2)hoge.mainとhoge.utilをhoge.pyとhoge_util.pyに分けてます
>hoge.pyのmainを__int__.pyに移す
というのがいまいちわかりませんが
とりあえず__init__.pyで処理したのは
URLリンク(pastebin.com)
これですが、やはり循環エラーが出ます
やり方があっているのかはわかりません。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch