!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。
・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
エラー文(勝手に省略orスクショうp等の横着禁止)と
おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。
★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/ Run Code機能あり。
ttp://ideone.com/ デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/ まずまずシンプル。
ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/
●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その57
http://mevius.5ch.net/test/read.cgi/tech/1653225908/
〇前スレ〇 Pythonのお勉強 Part66
http://mevius.5ch.net/test/read.cgi/tech/1636970383/
次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ###
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
Pythonのお勉強 Part67
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ aa97-ncNf)
2022/05/26(木) 13:45:15.95ID:veL/wiLO0175567 (スップ Sdca-PXuc)
2022/06/06(月) 13:06:38.95ID:oBW+89oQd176デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/06(月) 13:19:09.72ID:vU8u/TBb0 ジェネレータにlenが無いのは手抜きではなくて本質的な話だよな
177デフォルトの名無しさん (ワンミングク MM5a-La+v)
2022/06/06(月) 14:07:03.38ID:vZsNJksDM len(list(filter(lambda x: x>n, ln)))
これでいけると思う
何かフィルターした後のリストの長さってのがぱっと見でわかるから個人的には内包表記よりこっちのがいいな
自分が内包表記が苦手なのもあるけど
これでいけると思う
何かフィルターした後のリストの長さってのがぱっと見でわかるから個人的には内包表記よりこっちのがいいな
自分が内包表記が苦手なのもあるけど
178デフォルトの名無しさん (スップ Sdca-PXuc)
2022/06/06(月) 14:19:50.83ID:oLiAgBI4d def number_of_big_number(ln, n):
f = filter(lambda x: x>n, ln)
m = map(lambda x: 1, f)
return sum(m)
よく考えたらこれでよくね?
f = filter(lambda x: x>n, ln)
m = map(lambda x: 1, f)
return sum(m)
よく考えたらこれでよくね?
179デフォルトの名無しさん (テテンテンテン MMde-1n2n)
2022/06/06(月) 14:46:26.36ID:sRSbc3ijM リストはミュータブルなのにa, b = [1, 2, 3]; b = []; len(a);len(b)で3, 0となるのは何故なのさ?
180デフォルトの名無しさん (ワッチョイ 8646-fRoS)
2022/06/06(月) 14:58:54.17ID:v7exk6pA0 a = b = [1, 2, 3]; b = []; print(a, b)
a = b = [1, 2, 3]; b[:] = []; print(a, b)
a = b = [1, 2, 3]; b[:] = []; print(a, b)
181デフォルトの名無しさん (ワッチョイ 1a32-yFCf)
2022/06/06(月) 15:00:14.40ID:wz8sfihq0 map(lambda x: 1,...はメモリ上へのlist化をさける苦肉の策だろうけど
前提条件なんか無視してsum(1 for x in ln if x > n)したほうが良さそう
>>179
なぜ両方空にならないのかという意味であれば、同じ参照でも変数は個別に存在し
単純代入は新しい参照先の割り当てに過ぎず、元の参照先を編集してる訳ではない
前提条件なんか無視してsum(1 for x in ln if x > n)したほうが良さそう
>>179
なぜ両方空にならないのかという意味であれば、同じ参照でも変数は個別に存在し
単純代入は新しい参照先の割り当てに過ぎず、元の参照先を編集してる訳ではない
182デフォルトの名無しさん
2022/06/06(月) 15:03:53.80ID:8NtqgJJW a=[1,2,3]
b=a
print(a,b)
b=[]
print(a,b)
b=a
b.append(4)
print(a,b)
b.pop()
print(a,b)
>>[1, 2, 3] [1, 2, 3]
>>[1, 2, 3] []
>>[1, 2, 3, 4] [1, 2, 3, 4]
>>[1, 2, 3] [1, 2, 3]
b=a
print(a,b)
b=[]
print(a,b)
b=a
b.append(4)
print(a,b)
b.pop()
print(a,b)
>>[1, 2, 3] [1, 2, 3]
>>[1, 2, 3] []
>>[1, 2, 3, 4] [1, 2, 3, 4]
>>[1, 2, 3] [1, 2, 3]
183デフォルトの名無しさん (アウアウウー Sa11-fRoS)
2022/06/06(月) 15:04:51.12ID:Ug3DHjCKa sum(map(lambda x: x > n, In))
184デフォルトの名無しさん (ワッチョイ 1a32-yFCf)
2022/06/06(月) 15:22:37.41ID:wz8sfihq0 なるほどPythonic、ブールは整数の派生型だったな。sum(map(n.__lt__, ln))で済む事もあるか
185デフォルトの名無しさん (テテンテンテン MMde-1n2n)
2022/06/06(月) 15:33:43.92ID:sRSbc3ijM ああ分かったよ参照地の値渡しってこんなんだったな
参照渡しとごっちゃになってた
ややこしいなーおい
参照渡しとごっちゃになってた
ややこしいなーおい
186デフォルトの名無しさん (JP 0H71-4pLq)
2022/06/06(月) 16:39:39.60ID:m98Jb+yzH sumレベルだと、reduceする意味ないよな、長くなるだけで
functools.reduce(lambda a, x: a + int(x > n), ln) とは書けるが
もっと特殊な集計をしたいのならreduceは有り得そうな気がするが
functools.reduce(lambda a, x: a + int(x > n), ln) とは書けるが
もっと特殊な集計をしたいのならreduceは有り得そうな気がするが
187デフォルトの名無しさん (JP 0H71-4pLq)
2022/06/06(月) 16:43:09.43ID:m98Jb+yzH sum(map(lambda x: x > n, In))
は、
sum(x > n for x in ln)
にもできるね。このforはfor「文」ではないしね
は、
sum(x > n for x in ln)
にもできるね。このforはfor「文」ではないしね
188デフォルトの名無しさん (ワッチョイ 6d01-n+i2)
2022/06/06(月) 21:04:54.69ID:OVrZnyn60 敢えてリスト内包で書いてみる
#ABCDEFGHIJKLMNOPQRSTUVWXYZ
#HOGEFIJKLMNPQRSTUVWXYZABCD
#上みたいにキーワードHOGEをもとにアルファベットを置換する暗号を作りたい
#まず暗号表の一番最初にHOGEと記載し、残りはHOGEの最後のEから続く形で
#FGHIとアルファベット通りに暗号表を埋め、Zに到達したらアルファベットの
#最初から埋める(ABCD...)。重複に注意したい。
import string
alphabets = list(string.ascii_uppercase)
key_string = list("HOGE")
cypher = []
cypher = key_string + [i for i
in alphabets
#リスト内包でキーワードの最後の文字Eの後にあり、
if alphabets.index(i) > alphabets.index(key_string[-1])
#かつキーワードに含まれていない文字のリストを作成
and i not in key_string]
#残りのアルファベットで後半を埋める
cypher += [i for i in alphabets if i not in cypher]
改行しても読みにくいですね。。。
#ABCDEFGHIJKLMNOPQRSTUVWXYZ
#HOGEFIJKLMNPQRSTUVWXYZABCD
#上みたいにキーワードHOGEをもとにアルファベットを置換する暗号を作りたい
#まず暗号表の一番最初にHOGEと記載し、残りはHOGEの最後のEから続く形で
#FGHIとアルファベット通りに暗号表を埋め、Zに到達したらアルファベットの
#最初から埋める(ABCD...)。重複に注意したい。
import string
alphabets = list(string.ascii_uppercase)
key_string = list("HOGE")
cypher = []
cypher = key_string + [i for i
in alphabets
#リスト内包でキーワードの最後の文字Eの後にあり、
if alphabets.index(i) > alphabets.index(key_string[-1])
#かつキーワードに含まれていない文字のリストを作成
and i not in key_string]
#残りのアルファベットで後半を埋める
cypher += [i for i in alphabets if i not in cypher]
改行しても読みにくいですね。。。
189デフォルトの名無しさん (ワッチョイ 9d97-GLPP)
2022/06/06(月) 21:41:41.07ID:oHO1A3NO0 itertools.repeatとか使ったら1行の内包表記で書ける気がするけどな。
190デフォルトの名無しさん (ワッチョイ 9d97-4pLq)
2022/06/06(月) 21:56:47.75ID:oHO1A3NO0 key_stringの重複排除も無理やりOrderedDictで実現しといた
import string
import itertools
from collections import OrderedDict
key_string = [*OrderedDict([(c, None) for c in 'HOGE']).keys()]
([*key_string] + [c2 for c2 in itertools.dropwhile(lambda c: c <= key_string[-1], string.ascii_uppercase * 2) if c2 not in key_string])[:26]
import string
import itertools
from collections import OrderedDict
key_string = [*OrderedDict([(c, None) for c in 'HOGE']).keys()]
([*key_string] + [c2 for c2 in itertools.dropwhile(lambda c: c <= key_string[-1], string.ascii_uppercase * 2) if c2 not in key_string])[:26]
191デフォルトの名無しさん (ワッチョイ 9d97-4pLq)
2022/06/06(月) 21:57:12.33ID:oHO1A3NO0 すまん最後の行はcypher = にしといてくれ
192デフォルトの名無しさん (ワッチョイ 8646-fRoS)
2022/06/06(月) 21:57:34.54ID:v7exk6pA0 i = alphabets.index(key_string[-1])
alphabets = alphabets[i:] + alphabets[:i]
cypher = key_string + [c for c in alphabets if c not in key_string]
alphabets = alphabets[i:] + alphabets[:i]
cypher = key_string + [c for c in alphabets if c not in key_string]
193デフォルトの名無しさん (ワッチョイ 6d01-n+i2)
2022/06/06(月) 22:33:35.11ID:OVrZnyn60194デフォルトの名無しさん (ブーイモ MM2e-106b)
2022/06/06(月) 22:35:12.91ID:AnrgIbHNM key_string = ‘HOGE’
alphabets = ‘’.join(reversed(ascii_uppercase.split(key_string[-1])))
cypher = key_string + ‘’.join(x for x in alphabets if x not in key_string)
ネストした内包表記ほどじゃないけど
メソッドチェーンで書けないからかなり読みにくい
実際作るなら各行を関数化して関数名で意図が伝わるようにする
alphabets = ‘’.join(reversed(ascii_uppercase.split(key_string[-1])))
cypher = key_string + ‘’.join(x for x in alphabets if x not in key_string)
ネストした内包表記ほどじゃないけど
メソッドチェーンで書けないからかなり読みにくい
実際作るなら各行を関数化して関数名で意図が伝わるようにする
195デフォルトの名無しさん (ブーイモ MM2e-106b)
2022/06/06(月) 22:40:48.17ID:AnrgIbHNM >>192のindexとsliceで入れ替えるほうがPythonっぽいかも
splitしてからreverseしてみたいに考えるのは他の言語の影響を強く受けてる
splitしてからreverseしてみたいに考えるのは他の言語の影響を強く受けてる
196デフォルトの名無しさん (スップ Sdca-PXuc)
2022/06/07(火) 17:29:22.71ID:TSpMo2rsd pandasってなぜパンダなの?
197デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/07(火) 17:38:59.82ID:MOJeClMf0 Pediatric Autoimmune Neuropsychiatric Disorders Associated with Streptococcal Infections
198デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/07(火) 17:53:38.32ID:MOJeClMf0 UnRAR.exe でrarの中身のリストを取ってくる時、sjisに無い文字が?になってしまう
7za.exe はutf-8で出力するモードがあって問題は起きないけど、UnRARはsjis固定ぽい
詰んでる?
7za.exe はutf-8で出力するモードがあって問題は起きないけど、UnRARはsjis固定ぽい
詰んでる?
199デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/07(火) 20:44:13.38ID:MOJeClMf0 よく判らんのが、コンソールに表示させるだけなら正しく表示される
ファイルにリダイレクトさせると化けてるというか?に置き換えられてる
恐らくそれと同じ理由で、subprocess.PIPEもおかしくなる
ファイルにリダイレクトさせると化けてるというか?に置き換えられてる
恐らくそれと同じ理由で、subprocess.PIPEもおかしくなる
200デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/07(火) 21:02:33.25ID:MOJeClMf0 7zaではなく7zにすればrarも扱えるので解決
201デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/08(水) 12:21:03.28ID:7ub2o1NQ0 for
try:
処理
except:
continue
finally:
後処理
みたいに書くと、finallyを無視してcontinueしてしまうのでは?と思ったけど
そんなことは無かった
try:
処理
except:
continue
finally:
後処理
みたいに書くと、finallyを無視してcontinueしてしまうのでは?と思ったけど
そんなことは無かった
202デフォルトの名無しさん (スフッ Sdea-5VDJ)
2022/06/08(水) 12:46:08.13ID:vcMlxkVMd 普通そんな書き方そもそもしない
203デフォルトの名無しさん (ガックシ 06de-ri9p)
2022/06/08(水) 12:51:55.05ID:cdI+dEzz6 変なとこに飛ばないためのfinally なので
204デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/08(水) 17:17:05.18ID:7ub2o1NQ0 文字列のリストがあって、先頭が#で始まっていない最初のものを取り出す
ループを使わずに書くには?
ループを使わずに書くには?
205デフォルトの名無しさん (ワッチョイ 8646-Q5o7)
2022/06/08(水) 17:20:35.02ID:E4mWgpqm0 そんなのループでいいけど
next(s for s in L if not s.startswith('#'))
next(s for s in L if not s.startswith('#'))
206デフォルトの名無しさん (ワッチョイ 6d01-n+i2)
2022/06/08(水) 17:21:15.32ID:AiIZO1YE0 >>204
[w for w in list if not w.startswith(“#”)]
[w for w in list if not w.startswith(“#”)]
207デフォルトの名無しさん (ワッチョイ 6d01-n+i2)
2022/06/08(水) 17:22:19.41ID:AiIZO1YE0 あ、その[1]か、最初だから
208デフォルトの名無しさん (ワッチョイ 6d01-n+i2)
2022/06/08(水) 17:22:54.21ID:AiIZO1YE0 ごめん0だった
209デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/08(水) 17:30:28.69ID:7ub2o1NQ0 next()はStopIterationが怖い
210デフォルトの名無しさん (ワッチョイ 8646-Q5o7)
2022/06/08(水) 17:31:33.09ID:E4mWgpqm0 第2引数
211デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/08(水) 17:39:20.66ID:7ub2o1NQ0 該当するものが無かった場合、デフォルトを設定しておいて、もしデフォルトだったら、とするか、
普通にエラーにしてtryで捕まえるのとどっちがいいだろう
エラーが出ないようにいろいろ配慮して書くより、何も考えずにエラーにする方が
python的な気がしてきた
普通にエラーにしてtryで捕まえるのとどっちがいいだろう
エラーが出ないようにいろいろ配慮して書くより、何も考えずにエラーにする方が
python的な気がしてきた
212デフォルトの名無しさん (ワッチョイ ea2c-oPJe)
2022/06/08(水) 17:48:28.41ID:xigHBt180 そんなもんpythonでなくとも一緒
213デフォルトの名無しさん (ワッチョイ 6d01-n+i2)
2022/06/08(水) 18:45:29.37ID:AiIZO1YE0 scrapyとかboto3の話もしたいなぁ
214デフォルトの名無しさん (ワッチョイ a933-Rebr)
2022/06/08(水) 22:58:19.98ID:9QcK/PFh0 例外処理は言語関係なく大事なので勉強してください
215デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/08(水) 23:11:29.92ID:7ub2o1NQ0 例外処理と言っちゃうと違うんだよな
予期せぬエラーではなく、正常系の処理でも積極的に例外を使う
関数の戻り値を見て判断、みたいなことを避ける
予期せぬエラーではなく、正常系の処理でも積極的に例外を使う
関数の戻り値を見て判断、みたいなことを避ける
216デフォルトの名無しさん (ワッチョイ 862c-Apbd)
2022/06/09(木) 00:31:03.46ID:wTBvvN970 >>198
7-zipのGUI 版の7z.exe については、以下に書いた。
773 が漏れ
【.cmd】 バッチファイルスクリプト %14 【.bat】
https://mevius.5ch.net/test/read.cgi/tech/1597442426/771-775
https://mevius.5ch.net/test/read.cgi/tech/1597442426/836
ただ本来、7z.exeはコマンド用じゃなく、画面操作用だから、
必ず、解凍先フォルダは空の状態で始めて下さい!
そこにファイルがあると、同じファイル名の場合に、
上書きしますかとか聞かれて、コマンドが止まる
だから本当は、7-zipのコマンド用実行ファイルを使った方がよいかも
7-zipのGUI 版の7z.exe については、以下に書いた。
773 が漏れ
【.cmd】 バッチファイルスクリプト %14 【.bat】
https://mevius.5ch.net/test/read.cgi/tech/1597442426/771-775
https://mevius.5ch.net/test/read.cgi/tech/1597442426/836
ただ本来、7z.exeはコマンド用じゃなく、画面操作用だから、
必ず、解凍先フォルダは空の状態で始めて下さい!
そこにファイルがあると、同じファイル名の場合に、
上書きしますかとか聞かれて、コマンドが止まる
だから本当は、7-zipのコマンド用実行ファイルを使った方がよいかも
217デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/09(木) 01:13:02.50ID:vb6k1Pem0 7zaに関しては困ってなくて、7zaと同様のことがunrarでできなくて困ってた
7zaではなく7zを使えばそっちはrarにも対応してるのでunrarは不要になる
7-Zip Extraコンソール板の最新のものでもrarに対応してないのが問題
理由がよく判らない
7zaではなく7zを使えばそっちはrarにも対応してるのでunrarは不要になる
7-Zip Extraコンソール板の最新のものでもrarに対応してないのが問題
理由がよく判らない
218デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/09(木) 08:46:42.58ID:vb6k1Pem0 class TestClass:
pass
a = TestClass()
a.member = 1
print(a.member)
これは特にエラーもなく動く
memberはどこに記憶されとるの?
pass
a = TestClass()
a.member = 1
print(a.member)
これは特にエラーもなく動く
memberはどこに記憶されとるの?
219デフォルトの名無しさん (ワッチョイ 862c-Apbd)
2022/06/09(木) 09:58:40.07ID:wTBvvN970 Ruby, JavaScript で言う、特異オブジェクト
そのインスタンスにだけ、外からmember が作られるが、
別のインスタンスには、memberは存在しない。
クラス内で作られたものではないから
a = TestClass( )
b = TestClass( )
a.member = 1
print( a.member ) #=> 1
print( b.member ) # エラー。memberは存在しない
そのインスタンスにだけ、外からmember が作られるが、
別のインスタンスには、memberは存在しない。
クラス内で作られたものではないから
a = TestClass( )
b = TestClass( )
a.member = 1
print( a.member ) #=> 1
print( b.member ) # エラー。memberは存在しない
220デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/09(木) 10:15:30.67ID:vb6k1Pem0 class定義というのは、形をきっちり決めるものではなくて、
その中で変数を作ればそれはあるし作らなければ無いというだけの話か
__init__() で作ってもいいし、生成後に作ってもいい
このクラスのメンバは以下の通りです、みたいな定義がどこにも無いから変だと思った
その中で変数を作ればそれはあるし作らなければ無いというだけの話か
__init__() で作ってもいいし、生成後に作ってもいい
このクラスのメンバは以下の通りです、みたいな定義がどこにも無いから変だと思った
221デフォルトの名無しさん (ワッチョイ 7db3-rMBA)
2022/06/09(木) 11:05:11.17ID:1tSt6fQl0222デフォルトの名無しさん (ワッチョイ 9d97-ZxTw)
2022/06/09(木) 14:48:29.51ID:KIKA+I2C0 50レスぐらい前で話題になってた、メソッドチェーン風のmap/filterは、toolzのpipeを使えばできそう。
>>> from toolz.functoolz import pipe
>>> import math
>>> pipe(range(100), lambda it: filter(lambda v: int(math.sqrt(v)) ** 2 == v, it), lambda it: map(lambda v: v * 100, it), list)
[0, 100, 400, 900, 1600, 2500, 3600, 4900, 6400, 8100]
これだとちょっとややこしいから、filterやmapをラップして、高階関数化しておく。
>>> def filter2(func):
>>> return lambda it: filter(func, it)
>>> def map2(func):
>>> return lambda it: map(func, it)
>>> pipe(range(100), filter2(lambda v: int(math.sqrt(v)) ** 2 == v), map2(lambda v: v * 100), list)
[0, 100, 400, 900, 1600, 2500, 3600, 4900, 6400, 8100]
んで、このfilter2, map2と同じものはtoolz.curriedの中にあるfilterやmapで用意されているっぽい。
>>> from toolz.functoolz import pipe
>>> import math
>>> pipe(range(100), lambda it: filter(lambda v: int(math.sqrt(v)) ** 2 == v, it), lambda it: map(lambda v: v * 100, it), list)
[0, 100, 400, 900, 1600, 2500, 3600, 4900, 6400, 8100]
これだとちょっとややこしいから、filterやmapをラップして、高階関数化しておく。
>>> def filter2(func):
>>> return lambda it: filter(func, it)
>>> def map2(func):
>>> return lambda it: map(func, it)
>>> pipe(range(100), filter2(lambda v: int(math.sqrt(v)) ** 2 == v), map2(lambda v: v * 100), list)
[0, 100, 400, 900, 1600, 2500, 3600, 4900, 6400, 8100]
んで、このfilter2, map2と同じものはtoolz.curriedの中にあるfilterやmapで用意されているっぽい。
223デフォルトの名無しさん (ワッチョイ 3e1f-ji3k)
2022/06/09(木) 16:59:32.72ID:oBeyd70Z0 リンク貼れないんですが、
AlphaGoを模したオセロAIを作る(2): RLポリシーネットワーク
というのを検索して出てくる記事で、
学習できないという結果があります
なぜできないか、どう改善すればいいかわかりますか?
AlphaGoを模したオセロAIを作る(2): RLポリシーネットワーク
というのを検索して出てくる記事で、
学習できないという結果があります
なぜできないか、どう改善すればいいかわかりますか?
224デフォルトの名無しさん (ワッチョイ 7db3-rMBA)
2022/06/09(木) 17:05:02.75ID:1tSt6fQl0 スレが適当でないし記事への質問なら投稿者に聞けば良いのでは?
225デフォルトの名無しさん (ワッチョイ ea3b-udyG)
2022/06/09(木) 17:24:01.80ID:vb6k1Pem0 オセロなんてある程度打ったら残りは完全読みだから、
計算力的に完全読みできるようになるまでの形勢判断になるんだろうな
計算力的に完全読みできるようになるまでの形勢判断になるんだろうな
226デフォルトの名無しさん (ブーイモ MMde-106b)
2022/06/09(木) 17:36:53.88ID:LsKlj9I4M227デフォルトの名無しさん (JP 0Hf2-eaTV)
2022/06/09(木) 17:39:01.04ID:2fubDR6qH >>224
検索してみたけど、投稿者がお手上げしてるぞw
検索してみたけど、投稿者がお手上げしてるぞw
228デフォルトの名無しさん (オッペケ Sred-TDkO)
2022/06/09(木) 18:41:58.73ID:+yYG9Gwqr alphaGOはもう古い手法だし作り方はそのへんに溢れてるんじゃないの?
昔論文読んでオセロで実装したことあるけど普通に動いたぞ
RLポリシーがおかしいのか?
昔論文読んでオセロで実装したことあるけど普通に動いたぞ
RLポリシーがおかしいのか?
229デフォルトの名無しさん (JP 0Hf2-nTiZ)
2022/06/09(木) 19:11:31.27ID:pDi0khGKH デュアルネットワークのモンテカルロさんはセルフプレイの考慮時間が長くてイライラする
230デフォルトの名無しさん (JP 0H71-ZxTw)
2022/06/10(金) 16:07:50.60ID:OtI7joU/H231デフォルトの名無しさん (ワッチョイ 6933-8oUt)
2022/06/10(金) 21:55:12.18ID:Shrpy6o40 pythonってインスタンス作るときにnewキーワードがないから
クラスと関数の見分けが付かなさそうなんだけどどうしてんの?
クラスと関数の見分けが付かなさそうなんだけどどうしてんの?
232デフォルトの名無しさん (ワッチョイ 2d14-ri9p)
2022/06/10(金) 22:11:39.38ID:/zky+6vC0 そんなに見分ける必要ある?名前を大文字で始めるみたいな習慣はあるけど
233デフォルトの名無しさん (ワッチョイ 6d01-5VDJ)
2022/06/10(金) 23:16:33.95ID:6DkeE7zK0 vscodeが教えてくれる
234デフォルトの名無しさん (ワッチョイ 6d32-Q5o7)
2022/06/10(金) 23:22:52.93ID:KSM5RFUb0 お袋より優しいvscode
235デフォルトの名無しさん (ワッチョイ 9d97-GLPP)
2022/06/10(金) 23:45:51.35ID:7XjGZ8fL0 コンストラクタ(一種の関数だ)と普通の関数を区別する必要ある?
普通の関数の中でコンストラクタ呼んでて戻り値がクラスのインスタンスだったら実質似たようなものではないか。ファクトリーパターン。
大事なのはコンストラクタと関数それぞれのドキュメントと、type hintじゃない?
普通の関数の中でコンストラクタ呼んでて戻り値がクラスのインスタンスだったら実質似たようなものではないか。ファクトリーパターン。
大事なのはコンストラクタと関数それぞれのドキュメントと、type hintじゃない?
236デフォルトの名無しさん (ワッチョイ 7f3b-3FeK)
2022/06/11(土) 00:04:48.58ID:rnNGlre+0 戻り値が返るような自然さで生成されるクラスオブジェクトならいいけど、
なんかとりあえず空のものをnewして、それをその後ずっと使い倒す、
みたいな流儀がオブジェクト指向にあって、それだとどれがnewか知りたい
なんかとりあえず空のものをnewして、それをその後ずっと使い倒す、
みたいな流儀がオブジェクト指向にあって、それだとどれがnewか知りたい
237デフォルトの名無しさん (ワッチョイ 2314-XBlO)
2022/06/11(土) 00:09:46.30ID:zjKZ7QUf0 Wenzel が元気すぎてpybind11の後継でnanobind というができてるそうな
238デフォルトの名無しさん (ワッチョイ f333-GGE9)
2022/06/11(土) 09:50:49.94ID:nz+Eexds0239デフォルトの名無しさん (JP 0H9f-USYz)
2022/06/11(土) 11:15:24.09ID:tfPbj1b+H >>236
どれがnewかわからないと破綻するって設計がアレじゃ…
どれがnewかわからないと破綻するって設計がアレじゃ…
240デフォルトの名無しさん (ブーイモ MM27-Uj9G)
2022/06/11(土) 12:05:53.99ID:4swSPTBXM Python以外ほとんど触ったことないけど、newの所在が分かって嬉しいのってc++のメモリ解放ぐらいじゃないの?
241デフォルトの名無しさん (ワッチョイ f333-Gp1N)
2022/06/11(土) 12:30:18.05ID:n44xIOE00 普通の言語だと
a = b.method() ← あっ、bはクラスなんだな って分かる
a = new b.class() ← あっ、newがあるからbはモジュールなんだな って分かる
newがないとクラスなのかモジュールなのかすら分からない
組み込みならともかく人が作ったやつだと八方塞がり
a = b.method() ← あっ、bはクラスなんだな って分かる
a = new b.class() ← あっ、newがあるからbはモジュールなんだな って分かる
newがないとクラスなのかモジュールなのかすら分からない
組み込みならともかく人が作ったやつだと八方塞がり
242デフォルトの名無しさん (スフッ Sd1f-LKEC)
2022/06/11(土) 12:32:11.65ID:dcBTjSKMd 俺はお前のレスが分からない
243デフォルトの名無しさん (スフッ Sd1f-LKEC)
2022/06/11(土) 12:38:24.57ID:dcBTjSKMd pythonの分かりやすいパッケージ体系でわざわざコード汚さんと分からんてまじですか…
javaとか他言語なんも使えなさそうなレベル低い人に合わせてもしょうがない
javaとか他言語なんも使えなさそうなレベル低い人に合わせてもしょうがない
244デフォルトの名無しさん (JP 0H07-USYz)
2022/06/11(土) 14:14:01.89ID:K+4Tu9T8H baka = aho.shine
gomi = Unko.manuke()
ちゃんと書け
gomi = Unko.manuke()
ちゃんと書け
245デフォルトの名無しさん (JP 0Hdf-YxVQ)
2022/06/11(土) 15:29:23.41ID:lH7yBnt7H カッコいい
246デフォルトの名無しさん (JP 0H07-USYz)
2022/06/11(土) 15:31:51.53ID:I74lpP1GH ところで
var = func()
って書けるけど、これ何かに使える? ただ書けちゃうだけ?
var = func()
って書けるけど、これ何かに使える? ただ書けちゃうだけ?
247デフォルトの名無しさん (アウアウウー Sa67-hiZJ)
2022/06/11(土) 16:52:52.16ID:h1ISo/Y7a >>241
初心者にウソを教えるな
初心者にウソを教えるな
248デフォルトの名無しさん (ワッチョイ 6397-uj9U)
2022/06/11(土) 17:35:13.69ID:GYyJ8Ce20 >>246
var = func()じゃあ単に引数なし関数を呼び出してるだけじゃない?
func = some_concrete_func
みたいなのはある
デザインパターンでいうストラテジーパターンかな?たとえば、ドローツールなんかで、いま選んでいるツールに応じてマウスイベントを処理するときに、
ツールが切り替わったとき(この場合は鉛筆ツール)に、
ondrag_func = pencil_on_drag_func
と代入しておけば、マウスイベントのハンドラでは、ツールのことを知らずに、ondrag_func(x, y)とかして呼び出せる
コールバック、関数ポインタ、言い方や似たような概念はいろいろあるけど、そこそこよく使うものだね
var = func()じゃあ単に引数なし関数を呼び出してるだけじゃない?
func = some_concrete_func
みたいなのはある
デザインパターンでいうストラテジーパターンかな?たとえば、ドローツールなんかで、いま選んでいるツールに応じてマウスイベントを処理するときに、
ツールが切り替わったとき(この場合は鉛筆ツール)に、
ondrag_func = pencil_on_drag_func
と代入しておけば、マウスイベントのハンドラでは、ツールのことを知らずに、ondrag_func(x, y)とかして呼び出せる
コールバック、関数ポインタ、言い方や似たような概念はいろいろあるけど、そこそこよく使うものだね
249デフォルトの名無しさん (ワッチョイ 7f3b-3FeK)
2022/06/11(土) 19:08:07.00ID:rnNGlre+0 docoptとargparseどっちがいい?
あるいはもっといいのある?
あるいはもっといいのある?
250デフォルトの名無しさん (ワッチョイ 7f3b-3FeK)
2022/06/12(日) 15:40:11.94ID:Qy7sGzN40 docoptは、いちいちドキュメント書くのー?と敬遠してたけど、もっそい楽だった
簡単なオプションなのに最低限書かないといけないことが多い、みたいなこともなく、
シンプルなら定義も本当にシンプルで、それでいてエラー判定なんかも実装される
何かarg一つでも取るなら無条件でdocoptでいい感じ
簡単なオプションなのに最低限書かないといけないことが多い、みたいなこともなく、
シンプルなら定義も本当にシンプルで、それでいてエラー判定なんかも実装される
何かarg一つでも取るなら無条件でdocoptでいい感じ
251デフォルトの名無しさん
2022/06/13(月) 22:30:00.31 くるど!
252デフォルトの名無しさん (ワッチョイ 7356-Ehfk)
2022/06/14(火) 14:34:34.56ID:9Nu3ASAo0 os.environ['CUDA_VISIBLE_DEVICES']の質問です
無効にしてCPUを使うときは-1を使うのはいいんですが、
PCにIntelのGPU0とNVIDIAのGPU1がついていて、
GPU1のほうを使いたいと思っています
この場合='1'にすればいいんでしょうか?
それともデバイス番号とタスクマネージャーのGPU番号は一致しないことがあるのでしょうか?
無効にしてCPUを使うときは-1を使うのはいいんですが、
PCにIntelのGPU0とNVIDIAのGPU1がついていて、
GPU1のほうを使いたいと思っています
この場合='1'にすればいいんでしょうか?
それともデバイス番号とタスクマネージャーのGPU番号は一致しないことがあるのでしょうか?
253デフォルトの名無しさん (ワッチョイ 7f3b-3FeK)
2022/06/14(火) 15:59:18.51ID:D2tcxNGE0 仕事で末尾のセミコロンが無いというエラーが増えたのは絶対pythonのせい
254デフォルトの名無しさん (ワッチョイ 2301-sNTE)
2022/06/14(火) 16:13:32.81ID:I+kl8I350 おいおい、宗教裁判かよw
255デフォルトの名無しさん (ワッチョイ ff7c-yQlT)
2022/06/14(火) 16:57:52.10ID:3g7jzjW90256デフォルトの名無しさん (ワッチョイ 03ad-+qqV)
2022/06/14(火) 17:28:45.42ID:6xJIHeNj0257デフォルトの名無しさん (ワッチョイ c301-4m6i)
2022/06/15(水) 19:55:51.99ID:qUrHvp9c0258デフォルトの名無しさん
2022/06/15(水) 20:15:22.70ID:0Rw78LVG s=b"\x81y"
s.decode("sjis")
はできましたが
s="\x81y"
を動的にバイト列に変換して
s.decode("sjis")
したいのですがどうしたらいいでしょうか
s.decode("sjis")
はできましたが
s="\x81y"
を動的にバイト列に変換して
s.decode("sjis")
したいのですがどうしたらいいでしょうか
259デフォルトの名無しさん
2022/06/15(水) 20:35:16.53ID:0Rw78LVG260デフォルトの名無しさん (ワッチョイ cf46-IaEQ)
2022/06/15(水) 20:50:12.27ID:Z7kfo4VR0 s.encode('latin-1')でいいのかも
https://docs.python.org/3/library/codecs.html#encodings-and-unicode
https://docs.python.org/3/library/codecs.html#encodings-and-unicode
261デフォルトの名無しさん (ワッチョイ 7f3b-3FeK)
2022/06/15(水) 21:02:14.00ID:uoynB9Pl0 さあ、われわれは下って行って、そこで彼らの文字コードを乱し、互に言葉が通じないようにしよう
Genesis 11:7
Genesis 11:7
262デフォルトの名無しさん
2022/06/15(水) 21:13:17.82ID:0Rw78LVG >>260
ばっちりできました ありがとうございます
s="\x81y".encode('latin-1')
print(s)
print(s.decode("sjis"))
>>b'\x81y'
>>【
ばっちりできました ありがとうございます
s="\x81y".encode('latin-1')
print(s)
print(s.decode("sjis"))
>>b'\x81y'
>>【
263デフォルトの名無しさん (ワッチョイ f368-zkCy)
2022/06/15(水) 21:35:45.42ID:2pwDzYJj0 バベルの塔かな?
264デフォルトの名無しさん (ワッチョイ ff7c-yQlT)
2022/06/15(水) 22:52:34.97ID:zk/mWu0Q0265デフォルトの名無しさん
2022/06/16(木) 00:20:30.34ID:cYlpzbPX おま環でしょうか
<div class="message">要素の有り無しに一貫性がないような・・?
要素がネストされているからかと思いきやそうでもなさそうだし
なぜでしょうか
import requests
from bs4 import BeautifulSoup as _soup
url="https://mevius.5ch.net/test/read.cgi/tech/1653540315/"
bs=_soup(requests.get(url).text, "html.parser")
posts=bs.select(".post")
for post in posts:
_print(post)
<div class="message">要素の有り無しに一貫性がないような・・?
要素がネストされているからかと思いきやそうでもなさそうだし
なぜでしょうか
import requests
from bs4 import BeautifulSoup as _soup
url="https://mevius.5ch.net/test/read.cgi/tech/1653540315/"
bs=_soup(requests.get(url).text, "html.parser")
posts=bs.select(".post")
for post in posts:
_print(post)
266デフォルトの名無しさん (ワッチョイ e3e0-Y9n/)
2022/06/16(木) 01:02:42.84ID:v7fiKns10 5chの仕様にここでなぜといわれても
267デフォルトの名無しさん
2022/06/16(木) 01:29:33.24ID:cYlpzbPX 5chの仕様なのですか?
例えば、
headersやipアドレスから5ch側が何かしらレスポンスに反映していたり
スレのソースコードとhtml.parserの相性が悪いとかそういうことではなくて?
bs4で意図した取得ができない5chの仕様とは具体的に何でしょうか >>266
あとそもそもですが、仮に自分が「これは5chの仕様だな」とわかっていたら
答えがわかっているので質問自体していないと思いますよ
ちなみにソースコードを手動でコピペして成型して
<div class="thread"><div class="post"></div>・・・・</div>
の部分だけをbs4したら上手くいきました
例えば、
headersやipアドレスから5ch側が何かしらレスポンスに反映していたり
スレのソースコードとhtml.parserの相性が悪いとかそういうことではなくて?
bs4で意図した取得ができない5chの仕様とは具体的に何でしょうか >>266
あとそもそもですが、仮に自分が「これは5chの仕様だな」とわかっていたら
答えがわかっているので質問自体していないと思いますよ
ちなみにソースコードを手動でコピペして成型して
<div class="thread"><div class="post"></div>・・・・</div>
の部分だけをbs4したら上手くいきました
268デフォルトの名無しさん (ワッチョイ cf46-hiZJ)
2022/06/16(木) 01:38:45.16ID:5RJuUFJv0 ちょっとやってみたけど普通に見える
なにがおかしいの?
なにがおかしいの?
269デフォルトの名無しさん
2022/06/16(木) 01:59:31.90ID:cYlpzbPX >>268
普通に見えるとは、
エラーもなにも出ずに該当のレス分だけ再帰できた、ということではなく
該当レスすべてclass="message"のdiv要素も取得できた、ということですか?
自分の場合はprint(post) の結果が
<div class="post"><div class="meta"></div></div>で終わっているものと
<div class="post"><div class="meta"></div><div class="message"><span class="escaped">
のようにmessageまで取得できるものがあります
こういう感じです
https://i.imgur.com/9rhTBbp.jpg
改めて手動ソースコピペやってみましたがなぜかできませんでした
(簡単なdomならば意図した通りに取得はできます)
普通に見えるとは、
エラーもなにも出ずに該当のレス分だけ再帰できた、ということではなく
該当レスすべてclass="message"のdiv要素も取得できた、ということですか?
自分の場合はprint(post) の結果が
<div class="post"><div class="meta"></div></div>で終わっているものと
<div class="post"><div class="meta"></div><div class="message"><span class="escaped">
のようにmessageまで取得できるものがあります
こういう感じです
https://i.imgur.com/9rhTBbp.jpg
改めて手動ソースコピペやってみましたがなぜかできませんでした
(簡単なdomならば意図した通りに取得はできます)
270268 (ワッチョイ cf46-ffpc)
2022/06/16(木) 02:14:06.76ID:5RJuUFJv0 私の環境では全部のpostにmessageがありますね
271デフォルトの名無しさん
2022/06/16(木) 02:28:08.68ID:cYlpzbPX >>270
自分のところではやはり消えてしまいます
そして進展があり、最小構成で再現できました
html='''
<div class="thread">
<div class="post">
<div class="meta">
<span class="name"><b>名前1</b>ワッチョイ<b></b></span>
</div>
<div class="message">
<span class="escaped">レス1</span>
</div>
</div>
<div class="post">
<div class="meta">
<span class="name"><b><a href="mailto:sage">名前2</b>ワッチョイ<b></a></b></span>
</div>
<div class="message">
<span class="escaped">レス2</span>
</div>
</div>
</div>
'''#.replace('<b><a href="mailto:sage">',"<b>").replace("<b></a></b>","")
おそらく<b><a href="mailto:sage">名前2</b>ワッチョイ<b></a></b>の部分
なぜかmailto:sageのときは<b></a></b>で挟み込んでいます(この部分を取り除いたらmessageのところが取得できました)
.replace('<b><a href="mailto:sage">',"<b>").replace("<b></a></b>","")を切り替えるとmessage取得できました。
(同じようにreplaceしたres.textはなぜかできませんでしたが・・replace漏れがあっただけかもしれない)
自分のところではやはり消えてしまいます
そして進展があり、最小構成で再現できました
html='''
<div class="thread">
<div class="post">
<div class="meta">
<span class="name"><b>名前1</b>ワッチョイ<b></b></span>
</div>
<div class="message">
<span class="escaped">レス1</span>
</div>
</div>
<div class="post">
<div class="meta">
<span class="name"><b><a href="mailto:sage">名前2</b>ワッチョイ<b></a></b></span>
</div>
<div class="message">
<span class="escaped">レス2</span>
</div>
</div>
</div>
'''#.replace('<b><a href="mailto:sage">',"<b>").replace("<b></a></b>","")
おそらく<b><a href="mailto:sage">名前2</b>ワッチョイ<b></a></b>の部分
なぜかmailto:sageのときは<b></a></b>で挟み込んでいます(この部分を取り除いたらmessageのところが取得できました)
.replace('<b><a href="mailto:sage">',"<b>").replace("<b></a></b>","")を切り替えるとmessage取得できました。
(同じようにreplaceしたres.textはなぜかできませんでしたが・・replace漏れがあっただけかもしれない)
272268 (ワッチョイ cf46-ffpc)
2022/06/16(木) 02:38:25.71ID:5RJuUFJv0 5chがぶっ壊れたhtmlを返してくるんですね
それだとバージョン違いとかで動作がおかしいことはありえる
parserをhtml5libにしてみるのがいいかもしれません
それだとバージョン違いとかで動作がおかしいことはありえる
parserをhtml5libにしてみるのがいいかもしれません
273デフォルトの名無しさん
2022/06/16(木) 02:42:16.24ID:cYlpzbPX .replace('<a href="mailto:sage">',"").replace('</a></b>','</b>')
にしたらいけました。
>>272
>html5lib
なるほど
bs=_soup(res.text, "html5lib")
いけました
ありがとうございます!
にしたらいけました。
>>272
>html5lib
なるほど
bs=_soup(res.text, "html5lib")
いけました
ありがとうございます!
274デフォルトの名無しさん (アウアウエー Sadf-Uj9G)
2022/06/16(木) 11:22:03.44ID:Wf4C+ynBa pythonのライブラリやメソッドが何の例外を出すかって調べる方法で一番簡単な方法ってありますか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 舛添要一「日本は亡国への道をひた走り」「相対的国力は中国が増大し日本が低下している」 [冬月記者★]
- 従来の健康保険証、12月1日に期限切れ マイナ利用率は37% [蚤の市★]
- 【物価高対策】「おこめ券を配布しません」大阪府交野の市長が明言「経費率が高い」「今高い米をムリして…」 [1ゲットロボ★]
- 【公明党】派遣型風俗店の女性の裸をスマホで盗撮か 徳島県議会議員の古川広志容疑者逮捕 警視庁 ★2 [nita★]
- 【地方】「もうヤメとけ、また移住者様が帰っちゃうぞ」田舎の「いじめ体質」★3 [七波羅探題★]
- 【あれ?】訪日自粛どこ吹く風 中国からどっと2000人 金沢港に今年最後のクルーズ船 [nita★]
- 今からスペアリブと角煮作ろうかな
- 日本コンテンツを弾圧しまくる中国に対して「戦略的互恵関係を推進」と言っている売国政治家が見つかる。助けて高市総理大臣 [469534301]
- 池上彰「海外のメディアは政府に遠慮せず批判するが、政治家はそれを受け入れ、怒ったり弾圧したりしない。」高市さん? [834922174]
- 結婚式でディープキス(舌入れ)したらアカンの?
- おい千晴
- イッチでーす。今からお前らを泣かしまーす。
