[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 06/30 01:58 / Filesize : 284 KB / Number-of Response : 1045
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【まず1嫁】くだすれPython(超初心者用) その57



1 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 22:25:08.74 ID:/hGmbW/Z.net]
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。

★エラーを解決したい場合★は、
  表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。

Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式◇ www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi

〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その56
mevius.5ch.net/test/read.cgi/tech/1640536690/

次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###

320 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 13:41:26.68 ID:Zd8mDGLh.net]
少なくとも>>280をやるためにデコレーターはないわ

321 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 14:39:38.37 ID:lIUF2c+K.net]
>>310
>>289

322 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 14:46:42.16 ID:koL1rSR0.net]
初心者に対して不要な一般化は余計に分かりにくくするだけやろ
やり方自体が御世辞にもいいアプローチとは言えないし

323 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:01:53.40 ID:q/MsDqBP.net]
>>310
デコレータみたときは「やられた!」って思ったね
しかも可変、嫉妬してちょっと噛みついてみたけど見事に返り討ち
いやはや、彼のコードはみんなマネした方がいいよ、良いものはどんどん取り入れよう

そういえば、ひろゆきが良く自慢げに言う話を思い出したんだけど、
ゲームを作ってみる授業?か何かで友達が書いたコードがメチャメチャ短かったんだって
上下左右の操作なんだけど、ちょっとした計算で実現していて、それ見たひろゆきが才能の差を
感じてゲームクリエイターをあきらめたとかいう才能の話
それ聞いたときはアホじゃね?良いコードみたらパクればいいだけじゃんって思ったものだよ
たぶんひろゆきはすごくプライドが高くてちょっと躓いただけで諦めちゃうメンタルなんだよね
そんなこんなで出来上がったのがヒマつぶしwとか言って他人の文句しか言わない人間になっちゃった
「頭悪い!」と他人を下げることで自分を慰める毎日、やっぱ諦めずに挑戦するのって大事だなって思いました
そうホリエモンってひろゆきと真逆だよね、ホリエモンは今も色んなことに挑戦している、ホリエモンは輝いているよ

324 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:04:25.71 ID:PImFDAtt.net]
>>312
>>297

325 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:04:43.60 ID:EPf9iKEG.net]
>>311
一般的?

326 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:17:32.88 ID:J9TOF8GR.net]
Ruby とか、関数型言語Elixir では、map が基本

327 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:18:04.67 ID:o0lyPM3S.net]
他人の話を否定するだけの奴って何の生産性もないよな
低レベルでもコード提示するほうがよっぽど役に立つわ

328 名前:デフォルトの名無しさん [2022/07/18(月) 15:22:34.62 ID:qwr+PsCM.net]
>>312
参考までに良いアプローチplz



329 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:36:01.64 ID:y8tEu6pL.net]
matomeとmap、どっちが速いんだろうか
どっちもforで毎回f呼び出すよりは速そうだけど

330 名前:デフォルトの名無しさん [2022/07/18(月) 15:55:55.10 ID:GojDtZHN.net]
デコレータ
使って観たい
御年頃

331 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 15:59:17.63 ID:LKJtspF0.net]
処理時間測定してみたらmapのほうが2割前後速かったわ

332 名前:デフォルトの名無しさん [2022/07/18(月) 15:59:40.46 ID:GojDtZHN.net]
>低レベルでもコード提示するほうが

ないわ

333 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 16:06:47.73 ID:kISKbyyY.net]
ついでなんで書いとくね
実行時間
forを使ってf呼び出し:1
matome:0.5
map:0.4

334 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 16:21:22.72 ID:ln/vUyrz.net]
>>322
比較対象は
> 他人の話を否定するだけの奴
だぞ、頭大丈夫か?

335 名前:デフォルトの名無しさん [2022/07/18(月) 16:30:53.42 ID:qwr+PsCM.net]
デコレーターに親殺されたニキがおるな

336 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 17:45:39.65 ID:UwLRS3iL.net]
普通に考えてリストに関数をそれぞれ適用させたいならmapが一番シンプルでmapと同意の内包表記が最もPythonらしいのでは?

337 名前:デフォルトの名無しさん [2022/07/18(月) 18:04:13.67 ID:LNL0CNxW.net]
mapと同意?どういうこと?

338 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:04:19.00 ID:pfq1SIlO.net]
お盆も近いからデコレータに恨みがある奴も
這い出して来ているんでしょう



339 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:08:48.63 ID:PImFDAtt.net]
単にmapの人が、なんでmap使わないんだと言っているだけなのでは?
それがデコレータsageに見えると

340 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:23:16.60 ID:q/MsDqBP.net]
内包表記の方が断然好きだな〜、mapはシンプルになる場合もあるけど
今回のようにゴチャる場合もあるんだよな〜
下記はmatomeを自分好みの関数名と変数名に改変したヤツでっす!

def get_lists_items(func):
____# 内包表記版
____def process(*lists):
________return [func(*items) for items in zip(*lists)]
____return process

def get_lists_items(func):
____# map版
____def process(*lists):
________return list(map(lambda items: func(*items), zip(*lists)))
____return process

341 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:28:18.32 ID:2ipqvE3v.net]
>>330
なんでzip?
そういう引数リスト専用の関数を作りたいの?

342 名前:デフォルトの名無しさん [2022/07/18(月) 18:40:20.03 ID:qwr+PsCM.net]
>>280の望みは「intを引数に取り計算結果を返す関数を、"シームレスに"リストにも拡張すること」だからデコレーターが適当じゃない?Pythonicかどうかは知らん

343 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:50:45.67 ID:0V7pBSnr.net]
デコレータは不適当

デコレータは基本的に元の関数を透過的に拡張するために使う物

def f(a, b, c)をデコレートしても
デコレート前と同じf(a, b, c)で呼び出し可能で
成功時には同じ戻り値を得られるように作る

高階関数ならなんでもデコレータにすればいいわけじゃない

344 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:52:28.91 ID:q/MsDqBP.net]
>>331
そのとおり、>>280だけでなく色んなパターンのリスト関数が簡単に作れるのだよ
このデコレータがあればね!

345 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:53:15.28 ID:9fYXH/DB.net]
勉強になったわ。
今までPyQtでアプリ作っていたが、@pyqtSlot()がQtデザイナーからのリンクみたいなもんかと思ってました。
すっきりです。

346 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 18:58:21.00 ID:VjQ/Ckj0.net]
デコレーターのメリットがあるならそれ使えばいいけど遅い上に記述量増えるしね
どう見ても>>320だろw

347 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 20:38:42.55 ID:FbOneiqz.net]
forよりは速い

348 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 22:52:23 ID:P7xIx3wJ.net]
今回の話でデコレータが内包表記より優れているという理屈が理解できない
def f(a):
  return a+1

a=[1,2]
print([f(i) for i in a])

これで事足りるでしょ



349 名前:デフォルトの名無しさん [2022/07/18(月) 22:52:35 ID:SFjyzDm9.net]
超絶初心者です。
counter: int = 0 # 他の処理で変わっていく
def test(self):
  user_name = "xxxx"
  if counter > 0:
   now = datetime.datetime.now()
   ..... # 色々処理
now ←ここで nowは参照させたくない、スコープ外にしたい

今だとnow変数はif文が処理されれば値が入ります。
now変数のスコープをif文内だけにするってことはできますか。

350 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:05:31.63 ID:2hrGCnNJ.net]
self ということはクラスメソッドだと思うけど
他のメソッドから self.test() を呼べば now は隠蔽される。
もしくは頭で now = None しておいて
if now is not None:
でわけるとか。

351 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:13:05.76 ID:1e6Pm9kS.net]
>>330
starmap使えばlambdaいらない

352 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:22:42.01 ID:q/MsDqBP.net]
>>341 なるほど、でも内包表記の方が見やすいよね!
from itertools import starmap
def get_lists_items(func):
____# starmap版
____def process(*lists):
________return list(starmap(func, zip(*lists)))
____return process

353 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:35:38.05 ID:Yb4pZTqb.net]
>>342
二択ならね
でもどっちも用途に対してアンチパターンだから使わないのが吉

354 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:42:11.41 ID:q/MsDqBP.net]
>>343
for文使うのがベストってこと?

355 名前:デフォルトの名無しさん mailto:sage [2022/07/18(月) 23:54:17 ID:8wpG6nJ0.net]
re.matchで何がマッチしたか知る方法てある?
s = 'ABCDEFGHIJK'
m = re.match(r'ABC|HIJ', s) 'm: <re.Match object;

356 名前:span=(1, 4), match='BCD'>

match='BCD'を取ってきたいのだが、方法てある?


ネットだと()でくくってgroupsでとれて書いてあるけど、
s = 'ABCDEFGHIJK'
m = re.search(r'(BCD|HIJ)', s)
x_text = m.groups(0)
print(x_text)

('BCD',)て表示されるし、x_textはstr型じゃないから文字列操作ができない。

Python 3.9.13です。
[]
[ここ壊れてます]

357 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 00:05:16 ID:pVZms+nG.net]
>>339
pythonにはブロックスコープがないので
if文の中で新しく作成した変数のスコープをif文内だけにすることはできないよ

358 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 00:32:46.32 ID:8NIkYSWg.net]
>>345
groupとgroupsとそれぞれある
group(0)ならstr



359 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 01:22:31.44 ID:XqVlnmi4.net]
>>339
del now でどうでしょうか

360 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 08:41:05.75 ID:UwsMPoKY.net]
内包表記って普通のforと違うみたいだけど、なんでこんなに速いの?

361 名前:デフォルトの名無しさん [2022/07/19(火) 09:10:11.34 ID:mYl9AT7Z.net]
>>340,346,348
339です、どうもありがとうです。言語仕様的にブロックスコープないのはしょうがないですね。
del は試してみたいと思います。

362 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 09:30:11.93 ID:ioxaO2di.net]
a=[f(x) for x in range(100)]
で、今xがいくつのところをやってますとprintする方法はありますか?
forを外に持ってくると処理が遅くなってしまうので避けたいです

363 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 09:32:53.74 ID:Dm4GA3mb.net]
訂正
a=[f(x[i]) for i in range(100)]
にします
iの値は関数に持ち込みません
持ち込むのなら関数でprintできますが、それはなしにします

364 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:04:16.93 ID:L7UUhMht.net]
>>352
a = [print(i) or f(x[i]) for i in range(10)]

365 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:12:32 ID:zbPEuSRT.net]
CPU処理を高速化するのはmultiprocessingを使うことでできたのですが、
今度はGPUでmodel.fitするほうが遅くてしょうがないです
multiprocessing同様に簡単に速くする方法があれば教えてください

366 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:15:51 ID:XqVlnmi4.net]
>>352
fの中でカウント用の変数を持ってインクリメントする

367 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:20:19 ID:+zTkD2Kt.net]


368 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:20:59 ID:+zTkD2Kt.net]
>>353
できましたありがとう
ところで、どうしてorなんでしょう?



369 名前:デフォルトの名無しさん [2022/07/19(火) 10:23:27 ID:2mzjLS5j.net]
>>332
numpyが最適
わりとまじで

370 名前:デフォルトの名無しさん [2022/07/19(火) 10:30:11 ID:2mzjLS5j.net]
>>345
re.findall

371 名前:デフォルトの名無しさん [2022/07/19(火) 10:31:34 ID:2mzjLS5j.net]
>>349
普通のforと違うから

372 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:36:57 ID:COa8jHBw.net]
>>357
print(i)の戻り値がNoneだから、必ずorの右辺を返す

373 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 10:51:26.50 ID:brlHmAiq.net]
>>357
どうして?という直感はまっとうで
読み手の思考が止まるので必ず成功・失敗するケースだとその用法は不適
書き捨て用

374 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 11:07:31 ID:+zTkD2Kt.net]
>>361
なるほど、かしこいですね

>>362
では、どのような書き方が適切なのか教えてください

375 名前:デフォルトの名無しさん [2022/07/19(火) 11:30:53 ID:bdrM7/md.net]
printしたらforと内包表記の違いなんて誤差に見えるほど遅くなると思うがそれはええんか?

376 名前:デフォルトの名無しさん [2022/07/19(火) 11:33:51 ID:RISkfx3J.net]
forと内包表記で速さに違いが出るのはなぜですか?

同じコードをなぜ生成しないんですか?

377 名前:デフォルトの名無しさん [2022/07/19(火) 11:37:38.74 ID:856tCJOd.net]
内包表記でプログレス挟んで遅いのは嫌とかバカの極み
可読性考えて普通のforで回せ。 つか速度測ってみろ。大差ねえわたぶん

[(f(x[i]), print(i)) for i in range(10)]

378 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 12:00:14.16 ID:GEUE7oT9.net]
超初心者を馬鹿にしないと精神の安定が保てない



379 名前:ゥわいそうな人 []
[ここ壊れてます]

380 名前:デフォルトの名無しさん [2022/07/19(火) 12:19:44 ID:192s6b8D.net]
馬鹿にされるような日本語使いする自称超初心者が悪い

381 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 12:24:07 ID:AricPVYV.net]
>>349
比較したコードを出してみて

382 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 12:31:03.42 ID:ZGMRA42U.net]
>>351
print等の副作用を伴う処理を繰り返す場合は
内包表記ではなくforを使うのがpythonにおける暗黙の了解
値の加工生成と入出力を分けて書くのはpythonに限らずプログラミングの基本

383 名前:デフォルトの名無しさん [2022/07/19(火) 12:45:56.52 ID:2mzjLS5j.net]
>>363
a = [[print(i), f(x[i])][1] for i in range(10)]

384 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 12:59:28.59 ID:COa8jHBw.net]
カウント1毎にプログレス表示すると内包表記使う意味ないかもしれんが、
リストへの追加100毎
カウント10000000毎にプログレス
で時間計測してみた

内包表記
a = [(i%10000000 or print(i), str(i))[1] for i in range(100000000) if i%100 == 0]
8秒

forループ
a=[]
for i in range(100000000):
____if not (i%10000000):
________print(i)
____if i%100 == 0:
________a.append(str(i))
20秒

行儀悪い書き方だが、条件しだいで効果はある

385 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 13:09:56.89 ID:ieHxnJ8/.net]
>>365
ループ内でpythonのインタプリタで実行される処理とコンパイル済みのCのコードで実行される処理の行き来が減れば速くなる

内包表記は式しか書けないのとlist.appendのようにインタプリタがメソッドを探す処理が不要にになることが多いので単純な式評価だと内包表記がやや速い結果になりやすい
(例えばループの外でappend = outlist.appendとしてループ内ではメソッドじゃなく関数呼び出しにすれば多少速くなる)

ただforより内包表記が速いから内包表記を使うというのは使い方が間違ってるか使う言語を間違ってる

386 名前:デフォルトの名無しさん [2022/07/19(火) 13:35:02 ID:RISkfx3J.net]
>>373

ありがとうございました。
処理系が書き方の違いを吸収して同じ(速い)コードを生成することは難しいのでしょうか?

387 名前:デフォルトの名無しさん [2022/07/19(火) 13:41:20 ID:2mzjLS5j.net]
8秒の方はstr()呼ばれる回数も少ないんじゃね
やり直し

388 名前:デフォルトの名無しさん [2022/07/19(火) 13:45:55 ID:e6PA2QPH.net]
内包表記を配列操作以外に使うな(関数叩くな)って書いてるのeffective pythonだっけ

>>374
速いコードって、たとえば進捗吐かないとか、無駄な評価式やループしないとか、そうやって作ってくんよ
鈍重な書き方しても速いのがいいっていうなら、もう根本的にpythonは遅い言語だよ



389 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 13:57:38.21 ID:COa8jHBw.net]
>>375
str()呼ばれる回数は同じじゃね
でも、i%10000000の回数違ってた

内包表記
a = [(i%10000000 or print(i), str(i))[1] for i in range(100000000) if i%100 == 0]
8秒

forループ
a=[]
for i in range(100000000):
____if i%100 == 0:
________if not (i%10000000):
____________print(i)
________a.append(str(i))
12秒

390 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 14:02:29.41 ID:6WNMcjy9.net]
>>377
printしない場合は?

391 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 14:08:53.16 ID:COa8jHBw.net]
>>378
str(i)呼ぶ回数は、両方 100000000 / 100 = 1000000回

392 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 14:12:29.27 ID:6WNMcjy9.net]
>>379
うんだから何秒なの?

393 名前:デフォルトの名無しさん [2022/07/19(火) 14:12:50.87 ID:Xr1AbmZQ.net]
結局書きづらい、読みづらくてミスしちゃうんだから
普通のforループの方が総カロリー低いと思います

394 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 14:17:28.28 ID:COa8jHBw.net]
>>380
printしない内包表記
a = [str(i) for i in range(100000000) if i%100 == 0]
8秒

395 名前:デフォルトの名無しさん [2022/07/19(火) 14:19:06.99 ID:RISkfx3J.net]
行列プログラマーという本では、集合の表記に近い内包表記のほうが分かりやすいと書いてあります。
実際、もっぱら内包表記を使っています。

396 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 14:40:11.78 ID:HHxHBIIc.net]
>>382
つまりprintは時間がかかってないわけだよね
で、普通のforより内包表記のほうが速い分だけ速くなってると
それは何の実験なんだい?

397 名前:デフォルトの名無しさん [2022/07/19(火) 14:49:08.31 ID:Dd2ngZhk.net]
内包表記でもインデントしていいんですよ
可読性高めていけ

398 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 14: ]
[ここ壊れてます]



399 名前:52:21.67 ID:COa8jHBw.net mailto: >>384
進捗を大雑把に表示したい場合、内包表記でprintするのも有りという実験
俺は開発中以外では使わんけど
完成したコードにこんなの書いてたらやだ
[]
[ここ壊れてます]

400 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 15:07:57 ID:COa8jHBw.net]
printは時間がかかってないのではなく回数を少なくしてる
他の人が指摘してるように、進捗を細かく表示したい場合、内包表記もforループも時間差はほぼ無くなる
printはやはり時間がかかる

401 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 15:17:30 ID:kjnFmzM9.net]
時間差は4秒で変わらないんじゃないの
printに時間がかかるから4秒の割合が小さくなってほとんど意味ないじゃんってことでしょ

402 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 15:40:36.31 ID:COa8jHBw.net]
>>388
そういうことです
進捗を細かく表示したい場合、ほとんど意味ないってこと
完成状態で内包表記にprintはおすすめできない
テスト中に内包表記にprintを入れるのはお好みで

403 名前:デフォルトの名無しさん [2022/07/19(火) 15:40:46.26 ID:bdrM7/md.net]
a=[]

a.append(str(i))
でなくて、
a=[0]*100000000/100

a[i]=str(i)
だとますます変わらなそう

404 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 16:01:31.52 ID:Ao+3qyOr.net]
>>377
そんな差でる?
むしろforループのほうが3~5%程度速いんだが

405 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 16:03:31.06 ID:/jGGKkxp.net]
>>389
であれば、可読性より速度を重視する場合、内包表記にprintを入れたほうがいいということですよ
意味は4秒ぶんあるわけです

406 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 16:18:19 ID:COa8jHBw.net]
>>391
こちらは化石PCで測定したので。
誤差じゃない充分な時間差が開く程度にrangeの値を大きくしてみて

407 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 16:28:38.52 ID:L7UUhMht.net]
そもそも内包表記は可読性良いよ、ギュッと1行にまとまりつつも分かりやすい
for文見る方がダルイわ、内包表記にできないものを仕方なくfor文にしているよ
慣れだよ慣れ、最近だと二重ループの内包表記も全然苦じゃない、美しいとさえ感じる

408 名前:デフォルトの名無しさん [2022/07/19(火) 16:31:26.97 ID:RISkfx3J.net]
>>394

ですよね。集合論的な表記に似ています。



409 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 16:40:41.64 ID:wHnodxSw.net]
forループのほうが内包表記より速いなんてことあるの?

410 名前:デフォルトの名無しさん [2022/07/19(火) 18:36:04.44 ID:paq2dZhq.net]
それこそ、内包表記で呼ぶ関数の回数をカウントして確認たいならデコレーターとかでtqdm使うようにした方が良くないかな?
内包表記の中をごちゃごちゃにするのは基本的には避けた方がいいと思うんだよな。
シンプルに書くために内包表記を使ってるのであって、Zコンビネーターとか使ってへんなことするなら普通のforとかにした方がいいよね
遊びとしては否定しないけどね

411 名前:デフォルトの名無しさん [2022/07/19(火) 19:06:26 ID:xA31LZ9f.net]
code golf で言うと
打数多い方が自慢してるような
糞な流れ
もうやめませんか

412 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 19:27:22 ID:w0DVg8Bk.net]
自治厨久しぶりに見た

413 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 19:55:09.64 ID:z/It7jZN.net]
>>397 に一票
こういうのこそデコレーターの出番だと思う

414 名前:デフォルトの名無しさん mailto:sage [2022/07/19(火) 20:20:06.84 ID:n8OVMrsb.net]
つまり具体的にはどういうこと?

415 名前:デフォルトの名無しさん [2022/07/19(火) 22:29:55.85 ID:Dd2ngZhk.net]
一行にまとめた内包表記より、インデントした内包表記の方が可読性が下がる

416 名前:デフォルトの名無しさん [2022/07/19(火) 22:32:42.31 ID:Dd2ngZhk.net]
の?

417 名前:デフォルトの名無しさん [2022/07/19(火) 23:31:48.45 ID:paq2dZhq.net]
>>401
こんな感じ
imgur.com/a/UsKhUuD

tqdm使いたくなかったらpbarの初期化やpbar.updateの代わりにカウント変数とprintでも使っておいて

418 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 00:25:50.52 ID:sLuJt4wx.net]
>>404
rangeの100で100回ループさせるから
tqdm_wrapperに100を渡してるんだよね?



419 名前:デフォルトの名無しさん [2022/07/20(水) 01:30:58.07 ID:aFoX4Dx/.net]
>>405
そうそう、その辺はもっといい方法があるかもしれないが、ちょっと思いつかなかったのでそんな感じ。
回数が決まってないときは棒グラフは出せないけど1秒に何イテレーションできてるとかはわかると思う。

420 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 03:27:59.73 ID:vTCCBmkT.net]
@tqdm_wrapper(total_count)ってできればいいんだけど、そういうのは無理なのかな?

421 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 06:19:50.33 ID:uVwid/eb.net]
printなしでやってもforループのほうがほんの少し内包表記より速いんだけどなぜだろう

422 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 07:14:30.03 ID:vC0V/6Za.net]
PEP
pythonは描き方がひとつ(キリっ

423 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 07:58:53 ID:rNnuNQ69.net]
>>408
計測結果は何秒だったの
メモリが少なくてスワップ発生してるとか?

424 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 09:48:14.82 ID:53g3nF67.net]
Pythonのネット記事読んでるとAnacondaを入れてどうこう、というチュートリアルばっかりあるんだけど
肝心のAnacondaはどういう状況下で使うものなのか、説明省かれててよくわからないんだよな

ライブラリとpythonのバージョンが合わないと使えないことがあるからそれを避けるため、って認識でいいの?
不具合無かったらAnacondaつかわなくていいのかな?

425 名前:デフォルトの名無しさん [2022/07/20(水) 11:17:28.13 ID:wWIP1AbD.net]
anacondaはAnaconda社の計算科学のための商品で学生の方など教育や学術目的、または趣味の用途であれば無償でご利用いただけます

入門書とかで使われてるのは、色々と最初から入ってるから開発やデプロイ先の環境構築を解説しなくて済むからだよ
anacondaに依存しないやり方覚えた方が楽っていうか、むしろその方が必須になる

426 名前:デフォルトの名無しさん [2022/07/20(水) 11:22:56.97 ID:wWIP1AbD.net]
退屈なことは Python にやらせようを書いた人も同じような事言ってた

427 名前:デフォルトの名無しさん [2022/07/20(水) 11:27:11.69 ID:wWIP1AbD.net]
アナコンダを否定してるわけじゃないよ。素晴らしい商品ですし、選択肢の一つとして選べるのは良いことだと思います

428 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 11:55:51.53 ID:L6JCmqAC.net]
あえて、IronPythonに手を出して茨の道をw



429 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 13:27:25 ID:SSFD7/IV.net]
今Twitterなどで話題になってる仮想通貨のbotを作りたいです

年間で1億円ぐらい稼ぐには何の勉強すればいいですか?

430 名前:デフォルトの名無しさん [2022/07/20(水) 13:38:38 ID:pMrjs46b.net]
経済と仮想通貨

431 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 13:38:57 ID:ShYgaPwJ.net]
デッサン力

432 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 14:14:10.83 ID:hOJNeZde.net]
これからのキーワードは仮想環境
anacondaもIronPythonもPyTorchも欲しい環境をコンテナ一発でドーン!
ってやりたいからDocker勉強しようかと思っている

433 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 15:00:19.03 ID:qJwz0nM8.net]
ぶっちゃけ
docker の anaconda 版とか
docker の 標準 python 版とか
そういうので良いんだわ
解説書あっても各々インスコ時にバージョンガーとかおま環とか
だるいサポートにみんな疲れたんだろ

434 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 15:29:51 ID:djIfGOxS.net]
windows10 + python3.9 では生ソケットを扱う事ができないのでしょうか

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
ソケット作成のとこでエラーがでます
[WinError 10013]
アクセス許可で禁じられた方法でソケットにアクセスしようとしました
とエラーメッセージがでます

ログインしているユーザはadministratorの権限も持っています

435 名前:
英語のサイトで調べるとprohibitというワードもありました
識者の方ご指導願います
[]
[ここ壊れてます]

436 名前:421 [2022/07/20(水) 15:40:01 ID:djIfGOxS.net]
421です
コマンドプロンプトを管理者権限で実行する事が必要であると学びました

437 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 16:51:36.92 ID:rnlV1uw8.net]
anacondaはまああれだけどspyderはなんか好きだ

438 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 17:04:37.61 ID:rNnuNQ69.net]
a=[]
append = a.append
for i in range(30000000):
____append(i)
のように、メソッドをあらかじめ変数に入れると高速化できるという情報をよく見かけるけど本当なの?
何回計測しても誤差程度の差しかなく、速くなってるのか確認できないんだけど



439 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 17:27:44.50 ID:Lx4+ezqp.net]
https://wandbox.org/permlink/xE2gHLprP4RKuqf0

440 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 17:49:55.19 ID:ZOYHOoJs.net]
このくらい最適化してよと思っちゃうんだが無理なんかな?

441 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 17:50:04.72 ID:rNnuNQ69.net]
>>425
ありがとうございます
計測方法のミスに気づきました
関数を作らず計測していたので、append = a.append のところがグローバル変数になって遅くなり、
その結果、高速化していなかったようです

442 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 18:01:43.03 ID:D9vTvaEa.net]
これの出所は概ね公式Wikiだけど、2が全盛期に書かれた物なので
https://wiki.python.org/moin/PythonSpeed#Take_advantage_of_interpreter_optimizations

属性を検索したり、インスタンスを紐付けてバウンドメソッドを返す様な
https://docs.python.org/ja/3.7/howto/descriptor.html#invoking-descriptors
こういった機構を回避するので多少速くなるけど、現行のPythonでは比較的小さい
ローカル変数がグローバル変数より読み書きが速いのも実際そう

>>426
型がないダックタイピングな以上は都度解決するしかないであろうなぁ…

443 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 18:58:09.37 ID:QlVkmKZp.net]
anaconda入れたけど、avastがなぜかウイルス扱いしていて、anaconda立ち上げるとすぐ落ちて使えなくて、あきらめてvscにした

444 名前:デフォルトの名無しさん [2022/07/20(水) 20:09:39 ID:eRSlBPBh.net]
pythonで質問なんですがコンソールに表示される数値の横に量を表したバーを表示させたいのですが

300 ■■■
20 ■
150 ■■

ぐぐっても進捗率をあらわすプログレスバーのtqdmが出てきてしまいどうやって数字に連動した量を表示させるのかわかりません
何かヒントがあればお願いします

445 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 20:21:54 ID:hglVd79x.net]
pbar.update(1) ←これの数字をいじる

446 名前:デフォルトの名無しさん [2022/07/20(水) 21:24:08.50 ID:npea7ePl.net]
>>431
ありがとうございます、おかげさまでなんとかできそうです
素敵なお方だ

447 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 22:26:00.73 ID:rNnuNQ69.net]
>>432
「tqdmが出てきてしまい」て書いてるので、静的に表示するだけだからtqdmは使いたくないのかと思った

静的に表示したい人用おもちゃ
def print_bar(n, max, expansion):
____box = "▏▎▍▌▋▊▉█"
____rate = (n * expansion * 100) // max
____bar = "" + box[7] * (rate//8) + box[rate%8]
____print(bar)

print_bar(50, 100, 1)
print_bar(55, 100, 1)
print_bar(100, 100, 1)
print_bar(100, 200, 1)
print_bar(100, 200, 3)

今書いた書いたらちゃんとテストしてない

448 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 22:32:08.75 ID:rNnuNQ69.net]
>>433
バグってた
すぐ直します



449 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 22:42:20.27 ID:rNnuNQ69.net]
def print_bar(n, max, expansion):
____box = "█ ▏▎▍▌▋▊▉"
____rate = (n * expansion * 100) // max
____bar = "" + box[0] * (rate//8)
____if rate%8 != 0:
________bar += box[rate%8]
____print(bar)
print_bar(0, 100, 1)
print_bar(1, 100, 1)
print_bar(2, 100, 1)
print_bar(3, 100, 1)
print_bar(4, 100, 1)
print_bar(5, 100, 1)
print_bar(6, 100, 1)
print_bar(7, 100, 1)
print_bar(8, 100, 1)
print_bar(50, 100, 1)
print_bar(55, 100, 1)
print_bar(100, 100, 1)
print_bar(100, 200, 1)
print_bar(100, 200, 3)

450 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 22:53:43.67 ID:JXXlHdvc.net]
Ruby on Rails なら、VSCode, WSL2, Vagrant, Virtual Box でも出来るけど、
Python は依存モジュールが多いから、Docker が普通

自宅ではじめるDocker入門[改訂版]、浅居 尚、2021/4

この本が最も簡単

451 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 23:38:31.06 ID:hOJNeZde.net]
>>435
barだけだとやっぱり分かりにくいですね数字も必要だと思いました
もしくはbarの到達位置の表示が必要

452 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 23:59:09.30 ID:hOJNeZde.net]
>>436
Dockerの書籍でているのね、レビュー評価もメチャいいじゃん
でもネット上に公式?の日本語ドキュメントがあるからこれでいけるんじゃないかな??どうかな?w
ttps://matsuand.github.io/docs.docker.jp.onthefly/
ttps://docs.docker.jp/index.html

453 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 01:17:04.66 ID:dz51dLzk.net]
>>437
値、開始位置、最大到達位置を表示しました

def print_bar(n, max, expansion):
____box = "█ ▏▎▍▌▋▊▉"
____rate = (n * expansion * 200) // max
____bar = "" + box[0] * (rate//8)
____if rate%8 != 0:
________bar += box[rate%8]
____print(f"{n:{len(str(max))}d} | {bar:{expansion*25}s} |\n")
print_bar(8, 100, 4)
print_bar(50, 100, 4)
print_bar(90, 100, 4)
print_bar(100, 100, 4)

454 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 03:59:00 ID:c34Fgnuj.net]
PythonでAI作り始めてから電気代が2000円以上高くなった

455 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 08:50:46 ID:nja0E+A7.net]
>>439
すばらしい全部入っている! けども200とか25とかなんだろう?ああ小数点がイヤだから2倍しているのか
となったので、計算式が分かるようにした方が可読性とメンテナンス性があがると思いました
以下計算式を明示した改良版

import math
def print_bar(n, max, expansion):
____box = "█ ▏▎▍▌▋▊▉"
____rate = (n * expansion * 100) // max
____bar = "" + box[0] * (rate//8)
____if rate%8 != 0:
________bar += box[rate%8]
____print(f"{n:{len(str(max))}d} |{bar:{math.ceil(expansion*100/8)}s}|\n")

456 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 11:05:44.45 ID:nja0E+A7.net]
さらに良くなった
import math
def print_bar(n, max=100, expansion=1):
____box = "█ ▏▎▍▌▋▊▉"
____rate = (n * expansion * 100) // max
____bar = box[0] * (rate//8)
____if rate%8 != 0:
________bar += box[rate%8]
____print(f"{n:{len(str(max))}d} |{bar:{math.ceil(expansion*100/8)}s}|\n")

457 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 19:29:07 ID:dz51dLzk.net]
やっぱりmath.ceil使ったほうがいいよな
importを減らしたがる癖が抜けず2倍してしまった

458 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 20:09:26.68 ID:dz51dLzk.net]
最終型
import math
def print_bar(n, max=100, expansion=1, *, cr=2, sep="|", prefix="", suffix="", unit=""):
____box = "█ ▏▎▍▌▋▊▉"
____rate = (n * expansion * 100) // max
____bar = box[0] * (rate//8) + box[rate%8] * bool(rate%8)
____print(f"{prefix}{n:{len(str(max))}d}{unit} {sep}{bar:{math.ceil(expansion*100/8)}s}{sep}{suffix}" + "\n"*cr, end="")



459 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 21:25:09.45 ID:nja0E+A7.net]
>>444
すんごーい! crの初期値は1が良いかな、それ以外は全部気に入りました

460 名前:デフォルトの名無しさん [2022/07/22(金) 00:46:45.54 ID:LN4IvGf8.net]
>>444
ありがとうございます

461 名前:デフォルトの名無しさん [2022/07/22(金) 11:32:26.12 ID:emgmw9dd.net]
>>421-422
runas

462 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 14:53:38.79 ID:hAgOKfi8.net]
>>444
数値を非表示にするオプションつけ忘れた

463 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 17:03:59.46 ID:t+dBeaSp.net]
>>448
そのオプション名を何にするかでセンスが問われる
num, display_num, meter, bar_value, ..etc
さあ、キミのセンスを見せてくれ!

464 名前:デフォルトの名無しさん [2022/07/22(金) 17:47:22.62 ID:iaUAG8EO.net]
ここはきみの日記帳じゃない

465 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 19:07:18.92 ID:t+dBeaSp.net]
>>450
関数や変数の命名はとても重要だよ? 端的で分かりやすくする必要がある
それが可読性やメンテナンス性をあげるわけなのだよ
プログラミングは名前付けであると言われる所以はそういうことなのだよ

今回の数値の非表示オプション名は非常に難しい、私的にはdisplay_valueがベストかな?
と考えつつも彼の意見も参考にしたいわけだ、もちろんtqdmではどうしているのかな?
と調べたりもした、tqdmではbar_formatで書式を指定できるみたいだね
その中で数値部分はpercentageという変数名のようだ
print_barはunit指定ができるわけで%表示固定ではないから、percentageは適切ではない
と考えると・・ね?難しいでしょ? 皆の意見も聞きたいじゃん!

466 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 19:43:18.38 ID:bpOnuI9e.net]
名前は重要。
開発が終わった後でも、コードを見る事があるから

プログラミングの3割の時間は、分かりやすい名前を考えること

簡潔に説明されている名前なら、
処理を詳しく見なくても理解が進むので、バグも減って高品質になる

リファクタリング・メソッド化などは、Rubyist の基本

467 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 19:52:25.71 ID:PdYjn4LX.net]
メソッドが長すぎると名付けが難しいから結局は短く作るのがいいのか?
でもそれだと分割しすぎとか言われそうだし

「汎用的、抽象的」な名前がいいのか「汎用的な名前を避けて具体的」にすべきなのか

468 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 19:52:35.56 ID:t+dBeaSp.net]
>>448
でけた! tqdmのbar_formatを採用
これで数値の表示/非表示はもちろん色々柔軟に対応できる

def print_bar(n, max=100, expansion=1, *, bar_format="{prefix}{num}{sep}{bar}{sep}{suffix}",
____________ unit="%", sep="|", prefix="", suffix="", cr=1):
____box = "█ ▏▎▍▌▋▊▉"
____rate = (n * expansion * 100) // max
____bar = box[0] * (rate//8) + box[rate%8] * bool(rate%8)
____bar = f"{bar:{math.ceil(expansion*100/8)}s}"
____num = f"{n:{len(str(max))}d}{unit}"
____print(bar_format.format(**locals()) + "\n"*cr, end="")



469 名前:452 mailto:sage [2022/07/22(金) 21:05:54.53 ID:bpOnuI9e.net]
例えば、Ruby のモジュール関数の名前なら、
cancel_button_label_text
apply_or_cancel_button

インスタンスメソッド名なら、
obj.suspended?

末尾の? で、戻り値がbool 型だと表現できる

470 名前:デフォルトの名無しさん [2022/07/22(金) 21:06:08.18 ID:aVBkeTN2.net]
>454
print_bar.update ってできない?

471 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 21:29:43.19 ID:t+dBeaSp.net]
>>456
tqdmのupdateみたいなことができるかってこと? クラス化すればできるよ
ああ、bar_formatとか呼び出すごとに変数指定するのはアホだよね
クラス化してインスタンス生成時にbar_format指定した方がいいよね

472 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 22:27:04.77 ID:t+dBeaSp.net]
クラス化できたけど、関数バージョン(>>444)の方が好きかも

class print_bar:
____def __init__(self, max=100, num_format="{num:{max_digit}d}{unit}",
____________ bar_format="{prefix}{num_format}{sep}{bar}{sep}{suffix}",
____________ unit="%", sep="|", prefix="", suffix="", cr=1):
________self.box = "█ ▏▎▍▌▋▊▉"
________self.max = max
________self.max_digit = len(str(max))
________self.num_format = num_format
________self.bar_format = bar_format
________self.unit = unit
________self.sep = sep
________self.prefix = prefix
________self.suffix = suffix

____def update(self, num, expansion=1, cr=1):
________rate = (num * expansion * 100) // self.max
________num_format = self.num_format.format(num=num, **self.__dict__)
________bar = f"{self.box[0] * (rate//8) + self.box[rate%8] * bool(rate%8):{math.ceil(expansion*100/8)}s}"
________print(self.bar_format.format(bar=bar, **dict(self.__dict__, num_format=num_format)) + "\n"*cr, end="")

p = print_bar()
p.update(70)

473 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 22:57:55 ID:oFTCo3Qt.net]
日記帳で試行錯誤して、結論が出てから書き込んでください

474 名前:デフォルトの名無しさん [2022/07/22(金) 23:49:56.07 ID:XYg2RZCf.net]
boxサーバーに上がっているExcelやcsvのデータってpythonで読み取ることできるのでしょうか?
https://app.box.com/file/xxxxxxxxxxxxxのようなURLを指定して
ファイル内のデータを読み込みたいのですがうまくいきませんでした。

475 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 06:43:50.22 ID:NAv7kQq5.net]
beautifulsoupでいったんダウンロードすれば?

476 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 06:53:36.23 ID:DC0Z ]
[ここ壊れてます]

477 名前:GSft.net mailto: ども、print_barの作者です。こんな短いプログラムに作者もくそもないですが・・・
上記コードを参考させてもらい考えました。私ならこうします
import math
def print_bar(num, max=100, expansion=1, *, prefix="", display_num=True, unit="", sep="|", suffix="", cr=1):
____box = "█ ▏▎▍▌▋▊▉"
____rate = (num * expansion * 100) // max
____bar = f"{box[0] * (rate // 8 ) + box[rate % 8] * bool(rate % 8):{math.ceil(expansion * 100 / 8)}s}"
____num_formated = f"{num:{len(str(max))}d}" * display_num
____print(f"{prefix}{num_formated}{unit} {sep}{bar}{sep}{suffix}" + "\n"*cr, end="")
display_valueのほうがわかりやすいけど長いから好きじゃない。何度も書く名前ならdisp_numに短縮するかも。
bar_formatは付けたい人が自分でつければいい
最低限の機能が付いていて、可読性・カスタマイズの容易性を考えるとこんなところでしょうか
[]
[ここ壊れてます]

478 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 07:10:57.00 ID:DC0ZGSft.net]
>>462
formattedです。恥ずかしいミス



479 名前:デフォルトの名無しさん [2022/07/23(土) 07:22:10.22 ID:ytdxYh/D.net]
なんか昨日のアップデートでWindows TerminalがIME勝手にON(英字入力)になる。とっても面倒くさい。
OFFにする方法ない?

480 名前:デフォルトの名無しさん [2022/07/23(土) 09:23:17.53 ID:bR39w9BX.net]
>>459
++
ほんそれ

481 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 09:48:06.05 ID:lkZCuVJ2.net]
>>462
おつかれちゃーん、なかなか楽しめたし勉強になったわ
日記帳とか言ってる奴等も参加すれば良かったのに、実際にコード書かないと勉強にならないぞっ!w

482 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 10:20:26.06 ID:zqWGCIwO.net]
コード出してあれこれやるのはいいと思うけどここまで引っ張るのはさすがにスレチだわな
こっちへ行けよ

Pythonのお勉強 Part67
https://mevius.5ch.net/test/read.cgi/tech/1653540315/

483 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 10:32:50.67 ID:lkZCuVJ2.net]
>>467
引っ張るとスレチって意味が分からんw そっちのスレも同じじゃん何が違うのよ?
うーん、、もしかして自分が質問したレスが埋もれちゃったとか?
それは関係ないよ、単に答えられるor答える人が居なかっただけで我々のせいではない

484 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 10:41:14.21 ID:iHVC6bwv.net]
我々…

485 名前:デフォルトの名無しさん [2022/07/23(土) 10:43:44.38 ID:bR39w9BX.net]
自演で自分のレス褒めてるレスとか観ると
他人事乍ら哀しくなるな

486 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 10:59:03 ID:zqWGCIwO.net]
>>468
スレタイも読めないのか?
ここは超初心者用な
>>430はスレタイに沿ってるけどその後print_bar でグダグダ書くのは違うだろ

487 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:09:30 ID:QCnlUATD.net]
スレタイに日記帳って書いてあるスレで試行錯誤すべきだったよな

488 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:18:41.28 ID:lkZCuVJ2.net]
>>471
うん?>>433からすでにスレチってこと?
コード出してあれこれは良いとか>>467に書いてるし
何が言いたいのか意味が分からん、どこからスレチなのかレス番号かけや



489 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:21:00.46 ID:Q9mI3iQv.net]
しつこい

490 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:29:25.91 ID:zqWGCIwO.net]
>>473
スレチかどうかの閾値なんて人によって違うからここからスレチなんて言うことはできない
それでも「ここまで引っ張ったら」多くの人がスレチって感じるだろって話

491 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:31:58.41 ID:lkZCuVJ2.net]
>>475
ほえぇぇぇぇえぇぇええええええええ〜〜〜〜〜〜〜〜!!
ボクちゃんが気に食わなかったからスレチですってことですかぁああああ???
びっくりしましたぁぁああああああwwww

492 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:38:20.58 ID:3Ek+JvxJ.net]
3回までよくて4回目がだめなんてことはない
3回でだめな人もいるし、4回はアウトだろうという人もいる
だが10回までくるとさすがに全員がアウトと感じる
そういう状況

493 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:49:34.23 ID:lkZCuVJ2.net]
>>477
うん?10回は全然良いよ、っていうかスレに沿っているなら何回でもええがな
全員がアウトと感じるとかウソつくなよw 君たちのお気持ちの表明がまさにスレチw
なぜならPythonと全く関係ございません!これが完璧なスレチの指摘というものだよ
お気持ちとか何だよww 脳みそ付いてんのか?w

494 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:49:41.79 ID:Py93vpAm.net]
>>476
> ボクちゃんが気に食わなかったからスレチですってことですかぁああああ???
ダメな理由は前に書いてあるだろ...

> スレタイも読めないのか?
> ここは超初心者用な

> びっくりしましたぁぁああああああwwww
お前の無能さにこっちがびっくりだよw

495 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:51:51.55 ID:NAv7kQq5.net]
>>478
そう、君たち、この言葉がすべて
おまえだけだよいいと思ってんのは

496 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:52:41.39 ID:lkZCuVJ2.net]
>>479
ダメな理由は>>475に書いてあんだろ、スレに沿っていたけど途中で彼の閾値を超えたんだってww
10回はダメでちゅ〜〜ww

497 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 11:53:42.77 ID:lkZCuVJ2.net]
>>480
はい、じゃあ全員じゃないね、答え合わせありがとうw

498 名前:デフォルトの名無しさん [2022/07/23(土) 12:01:36.99 ID:LCkddkGN.net]
>>460
460です。beautifulsoupも初めて聞いたレベルなのですが、
チャレンジさせていただきます。
ありがとうございました。



499 名前:デフォルトの名無しさん [2022/07/23(土) 12:01:47.65 ID:LCkddkGN.net]
>>461
460です。beautifulsoupも初めて聞いたレベルなのですが、
チャレンジさせていただきます。
ありがとうございました。

500 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:02:11.20 ID:cx+wDCne.net]
>>482
そうだね
一人だけ空気読めないやつがいる
これが正確な言い方

501 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:12:16.70 ID:zqWGCIwO.net]
今日の様に暑いとID:lkZCuVJ2みたいな奴が犯罪にはしらないか心配になるw

502 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:12:53 ID:DC0ZGSft.net]
462です。
スレ見なおしたけど反省するようなレスしていない
449で予想外のツッコミ受けて驚いたが。
自治厨の相手はしたくないので、この件のコメントはこれが最初で最後

503 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:13:10 ID:Sr9KJy9/.net]
絶望的に適性ないやつがいるな
そんな無駄なことは今すぐやめろ
限りある人生をもっと有意義なことに使え

504 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:16:15 ID:cx+wDCne.net]
まあ反省できるようなやつだったら最初からこんなことしないわな

505 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:39:52 ID:zqWGCIwO.net]
コード出して色々言うのはいいけど適切なスレでやってねって話なんだけど自治厨とか言い出してる時点で反省なんてしてないわなw

506 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 12:46:43 ID:b3gXMMo0.net]
自己中なんだろ
自分以外見えてない

507 名前:デフォルトの名無しさん [2022/07/23(土) 15:41:49.42 ID:FAO+OpS7.net]
ネオ麦茶

508 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 17:14:17.68 ID:QCnlUATD.net]
>>492
犯罪示唆ですね
通報しました



509 名前:デフォルトの名無しさん [2022/07/23(土) 18:06:21.74 ID:KR63qUqp.net]
随分とハイコンテクストな犯罪教唆だな

510 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 21:20:29.07 ID:MqDru3I9.net]
>>460
例えばRuby では、input.csv が以下の内容として、
a
b,c

require 'csv'
require 'open-uri'

url = "localhost:8000/input.csv"

CSV.parse( open( url ).string ).each do | row | # 1行ずつ処理する
p row
end

出力
["a"]
["b", "c"]

または、curl コマンドを使う事もできる。
input_csv = `curl #{ url }`

511 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 22:54:21.58 ID:jIlcufBL.net]
完全自殺なんチャラって本も流行ったなぁ

512 名前:デフォルトの名無しさん [2022/07/24(日) 05:32:21 ID:or5HZl/v.net]
1.適性がない、というその適性を定義してください。
2.適性がない、となぜ判断

513 名前:したのか 1. をもとに詳しく記述してください
3.1.2.が出来ないのではないのならば、あなたこそ、あなたのいう適性をもちあわせていない、と私は判断します
以上
[]
[ここ壊れてます]

514 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 10:18:49.14 ID:VDm4wods.net]
>>497
非論理的だね
著しく論理的思考能力の低い人はプログラミングの適性がないと言われても仕方ない

515 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 12:33:12 ID:DlP0Pw4T.net]
>>498
1.自民党と統一教会の関係を説明してください
2.公明党と政教分離の関係を説明してください
3.おまえは馬鹿

516 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 13:48:43.90 ID:Kadg5L8P.net]
>>499
ここで政治の話は止めて頂きたい

517 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:03:28.06 ID:s7YMPwIQ.net]
>>500
おまえは馬鹿

518 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:09:01.48 ID:nqGRTr2S.net]
プログラミングしてると、
Delete、Enter、BackSpace、半角全角、home、end
ここらへんがホームポジションから遠すぎて困るな
半角、全角は無変換と変換に割り当てたんだけど

みんなはキーマップカスタマイズとかしてるの?



519 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:12:13.07 ID:s7YMPwIQ.net]
それはPythonと関係のある話題ですか?

520 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:14:56.30 ID:QkJUlhBv.net]
手を叩いて大きくすると良い感じになるよ。

521 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:20:46.38 ID:VlRFcd7U.net]
>>499
メンバシップ関数を定義するのけ?

522 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 14:43:22.46 ID:Kadg5L8P.net]
>>502
ctrl<->capsの入れ替えくらい

523 名前:デフォルトの名無しさん [2022/07/24(日) 16:12:15.26 ID:ydeGY7xn.net]
>>502
親指活用できるエルゴノミクスキーボード使ってる
詳しくはハードウェア板のエルゴノミクスキーボードスレへ
kinesis, ergodox, teckあたりかねその辺打ちやすいの

524 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 16:23:06.62 ID:oKMHGzT9.net]
集団自決したはずなのに生きていた人が死去

525 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 19:45:11 ID:e/hljxBO.net]
スクレイピングの練習中でリスト内包表記とre.search()について教えてください
seleniumとlxmlで取得したデータの変換がうまく行かないです

url_list = ['https://www.tekitou'+re.search(r'[^0-9A-Z]dp[^0-9A-Z]([0-9A-Z]{10})([^0-9A-Z]|$)',a.get('href')).group() for a in html.cssselect('#tekitou > div > div > a:nth-child(1)')]

html.cssselect('#tekitou > div > div > a:nth-child(1)').get('href')の時点で取得できてるurlは下記のような感じです。

https://www.tekitou/%〇〇%〇〇/dp/(10桁の英数字 英は半角大文字)/ref=zg_bs_10桁の数字_2桁の数字/3桁の数字-7桁の数字-7桁の数字?pd_rd_i=(10桁の英数字 英は半角大文字)&psc=1

https://www.tekitou/music/player/ref=zg_bs_10桁の数字_2桁の数字/3桁の数字-7桁の数字-7桁の数字?pd_rd_i=(10桁の英数字 英は半角大文字)&psc=1


re.search().group()する前のurlが/dp/ありのurlと/dp/なしのurlに分かれるのですが、
re.search(r'[^0-9A-Z]dp[^0-9A-Z]([0-9A-Z]{10})([^0-9A-Z]|$)',a.get('href')).group()の作業の際にエラーがでてしまうため
/dp/なしのurlを削除するようにするか、
pd_rd_i=(10桁の英数字 英は半角大文字)&psc=1の(10桁の英数字 英は半角大文字)を取得するようにしたいです。

なにかうまい表記があれば教えてください

526 名前:デフォルトの名無しさん [2022/07/24(日) 19:55:36 ID:IZxLU3+7.net]
秀丸最強

527 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 20:08:14.75 ID:JBPZyDq1.net]
アマゾンのURLくらいググったら色々出てきそうだけどクソ見にくい正規表現で無理せずにスラッシュでsplitでifにlengthとアスキー確認くらいでいいんじゃないの?

528 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 23:38:55 ID:GhBFnIe8.net]
プログラミングって直感じゃね?
論理は直感を説明するの



529 名前:ノ用いることに有効だけど
プログラム書くのにいちいち考えないっしょ
考えるのは設計とテストだけだし
[]
[ここ壊れてます]

530 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 23:39:26 ID:GhBFnIe8.net]
それ以外にもあるかもしれんけど

531 名前:デフォルトの名無しさん mailto:sage [2022/07/24(日) 23:43:50 ID:nVQ6Xq/p.net]
>>509
pd_rd_iから取得
url_list = ['https://www.tekitou/dp/{0}/'.format(re.findall(r'\?pd_rd_i=(\w+)', a.get('href'))[0]) for a in html.cssselect('#tekitou > div > div > a:nth-child(1)')]

532 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 00:22:12.12 ID:kwIPZDW5.net]
argparse使って、たとえば1つ目の位置引数(スイッチのようなもの)の違いで、それ以降は全く異なる引数ルールになるような場合はどのような指定をすればよいでしょうか?
それともそれぞれ別のルールを定義してパースする必要がありますか?

すごく簡単な例ですが、addの場合とlistの場合で指定する引数が違うようなものとか
user.py
-add name [--prop property]
-list [--group group]

533 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 00:41:00.73 ID:YiCqNPeZ.net]
>>515
1つめの位置引数を読んでから残りをargparseにかければいいんでないの?

それかサブコマンド対応してるライブラリを使うか

534 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 00:57:12.30 ID:kwIPZDW5.net]
>>516
なるほど。argparseで一度にまとめてできればと思ったんですが、できないってことですね…

535 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 01:00:15.74 ID:gTrk2zFk.net]
>>509
例えば、Ruby なら、

URI.split で、URL のパス部分だけを抜き出して、
その文字列内に、/dp/ が含まれているかで条件分岐する

require 'uri'

dp_url = "example.com/%E3%81%82/dp/a" # あ = %E3%81%82
non_dp_url = "example.com/%E3%81%82/a"

p dp_ary = URI.split( dp_url )
p non_dp_ary = URI.split( non_dp_url )
#=> ["http", nil, "example.com", nil, nil, "/%E3%81%82/dp/a", nil, nil, nil]
#=> ["http", nil, "example.com", nil, nil, "/%E3%81%82/a", nil, nil, nil]

# パス部分
p dp_ary[ 5 ]
p non_dp_ary[ 5 ]
#=> "/%E3%81%82/dp/a"
#=> "/%E3%81%82/a"

p dp_ary[ 5 ].match( '/dp/' )
p non_dp_ary[ 5 ].match( '/dp/' )
#=> <MatchData "/dp/"> : 一致する
#=> nil : 一致しない

536 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 01:03:04.79 ID:oCKr0yXR.net]
add_subparsersでやればいいんじゃない

537 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 09:00:21.95 ID:9Mfr9nvz.net]
>>512
うう……設計がプログラミングに含まれてない……うそやろ……

538 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 09:35:32.16 ID:Tcjxae6G.net]
>>509
/dp/(10桁の英数字 英は半角大文字)があれば、その(10桁の英数字 英は半角大文字)を取得
?pd_rd_i=(10桁の英数字 英は半角大文字)があれば、その(10桁の英数字 英は半角大文字)を取得
どちらも無ければ空文字を返しエラーとはならない方法

url_list = ['https://www.tekitou/dp/{0}/'.format(re.search(r'(?<=/dp/)(\w+)|(?<=\?pd_rd_i=)(\w+)|$', a.get('href')).group()) for a in html.cssselect('#tekitou > div > div > a:nth-child(1)')]



539 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 09:43:03 ID:VgpbHR93.net]
>>520
Don't think. Feeeel!!

540 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 10:25:41.85 ID:kwIPZDW5.net]
>>519
add_subparsers使えばできますね!
ありがとうございます。

541 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 12:52:01.49 ID:gFjrq6Gs.net]
>>520
設計は人が考えたものを具現化するプロセスまでの事でプログラミングに含まれないよね

プログラミングは優秀な言語と開発支援ツールに頼って直感のままに組み立てる作業

人が本来やることは自身の進化とソフトウエアのアップデート対応に強い設計する事と作業を減らす工夫と世界が前進することへの貢献

542 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 12:57:49.15 ID:gFjrq6Gs.net]
簡単そうに言ってる

543 名前:けど
かなり時間かけて様々なことを知らないといけないし知らない未知のことへの挑戦もしてかなきゃいけない
そーゆー志を持った人がこのスレの中に居てくれたら俺は嬉しい
[]
[ここ壊れてます]

544 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 13:20:20.14 ID:9Mfr9nvz.net]
>>524
(それコーディングじゃない?)

545 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 14:36:18.33 ID:evu7R6rH.net]
docker入れてみたけどやっぱ仮想環境だからGB単位でメモリそこそこつかうんだよな
アイドル状態で8GB、vscodeで1〜2GB、dockerで2GB、Chromeで動画見ながら作業したら2〜3GBぐらい使うからギリギリで困る
やっぱメモリ32GBは入れないとだめか

546 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 15:07:03.89 ID:fmU0SO/o.net]
>>526
(ちんこかゆい)

547 名前:デフォルトの名無しさん [2022/07/25(月) 16:14:04.12 ID:GOtCNvAE.net]
https://www.youtube.com/watch?v=B5tSZr_QqXw

548 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 19:47:19 ID:GWKUHzSt.net]
>>514
>>521
ありがとうございます
行けました!



549 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 19:49:50 ID:GWKUHzSt.net]
seleniumで複数ブラウザ立てて並列処理してみたいけど難しそう
scrapyで楽天からスクレイピングしてみたら非同期処理?のせいで早すぎて速攻アク禁くらった

550 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 20:11:37.41 ID:NlibKZuA.net]
>>531
プロファイルを別にすればいけるよ
高速化目的で同じサイトに並列アクセスするのはやめた方がいい

551 名前:デフォルトの名無しさん [2022/07/25(月) 20:20:18.30 ID:mO6SEFWJ.net]
流石にもういきなり逮捕はされないと思うけど、librahackみたいなことが起こらないとは言えないから怖いよねー。
アクセスログで見ても、ギリギリ人間がアクセスしてるって言い訳できるぐらいの間隔を乱数で作ってsleepしてるわ。

552 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 21:11:33.84 ID:Tcjxae6G.net]
>>511
フハハハハハハハハ、>>521を刮目せよ! 賞賛の声(>>530)を聞け!
正規表現はクソ見にくいわけはなく、むしろ簡潔であり完璧であり完全無欠なのである
正規表現にできないことはなく、正規表現に代わるものはなし
正規表現はまさに人類の叡智なのである

553 名前:デフォルトの名無しさん [2022/07/25(月) 21:14:45 ID:GF1rw+EH.net]
イヤイヤイヤイヤ、普通にクソ見にくいでしょ。
他人が理解できないものを書くほうが偉いって風潮何とかならんの?

554 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 21:44:24 ID:Tcjxae6G.net]
>>535
偉いとかじゃなくて便利なんだよ
>>521の正規表現は別に難しい部類じゃない、\wは単語文字という意味で英数字も含まれる
\w+で単語文字が1個以上という意味になる、その前の(?<=...)は後読みアサーションで
これにマッチした後の\w+をサーチしているわけで基本というか、ちょっと勉強すれば、というか
正規表現の仕様に例が載ってるから、例みたらすぐ理解できるよ
https://docs.python.org/ja/3/library/re.html

自分的には最後の|$が工夫した点で、コレでサーチできなかった場合に空文字を取得させることができる
正規表現使わずにスラッシュでsplitでifにlengthとアスキー確認なんかの方が見にくいだろうし
面倒すぎてやっとれんよ

555 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 22:07:08.94 ID:5m9dN2FM.net]
(超初心者用)

556 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 22:50:49 ID:Tcjxae6G.net]
>>529
最新動画の@cacheがマジ感動した、最後のフィボナッチの高速化がマジ良かった
マジでマジでマジだから

557 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 23:03:45 ID:gTrk2zFk.net]
WSL2, Docker は、8GB メモリじゃキツイ

16〜3

558 名前:2GBは欲しい []
[ここ壊れてます]



559 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 23:56:34.13 ID:XTViXxR/.net]
>>536
スラッシュでsplitでアスキー確認って
[i for i in ○.split('/') if len(i) == 10 and i.isascii()]
で終わりでしょ
それ自体に難しさも見にくさも感じないが

560 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 01:23:31.22 ID:HcfNtCqI.net]
正規表現学びたいけど複雑すぎて訳分かんねえよ
なんか練習できるところないの?
ゲームっぽく遊べたりする所どっかあるだろ?

561 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 03:23:25.62 ID:fUa59wf/.net]
ターミナル

562 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 08:00:48.09 ID:hxnsYVU0.net]
>>540
これはアカンでしょ、ifってそんなけ? /dp/の判定が無いし
/dp/が無かった場合にpd_rd_iから取得する処理が無いし
これでいいなら正規表現ならこうじゃわいな
re.search(r'\w{10}|$', ○).group()

563 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 08:23:18 ID:hxnsYVU0.net]
findall使った方がいいか、こっちの方が>>540と処理結果同じだわ
re.findall(r'\w{10}', ○)

564 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 09:42:11.06 ID:28W+mdVQ.net]
10桁英数のチェックが必要ないならこれでいけるんじゃね
([i[:10] for i in url.split("/dp/") + url.split("pd_rd_i=") if not i.startswith("https:")] + [""])[0]
チェック必要なら1行ではきびしいか

565 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 10:10:32.06 ID:2F7nQnXP.net]
pd_rd_iは必須じゃないからなあ

566 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 11:04:25.18 ID:hxnsYVU0.net]
>>545 を抽象化+10桁チェック+isasciiチェック追加(10桁チェックは不要だとは思うけども・・)
[i[:10] for i in url.split("/dp/")[1:] or url.split("pd_rd_i=")[1:] if len(i[:10])==10 and i[:10].isascii()]
気づいたんですけどこのisascii()でのチェックはasciiのチェックであって、ascii文字のチェックじゃないから
英数字だけじゃなくて/やtabやらもTrue判定しちゃいますからダメですね

ちなみに>>521も10桁チェックは入っていないのですが、入れた場合は以下のようになりまして
その場合もやはり分かりやすい、可読性が良い、簡潔、何をしているかすぐ分かる
正規表現スキになっちゃったって方はgoodボタン押してください^^
re.search(r'(?<=/dp/)(\w{10})|(?<=\?pd_rd_i=)(\w{10})|$', url).group()

567 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 11:06:35.56 ID:Uy4U9BVa.net]
goodボタンってどこにあるの?

568 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 11:37:39.45 ID:PhJ4pIjK.net]
精神病になるとそういうボタンが見えるらしいよ



569 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 12:16:00.10 ID:k5BnME6W.net]
こいつ上の方にいた日記帳キチガイだな

570 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 12:21:32.78 ID:r5zklFsb.net]
ハッタツしょう害なんじゃねえの

571 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 12:37:44 ID:28W+mdVQ.net]
>>547

英数字チェック完全版+セイウチ
[x for i in url.split("/dp/")[1:] or url.split("pd_rd_i=")[1:] if len(x:=i[:10])==10 and x.isascii() and x.isalnum()]

572 名前:デフォルトの名無しさん [2022/07/26(火) 12:44:17 ID:IrL7txwd.net]
・フリーランスに立ちはだかる「常駐」の壁。慣例を打ち壊し、
“テレワーク”案件3割→8割へと成長を遂げた「クラウドテック」の軌跡
・リモートワーク求人専門サイト「プロリモート」がリニューアルオープン、
 業務委託契約の求職者と企業をマッチング 
・1/3以上が採用につながる高マッチング率、リモートワーク×エンジニア・デザイナー専門の
 人材紹介サービス「ReworkerAgent」正式リリース場所からも時間からも自由な働き方を実現!
・『ReWorks(リワークス)』リモートワーク特化型

573 名前:]職サイトとして 3月5日 リニューアル
・副業・兼業マッチングサービス「クラウドリンクス」登録者数2万人突破
 中小企業で進む副業人材の採用、96%が継続採用を希望
・フリーランスが活用できる「最大1,000〜3,000万円・補助率50%〜75%」の
『ものづくり・商業・サービス補助金』とは?概要や条件を解説
・茨城県日立市、県外からの「テレワーク移住者」に最大151万円の助成金
・長野市、市内に移転・事業所設置し、移住することで最大550万円の支援金を支給
[]
[ここ壊れてます]

574 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 12:59:25.55 ID:hxnsYVU0.net]
>>552
すばらしい! これ以上は良くなりそうにないね
こうして見るとやはり正規表現の方がいい、仕様変更にもすぐ対応できるし

575 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 13:07:45.08 ID:563vGs1S.net]
ではこの話はこれで終わりです

576 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 13:15:56.15 ID:hxnsYVU0.net]
へ? ここで>>552が「実行速度では負けてないもんね!」つって速度勝負をしかけてきて
それならre.compileじゃぁあああって応戦してからの、やっぱ「速度じゃreは不利じゃわい」
つって、「いやいや、やはり正規表現さんの勝ちですわ、メンテナンス性では完敗ですもん」
ってお互いが歩み寄ってからの熱い握手で終幕やろうが! まあええわ次の話題もってこいや

577 名前:デフォルトの名無しさん [2022/07/26(火) 13:30:39.77 ID:P5K5X/wN.net]
ID:t+dBeaSp
ID:lkZCuVJ2
ID:Tcjxae6G
ID:hxnsYVU0

578 名前:デフォルトの名無しさん [2022/07/26(火) 16:43:34.40 ID:gc9s0ohk.net]
以上
今日の自演でした



579 名前:デフォルトの名無しさん [2022/07/26(火) 17:59:35.79 ID:gc9s0ohk.net]
>>492-494
秋葉で暴走した加藤は死刑完了したそうだ

580 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 18:59:47.50 ID:aND0EYYo.net]
python使いやすくていいわーって思ってたけど
json使ったら面倒だなと思った…
これ自分で辞書にしたり戻したりしないといけないわけ?
pickleちゃんはバイナリになるからやだ

581 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 19:06:35.62 ID:QBs9x9BG.net]
>>559
あの事件で大学の同級生死んじゃったよー……。執行まで長かったなー

582 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 19:40:58.02 ID:Uy4U9BVa.net]
まじかよ
東大近いもんな
優秀な人を亡くすのは実に惜しい

583 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 19:44:17.06 ID:QBs9x9BG.net]
>>562
は?東大生死んでないが?

584 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 19:44:58.50 ID:Sr1olQPp.net]
while True:
 わーいPython便利だなー
 あれ?このXを扱うのってめんどくさくね?
 他の言語にしよっと
 X以外がめんどくさすぎる!

585 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 19:57:04.85 ID:hxnsYVU0.net]
>>560
じゃあyamlちゃんは?
https://www.youtube.com/watch?v=rpbq6vXcNbM

586 名前:デフォルトの名無しさん [2022/07/26(火) 20:47:35.71 ID:GQvz79KS.net]
Jsonって殺人鬼だったのに。

587 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 21:16:10.07 ID:OUnIdkcH.net]
全損

588 名前:デフォルトの名無しさん [2022/07/26(火) 22:30:48.06 ID:Rgm2Z23r.net]
>>560
これってどういうこと?Pythonのオブジェクトに変換せずに何かをやりたいっていうこと?



589 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 23:43:27.38 ID:wQrOnGuH.net]
yamlの仕様を学ばないままcomposeやk8sを使ってる

590 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 03:54:50.01 ID:PQGmIH2y.net]
パスの\を/にかえなきゃいけないのが面倒すぎるんだがなんか方法ないのか?
\\にかえるのもめんどう

で調べたらRつけるだけでいいらしい……
だったら最初から\読み込めるようにしろよ!

591 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 09:00:44 ]
[ここ壊れてます]

592 名前:.94 ID:pyuUgR41.net mailto: >>560
jsとpythonでしかjson使ったことないけど、どちらも使い勝手は変わらんと思うが。
[]
[ここ壊れてます]

593 名前:デフォルトの名無しさん [2022/07/27(水) 10:05:16 ID:elZrgoJK.net]
>>560
があほすぎなすれ

594 名前:デフォルトの名無しさん [2022/07/27(水) 13:08:32.87 ID:B7vnAx8k.net]
>>570
その文句は、エスケープ文字を勉強したほうしたほうがいい
あといちいち手動でreplaceするよりPathlib使った方がかかいもよ

https://pystyle.info/python-pathlib/

595 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 13:27:46.89 ID:aU47T/gU.net]
パースするだけなのにそんなに面倒か?

596 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 13:28:56 ID:aU47T/gU.net]
すまん、jsonの話な

597 名前:デフォルトの名無しさん [2022/07/27(水) 15:26:57.56 ID:B7vnAx8k.net]
PythonでJSONの取り扱いは、JS以外の他の言語と比べたらめちゃくちゃ楽な方だと思うけどな。ほとんどJSと変わらない。
CはともかくC++だって全然簡単じゃないからねえ。CだとPythonの5倍、C++でも2.5倍ぐらいの記述量になる気がする。

598 名前:デフォルトの名無しさん [2022/07/27(水) 16:26:23.72 ID:G6wuTkcd.net]
何年前の話よ
https://github.com/nlohmann/json



599 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 16:52:22.09 ID:aU47T/gU.net]
jsonはpythonのビルトインパーサーでなんとかなるな
使えないhtmlパーサーとは大違い

600 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 19:30:05 ID:xJ8anoa4.net]
python に限った話じゃないけどなぜか html パーサーっこれって言う奴ないよね

601 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 20:20:11.22 ID:aU47T/gU.net]
>>579
htmlが、sgml/xmlを簡略化した派生で
文法があまりに自由でゆるゆるだったから、
もともとデータ処理には向いていなかったということなんだと思うよ

602 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 20:28:14.33 ID:xJ8anoa4.net]
>>580
そうは言っても html で公開されてるデータもあるんだからねぇ

603 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 20:42:25.68 ID:aU47T/gU.net]
>>581
現状では、外部モジュールに頼るか、力づくでなんとかするかしかないものねw

最近はhtmlに組み込まれたjsonデータ形式(json-ld)が多くなって、
データを探るくらいならあまり悩まずにすむので助かってるわ

604 名前:デフォルトの名無しさん [2022/07/27(水) 22:42:50.60 ID:+MHO4Y86.net]
君ら二人が思ってるほどそういう需要がないんじゃない
結局やりたいのはスクレイピングでしょ

605 名前:デフォルトの名無しさん [2022/07/27(水) 23:00:58.07 ID:+MHO4Y86.net]
スクレイピングできるようなライブラリを標準ライブラリに組み込んで欲しくはないよね
html.parseは確かにシンプルだとは思うけど、どこまでってなると難しい
html自体がかなり緩いから、サービス依存とか流行に依存してしまうんだよね
まぁ、Beautiful Soupもあるしいいじゃないすか

606 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 00:22:28 ID:nqLen+JC.net]
yieldって初めて見た

ジェネレーター関数?を作るときに使うのか
正直使い道がわからんな
ジェネレーターとかイテレーターとかはだいたいわかるけど

607 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 05:13:59.70 ID:mvZe9xm4.net]
>>585
> ジェネレーターとかイテレーターとかはだいたいわかるけど
わかってたらyieldの使いどころがわからんとかないと思うが...

608 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 05:40:55.75 ID:8YG1K1uV.net]
>>586
こういうやつって結局何聞かれても説明できないやつだよな



609 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 05:45:38.18 ID:yBjc1Rgi.net]
国債取引してればyieldなんてしょっちゅう見るけどな

610 名前:デフォルトの名無しさん [2022/07/28(木) 16:20:58.93 ID:m8z1CQHY.net]
教えてください。
Wordpressに記事投稿する際に閲覧パスワードをつけたい場合
‘status’=‘publish’,
‘contents’=‘記事本文

611 名前:’,,
‘password’=‘閲覧パスワード,
‘tag’=1
….
と指定しています。
投稿自体は成功しているのですがパスワード付きの記事になりません。
どなたか解決策をお願いします。
[]
[ここ壊れてます]

612 名前:デフォルトの名無しさん [2022/07/28(木) 20:16:12.08 ID:Hv8PyQaz.net]
>>585
馬鹿には無理

613 名前:デフォルトの名無しさん [2022/07/28(木) 22:51:57.42 ID:9hZjKw0t.net]
>>585
リスト返すよりよりジェネレータ―の方がコスト低いからでは解決しない質問?

614 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 22:58:58.42 ID:cRsx7yDk.net]
リスト作成のコストと比べても意味ないやろ
yield使わずにジェネレーターを作ればありがたみが分かる

615 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 00:22:32.77 ID:fEBZH37g.net]
リストをfilter()使ってlambda式ではなく外部関数を呼び出して抽出する場合、外部関数に追加の引数を渡すことってできますか?
リストの要素に加えてさらに判定用の引数を与えて外部関数で処理させたいです

616 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 01:28:35.66 ID:8gcFFgPp.net]
>>593
部分適用した関数を用意すればできるよ
partialとか関数を返す関数を書くとかで
リストを[(要素, 追加引数)]の形にzipするのでもてきる

ただlambda使って外部関数に引数渡すのが一番よく使われてる印象

617 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 02:05:51.08 ID:sW6reep3.net]
>>593
functools. partial

618 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 02:28:02.24 ID:fEBZH37g.net]
>>594,595
functools.partialもlmbdaもできました。ありがとうございます。
確かにlambdaのほうがすぐに書けるのと、パッと見て分かりやすいかもですね



619 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 16:36:15.82 ID:0LOpWdsN.net]
ある変数に対してifまたはelseで値を代入するとき「未定義の可能性があります」という警告が出てしまいます。
この警告は無視して構わないのでしょうか?
実際はifかelseが必ず実行されるため、未定義になることは無いと思います。

620 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 18:15:50.48 ID:APedJzV4.net]
両方でちゃんと定義があれば問題ないんじゃないの

621 名前:デフォルトの名無しさん [2022/07/29(金) 18:30:32.97 ID:XaB7Y5c2.net]
>>597
その部分のコード書いてみ
たぶん未定義になるパターンがある

622 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 19:07:07.88 ID:GzwVbssN.net]
ifとelse両方で定義してあれば未定義にはならんと思うけどな
定義してないから警告出るのかね

623 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 19:10:09.40 ID:WG/TpH2M.net]
>>597
無視しない方がいい

624 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 19:58:02.11 ID:47SIIXKm.net]
て言うか未定義の「可能性」なんて普通の処理系ではでないだろ
なんかツール使ってるならそのツールの名前書きなよ

625 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 20:45:46 ID:IOBifLpO.net]
どこかに未定義ルート有るんだ
そこらへんを探すのが楽しい

626 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 21:51:50.81 ID:a1Tgek7B.net]
Ruby では、条件分岐で初期化されるはずの変数が、
初期化されなかった場合に、nil・未定義になる

if false
n = 1
end

p n #=> nil

627 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 23:03:00.11 ID:jDexz6tX.net]
翔泳社のスラスラわかるPythonを読み終えて、
次にソフトバンクのPython完全入門を買おうか迷ってるんですが、
どなたか読んだ方いましたら感想を教えて下さい
よろしくお願いします

628 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 02:27:49.30 ID:z4LSWTQO.net]
入門書は1冊で充分なのでは?



629 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 02:27:58.30 ID:z4LSWTQO.net]
入門書は1冊で充分なのでは?

630 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 02:34:45.44 ID:f1hyBgWY.net]
レスは1回で充分なのでは?

631 名前:デフォルトの名無しさん [2022/07/30(土) 09:23:55.07 ID:azT7AVAA.net]
webアプリ作って内部サーバーから使ってみよう、みたいな本読んでるんだが

コマンドプロンプトに
python -m http.server

632 名前:--cgi 8080
と書いてwebサーバー立ち上げて
ブラウザで
htttp://localhost:8080
開くまではできたんだ

ここから
htttp://localhost:8080/開きたいwebアプリ.py
へ移動しても、中身がテキストとして表示されるだけでwebアプリとしては機能しない
これはなにか手順間違えてるかな?

pythonコード自体は以下
https://techiedelight.com/compiler/?MN5F
[]
[ここ壊れてます]

633 名前:デフォルトの名無しさん [2022/07/30(土) 09:27:36.20 ID:paa5jUiA.net]
●未定義ルートがある
●typoを見落とし

634 名前:デフォルトの名無しさん [2022/07/30(土) 09:28:23.25 ID:paa5jUiA.net]
>>606-607
レスは一回で充分

635 名前:デフォルトの名無しさん [2022/07/30(土) 09:29:27.96 ID:paa5jUiA.net]
>>609
flask使え

636 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 13:25:48 ID:OlgNXvPr.net]
呼ばれたクラスのメソッド実行やインスタンスの参照はできますでしょうか?
RubyのBinding_of_caller gemのようなことをやりたいです。

637 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 15:23:09.66 ID:8gKCOMRQ.net]
>>609
例えば、Ruby では、

コンソールで、ウェブサーバー・WEBrick を起動する
ruby -run -e httpd . -p 8080

ブラウザで、
localhost:8080/a.html
とすると、HTML が表示される

例えば、これが、
localhost:8080/a.csv

a.csv, a.txt など、ブラウザが解釈できない拡張子の場合は、ダウンロードされる

638 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 15:41:57.89 ID:cxvuT0Ap.net]
>>609
cgi_directoriesで定義されてるディレクトリの中にあるソースコードじゃないとじっこうできないかも

>>614
csvじゃなくてcgiの話な、チンカス



639 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 15:55:32 ID:lN6AqJ/F.net]
>>609
/cgi-binに配置して
localhost:8080/cgi-bin/xxx.pyでアクセス

640 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 15:56:01 ID:lN6AqJ/F.net]
あ、被ったね

641 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 16:15:20.28 ID:t64/Q8Lh.net]
14分差でかぶるとかすごいな

642 名前:605 mailto:sage [2022/07/30(土) 17:33:25 ID:opcLftHA.net]
レスありがとうございます

実は最初にソフトバンクの本を買おうと思ったのですが、アマゾンレビューを見たら
少しわかりにくい箇所もある、という感想があったのでワンクッション入れました

今となっては独習Pythonなどの中級書に進んだ方がいいですか?

643 名前:デフォルトの名無しさん mailto:sage [2022/07/30(土) 17:49:27 ID:6SJJiflx.net]
手段が目的になってるパターン

644 名前:デフォルトの名無しさん [2022/07/30(土) 19:25:46.15 ID:EI1U6qjF.net]
民明書房の「結局あんたはpythonで何がしたいの?」とか読むといい

645 名前:605 mailto:sage [2022/07/31(日) 08:22:18.53 ID:V2xTXw/0.net]
辛口ですね

646 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 08:43:12.47 ID:bF6WKikK.net]
bool([])がFalseなのに
all([])がTrueになる理屈を教えてください

647 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 08:56:05 ID:IhfjCb0y.net]
イテラブルの要素の探索中にFalseでリターンされなければTrueをリターンされるようにallが実装されてるから
https://github.com/satwikkansal/wtfpython#-all-true-ation-

設計思想的な話しなら分からん

648 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 09:01:11 ID:qkw0CgkT.net]
数学的にそれが自然
Wikipediaの論理包含とかVacuous truthを読め



649 名前:デフォルトの名無しさん [2022/07/31(日) 09:35:16.42 ID:qvc5fIgv.net]
test

650 名前:デフォルトの名無しさん [2022/07/31(日) 09:36:51.24 ID:qvc5fIgv.net]
r = True
for e in S:
r = r and e
return r

S が空の場合,for文の中は1度も実行されない.
返されるのは,rの初期値であるTrue

651 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 09:37:12.57 ID:bF6WKikK.net]
>>624
理屈はわかりました
その実装にした人を小一時間問い詰めたい気分でいっぱいです
all([])の結果にTrueを求める

652 名前:ーザーが世の中に一人でもいるのでしょうか…

>>625
数学はよくわからんのですごめんなさい
[]
[ここ壊れてます]

653 名前:デフォルトの名無しさん [2022/07/31(日) 09:39:03.02 ID:qvc5fIgv.net]
似たような例として,Sの要素の和を計算することを考える.

r = 0
for e in S:
 r = r + e
return r

Sが空の場合,rの初期値である0が返される.

654 名前:デフォルトの名無しさん [2022/07/31(日) 09:45:32.68 ID:qvc5fIgv.net]
似たような例として,Sの要素の積を計算することを考える.

r = 1
for e in S:
 r = r * e
return r

S が空の場合,返されるのはrの初期値である1

655 名前:デフォルトの名無しさん [2022/07/31(日) 09:48:34.65 ID:qvc5fIgv.net]
sum, prodという関数がPythonにあるのならば,

sum([]) == 0

とするのが自然だし,

prod([]) == 1

とするのが自然.

prodのほうは不自然に感じる人がいるかもしれないが,sumが自然なのと同じ理由でprodも自然.

656 名前:デフォルトの名無しさん [2022/07/31(日) 10:26:40.61 ID:qvc5fIgv.net]
0! := 1と定義するのも同じ理由.

657 名前:デフォルトの名無しさん [2022/07/31(日) 12:12:56.03 ID:eQtf7hMi.net]
anyとかallは評価できるものがある場合にのみ使うべきだと思うんだ。空打ちしたら「何だこりゃ」ってなる
つまり
all([]) ではなくall([''])と使いたい。これなら正しく(評価がなされて)falseが返る
つかall([]) ってどういう状況よ

658 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 12:23:51.14 ID:1z9jykhy.net]
リテラルを渡すわけじゃないだろ



659 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 12:55:33.13 ID:VBdofYjo.net]
論理包含、Vacuous truthを読めと言ってる人は理由を知っているだけで理解できていない

660 名前:デフォルトの名無しさん [2022/07/31(日) 13:14:04.77 ID:aNbLKyix.net]
>>635
言葉足らずは役立たず

661 名前:デフォルトの名無しさん [2022/07/31(日) 13:25:03.81 ID:qvc5fIgv.net]
any([]) == False
all([]) == True

こうだと何が問題になるのかが分からない.

662 名前:デフォルトの名無しさん [2022/07/31(日) 13:32:01.26 ID:qvc5fIgv.net]
all(S)は∀x(x∈S ⇒ x==True)が真であるときに,Trueになり,偽であるとき,Falseになる.

Sが空なら∀x(x∈S)は偽だから,∀x(x∈S ⇒ x==True)は真である.

any(S)は∃x(x∈S and x==True)が真であるときに,Trueになり,偽であるとき,Falseになる.

Sが空なら∃x(x∈S)は偽だから,∃x(x∈S and x==True)は偽である.

663 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 14:16:45.61 ID:WKv/EkLm.net]
お勉強スレで403がでる

664 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 14:23:06.73 ID:VBdofYjo.net]
allとanyのあるある言いたい TrueとFalseのあるある早く言いたい

665 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 15:56:07.05 ID:KzJjN0dA.net]
聞いてねえ黙っとけマザコン男

666 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 16:39:23.51 ID:6uU1oN4W.net]
突然マザコンという単語が出てきた
普通の人はすぐに思い浮かぶ単語ではない
つまり、自分がそうだとよく言われたから頭に浮かびやすいと自己紹介しているわけだ

667 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 17:10:58.62 ID:a1qLKfui.net]
vscでインタープリターが設定出来ずエラーになる
なんでぇ…検索しても出てこない…

668 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 17:19:39.16 ID:WKv/EkLm.net]
vscスレあるからそっちで聞いたら?



669 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 17:40:03.84 ID:VBdofYjo.net]
>>623の疑問にバッチリ明快にお答えしましょう
all([1,2,3]) -> True
all([1,2,3]+[]) -> True
all([1,2,3]) and all([]) -> True
よって、all([]) -> True

同様にanyの場合は
any([1,2,3]) -> True
any([]+[1,2,3]) -> True
any([]) or any([1,2,3]) -> True
よって、any([]) -> False

Vacuous truthとか言われても分かんないでしょ、wiki見ても分かんない
>>638の取って付けた数式見ても分かんない、でもコードで書くとあら不思議一目瞭然

670 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 18:21:17.32 ID:vZudoVRF.net]
全く疑問に答えてなくて草生えるwwwww

671 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 18:30:32.80 ID:IhfjCb0y.net]
>>645
空リストに分解するのはいいね
ただanyはFalse側で示さないといけないな

672 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 18:42:16.99 ID:1IXOln4s.net]
1. [True, True]
2. [True, False]
3. [False, False]
4. []

この4つから
1種類だけ処理したい場合と2種類だけ処理したい場合を
all, any, notで各listにつき1回走査するだけで書けるか

673 名前:どうか
もしall([])がFalseだとしたらどうか
[]
[ここ壊れてます]

674 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 19:03:02.60 ID:VBdofYjo.net]
>>647
配列例を一緒にしようとしたんだけど、こっちの方が分かりやすいか

any([0,0,0]) -> False
any([0,0,0]+[]) -> False
any([0,0,0]) or any([]) -> False
よって、any([]) -> False

675 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 19:10:05.63 ID:SPHl3eVE.net]
こう決めてるからといって準備してあるものから答えを持ってくるのではない
あくまでデジタル計算の答えがそうなっているだけ
それをわかってないみたいね

676 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 20:42:04.88 ID:nQONknSe.net]
ID:VBdofYjo
ルビーガイジと別のベクトルで頭おかしいね

677 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 22:11:23.00 ID:NZWDJWM/.net]
単なる慣習でしかなくて合理的な理由はない
プログラミングではall([])がFalseだったほうが楽になるケースの方が圧倒的に多い

残念ながらempty listだけ別途チェックするのが無難

678 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 22:46:03.58 ID:MJo3DzqX.net]
all()は論理積のロジックなので初期値True
any()は論理和のロジックなので初期値False
そうしないと成り立たない



679 名前:デフォルトの名無しさん [2022/07/31(日) 23:10:20.11 ID:Q3Sy7AQw.net]
ドキュメントのallの説明で、(or if the iterable is empty)が加えられたのは2009年か2010年ぐらいから

680 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 23:18:11.45 ID:CM+nxrXh.net]
>>653
それ使う側の視点じゃなくて
内部実装上の都合でしょ?

681 名前:デフォルトの名無しさん mailto:sage [2022/07/31(日) 23:50:52.02 ID:MJo3DzqX.net]
>>655
これ以上に自然な定義はあるのか?
引数が空の時に余計な評価を挟む方がよっぽど不自然だと思うが

682 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 01:15:16.60 ID:NO37bZGb.net]
>>656
実装の都合上は自然かもね
使う側の視点からは全くもって自然じゃないよ

683 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 01:55:03.33 ID:wljefKG6.net]
>>657
all()とany()の動作を文章にして書いてみたら分かる
関数の仕様自体が気に入らないなら自分で書くしかない

684 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 02:13:06.07 ID:4h+jHRsn.net]
>>652
> プログラミングではall([])がFalseだったほうが楽になるケースの方が圧倒的に多い
具体的にコードで示して欲しい

685 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 04:29:53.53 ID:rSGUMJSi.net]
まあ5×0=0で5^0=1なのも実装した人にとって自然なだけだし言いたいことはわかる

686 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 09:45:47 ID:hJhRRxUQ.net]
やっとバカにも理解できたようですが、>>660を見る限り理解できていませんw 残念

687 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 16:21:23.81 ID:Vk1tQ6YT.net]
Eric Matthesの「python crash course」(和名:最短コースでゼロからしっかり学ぶpython入門)を完了して次にデータ解析をやりたいんです
そこで
オレイリーの「pythonによるデータ分析入門」を読んだのですがまだ私にはレベルが高いようです
橋渡しになるレベルの本はありませんでしょうか?

688 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 17:14:07.64 ID:WOhHaybL.net]
>>662
『Pythonによるあたらしいデータ分析の教科書』辺りで
Jupyter Notebookとか分析の基本覚えてから
『Python実践データ分析100本ノック』でデータの前処理とかを本格的に勉強してから
オライリー本読んだ方がええかもね



689 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 18:05:15.09 ID:BgE8bCyg.net]
型ヒント(num: int = 1など)って普通に使われてますか?
私も常に使った方がいいですか?

690 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 20:36:49.60 ID:Vk1tQ6YT.net]
>>663
ありがとうございます
ポチりました

691 名前:デフォルトの名無しさん mailto:sage [2022/08/01(月) 23:46:48.65 ID:It4OEKpF.net]
使われてると思うし使えた方がいい
PyCharmとかVSCodeで書いてると型を判断してくれるので書きやすくなるしミスも判明しやすくなる

692 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 00:20:43.20 ID:R2oSGNsV.net]
>>653
配列の全ての要素が5以上かをチェックするcheck関数を作りました
def check(lst):
return all(i >= 5 for i in lst)
空リストが入力された場合Falseを返したいのですが
論理積のロジックなのでFalseを返すと成り立たなくなります
空リストのチェックはどうすれば良いでしょうか

693 名前:デフォルトの名無しさん [2022/08/02(火) 03:57:40.09 ID:AJvhpMFc.net]
def check(l):
__if l:
____return all(map(lambda i: i>5, l))
__else:
____return False

すべて5以上か みたいな関数名にして使う
checkはダメ。論外

694 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 04:03:59.45 ID:KlfR+zxP.net]
>>667
return bool(lst) and all(i >= 5 for i in lst)

695 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 07:10:05.89 ID:R2oSGNsV.net]
>>668
>>669
これはいけません 論理積のロジックなので空リストが入力された場合はTrueを返す必要があります
Vacuous truthを知らないのですか? 論外です

696 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 07:19:05 ID:Qu9LGAtZ.net]
空listはfalseなのでbool()は不要
もしくは lst or [0] とすれば空listチェック不要

697 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 08:36:47.08 ID:KlfR+zxP.net]
>>670
ああそういうことか
667の質問の意味が今わかった
変な質問だなと思いながら適当に答えちゃった

698 名前:デフォルトの名無しさん [2022/08/02(火) 08:45:25.83 ID:UYHD5f/y.net]
>>670
空のリストでtrue返したいならall([i for i in lst if i>5])で返るが



699 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 08:56:18.05 ID:KlfR+zxP.net]
>>671
bool()は不要のほうは、戻りが True,False,[]の3種類になるから個人的にいや。
lst or [0]のほうは、i >= 5 とかの場合使えなくなるからよろしくないかと。

700 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 08:57:08.71 ID:KlfR+zxP.net]
>>674
訂正
lst or [0]のほうは、i >= 0 とかの場合使えなくなるからよろしくないかと。

701 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 12:52:45.59 ID:7OOUBMB7.net]
>>668
配列じゃなくiterableだと詰むよ

702 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 13:36:46.22 ID:R2oSGNsV.net]
>>672
そうなんッス >>667のcheck関数は完璧ッス 論理積のロジックでVacuous truthで数学的に自然なんッス
check(a+b+c) と check(a) and check(b) and check(c) が等価になると理解できるッス
でも空リストは弾きたいじゃないッスか しかし空リストの場合にFalseで返すと数学的に不完全になるッス
つまり空リストを弾きたいならcheck関数外の前後どちらかで引数のチェック処理が必要というわけッス
メッチャ不便じゃないッスか これが>>659の回答ッス
メッチャ不便なんで数学的に不完全な>>668-669 のようなコードになるッス これが自然ッス
でもその場合 check(a) and check(b) and check(c) みたいな使い方はできなくなるッスよね 空リストが来たらアウトッスから
つーわけでどっちもOKな解決策はあるのかなという質問ッス
同じようなcheck関数を書く場合に空リストの扱いはどうするのかって話ッス
もしそれが>>668-669のようなコードになるのならオイラの勝ちということッス
もちろんall([])がTrueになる理由は理解してるッスよ 5×0=0で5^0=1ってことッスもんね 分かってるッス そこは大丈夫ッス

703 名前:デフォルトの名無しさん [2022/08/02(火) 13:57:06 ID:AJvhpMFc.net]
>>676
要件は配列の要素をチェックする関数の作成だけど。

704 名前:デフォルトの名無しさん [2022/08/02(火) 14:10:48 ID:3RqJykXJ.net]
>>677
そもそも数学的な計算がしたいとき、空のリストが来たら不自然になる って
そりゃ空のリストは数学的じゃねーんだから不自然になって当然だろ

空のリストとかいう非数学を数学化する関数を実装しろよ。それはお前の好きにしろ

705 名前:デフォルトの名無しさん [2022/08/02(火) 14:25:29.34 ID:UYHD5f/y.net]
そういえばBytesIOがイテレーターなのはなんでなの?
配列じゃあかんのか?

706 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 14:44:44.43 ID:PAwGL3nC.net]
>>677
全然意味わからん
空リストを弾きたいならcheckの中で例外発生させるなりすればいいだけじゃねーの?

707 名前:デフォルトの名無しさん [2022/08/02(火) 14:58:23.12 ID:4vAniN45.net]
>>681
こいつはネチョネチョ言葉遊びしたいだけのゴミ野郎だから無視でいいよ
上の方でも暴れとる。rubyキチガイと同列の泥人形

708 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 15:02:37.40 ID:3/XF33uC.net]
どうせ発生しないような例外的なやつの対応ばかり考えている無能



709 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 15:21:43.17 ID:GXJqSimc.net]
>>677
100%同意する

710 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 15:24:08.55 ID:uvL1JwEu.net]
>>678
all([]) == Trueはデメリットが大きい例として>>667が書かれてるという文脈を理解してから書いてね

711 名前:デフォルトの名無しさん [2022/08/02(火) 15:36:16.40 ID:4vAniN45.net]
>>684-685
バレてるぞ恥晒し

712 名前:デフォルトの名無しさん [2022/08/02(火) 15:44:30.79 ID:aYPyq7OS.net]
all([]) == True
any([]) == False

であると困る例を教えてください.

713 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 17:37:12.67 ID:PAwGL3nC.net]
>>685
それ all([ ]) = False でも何も解決しないだろw
True / False しか返せないのに空リストかどうかの情報欲しいなら別の方法で返すしかない

714 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 19:22:29 ID:R2oSGNsV.net]
実は空リストの場合Noneを返すという手を考えたッスけど 数学的完全性を保つことはできなかったッス
しかしたった今思いついたッス 空リストの場合は2を返せばいいッス 2はTrueッス
我ながら自分の才能が恐ろしいッス

715 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 19:46:15 ID:R2oSGNsV.net]
>>689
訂正するッス 2じゃなくて1.0を返せばいいッス 空リストの場合は1.0を返すッス
1.0なら check(a+b+c) == (check(a) and check(b) and check(c)) が成立するッス

716 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 20:00:27.12 ID:rqWYIp9A.net]
それで最初に言ってた
> 空リストが入力された場合Falseを返したいのですが
これは満たせるの?

717 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 20:07:03.39 ID:R2oSGNsV.net]
>>691
・・・満たせないッスね 判別ができるようになるだけで その判別方法もrepr()=='True'とかで煩雑 だめッスね

718 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 20:21:40.29 ID:KlfR+zxP.net]
>>690
1.0が返ってくると
if check(lst) == 1.0: と if check(lst) == True: のどちらもTrueになるけど
if type(check(lst)) == float: で判定するの?
副作用は少ないけど美しくない
1.0じゃなくて1のほうがさらに副作用なくていいとおもうけどね



719 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 20:44:31.40 ID:H9/akC1Y.net]
元になってる数学の考え方自体の限界
使う側がバグらないよう注意するしかない

python特有の問題じゃないのが救い

720 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 20:48:40.69 ID:R2oSGNsV.net]
>>693
美しくないッスね そもそも空リストチェックは言うほど不便じゃないッスよね
if lst and check(lst): ってするだけッスもんね
オイラの中で結論が出たッス やはりallにならってcheck関数も空リストのときはTrueを返すべきッス
必要に応じて空リストチェック( lst and check(lst) )をする こんだけッス シンプルで美しいッス
ビギナーズトラップかもしれないけどそんなの知らないッス

721 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 21:07:06 ID:rqWYIp9A.net]
初心者すぎて、これでいいのか分からんけど
boolとandあたりをオーバーライドしたクラスを返却するとか?
空リストかどうかの情報まで持たせたクラス

って、最初の仕様を捻じ曲げていいのか・・・

722 名前:デフォルトの名無しさん [2022/08/02(火) 22:23:57.41 ID:XEhMcRRQ.net]
超初心者なんですが、
社内LANの共有ストレージ内のExcelファイルを操作して作業自動化をしたいと思っています。
社用PCへのインストール申請が面倒なのでGoogle Colabでやってみたら、ストレージ内のファイルが読めないということで渋々インストール申請しようとしているところです。
JupyterLab Desktopで社内LANの共有ストレージのファイルは操作できますか?
環境構築から躓いてます…

723 名前:デフォルトの名無しさん mailto:sage [2022/08/02(火) 23:17:59.15 ID:Z18rEo5s.net]
浮動小数点数を==比較すると言うとヒステリック

724 名前:ネ反応する奴いるよな []
[ここ壊れてます]

725 名前:664 mailto:sage [2022/08/03(水) 00:27:23.50 ID:Ce9Xia0b.net]
>>666
レスが遅くなってしまってすいません

ありがとうございました
なるべく使っていこうと思います

726 名前:デフォルトの名無しさん [2022/08/03(水) 02:48:22.00 ID:HUfXY4jl.net]
>>697
インストール申請いる会社だとpythonは厳しい
外部ライブラリをいくつもインストールすることになるから、そのたびに申請申請…

727 名前:デフォルトの名無しさん mailto:sage [2022/08/03(水) 03:03:39.79 ID:OfDGteUO.net]
自分自身が会社にアンインストールされちゃうよなw

728 名前:デフォルトの名無しさん mailto:sage [2022/08/03(水) 06:34:50.12 ID:NNzHRQEi.net]
>>697
環境はWindowsだと思うが元からあるExcel VBA、VBScript、PowerShellあたりでできないか考えた方がいいかと



729 名前:デフォルトの名無しさん mailto:sage [2022/08/03(水) 06:44:43.69 ID:SAIeW7L3.net]
>>697
インストール申請云々の縛りあるなら普通にVBAでやれよ

730 名前:デフォルトの名無しさん mailto:sage [2022/08/03(水) 06:55:06.47 ID:6v79gKr9.net]
インストール申請あるところならVBA/VBS禁止とかありそうだけどな

731 名前:デフォルトの名無しさん mailto:sage [2022/08/03(水) 09:06:23.71 ID:7qOk9bFG.net]
大半のライブラリはインストールじゃなくダウンロード

732 名前:デフォルトの名無しさん [2022/08/03(水) 09:20:26 ID:6HJ5FZxO.net]
P ⇒ QはPが偽のとき真です。

733 名前:デフォルトの名無しさん mailto:sage [2022/08/03(水) 12:49:46 ID:s6+jOjkc.net]
pythonのパッケージ管理ってどうやってる?
初心者だから本とかウェブ記事とか読みながらそのまま適当にpipしてたんだけど
このままだとめんどくさいことになりそうな気がしてきた

734 名前:デフォルトの名無しさん mailto:sage [2022/08/03(水) 13:06:03 ID:jXa2B14I.net]
poetryで作った環境にインストールしてグローバルに使いたい奴だけリンク張ってる
poetry使ってるのはライブラリ開発するのに使ってるついで
環境分けたいだけならvenvそのまま使えばいい

735 名前:デフォルトの名無しさん mailto:sage [2022/08/04(木) 03:46:24 ID:BBoT8RMz.net]
プログラミングなんて大してSSDの容量使わねーだろ、と思ってたらanacondaが10GBぐらい使ってきて泣いた

736 名前:デフォルトの名無しさん [2022/08/06(土) 09:34:49.25 ID:80xJcjdY.net]
pyinstallerで.pyファイルのexe化を試みています。
opencvがエラーを吐いて正常に動作しません。

ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.

google検索してやったこと。
paths=でモジュールの場所を指定
opencvのバージョンを4.5.3.56まで落とす(インストールエラー)

python: 3.10.6
altgraph==0.17.2
future==0.18.2
numpy==1.23.1
opencv-python==4.6.0.66
pefile==2022.5.30
Pillow==9.2.0
pillow-avif-plugin==1.2.2
pyinstaller==5.3
pyinstaller-hooks-contrib==2022.8
pywin32-ctypes==0.2.0
Send2Trash==1.8.0

737 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 10:40:10.54 ID:XSn5nlI0.net]
nuitkaを使う

738 名前:デフォルトの名無しさん [2022/08/06(土) 15:50:19.67 ID:eSBCWCwI.net]
>>709
Anacondaはぶっ太い糞



739 名前:デフォルトの名無しさん [2022/08/06(土) 15:51:47.59 ID:eSBCWCwI.net]
>>710
opencv-python-headless

740 名前:デフォルトの名無しさん [2022/08/06(土) 16:30:43.76 ID:80xJcjdY.net]
>>710 レスありがとうございます。
nuitka、使ってみました。やはりopencv周りは色々問題があるようです。うまく動作しませんでした。

>>713 レスありがとうございます。
opencv-python の代わりに opencv-python-headless を使ってみましたが、全く同じエラーでした。

やはり opencv は難しいのでしょうか…

741 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 17:26:48.46 ID:PSjXEZOE.net]
GoogleはGoなんて作る暇があったらPythonコンパイラを作るべきだった

742 名前:デフォルトの名無しさん mailto: []
[ここ壊れてます]

743 名前:sage mailto:2022/08/06(土) 19:16:19.27 ID:kORMtiG2.net [ pycodestyleの機能って便利ですね ]
[ここ壊れてます]

744 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 19:22:52.36 ID:Cy8sVH5p.net]
お気づきになられましたか

745 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 19:54:32.19 ID:Tb2OU3Zj.net]
impor requests
ってやると
Library stubs not installed for "requests" (or incompatible with python 3.9)
とでてくるんだが
リクエスト "用のライブラリスタブがインストールされていない(またはpython 3.9と非互換)。

よくわからん

746 名前:710 [2022/08/06(土) 20:04:04.35 ID:80xJcjdY.net]
結局、ネット上で実績ありそうな、

Python 3.8.5
altgraph==0.17.2
future==0.18.2
numpy==1.23.1
opencv-python-headless==4.5.3.56
pefile==2022.5.30
Pillow==9.2.0
pillow-avif-plugin==1.2.2
pyinstaller==5.3
pyinstaller-hooks-contrib==2022.8
pywin32-ctypes==0.2.0
Send2Trash==1.8.0

で実行ファイルからエラーが消えたようです。
アドバイスくださった方、どうもありがとうございました。

バージョン管理って大変ですね。

747 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 20:29:16.15 ID:7+clXBwJ.net]
>>718
そのまんまじゃねーか

748 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 20:49:02.89 ID:XxOEvUoc.net]
pytorch入れた時の悪夢が蘇って来た。orz



749 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 21:42:16.91 ID:PGZhucx9.net]
>>718
何使ってるか知らんがmypyが有効になってるんじゃないの?

750 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 21:47:15.58 ID:PQ7gBqNg.net]
ディレクトリがcase-sensitiveかどうか調べる方法ありますか?
環境はWindows10です
やり方がわからないので対象のディレクトリ内にcase-sensitiveなディレクトリ名やファイル名が存在するか調べることでなんとかしようとしたけど
pathlibのglobではcase-sensitiveなディレクトリ名やファイル名では読み抜け発生
os.walkならいけるかもと思い実験中

751 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 22:42:37.85 ID:IJoLUcj8.net]
>>723
abc でディレクトリ作って ABC で存在確認するとかかな
恐ろしいことにOSXではパス毎にCase Sensitiveかどうかを設定出来るらしい...
https://stackoverflow.com/questions/7870041/check-if-file-system-is-case-insensitive-in-python

752 名前:デフォルトの名無しさん mailto:sage [2022/08/06(土) 23:10:23.53 ID:PQ7gBqNg.net]
>>724
最近のWindowsもフォルダ毎にCase Sensitiveかどうかを設定出来るんですよ
対象のパスの下のサブディレクトリも個別に調べなきゃいけない

753 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 01:53:51.53 ID:HkpslvdA.net]
pylintというのを知った
俺の作ったコード
pylintしたら4点だった
きびしすぎん?

754 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 04:45:52.49 ID:qW86g0dh.net]
つ Flake8

755 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 09:31:21.46 ID:7cQO/w5k.net]
pip installでインストールしたモジュールがどのフォルダ(ディレクトリ)に
入ってるか確認する方法ってありませんか?
エクスプローラーで見てもありません…

756 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 09:51:04.57 ID:qW86g0dh.net]
pip show パッケージ名

757 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 09:51:59.31 ID:wF6HChc5.net]
隠しファイル、隠しフォルダー、および隠しドライブを表示する

758 名前:デフォルトの名無しさん [2022/08/07(日) 11:38:08.36 ID:H7AA9Gyj.net]
>>728
__file__ でわかる。
例えばopencvなら
>import cv2
>print(cv2.__file__)



759 名前:728 mailto:sage [2022/08/07(日) 15:47:17.43 ID:7cQO/w5k.net]
答えてくれた方、ありがとうございました

pip show requests を実行したらパスが表示されました
pythonの処理系があるフォルダの近くにあるみたいなんですが、
VSCodeのどのフォルダにいる状態でインストールしても、
インストールされる場所は同じなんでしょうか?

760 名前:デフォルトの名無しさん [2022/08/07(日) 16:25:21 ID:qancDJyG.net]
class A(text:str, value:int)
class B(A)

VSCodeだとマウスオーバーで引数が確認できますが
上記のような継承があるとき
b = B()
マウスオーバーでAの引数を確認したいのですが、どうすればいいですか?

761 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 16:29:37 ID:wx1/uok7.net]
今のデフォルトはpylanceだっけか

762 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 16:31:40 ID:Iy538lTc.net]
>>733
>class A(text:str, value:int)

今ってこんな定義方法があるの?

763 名前:デフォルトの名無しさん [2022/08/07(日) 17:18:29.82 ID:PNBshUzP.net]
__init__か?
クラスBでオーバーライドしてなきゃAの引数が表示される

764 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 18:29:09.72 ID:J7BfdoVn.net]
pipよりもpypl

765 名前:デフォルトの名無しさん [2022/08/07(日) 18:37:37 ID:qancDJyG.net]
素で間違えた
いまこうです
Bじゃなくて継承元のAの引数が見たいです
https://imgur.com/PkQnHo3.png

vscodeはpylanceですね

766 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 18:41:34 ID:k9D8AutH.net]
え・・・・・

767 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 18:50:58.51 ID:ZjeWku4d.net]
Bの__init__を消そう

768 名前:デフォルトの名無しさん [2022/08/07(日) 19:08:00.18 ID:qancDJyG.net]
>>740
おーありがとう
そういうことk



769 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 21:07:17.99 ID:uhtWaMBb.net]
>>710
specファイルに、

pathex=['C:\........\site-packages\\cv2']
(パスは環境次第)
とcv2のフルパス入れてますか?

770 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 10:00:21.56 ID:RWKMU7OX.net]
numpy配列をopencvで扱う画像にする時って
cv2.imdecodeとnumpy.reshapeの二通りのやり方があるみたいだけどどう使い分けるんです?

771 名前:毛の生えたブリーフ [2022/08/08(月) 10:56:42.38 ID:nUMoT9LF.net]
2003年 当時荒れていたdelphiスレッドの緊急避難先で作った「くだすれDelphi 」

ヘッダーを各言語用に改変してPythonのスレッドが出来ていたのか・・・・
あれから20年近く・・・俺も還暦になるわけだ。

プログラム板にきたのは13年ぶり。 いつのまにか2chが5chになって
ひろゆきがメジャーになってた。

772 名前:デフォルトの名無しさん [2022/08/08(月) 10:57:33.77 ID:nUMoT9LF.net]
いやん誤爆してごめんくさい

773 名前:デフォルトの名無しさん [2022/08/08(月) 11:17:06.38 ID:AUtZ1mrn.net]
>>742
はい。specファイルの pathx に入力する方法も試したのですが、同じエラーです。

その後色々組み合わせをためしているのですが、3.10系では成功したことがありません。
3.8, 3.9系では opencv のバージョン次第で正常に動作します。

あと>>711 が教えてくださった nuitka ですが、アンチウィルスが過剰に反応するので諦めました。

774 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 16:30:56.98 ID:ej7caoJh.net]
ショートサーキットについてお聞きしたいです

本によるとandやorの両側には関数も取ることができ、
1 < 2 and print('right')
1 > 2 or print('right')
をインタラクティブシェルで実行すると
それぞれ'right'が表示されるみたいですが、釈然としません

そういうものだと覚えておくしかないでしょうか?

775 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 16:37:01.79 ID:GNjKAHJ2.net]
なにがわからないの?
x and y === if x then y else x
x or y === if x then x else y

776 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 17:05:06 ID:Rerux/uK.net]
>>747
それ
True and print('right')
False or print('right')
と同じで両方共に print('right') の値を見ないと全体の値は確定しないから 'right' が表示されるのは当たり前
1 > 2 and print('right')
ってやればどうなる?

777 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 17:15:18.30 ID:w9crSB+N.net]
andは左側が真の場合、右側を評価する
andは左側が偽の場合、右側を評価しない
orは左側が真の場合、右側を評価しない
orは左側が偽の場合、右側を評価する
左側だけで真か偽か判明してる場合は右側を評価しない

778 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 18:30:45.48 ID:VXkV51Mv.net]
>>746
そうですね。書いてありましたね。
あとやったとすれば、
a.datas += [('習済みデータ.xml','



779 名前:.\\習済みデータ.xml', 'DATA'),]
※学習済みデータは「haarcascade_frontalface_default.xml」等
を記述したことと、1つのファイルにしたときに、Temporaryの実行パスを取得を工夫したことくらい…

あ、できたファイルを実行時にウィルスとして検知されるので、
pyinstallerの中のファイルの再コンパイルも必要です。
[]
[ここ壊れてます]

780 名前:747 mailto:sage [2022/08/08(月) 19:28:04.38 ID:ej7caoJh.net]
>>748-750
ありがとうございます

すいません、聞き方が悪かったです
ショートサーキットの機構については分かります
bool型を返すわけではないprint()関数が右端に「使える」ことが不可解です
print()は確かNoneを返す関数だったはず

781 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 19:40:14.54 ID:Rerux/uK.net]
>>752
None を bool として評価すると False になる

782 名前:デフォルトの名無しさん [2022/08/08(月) 19:41:18.38 ID:wsYAfPSE.net]
>>752
NoneはFalse
bool()で非ブール型もブールに変換した上で解釈される

783 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 20:06:39.11 ID:UzajzKaJ.net]
右辺はboolとしてなんて評価されません
適当なことを言うな
https://wandbox.org/permlink/gk6gdiVzpzvoPWfI

784 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 20:15:13.65 ID:EDIALeRU.net]
>>755
評価時に__bool__が呼ばれます。if とかで使うと出力される。

785 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 20:33:20.93 ID:EDIALeRU.net]
左だとすぐに呼ばれるのに対して違うんですね理解しました

786 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 21:21:18.46 ID:icSMNlYR.net]
文字列の置換って
translate()とreplace()のいいとこ取りの置換方法ないの?

translate()は
"aa"→"b"
にできないんだよね?

あと
AAA = kansuu(AAA)
BBB = kansuu(BBB)
CCC = kansuu(CCC)
DDD = kansuu(DDD)
みたいな感じになってるときって
for文で入れていく以外思いつかないんだけど、他に見やすい書き方あるかな?

787 名前:デフォルトの名無しさん mailto:sage [2022/08/08(月) 22:27:42.98 ID:GdyVfCQX.net]
>>758
文字列をmappingベースで置換したいならflashtext使うといいかも

2つ目のはAAA, BBB, CCC, DDDをコレクション(dict, list, tuple等)にする

788 名前:デフォルトの名無しさん [2022/08/09(火) 11:17:14.43 ID:6xBGELHM.net]
フォルダパスとファイル名とURLを書くと画像を保存してくるコードを書いたんだけど
https://techiedelight.com/compiler/?BQkA

エラーの対処はわかったんだけど、もっと別の書き方があるのではと思ってしまう
他の人はこれをどう書きますか?



789 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 13:25:52.34 ID:804xd0t9.net]
raw文字列

790 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 14:13:10.80 ID:6cdAV71K.net]
バックスラッシュの代わりに、スラッシュを使う
でもいい

791 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 14:27:14.68 ID:reKZbZGW.net]
raw文字列、joinpath、with_suffix

792 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 16:46:37.99 ID:904t2Z05.net]
pathlib一択でしょうね

793 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 17:34:17.89 ID:VX/MyXfz.net]
HTTPErrorやIOErrorのハンドリングもやったほうがいいよ

794 名前:デフォルトの名無しさん [2022/08/09(火) 17:48:28.39 ID:/U/bpI39.net]
外部からの入力系は全部
try:
req
except:
クソ
するな俺は。ユーザーは信用しない
あとダウンロード系も
try:
down
except:
失敗
する。どんなわけわからんエラーくるかしらんし

795 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 18:07:25.22 ID:RasYFqXo.net]
外部とのやり取りは一筋縄ではいかないからねえ
ついでにリトライも入れておきたい
requestsには頼らずビルトインで頑張るw

796 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 18:28:07.98 ID:Lt/MnBA ]
[ここ壊れてます]

797 名前:v.net mailto: >>766
それ普通じゃね?
[]
[ここ壊れてます]

798 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 21:17:15.16 ID:DxAePLof.net]
わざわざtryしなくても例外が起きると止まるっしょ



799 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 22:15:13.78 ID:v2aJaQdL.net]
わざわざブレーキつけなくても事故れば止まるっしょ

800 名前:デフォルトの名無しさん mailto:sage [2022/08/09(火) 23:22:34.01 ID:xxgft6hm.net]
>>760
Windows で、path = "C:\a\b"
みたいに、\ を使わなければならないの?

Ruby では、
path = "C:/Users/Owner/Documents/a"
みたいに、/ を使うけど

801 名前:デフォルトの名無しさん [2022/08/09(火) 23:25:51.13 ID:KqAyUORM.net]
>>771
前半、バックスラッシュを使わなくてもアクセスできる。
後半、スレチ。いちいち書くな。

802 名前:デフォルトの名無しさん [2022/08/09(火) 23:34:41.82 ID:oM0lzHLp.net]
合わせてバックストレッチ。

803 名前:747 mailto:sage [2022/08/09(火) 23:46:35.97 ID:8UDvOyKH.net]
レスが遅くなってすいません
答えてくれた方ありがとうございました
ああいった書き方もあるんだと頭の片隅に留めておきます

804 名前:デフォルトの名無しさん [2022/08/10(水) 00:02:07.83 ID:DjE5xMJT.net]
>>769
普通はエラー処理系にraiseするからtry節置くと思うが

805 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 02:29:00.47 ID:kx7L/9BB.net]
なにが普通かは人による

806 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 03:50:21.12 ID:obfeaPUq.net]
なぜこの関数が作られたのかを考えながらプログラム書くとすっきりする

807 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 10:26:29.49 ID:rR8/AFmc.net]
Enum 列挙型という概念を初めて知ったが
使い所がよくわからない

808 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 12:53:32.14 ID:vnHVeG1e.net]
関数をローカル変数に代入するメリットって何でしょうか?



809 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 13:19:15.14 ID:8RUvvZbB.net]
何度も同じ計算をしないで結果だけ繰り返し使える

810 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 13:33:33.79 ID:bGy3yklD.net]
場合によるけど、処理前半でローカル変数に関数を代入しておくことで、処理後半の分岐が消えて見通しが良くなる可能性はあるかも。
何らかの理由でリネームしたかったとか?

811 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 15:00:50.94 ID:vnHVeG1e.net]
ありがとうございます

812 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 15:59:42.31 ID:WlLD55gQ.net]
>>779
同じコードで呼び出す関数だけ違うパターンって結構あるから
ソートとか

813 名前:デフォルトの名無しさん mailto:sage [2022/08/10(水) 17:43:12.15 ID:YLnkT8Qt.net]
>>779
ループ内で毎回foo.bar()するよりも
ループの外でbar = foo.barして
ループ内ではbar()だけにすると微妙に速くなる

814 名前:デフォルトの名無しさん [2022/08/10(水) 21:48:18.68 ID:5JgNVH0W.net]
かけるかな

815 名前:デフォルトの名無しさん [2022/08/11(木) 07:13:22.60 ID:HPSk7Pik.net]
https://i.imgur.com/FBcOaIq.png
質問です。WindowsでColabでやってます。
1024×768のサイズの画像のみを収集したいのですが、
違うサイズの画像が入ってきます。どうすればいいですか?

816 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 07:56:07.13 ID:X31RE6bn.net]
>>786
設定したfiltersがcrawlに設定されていない
google_crawler.crawl(keyword='流星', filters=filters, max_num=10)

817 名前:101 mailto:sage [2022/08/11(木) 09:45:20.53 ID:fCiqpa8j.net]
英語って本当にプログラムに適してるのか?
isspace()
って何かと思ったらis spaceかよ
空白ないと判別しにくいのはプログラミングにおいてどうかと思うわ

818 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 10:00:41.98 ID:nadsErGw.net]
キャメルケースとかスネークケース使えよ



819 名前:デフォルトの名無しさん [2022/08/11(木) 10:13:40.52 ID:ECrQVbq4.net]
atoi

820 名前:デフォルトの名無しさん [2022/08/11(木) 11:12:03.43 ID:m7iYSaV1.net]
>>788
少なくともあんたはプログラムに向いてないな

821 名前:デフォルトの名無しさん [2022/08/11(木) 12:26:10.60 ID:fKEJQx+N.net]
https://i.imgur.com/HJTruLr.png


822 名前:>>787
ありがとうございます。早速、記入してみたのですが、
画像が収集できなくなりました!
AssertionError となりましたが、どうすればいいですか?
[]
[ここ壊れてます]

823 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 12:46:20.99 ID:7cUH/Z7I.net]
×(かける)じゃなくて x(エックス)じゃねーの?
=1024x768
てか、コードはスクショじゃなくてコピペしてくれ

824 名前:デフォルトの名無しさん [2022/08/11(木) 13:47:35.08 ID:fKEJQx+N.net]
>>793
ありがとうございます。早速、修正してみたのですが、
TypeError となりました!どうすればいいですか?
コードのコピペ↓
from icrawler.builtin import GoogleImageCrawler

google_crawler = GoogleImageCrawler(storage={'root_dir': '流星フォルダ'})
filters = dict(size='=1024x768')
google_crawler.crawl(keyword='流星', filters=filters, max_num=10)

825 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 13:58:15.94 ID:7cUH/Z7I.net]
エラーもコピペしてくれよ...

826 名前:デフォルトの名無しさん [2022/08/11(木) 14:07:01.78 ID:fKEJQx+N.net]
>>795
このようなエラーとなっています。
エラー↓
Exception in thread parser-001:
Traceback (most recent call last):
File "/usr/lib/python3.7/threading.py", line 926, in _bootstrap_inner
self.run()
File "/usr/lib/python3.7/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.7/dist-packages/icrawler/parser.py", line 104, in worker_exec
for task in self.parse(response, **kwargs):
TypeError: 'NoneType' object is not iterable

827 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 15:00:05.18 ID:7cUH/Z7I.net]
>>796
バグかも...
https://github.com/hellock/icrawler/issues/107

828 名前:デフォルトの名無しさん [2022/08/11(木) 15:15:10.72 ID:fKEJQx+N.net]
>>797
バグですか...ありがとうございます。
他のコード、1024×768のサイズの画像のみを収集するには、
どうすればいいですか?



829 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 15:27:49.52 ID:JwgkCgjA.net]
めちゃ無駄だけど1024x768以外の画像は捨てちゃうぐらいしか思いつかん...

830 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 16:47:42.06 ID:X31RE6bn.net]
>>798
できました、min_sizeとmax_sizeも指定する必要があるみたいです
Python3.10でやりました、TypeErrorにはなりませんでした

google_crawler = GoogleImageCrawler(storage={'root_dir': '流星フォルダ'})
filters = dict(size='=1024x768')
google_crawler.crawl(keyword='流星', filters=filters, max_num=10, min_size=(1024, 768), max_size=(1024, 768))

831 名前:デフォルトの名無しさん [2022/08/11(木) 18:48:40.17 ID:fKEJQx+N.net]
>>800
ありがとうございます。早速、試してみましたが、
バージョン違いのためかNameError となりました。
現在、Python 3.9.12 のバージョンなのですが、
ColabでPython3.10にするにはどうすればいいですか?

832 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 18:56:22.30 ID:X31RE6bn.net]
エラーもコピペしてくれよ...

833 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 19:26:39.81 ID:L6VcpDZr.net]
バージョン違いって断定してるんだからそれでいいだろ
他の可能性を検討しようとするなよ

834 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
そんな能力あるのになんでColabのバージョンは変えられないの?

835 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
>>801
Python 3.9.7が残っていたからicrawlerインストールして>>800実行したら
問題無くできたのでPython3.9.12でもできるハズ
Colabが悪いのではないでしょうか?

836 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
windowsの3.9.13でも問題ないな
ちゃんとgoogleの検索結果取得できてないか、htmlパースに使ってるbeautifulsoup4かlxmlがおかしいかかな

837 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 20:01:15.15 ID:X31RE6bn.net]
>>801
まさかだけどNameErrorって、NameError: name 'GoogleImageCrawler' is not defined じゃないよね?
>>800の前にfrom icrawler.builtin import GoogleImageCrawler してるよね?

838 名前:デフォルトの名無しさん [2022/08/11(木) 20:18:34.40 ID:fKEJQx+N.net]
>>807
ありがとうございます。早速、試してみましたが、
見事に解決しました。
>>800
改めてありがとうございます。
お陰さまで、1024×768のサイズの画像のみを収集することができるようになりました。



839 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 20:24:18.19 ID:7cUH/Z7I.net]
>>807
せめて>>794ぐらいは見てから書きなよ...
まあエラーのコピペ待ちでいいかと

840 名前:デフォルトの名無しさん mailto:sage [2022/08/11(木) 20:25:02.29 ID:7cUH/Z7I.net]
>>808
えっ、まじで>>807だったの?...

841 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 05:55:29.63 ID:vrgQH6RZ.net]
(超初心者用

842 名前:) []
[ここ壊れてます]

843 名前:デフォルトの名無しさん [[ここ壊れてます] .net]
jupyternotebookでセル内のコードが長くなるため,
defで定義した関数を同一ディレクトリ内のmy_func.pyに保存し
メインのコードmain.py 内でimportすることにしました.

my_func.pyに保存した関数内では,numpyを使っているのですが,numpyが認識されません.
main.py でnumpyをインポートしていますが,その効果をmy_func.py内に待避した関数に及ばせるためには
どうすればよいでしょうか.

844 名前:デフォルトの名無しさん [2022/08/12(金) 11:54:38.42 ID:V16IFZ6j.net]
my_func.pyでnumpyをインポート

845 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 13:39:22.16 ID:f9Pn84YJ.net]
>>813
ありがとうございます。早速、記入してみたのですが、
my_func.pyでnumpyが認識されました。
main.py内にインポートしているnumpyどうすればいいですか?

846 名前:デフォルトの名無しさん [2022/08/12(金) 14:10:01.68 ID:AKRIAlbQ.net]
main.pyでnumpyを使っていなければいらない

847 名前:デフォルトの名無しさん [2022/08/12(金) 15:01:37.64 ID:P/MIlql5.net]
そのライブラリを直接呼ぶコードがあるファイル毎にimportする。直接呼ばないなら不要

main.py
__import funcs

__funcs.test()


funcs.py
__import numpy

__def test():
____print(numpy.random.randint(0, 10))

848 名前:デフォルトの名無しさん mailto:sage [2022/08/12(金) 15:14:18.69 ID:f9Pn84YJ.net]
>>815
>>816
ありがとうございます。早速、試してみましたが、
見事に解決しました。



849 名前:101 mailto:sage [2022/08/12(金) 16:36:29.89 ID:SBMPsz73.net]
普通、FunctionalをFucって略すか?


幻塔というゲームのテスト用のサーバーネームが
JP Fuc Test Server
だったらしく炎上してた

850 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 03:28:02.47 ID:nuG2c1c/.net]
mypyでエラーにならないように pathlib.Path の型を示したいんだが、これはどうすりゃいいのかね?
type()でチェックすると
<class 'pathlib.WindowsPath'>
となるんだが pathlib.WindowsPath と指定してもエラー出るし

851 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 03:32:04.91 ID:nuG2c1c/.net]
動的な基底クラスはmypyでチェックできないって言ってる人がいたわ
そういうことなのか?

852 名前:デフォルトの名無しさん [2022/08/13(土) 03:54:53.99 ID:xLCZiP8v.net]
pylanceだとpathlib.Pathでいけるけどmypyあかんか?

853 名前:デフォルトの名無しさん mailto:sage [2022/08/13(土) 07:30:43.65 ID:nuG2c1c/.net]
>>821
お、いけたわ
さんくす

854 名前:デフォルトの名無しさん [2022/08/14(日) 04:23:42.79 ID:aYzApZcG.net]
pythonでcuda使いたいが、お勧めのサイトありますか?
ちなみにcudaは3090とかの方がいいですか?

855 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
にほんごでおk

856 名前:デフォルトの名無しさん [2022/08/14(日) 10:12:56.20 ID:A6qxvdf0.net]
[python cuda]🔍

857 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 11:25:05.75 ID:Gnb69e0i.net]
Noneの比較はis を使うべきで==を使うべき"でない"なんて記述を見かけるのですが、

if dictData.get('key') == 'hogehoge':
__echo 'OK'

例として辞書のgetメソッドのようにキーが無ければNoneを返すような場合で上記のような判定もすべき"でない"のでしょうか?
この場合dictData.get('key', '')のように、キーが見つからない場合の値を明示的に書くべき?
(ただdict.get()のようにコントロールできないのもありますよね)

858 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 12:06:39.34 ID:KzxSNF0d.net]
if hoge is None:
こんな風に定数Noneと比較する場合の話だよ



859 名前:デフォルトの名無しさん [2022/08/14(日) 12:18:23.17 ID:T9w5rPHY.net]
Noneを==すると稀にNone==None ->Falseあるから避けよう。バグのもと。これはググれば解説あるから読んで

で、普通は
if dic.get('key') == 'foo':
__func()
だけでしょう。あればする、なければ終わり

if dic.get('key') == 'foo':
__func()
else:
__func_b()
でもいいけど。

基本的にNoneやFalseを判定しにいかない。まずTrue判定をして、その反対をelse (if)で受ける

ただまあNone / Falseだけを知りたい場合があって
そのときは
if dic.get('key') is None:


860 名前:__func()
などと書く。英文として読みやすいからよい

つか辞書から無い可能性あるkeyのgetは避けたい
db検索的に書きたいならget使わずtry節書いてKeyError専用処理作ろう
[]
[ここ壊れてます]

861 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 12:29:39.79 ID:Gnb69e0i.net]
>>827,828
なるほど、明示的にNoneであることの比較の場合はということですね。ありがとうございます。
>>828さんの最後の件も承知しました。

862 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 12:34:40.20 ID:Gnb69e0i.net]
>>828
あ、やっぱりすみません、最後のget使うべきでない理由って簡単に教えていただけますか?
今回、API等の応答で、辞書の目的のキーがあったりなかったりするような応答で、キーがあれば拾う、無ければ無視、という単純なものなのですが、それでもgetは使わないほうが良かったりしますか?

863 名前:デフォルトの名無しさん [2022/08/14(日) 12:41:52.12 ID:VI2zLni0.net]
>>682
1000%同意する

864 名前:デフォルトの名無しさん [2022/08/14(日) 12:45:09.72 ID:Xz0meKRj.net]
>>830
dict['key']が存在してvalueがNoneの場合にTrueになっちゃうから、キーの不存在判定だけしたいなら'key' in dictの方がいいんじゃないかな

865 名前:デフォルトの名無しさん [2022/08/14(日) 12:50:22.70 ID:T9w5rPHY.net]
>>830
エラーは出ていいんよ
逆に握りつぶしちゃいけない
というかgetってなんのためにあるんだ?

try:
__dic[input()]:
____print('ある')

except KeyError:
__print('ねえわ')

except Exception as e:
__print(e.__class__.__name__)

外部入力受け付けるのって鬼門なんでこういう感じで書きたい
keyerrorは想定できるし、別の意図してないエラーも拾いたいだしょ

866 名前:デフォルトの名無しさん [2022/08/14(日) 12:51:39.01 ID:T9w5rPHY.net]
>>833
しつれい
try:
dic[input()]
print(1)

867 名前:デフォルトの名無しさん [2022/08/14(日) 12:53:45.52 ID:A6qxvdf0.net]
>>830
その用途なら、getでもいいんじゃない?
>>832が言う様な違いはあるけれど、キーが不存在でNoneが返る場合と、キーが存在するが値がNoneの場合とを、区別する必要があるかどうか、考えて決めれば良いよ

868 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 15:22:06.37 ID:nJs5efs8.net]
キーに階層があって、途中のキーがなかったりすることがある場合なんかだと、
区別する実益はあるかもしれんね
一応、.get('key', {}) なんて方法もあるけど



869 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 15:22:39.42 ID:Gnb69e0i.net]
>>832
失礼しました。最初の例ですとおっしゃるとおりですね。内容まで取得するケースも想定してました。

>>833-835
ありがとうございます。要件などふまえ考えてみます

870 名前:デフォルトの名無しさん [2022/08/14(日) 16:52:51.09 ID:T9w5rPHY.net]
ああわかった

db['key1': 0, 'key2':0,,,]
if key1:
__print('ある')
else:
__print('ない')

こんときgetじゃないといかんのだな
あるいは

try:
__value = db[a'']
__print('ある')
except KeyError:
__print('ない')
except:
__print('未定義エラー')

871 名前:デフォルトの名無しさん mailto:sage [2022/08/14(日) 22:47:50.08 ID:549c+n4K.net]
Ruby の偽は、nil, false だけ。
これ以外は真

でも、Python, PHP, JavaScript などは、
各型に偽値がある。空文字列・空配列・空辞書など

だから、とんでもなくバグるし難しい。
すべての型の可能性を考えないといけない

文字列型・配列型・辞書型ならとか。
だから、TypeScript みたいな型チェックツールが作られた

872 名前:デフォルトの名無しさん [2022/08/14(日) 22:57 ]
[ここ壊れてます]

873 名前::22.86 ID:I2sSNpX6.net mailto: >>839
死ね
[]
[ここ壊れてます]

874 名前:デフォルトの名無しさん [2022/08/15(月) 09:22:07.96 ID:c1YCm0IS.net]
>>838
どういうこと?

875 名前:デフォルトの名無しさん [2022/08/15(月) 13:07:09.65 ID:RvdaGkLE.net]
>>841

dict['key'] = value

dict.get('key') = value

取得したvalueがFalseになるとき、つまり0とかNoneとか空白のとき
if dict['key'] is not True になる。値はあるにも関わらず
一方
if dict.get('key') is Ture なので、期待する挙動としてはgetのが正しい

値がダミー(0など)の辞書の用意とかありうるので

876 名前:デフォルトの名無しさん [2022/08/15(月) 14:06:42.23 ID:0GtlIRwB.net]
ああそういうことか
re.matchとかre.searchみたいなことをやりたいのか

辞書のキーがあるかないかbooleanの判定と値への処理は別の方がいいと思う
if 'key' in dでもKeyError処理はどっちでもいいけど

877 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 15:15:52.94 ID:gMKahu5b.net]
>>842
keyに対するvalueが0やNoneの時に
dict.get(key) is Trueにはならんやろ

dict.get(key, [default])を使うのは
keyに対応する値がデフォルト値の場合と
keyに対応する値が無くてデフォルト値が返される場合を同じように処理したい時だけ

bool判定したいならin演算子
KeyError使うのはkeyが存在しない状況が例外的な場合

878 名前:デフォルトの名無しさん [2022/08/15(月) 15:38:01.56 ID:RvdaGkLE.net]
>>844
ありゃならんな
これはすまん。なんか勘違いしとった。

stackoverflow why dict.get(key) instead of dict[key]?
参照



879 名前:デフォルトの名無しさん [2022/08/15(月) 19:52:08.21 ID:KlKo2Eqq.net]
わざわざメソッドとして用意されるほどの価値がないんだよなあ
2時代は重宝したのかな

880 名前:デフォルトの名無しさん mailto:sage [2022/08/15(月) 20:37:42.59 ID:Xxg2cjph.net]
if (val := dic.get(key)) is not None:
は使うけどな

881 名前:デフォルトの名無しさん mailto:sage [2022/08/16(火) 04:15:40.22 ID:MkpTU7zo.net]
次のコードがあります
h=[[[]]]*10
h[0].append([0,0])
理想としては
>[[[], [0, 0]], [[]], [[]], [[]], [[]], [[]], [[]], [[]], [[]], [[]]]
となってほしいのですが、現実は
>[[[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]], [[], [0, 0]]]
となってしまいます
どうしたら理想の形になるでしょうか?

882 名前:デフォルトの名無しさん mailto:sage [2022/08/16(火) 07:26:37.30 ID:GKkpSlmU.net]
内包表記使って初期化

883 名前:デフォルトの名無しさん [2022/08/16(火) 08:04:39.39 ID:9vnyTUy7.net]
[[[], [0, 0]] if i == 0 else [[]] for i in range(10)]

884 名前:デフォルトの名無しさん [2022/08/16(火) 08:06:35.47 ID:9vnyTUy7.net]
h=[[[]] for i in range(10)]
h[0].append([0,0])

885 名前:デフォルトの名無しさん [2022/08/16(火) 11:31:22.44 ID:2x3mrzZQ.net]
要件後出しまくりとか
ゴールポスト移動させまくりとか
チョンメンタルの香具師とは付き合いたくないな

886 名前:デフォルトの名無しさん mailto:sage [2022/08/17(水) 13:20:06.97 ID:5W303LUa.net]
差別主義者で今どき香具師とか使ってるジジイとか逆に誰も付き合いたくないだろ

887 名前:デフォルトの名無しさん [2022/08/17(水) 16:37:01.73 ID:tMNGLQPx.net]
pandas のread_excelで式が入っている箇所の値を計算値ではなく、
整形されたテキスト値の方を取りたい場合はどうしたら良いのでしょうか?

数値で6.6がテキスト値として”7”として表示されている”7”の方の値をとりたいです。

888 名前:デフォルトの名無しさん mailto:sage [2022/08/17(水) 18:19:41.22 ID:8E4xUz8+.net]
>>854
Excelファイル内のデータとしてあるのは数値の6.6だけで
文字列の7という値はデータとしてファイルには存在しないので
直接読み取るのは無理

read_excelでdtypeやconverterを指定して数値の6.6を文字列の7に変換するか
一旦dfに読んでから変換するか



889 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 04:13:52.58 ID:OEqoy/Kx.net]
0.00000001から10000.xxxxくらいまで取り得るfloatの変数を、数字の表記で文字列に

890 名前:変えたいのですが、
str()だと、0.0001未満の値が"1e-05"のような指数表記になってしまいます
一方f-string(format)だと、".8f"等で全桁表記はできますが、小数点以下が常に8桁で0で埋められてしまいます
(例 0.00001→0.00001000)
末尾には余計なゼロは付けず、かつ指数表記にならない形でfloatを文字列にする簡単な方法はありますか?
rstrip('0')など使って余計なゼロを処理するしかないでしょうか?(この場合、100.0などのゼロは削除できないので判定が必要そうで単純にはいかなそうですが)
[]
[ここ壊れてます]

891 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 08:18:05.71 ID:cEC5FUVy.net]
>>856
numpy.format_float_positional
ググったらすぐ出て来た

892 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 08:58:00.71 ID:8X5QyRnM.net]
>>855
ありがとうございます。やはりできないのですね。
オプション探してみましたがそれらしいものがなかったので。
場所ごとに与えられた式が同じとは限らないので、
エクセル側で読み込み用の文字列を作成することにしました。

893 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 16:36:53.18 ID:Sofq2Da+.net]
条件分岐について質問です
3の倍数であるかどうかを判定する関数func1()とfunc2()を書いたのですが、
どちらの書き方のほうが良いでしょうか?
https://paiza.io/projects/mbEoYGp5wy7cU2oqpoTLbA

894 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 16:40:44.96 ID:s/eA3jUD.net]
当然1

895 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 16:48:56.73 ID:X/mZUHYK.net]
>>859
3の倍数が例外的な事象と言う事を表現したいならワンチャン2の可能性もあるかも

896 名前:859 mailto:sage [[ここ壊れてます] .net]
回答ありがとうございます

なぜfunc2()の書き方はあまり良くないのでしょうか?
よろしければ理由も教えて貰えるとありがたいです

897 名前:デフォルトの名無しさん [2022/08/18(木) 17:56:26.08 ID:GYRCxwaB.net]
すべてのnumは3の倍数かそうでないかのどちらかである、つまり必ずどちらかの処理が実行される事が一目で理解できる点ではfunc1がベター
一方で3の倍数の時は処理を行わず早期リターン、3の倍数でない時は長い処理を行う、といった場合はfunc2

898 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 18:55:31.69 ID:Rcho8+Nh.net]
いや、return入れるならelseのときもreturnしろよ
両方入ってるなら2でもいいと思うけど、片方だけ終わらせるために入れるなら関数なのかサブルーチンなのかわからんからダメだろ



899 名前:859 mailto:sage [2022/08/18(木) 19:10:48.59 ID:Sofq2Da+.net]
>>863
なのでこの場合はfunc1()なんですね
ありがとうございました

900 名前:859 mailto:sage [2022/08/18(木) 19:15:55.23 ID:Sofq2Da+.net]
>>864
コードはなるべく短い方がいいと思ったので使わなくて済むところでは使いませんでした
関数なのかサブルーチンなのか分からないと駄目とはどういうことですか?

901 名前:デフォルトの名無しさん [2022/08/18(木) 20:03:27.19 ID:Ly249j22.net]
こっちのが好き

def is_multiple(num): return num%3 == 0

902 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 21:14:57.76 ID:uWlfhjm8.net]
>>864
アラカン先輩ちぃーすっ

903 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 21:32:20.64 ID:49aIw1a5.net]
>>867
判定処理と判定結果を表示する処理を分離しましょうという意味では同意する

けどis_multipleという関数名で3の倍数かどうか判定されるのは違和感しかない

じゃどういう名前にするのがいいかと考えると判定処理をわざわざ関数化するほどではないんじゃないかという気がする

904 名前:デフォルトの名無しさん [2022/08/19(金) 03:09:01.80 ID:FK1lT4BX.net]
def b_is_multiple_of_a(a: int, b:int): return bool(b % a == 0)

if b_is_multiple_of_a(a=5, b=10):
__print('可読性低すぎる')

905 名前:デフォルトの名無しさん [2022/08/19(金) 11:27:50.19 ID:scgMDta4.net]
アーリーリターンは何も珍しい

906 名前:アと時や無い []
[ここ壊れてます]

907 名前:デフォルトの名無しさん [2022/08/19(金) 11:28:55.77 ID:scgMDta4.net]
>>870
関数改行すんならifも改行すんなよ

908 名前:デフォルトの名無しさん [2022/08/19(金) 11:30:34.29 ID:scgMDta4.net]
しないなら



909 名前:デフォルトの名無しさん mailto:sage [2022/08/19(金) 18:24:24.93 ID:opjWCie4.net]
def func3(n):
p = 0
while n > 0:
p += n % 10
n //= 10
return not (p % 3)

910 名前:デフォルトの名無しさん mailto:sage [2022/08/20(土) 10:11:04.26 ID:FuR2a/w3.net]
>>710
https://github.com/opencv/opencv/issues/22088

4.6.xは色々ダメポ

911 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
a = [1,2,3,4,5]
b = [2,3,4,5,6]
c = []

for i in range(5):
c.append(a[i] + 2*b[i])

こういうのをリスト内包表記で書くのは無理でしょうか

912 名前:デフォルトの名無しさん mailto:sage [2022/08/20(土) 23:35:43.31 ID:mymTDVML.net]
aとbの要素数が同じだったら[i+2*j for i,j in zip(a,b)]でいけね?

913 名前:デフォルトの名無しさん [2022/08/20(土) 23:38:46.37 ID:cHNXWuBU.net]
c=[x+2*y for x,y in zip(a,b)]

914 名前:デフォルトの名無しさん mailto:sage [2022/08/20(土) 23:39:36.80 ID:mymTDVML.net]
普通にrangeでも
c=[a[i]+b[i] in i for range(5)]でできるかな

915 名前:デフォルトの名無しさん [2022/08/21(日) 01:03:28.95 ID:uqbZs7r8.net]
どうでもいいけど
c = [i + (j * 2) for i, j in zip(a, b)]
と書きたいな俺は
# (1*i) + (2*j) のようなときのみ(2*j)でも可
# 計算スタックは()でくくる
初心者のうちは特に気をつけたい。動けばいいやんは動かなくなる原因になる

916 名前:デフォルトの名無しさん [2022/08/21(日) 01:23:15.12 ID:m1bd5huk.net]
>>876
好きなのを選び多摩へ
c = [(a+1) + (b+2)*2 for a,b in enumerate([i for i in range(5)])]
c = [(a+1) + b*2 for a,b in enumerate([i for i in range(2, 7)])]
c = [a + 2*b for a,b in zip([i for i in range(1,6)],[j for j in range(2,7)])]

917 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 01:38:11.30 ID:X34OpE8X.net]
ありがとうございます!

918 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 06:47:07.90 ID:SCvvVl9f.net]
def main(argv: Sequence[str]) -> None:


これってどういう意味というか、なにがやりたいんですか?

def main(argv):
ならmainにargvを渡すだけで分かりやすいんですが



919 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 10:46:46.24 ID:1U/+Hx4a.net]
>>883
型ヒントっていうヤツでしょ
おじさんはもう新しいこと覚える気力ないから
どういう機能かは自分でググってくれ

920 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 10:59:40.26 ID:LqJQ4HOS.net]
>>883
argvの型がstrのシーケンスで戻り値の型がNoneってこと
シーケンスはlistやtupleのように長さが事前に分かってて各要素にインデックスで直接アクセスできるようなコレクションの総称

921 名前:デフォルトの名無しさん [2022/08/21(日) 13:04:30.41 ID:j3ukytx2.net]
そこまで型ゴリゴリにするならpythonじゃなくても(じゃない方がむしろ)良いと思うから
放置してる

922 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 13:07:09.50 ID:JM/HSGoB.net]
>>884
型ヒントでググりました
注釈だそうですね
要するにいらないんじゃないか!

923 名前:デフォルトの名無しさん [2022/08/21(日) 14:03:22.39 ID:uqbZs7r8.net]
型ヒント(と開発環境)があると作業効率がずっと上がる
https://imgur.com/jtSAuu4.png
型ヒントのない世界は無
https://imgur.com/BuL77EC.png

オジジでもない限り、初学者は型ヒントつけるクセつけてったほうが
大きいコード書くようになったときなんかに助かるで

924 名前:デフォルトの名無しさん [2022/08/21(日) 14:29:46.94 ID:j3ukytx2.net]
そこでハンガリアンですよωωω=2πf

925 名前:デフォルトの名無しさん [2022/08/21(日) 14:38:59.74 ID:jAGl7lqb.net]
実際使ってみると、版画リアンはものすごく楽。
名前というものは被るように出来てるものらしい。
とはいえ推奨はしない。

926 名前:デフォルトの名無しさん [2022/08/21(日) 14:45:29. ]
[ここ壊れてます]

927 名前:71 ID:HDFqY1eo.net mailto: Pythonでローカルサーバーを立ててhtmlの確認をしたいのですが、SSIを使いたいため、以下のスクリプトを使用しています。
https://github.com/danvk/ssi-server/blob/master/ssi_server.py
GITからクローニングして、MacOS + python 3.10.5で動作確認させたところ問題なく動きました。
Windows10 + Python 3.10.5で実行すると、localhostへのアクセス時に文末のエラーが出て動きません。
同一のクラウド上のファイルを参照して実行しています。GITからはMacで落としましたが、改めてwindowsで落としても同じでした。
MacOSでは動いているのでWindowsの環境なのかと思いつつ、何が原因かわからずにいます。
アドバイスください。

------エラー文章--------
Exception occurred during processing of request from ('::1', 58693, 0, 0)
Traceback (most recent call last):
File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\socketserver.py", line 683, in process_request_thread
self.finish_request(request, client_address)
File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\socketserver.py", line 360, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "C:\Users\UserName\iCloudDrive\web\ssi_server.py", line 37, in __init__
SimpleHTTPRequestHandler.__init__(self, request, client_address, server)
File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\http\server.py", line 651, in __init__
super().__init__(*args, **kwargs)
File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\socketserver.py", line 747, in __init__
self.handle()
File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\http\server.py", line 425, in handle
self.handle_one_request()
File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\http\server.py", line 413, in handle_one_request
method()
本文長すぎの為続きは次に書きます
[]
[ここ壊れてます]

928 名前:デフォルトの名無しさん [2022/08/21(日) 14:46:16.53 ID:HDFqY1eo.net]
続きです。


File "C:\Users\UserName\iCloudDrive\web\ssi_server.py", line 40, in do_GET
SimpleHTTPRequestHandler.do_GET(self)
File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\http\server.py", line 655, in do_GET
f = self.send_head()
File "C:\Users\UserName\AppData\Local\Programs\Python\Python310\lib\http\server.py", line 679, in send_head
path = self.translate_path(self.path)
File "C:\Users\UserName\iCloudDrive\web\ssi_server.py", line 57, in translate_path
content = ssi.InlineIncludes(fs_path, path)
File "C:\Users\UserName\iCloudDrive\web\ssi.py", line 31, in InlineIncludes
content = open(path).read()
UnicodeDecodeError: 'cp932' codec can't decode byte 0x84 in position 1163: illegal multibyte sequence
----------------------------------------



929 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
GITって何て読むの?
じっと?ぎっと?

930 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 15:41:28.40 ID:gzL+j7A8.net]
kit
git

931 名前:デフォルトの名無しさん [2022/08/21(日) 15:50:29.96 ID:Tt3lkFsn.net]
>>888
え、上が当たり前の感覚なんだけど
昔の人は下の状況でどうやってコード書いてたの? 引数とかオプションとかメソッドとか
ソースあたったりdir連打?

932 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 15:50:38.42 ID:tAy7F/Zf.net]
>>892
たぶんこれでいけるんじゃね
content = open(path, encoding = "utf-8").read()

933 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
>>888
その比較は型ヒント関係ないやろ

934 名前:デフォルトの名無しさん [[ここ壊れてます] .net]
>>895
help

935 名前:デフォルトの名無しさん [[ここ壊れてます] .net]
>>896
ありがとうございます。
まだ上手く直せていないのですが、試していたらindex.htmlに日本語があるとWindowsではエラーが出ることがわかりました。
ssi_server.py、ssi.pyで正しく日本語を読むようにすればいいということでしょうか。

936 名前:デフォルトの名無しさん [[ここ壊れてます] .net]
>>896
ssi.pyの31行目を教えていただいたものに書き換えても駄目でした。。。
他に試してみることがあればぜひ教えてください。お願いします。

937 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
tensorflow Liteというのがあって、int8とかでTPU使うと計算が速いらしいのですが、調べても使い方が複雑すぎていまいちよくわかりません
初心者にもわかりやすくまとまってるサイトはありま

938 名前:ケんか?
もしくはどなたかが簡潔にまとめていただけると助かります
[]
[ここ壊れてます]



939 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
どこまで分かってるか分かってないか書いたほうがいいです

940 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 17:32:33.39 ID:4RZQsnIa.net]
>>902
converter = tensorflow.lite.TFLiteConverter.from_saved_model(export_dir)
tflite_model = converter.convert()
とすれば変換できるみたいですが、まずtensorflow.lite.TFLiteConverterがありません
私の環境ではtensorflow.python.lite.TFLiteConverterかなと思いましたが、ありません
tensorflow.lite.pythonにTFLiteConverterではなくtflite_convertがあるのを見つけました
tflite_convert.dtypes.int8というのが存在するので、これを設定すればいいのかなとは思うのですが
あと何したらいいのか見当がつきません

941 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 17:50:14.70 ID:y+zMOwhn.net]
>>899
index.htmlは何の文字コードで保存されてるの?
Linuxで動いてるのと同じならUTF-8だと思うけど、Windows側で弄った時に文字コード変わってると
ややこしいから確認したい

942 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 17:56:00.04 ID:y+zMOwhn.net]
>>900でもそうだけど
ダメだった時に同じエラーが出たのか、違うエラーが出たのかははっきり書いた方が良い
エンコーディング指定をこれにしても同じ結果になる?
content = open(path,encoding='utf-8_sig').read()

943 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 18:09:49.63 ID:YEW47Y5U.net]
ウェブ系など、すべてのシステムはUTF-8

でも、Windows だけは、CP932(shift-jis)。
5ch も、sjis だけどw

こういうシステムは普通はない

944 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 18:14:09.27 ID:YEW47Y5U.net]
>>892
の最後の行に書いてある

>UnicodeDecodeError: 'cp932' codec can't decode byte 0x84 in position 1163: illegal multibyte sequence

UnicodeDecodeError: 'cp932'
cp932 でしょ?

945 名前:デフォルトの名無しさん [2022/08/21(日) 18:17:56.59 ID:HDFqY1eo.net]
>>904-905
content = open(path,encoding='utf-8_sig').read()
で解決しました!
index.htmlはUTF-8で保存されていました。
後学のために単にutf-8だったときのエラーメッセージと元のエラーメッセージの比較をしようと思ったのですが、
utf-8指定でも動作するようになってしまって、その点はよくわからずでした。
(最初のときは違う行に書いてしまったかもしれません)

レベルが低くせっかく即答いただいたのに手間取ってすみませんでした。ありがとうございました。

946 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
今日初めてPython落としました!
何からやったらいいのかな?

947 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
まずは交番に問い合わせ

948 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
ニシキヘビ属(Python)は、爬虫綱有鱗目ニシキヘビ科(ボア科ニシキヘビ亜科とする説もあり)に属する属。ニシキヘビ科の模式属。



949 名前:デフォルトの名無しさん [2022/08/21(日) 21:56:34.82 ID:uqbZs7r8.net]
class Foo():
__def __init__(self, bar:Bar):
____self.bar = bar

他のクラスのインスタンスをselfで受けるのって慣習ですか?
特に必要なければしなくてもよい?

950 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 22:08:55.27 ID:pxrRhRxl.net]
>>912
質問の意図がよく分からない

FooのインスタンスがBarのインスタンスに依存してて
コンストラクタで依存するインスタンスを受け取って参照を保持しておきたいというのがそのコードの意味

951 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 22:36:44.36 ID:m1bd5huk.net]
ちんちんシュッシユ

952 名前:デフォルトの名無しさん [2022/08/21(日) 22:37:39.35 ID:uqbZs7r8.net]
>>913
fooはインスタンス生成時点のbarのインスタンス情報が要るけど
生成後は要らない、他のメソッドで使わないとき、self.barで保持する必要がないと思うんだけど、そういうコードあんまり見たことないなーと思って

def Foo():
__init(self, bar):
____x = bar.baz[0] * 2
____self.calc(bar.data)

とかでいいときもあると思うんだけど
だいたいインスタンス変数にするだしょ
なんか理由あんのかなっていう

def Foo():
__init(self, bar):
____self.bar = bar
____x = self.bar.baz[0] * 2
____self.calc(self.bar.data)

953 名前:デフォルトの名無しさん [2022/08/21(日) 23:00:36.99 ID:sTNlugjb.net]
何見たのか知らないけど保持する必要がない

954 名前:ならインスタンス変数にする必要ないね []
[ここ壊れてます]

955 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 23:15:46.41 ID:YEW47Y5U.net]
is-a・継承・一種じゃなくて、has-a・包含・部品化でしょ

Foo は、Bar という部品を持っている

956 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 07:03:46.35 ID:nh7qwDlg.net]
どなたか>>903わかりませんか?

957 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 08:53:29.31 ID:/DEJsMLY.net]
>>915
> とかでいいときもあると思うんだけど
だいたいインスタンス変数にするだしょ

ルールも慣例もないから君がみた例がそうだっただけ
ただコンストラクタで受けるとき普通はクラス全体として依存するからインスタンス変数で受けることが多いね

まだはやいと思うけどコード設計レベルの話だと、依存しない型をコンストラクタ引数に持つのは余計な情報を含み生成コストが高くなるから、本当に必要な情報だけコンストラクタで渡すか、ファクトリメソッド(staticmethodかクラス外のただの関数)を経由すると良い

958 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
>>903
>まずtensorflow.lite.TFLiteConverterがありません
Python 3.10 にtensorflow入れて確認したけど、あるよ
ちなみにtensorflow のバージョンは2.9.1



959 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
統一教会は半島人の醜さを如実に表してる

960 名前:デフォルトの名無しさん [2022/08/22(月) 14:10:57.26 ID:KX6mg0Ol.net]
質問が既に触っちゃいけない人レベルだと答える気も起きない

961 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 17:08:51.25 ID:vrjH2pLG.net]
>>920
こちらは2.11.0と出ました
こんな感じです
どっとup.org/uploda/どっとup.org2859768.png

962 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 17:09:07.20 ID:vrjH2pLG.net]
あ、Pythonは3.10.6です

963 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 18:48:00.04 ID:KAheMTvm.net]
ちなみに、tensorflow.kerasも、tensorflow.python.kerasになってます

964 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 19:13:09.43 ID:YpfCjhrS.net]
>>924
こちらはIDLEでやってるけど、そちらは何でやってるの?

>>>import tensorflow as tf
>>>tf.lite.TFLiteConverter
<class 'tensorflow.lite.python.lite.TFLiteConverterV2'>

と出るから、あなたの環境?ではtensorflow.lite.python.lite.TFLiteConverterV2 でできるかも?

965 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 19:19:54.92 ID:mGTda2af.net]
>>926
おおお、なんか出ました!!!
ちなみにVSCodeです
これをTFLiteConverterだと思って使えばいいんですね
ありがとうございます

966 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 19:38:48.82 ID:YpfCjhrS.net]
ふぅ〜〜、、また迷える子羊を救ってしまったオレはメシア! >>922はウンコ!!

967 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 19:44:46.61 ID:7dOE9g6n.net]
×触っちゃいけない
〇自分のレベルでは触れない

968 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 20:41:16.68 ID:xuCaDQYT.net]
(悪い)



969 名前:デフォルトの名無しさん mailto:sage [2022/08/23(火) 07:46:45.41 ID:AXaElLrn.net]
かっこ悪い

970 名前:デフォルトの名無しさん mailto:sage [2022/08/23(火) 11:45:38.02 ID:C7QGzGi8.net]
(インテグラ)

971 名前:デフォルトの名無しさん mailto:sage [2022/08/23(火) 15:21:34.49 ID:VG0bs36n.net]
Python的にはタプル

972 名前:デフォルトの名無しさん [2022/08/23(火) 18:20:21.00 ID:QvfGPIA0.net]
スクレイピングの勉強でも始めようと思って
FANZAから持ってるエロゲーのデータ取得しようと思ったけど「18歳以上ですか?」のページに飛ばされるからうまくいかないんだよな

それでぐぐってみたらちゃんと回避する方法も載っててさすがエロは人類の英知だなって

973 名前:デフォルトの名無しさん [2022/08/23(火) 18:21:32.45 ID:QvfGPIA0.net]
で、もしかして商品データのAPIとかあるんじゃないかと調べたら普通にあるじゃん
FANZAでAPIの使い方も学べてしまうわけだ

974 名前:デフォルトの名無しさん mailto:sage [2022/08/23(火) 21:00:11.70 ID:zoEAEgny.net]
プログラムが<b></b>で囲まれてるのがあるんですが、どういう意味がありますか?

975 名前:デフォルトの名無しさん mailto:sage [2022/08/24(水) 11:40:37.72 ID:GCuLQfVh.net]
def mySort(x):
_return x-n

ary=sorted(ary,key=mySort)

上記の様なソートで

976 名前:mySort関数に別の引数(n)を
与えたい場合はどのようにすれば良いのでしょうか?
[]
[ここ壊れてます]

977 名前:デフォルトの名無しさん [2022/08/24(水) 11:40:54.28 ID:GCuLQfVh.net]
age忘れたのでageます

978 名前:デフォルトの名無しさん mailto:sage [2022/08/24(水) 12:06:03.74 ID:nMDP5IX7.net]
>>936
<b></b> は、HTML のタグ。bold・太字



979 名前:デフォルトの名無しさん mailto:sage [2022/08/24(水) 13:10:02.55 ID:Q8Mi5AsJ.net]
>>937
functoolのpartialとか
lambdaでclosureとか

980 名前:デフォルトの名無しさん mailto:sage [2022/08/24(水) 13:42:19.22 ID:GCuLQfVh.net]
>>940 ありがとうございます。以下のような感じでいけました。
def sortX(n):
_def sub(x):
__return x-n
_return sub
ary=sorted(ary,key=mySort(5))

981 名前:デフォルトの名無しさん mailto:sage [2022/08/24(水) 13:44:20.36 ID:GCuLQfVh.net]
どうでもいいけど、sortX(n)はmySort(n)でした

982 名前:デフォルトの名無しさん mailto:sage [2022/08/24(水) 17:14:42.06 ID:MmGWx16i.net]
比較関数の名前はmyCmp()とかの方がよくないか

983 名前:デフォルトの名無しさん mailto:sage [2022/08/24(水) 18:49:27.66 ID:9+/sji0l.net]
比較関数そのものじゃないのでgen_my_cmpとかに死体

984 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 11:52:57.48 ID:fZ4fACWe.net]
floor が「切り捨て」なのはどういう意味なんだろう?
建物の「階」において、たとえば「2.5階」の高さがあったとしてもそれは2階の範疇、という理解でいいのか?

985 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 12:17:01.44 ID:t8dBENVC.net]
>>945
まぁ…ある意味?floorは床(底)、ceilは天井。金融でも
動詞だと倒す、床に押しつける的な意味合いも持つようだね

986 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 12:18:32.67 ID:07FV37Yy.net]
>>945
ガウス記号って学校で習わなかったのか?

987 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 12:35:27.45 ID:T8QO1Ud9.net]
習ったかもしんないけど、習った時以外に使ったことないな

988 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 19:50:52.48 ID:JQLsrPvi.net]
フレームワークスレ動いてないのでここで

jinja2のmacroって1つのmacroにつき1ファイル必要ですか?
便利だけど結構なファイル量になりそう



989 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 19:53:38.52 ID:JQLsrPvi.net]
できそうですね
自決しましたすみません

990 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 22:12:05.52 ID:onQDGrDv.net]
潔い最期であった

991 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 23:23:20.07 ID:11s99DpV.net]
ヒットアンドブローを書いてみました
ここは直した方がいい、って箇所がありましたら教えて頂きたいです
よろしくお願いします

https://paiza.io/projects/V9PHgwFh2EAyhgA2PxxUbQ

992 名前:デフォルトの名無しさん [2022/08/25(木) 23:48:36.58 ID:C7eFIied.net]
3文字以下を入力したらエラー

993 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 04:59:27.97 ID:8E2pwf5q.net]
>>952
数値チェック、桁数チェック、重複チェック追加
blowの計算が違う
2重ループの変数がすべてiなのはややこしい
answer_list、input_list、リストにするメリットを感じない

994 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 05:00:05.01 ID:8E2pwf5q.net]
import random
answer_list_int = []
while len(answer_list_int) < 4:
____random_number = random.randint(0, 9)
____if random_number not in answer_list_int:
________answer_list_int.append(random_number)
answer_str = "".join(map(str, answer_list_int))
print('''\
数当てゲームをします!
4桁の重複しない数字を当てて下さい!
入力のチャンスは7回までです
'終了する場合はexitと入力して下さい
''')
for i in range(7):
____while True:
________input_number_str = input(f'{i + 1}回目 4桁の重複しない数字を入力して下さい->')
________if input_number_str == 'exit' or (len(input_number_str) == 4 and input_number_str.isdecimal() and len(set(input_number_str)) == 4):
____________break
____hit = len([j for j in zip(input_number_str, answer_str) if j[0] == j[1]])
____if

995 名前:input_number_str == 'exit':
________break
____print(f'hitは{hit}です!')
____if hit == 4:
________print('クリアです!おめでとう!')
________break
____print(f'blowは{len(set(input_number_str) & set(answer_str)) - hit}です!\n')
if hit != 4:
____print(f'残念!当たりは{answer_str}でした!')
[]
[ここ壊れてます]

996 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 07:33:07.60 ID:90ir5d7g.net]
また人形遊びか

997 名前:デフォルトの名無しさん [2022/08/26(金) 10:37:48.28 ID:i2SIEm4o.net]
つまらんな
人間が出題してPC(または鯖)に解かせるhit&blowを描け

998 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 14:03:10.97 ID:b48ovCTY.net]
重複しないならシャッフルして作る方が好み
こんな感じの
answer_list_int = random.sample(range(10),10)[:4]

>>955
細かい事だけど
isdecimal()って全角数字もTrueになりそうな



999 名前:952 mailto:sage [2022/08/26(金) 15:53:44.20 ID:YT1F4ulB.net]
レスありがとうございました!
いろいろ改善してみたいと思います

1000 名前:952 mailto:sage [2022/08/26(金) 18:09:23.80 ID:YT1F4ulB.net]
修正しました
ややネストが深くなってしまいましたが

https://paiza.io/projects/nUxI-yeQLIlZSBGA4dmcKA

1001 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 19:10:15.58 ID:8E2pwf5q.net]
>>960
自分のスタイルで書けばいいと思うけど最終行はいかがなものか
print(f'\n残念!当たりは{"".join(answer_list)}でした!')

1002 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 21:56:17.10 ID:qaneYf7D.net]
標準ライブラリだけで、ローカルタイムゾーンのoffset値だけ取得したい(日本なら+9みたいな)のですが、直接取得できる方法などありますか?

1003 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 22:05:56.45 ID:Iy9DcYfZ.net]
マニュアル読め

1004 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 22:40:57.28 ID:qaneYf7D.net]
time.timezone / 3600
(→Asia/Tokyoだと -9 になる)
が一番簡素ですかね

1005 名前:952 mailto:sage [2022/08/26(金) 22:50:13.39 ID:YT1F4ulB.net]
>>961
ありがとうございます

もう1つだけどうしても気になる箇所があるのですが、
>>960の21行目で定義しているinput_number_strを、無意識のうちに
for文の外で使っちゃってるのですが、なぜエラーにならないのですかね?
Pythonではブロックは無視していい仕様なんですか?

1006 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 23:41:59.18 ID:8E2pwf5q.net]
>>965
関数ブロック(def/lambda)だけ考えればいい

1007 名前:952 mailto:sage [2022/08/27(土) 00:45:11.54 ID:eQp61XjW.net]
>>966
すごい仕様ですね、ちょっと受け入れるのに時間かかりそうです
ありがとうございました

1008 名前:デフォルトの名無しさん mailto:sage [2022/08/27(土) 10:36:29.81 ID:iQeLdPnf.net]
SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation:
えいちちーぴーえす://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy

これはどうしろとおっしゃっているのですか?
data['column'][i]=(2**x)
こういう式に文句言われたんですが



1009 名前:デフォルトの名無しさん [2022/08/27(土) 11:13:27.05 ID:WyESGIww.net]
その警告文で検索したら秒で解決するけど、しなかった?

1010 名前:デフォルトの名無しさん mailto:sage [2022/08/27(土) 11:33:42.24 ID:z31K+Zx9.net]
pd.set_option('mode.chained_assignment', None)

1011 名前:デフォルトの名無しさん mailto:sage [2022/08/27(土) 13:32:06.26 ID:BTzbpX5q.net]
よくまとまってる
https://www.dataquest.io/blog/settingwithcopywarning/
https://linus-mk.はてぶろ.com/えんとり/2019/02/02/200000
https://linus-mk.はてぶろ.com/えんとり/2019/03/14/235402
https://linus-mk.はてぶろ.com/えんとり/2019/05/18/161328

1012 名前:デフォルトの名無しさん [2022/08/27(土) 14:42:22.60 ID:n5VuK+5f.net]
奥が深い


1013 名前:タズブズブ []
[ここ壊れてます]

1014 名前:ややや mailto:vision_xxx@icloud.com [2022/08/27(土) 20:00:28.28 ID:IQqR6XHY.net]
https://qiita.com/mimuro_syunya/items/2464cd2404b67ea5da56

上のサイトを参考にしてジュピターノートブックからサイトの最後の方にあるソースコードをコピペして最後の3行をGetメソッドで指定したURLに飛びませんでした。
最後の3行を変更せずにやっても出来ませんでした!

上記のサイトの実行コマンドをbotファイルにするくだりはやってます。

目立ったエラーなどは現在無いです。


ブラウザ立ち上げた後にそのまま処理を行うにはどうすれば良いでしょうか?

1015 名前:デフォルトの名無しさん mailto:sage [2022/08/27(土) 21:29:38.61 ID:RK2Xjm2V.net]
日時と得点からなる表Aがあったとします
最高得点が更新された履歴の表を作りたいです
Aの各要素にその日時より古い日時のAの全要素をouter joinかmergeでくっつけて、
くっつけた表の部分をgroupbyしてmaxを求め、
各要素の得点とmaxの得点が一致しているものだけをselectしたいのですが、
SQLならできるのにpandasではやり方がいまいちわかりません
普通にmergeしただけだと共通項があるものしかくっつけられないです
どう書けばいいか教えてください

1016 名前:デフォルトの名無しさん mailto:sage [2022/08/27(土) 22:11:52.80 ID:8j5Nb3+9.net]
>>974
日時の順にループで1行ずつ最高点を更新したかどうかを判定して
更新してれば新しい表に(日時, 得点)を追記していけばいいよ
O(n)なのでouter joinするやり方よりも断然効率的

1017 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 09:44:53.82 ID:my7A80XW.net]
history=model.fit(x,t,epochs=epochnum,batch_size=batchnum,callbacks=[checkpoint,lr])
この行を実行すると、
Epoch 101/2000
1/1 [==============================] - ETA: 0s - loss: 0.11/1 [==============================] - 0s 3ms/step - loss: 0.1453 - mae: 0.2880
Epoch 102/2000
1/1 [==============================] - ETA: 0s - loss: 0.11/1 [==============================] - 0s 5ms/step - loss: 0.1452 - mae: 0.2888
などと出てきてしまいます
・完全に黙らせる場合
・Epoch数だけ表示させる場合
どうしたらいいでしょうか?

1018 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 16:01:50.37 ID:kZD7TOdo.net]
自己解決しました
失礼しました



1019 名前:デフォルトの名無しさん [2022/08/28(日) 16:36:09.29 ID:q65Nt2bT.net]
解決法も書いてってや
後輩のために

1020 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 17:39:31.88 ID:ULmp/dD0.net]
失礼します
class内のメソッド宣言の際に、1つ目の引数にselfを必ず入れなければならない
理由や背景が何となくしか分かりません
それと、selfはJavaで言う所のthisと同じようなものと考えてよいですか?

1021 名前:デフォルトの名無しさん [2022/08/28(日) 17:47:12.52 ID:q65Nt2bT.net]
そう
別にthisでもいいよ。selfでなく

1022 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 18:48:06.80 ID:ScmkE54Q.net]
他のOSでの挙動は分からないけどWindows版Pythonで
socketのrecvで受信待機している時に他のpyファイルを動かすと動作が停止してしまいます
終了ではなく永遠に待機している感じ
recv中に例外エラーも出ないのですが対処法ありますか?

1023 名前:979 mailto:sage [2022/08/28(日) 19:22:25.55 ID:ULmp/dD0.net]
>>980
ありがとうございました

1024 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 20:31:29.47 ID:A7P8ZEj/.net]
40代未経験だがPython覚えればプログラマとして就職できる?

1025 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 20:42:53.44 ID:5PlXdxXB.net]
他の業務知識があれば出来るんじゃね?

研究者は無理やろ

1026 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 21:04:51.02 ID:K7gdf/So.net]
求人数はJavaとJavaScriptとPHPの方が多いのだわ
PythonはM

1027 名前:L系の求人が多いことを考えると
未経験から最初に業界に首をねじ込むための言語としては
あんまりおすすめせんのだわ
[]
[ここ壊れてます]

1028 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 21:05:19.00 ID:K7gdf/So.net]
あ、985が立てるのか…



1029 名前:デフォルトの名無しさん [2022/08/28(日) 21:25:02.87 ID:0hsZj3lg.net]
cudaで処理速度が20万倍っていうデータがあるんだけど
みんなはどれくらいの速度が適性だと思う?

1030 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 22:33:49.95 ID:gOapjWvD.net]
>>983
文系で未経験者の王道は、Ruby on Rails でポートフォリオを作って転職する

YouTube で有名な雑食系エンジニア・KENTA の初心者向けRailsサロンとか、
RUNTEQ、東京フリーランスのデイトラなど

かよちんchannel

【半年間使ってわかった】PythonのwebフレームワークDjangoを学ぶメリット・デメリット
www.youtube.com/watch?v=783JIyyyxMk

かよちんは未経験の大学生で、Railsでポートフォリオを作って就職した。
1年運用で働いたが、開発したかったので転職した。
転職先では、Django で開発している

彼女は、初心者にはDjangoよりも、Railsを勧めている

理系なら大学院数学科とか、
AWS Certified Machine Learning(機械学習) - Specialty の資格があれば強い

1031 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 23:01:16.78 ID:Uxqu4oWF.net]
>>970 はアカン例やろ

1032 名前:デフォルトの名無しさん mailto:sage [2022/08/28(日) 23:04:54.48 ID:n2t07jCF.net]
速ければ速いほどよい

1033 名前:デフォルトの名無しさん [2022/08/29(月) 14:20:05.87 ID:HM6f0MF8.net]
q="太郎君の年齢は?"
ans=12
ans2="十二"


while True:
try:
text=int(input(q))
if text==ans:
print("正解")
elif text==ans2:
print("正解")
break
except:
print("不正解")

これで12、十二とinputで入力すると正解と
それ以外だったら不正解で最初に戻ると進行するようにしたいのですが
12以外だと全部不正解になってしまいます

1034 名前:デフォルトの名無しさん mailto:sage [2022/08/29(月) 14:31:09.09 ID:IoynIqHg.net]
>>991
text=int(input(q))
でint型にキャストしようしてるんだから、例えば十二とか入れたら
文字列⇒数値へキャストできずに例外が発生してexcept:のルートに入っちゃうだろ

1035 名前:デフォルトの名無しさん mailto:sage [2022/08/29(月) 14:31:14.78 ID:lEy6aHnj.net]
せめて質問文らしく書こうな。
text = int("十二")
の結果が0だからだよ。
int()をなくして12も"12"に変更して、全て文字列で扱うようにすれば

1036 名前:デフォルトの名無しさん [2022/08/29(月) 14:35:17.73 ID:SW+mNQvs.net]
慣れないうちは簡単な書き方しよう
ごちゃごちゃ詰め込まない

while True:
__print ('年齢は?')
__ret = input()
__if ret == 12:
____print('ok')
____break
__elif ret == '十二':
__else:
____print('no')

if ret in [12, 12, '十二']
でもよい

1037 名前:デフォルトの名無しさん [2022/08/29(月) 14:38:41.17 ID:HM6f0MF8.net]
>>992-993
ありがとうございます
自分の場合まずint()からしてよく理解してなかったです

1038 名前:デフォルトの名無しさん [2022/08/29(月) 14:42:50.09 ID:SW+mNQvs.net]
うそ
ret = input()
ret in ['12', '12', '十二']
だわ

漢数字や全角ありうるならint型に変換しないほうがよいぬ



1039 名前:デフォルトの名無しさん mailto:sage [2022/08/29(月) 14:44:38.06 ID:eTTKQ396.net]
>>994
慣れないうちは動作確認しよう
エラーは詰め込まない

1040 名前:デフォルトの名無しさん [2022/08/29(月) 15:21:46.13 ID:XtVEyX62.net]
9+9+980

1041 名前:デフォルトの名無しさん [2022/08/29(月) 15:22:51.65 ID:XtVEyX62.net]
うめ

1042 名前:デフォルトの名無しさん [2022/08/29(月) 15:23:06.50 ID:XtVEyX62.net]
https://mevius.5ch.net/test/read.cgi/tech/1653540315/

1043 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 98日 16時間 57分 58秒

1044 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<284KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef