X

Pythonのお勉強 Part70

レス数が1000を超えています。これ以上書き込みはできません。
2023/03/04(土) 00:18:00.31ID:dUl31UkL0
↑スレ立てる毎に減るので、減ってたら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/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2023/03/04(土) 00:19:06.75ID:dUl31UkL0
●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その58
https://mevius.5ch.net/test/read.cgi/tech/1662514433/

〇前スレ〇
Pythonのお勉強 Part69
https://mevius.5ch.net/test/read.cgi/tech/1669293584/

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ### ?

VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
NGNG
あぼーん
2023/03/04(土) 03:00:19.01ID:WvpGmU8fa
すみません、誤爆しました
5デフォルトの名無しさん (アウアウエー Sae3-4fLd)
垢版 |
2023/03/04(土) 10:46:55.93ID:RFNVa0Qia
気に入らんスレにわざと糞を誤爆していくスタイルが流行してるのか
2023/03/04(土) 12:31:36.27ID:dzC0UcmVr
誤爆しました、が早すぎるもんなw
2023/03/04(土) 15:40:07.16ID:3qRZ0uIJ0
宣伝のつもり
2023/03/05(日) 17:27:49.07ID:OIAGsQJL0
>>985
>>1先頭のコマンドが消えてるので忘れずにお願いします

!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。
9デフォルトの名無しさん (ブーイモ MMcb-9TyZ)
垢版 |
2023/03/08(水) 18:10:06.14ID:wJcZOEvRM
pytorchかTensorかどちらがおすすめですか?
目的はマルチグラボやりたいです。
10デフォルトの名無しさん (オッペケ Sr45-73Gx)
垢版 |
2023/03/08(水) 20:00:15.07ID:RfZgO4/gr
超ザックリ説明すると自分で色々アルゴリズム組んで試行錯誤するのがpytorchで出来合いのモデルを使ってパパッと動かすのがTensorflowだから用途で使い分けろ
11デフォルトの名無しさん (ワッチョイ 8bbb-eSjy)
垢版 |
2023/03/08(水) 20:58:22.98ID:70Ab32L60
なんでこうなるんだよ
なんで描き直しても期待する動作になんねーカスって思ってたら
def __lt__が逆になってた
ウンコ
12デフォルトの名無しさん (ブーイモ MMcb-9TyZ)
垢版 |
2023/03/09(木) 06:39:31.71ID:i4wzinQPM
jaxにしようかな。仲間いる?
13デフォルトの名無しさん (ワッチョイ 8b46-FY7J)
垢版 |
2023/03/09(木) 14:51:58.35ID:dnXaT67E0
>>8
補充しないとどんな問題があるの。
14デフォルトの名無しさん (ワッチョイ f997-9YaP)
垢版 |
2023/03/10(金) 02:09:46.33ID:YTsMunwf0
>>10
そうか…?自分はtfから入ったから、自分でなんか書くときはtfで人の作ったコードを試すときはtorchだわ…
2023/03/11(土) 10:21:20.03ID:ouaEQp1j0
tkinterで配置したボタンをマウスで左クリックした時の挙動について、
command=test_func を使った場合は、
ボタンを左クリックした時に、ボタンが押し込まれたような表示になる。

これを少し改造して、①左クリック②右クリックのそれぞれで違う処理を行わせようとした時に、
---------------------------------------------
def test_func(event):
  if event.num != 3:
# ②右クリックの場合のみ行う処理
  ~~~ # ①②共通の処理

btnExeAll.bind('<ButtonPress>', test_func)
---------------------------------------------
例えばこんな感じで書くと、
ボタンを押した時に、左クリック右クリックのどちらでも、ボタンが押し込まれたような表示にならない。
左クリックした時だけでいいので、command=test_func と同じようにボタンが押し込まれた表示にする方法があったら教えてください。
2023/03/12(日) 15:15:03.60ID:8DcR0+gea
答えてやりたいが質問の仕方が悪い
2023/03/12(日) 16:42:37.35ID:jZpwdQUt0
>>15
右クリックの場合はevent.numが3になるから、
コードの最初のコメントは「②(右クリック)以外の場合のみ行う処理、が正しい。
2023/03/12(日) 19:52:32.58ID:xt3GkkaO0
同じく答えてやりたいが読む気がしない
19デフォルトの名無しさん (ワッチョイ 9a02-IuBB)
垢版 |
2023/03/12(日) 22:44:23.51ID:i1OoCA6Z0
Tk/tkinter使ったことないんで参考にならないかもしれないけど…
WebフロントエンドとかGUIプログラミングでよくあるんだけど、
多くの場合、ボタンをクリックしたことになるのは、ボタン内でマウスボタンが押下された瞬間じゃなくて、マウスボタンが離された瞬間だと思うんだよね。
んで普通にclick=で関数を指定したときは、ボタン押下でボタンが押された風に表示を変更し、
ボタンが離された時にボタンが離されたふうに表示を変更し、さらに離されたときにマウスカーソルがボタン内にあれば
クリック扱いにして関数を実行する、というようなbindをしてると思うんだよね。
だから、buttonpressのイベントハンドラをそのまま上書きするとボタンの挙動としては望ましくないことが多く起きるのではないかなー
20デフォルトの名無しさん (スププ Sd9a-cOGZ)
垢版 |
2023/03/13(月) 09:56:24.19ID:O2fmNbgQd
Pythonのような完成度の高い言語を学習している人が羨ましい
2023/03/13(月) 11:06:27.30ID:bF2IN6wDa
全部君の自演
https://www.youtube.com/watch?v=5xbVQyWm1XM
2023/03/13(月) 18:06:53.00ID:AZxG6RRt0
わざわざpythonでGUI作ろうとする理由は学習コストが低いからだよなと思ったけどtkinterは学習コスト高すぎるだろ
俺ならunityかvcで書く
2023/03/13(月) 18:07:50.55ID:AZxG6RRt0
実行が遅すぎるから割に合わないって話やで
24デフォルトの名無しさん (ワッチョイ d610-AByi)
垢版 |
2023/03/13(月) 18:59:12.39ID:cd47iZKk0
tkinter使ってみたらすんごくサイズ感覚つかめないんだけど
これ難しくない…
pysideとかの方がいいわ
2023/03/13(月) 19:03:17.33ID:OdjJNclg0
ウィジェットの配置には3つの方法がある

(1) .pack()...縦か横1列に配置する(1次元配置)
(2) grid......格子状に配置する(2次元配置)
(3) place.....位置(座標)を指定して配置する
26デフォルトの名無しさん (アウアウエー Sa22-hM7q)
垢版 |
2023/03/13(月) 20:57:32.06ID:RfKK3GLna
wxPython 一択
2023/03/14(火) 17:26:04.53ID:w+BRWFOF0
>>19
ヒントありがとうございます。

btnExeAll = tk.Button(root, text='○○○')
btnExeAll.bind('<ButtonRelease>', test_func)

tk.Button()の中に書いていた「command=test_func」を削除して、
ButtonReleaseにtest_funcをbindさせることで意図した動作になりました。
マウスボタンが押下された段階では通常のtk.Button押下時の表示(ボタンが押し込まれた表示)で、
そのマウスボタンが離された瞬間にtest_funcが呼ばれるイメージですね。
28デフォルトの名無しさん (ワッチョイ 9597-IuBB)
垢版 |
2023/03/14(火) 18:41:35.49ID:3laCMUtU0
>>27
お役に立てたようで良かった
2023/03/15(水) 00:00:32.28ID:114k6lJ80
>>15
tkinterのボタンを押した時に、ボタンが押し込まれたような表示になるのは、ButtonPressイベントが発生したときのデフォルトの挙動です。ButtonPressイベントは、マウスのボタンが押されたときに発生するイベントであり、ButtonReleaseイベントと共にボタンのクリックイベントを表します。
通常、ボタンが押し込まれたような表示になるには、ButtonPressイベントでその状態を設定し、ButtonReleaseイベントで解除する必要があります。しかし、commandオプションを使う場合は、ButtonPressイベントで何かしらの処理を行うことができません。
そこで、ButtonPressイベントで特定の処理を行い、その後にcommandオプションで指定した関数を呼び出すことで、ボタンが押し込まれたような表示にすることができます。具体的には、以下のようなコードになります。

def test_func(event):
if event.num == 1: # 左クリックの場合のみ行う処理
btnExeAll.config(relief=tk.SUNKEN) # ボタンを押し込んだ表示にする
# ②右クリックの場合のみ行う処理
# ①②共通の処理
btnExeAll.bind('<ButtonPress>', test_func)
btnExeAll.config(command=lambda: None) # commandオプションを無効化する

このコードでは、ButtonPressイベントで左クリックの場合にボタンを押し込んだ表示にし、右クリックの場合には何も処理を行いません。また、commandオプションを無効化するために、空のlambda関数を指定しています。これにより、ButtonPressイベントでの処理とcommandオプションで指定した関数が重複して実行されることを防ぐことができます。
なお、ボタンを押し込んだ表示を解除するには、ButtonReleaseイベントでボタンの状態を元に戻す必要があります。以下のように修正することで、ボタンを押した時にボタンが押し込まれた表示になり、離した時に元の表示に戻るようになります。

def test_func(event):
if event.num == 1: # 左クリックの場合のみ行う処理
btnExeAll.config(relief=tk.SUNKEN) # ボタンを押し込んだ表示にする
2023/03/15(水) 20:23:25.07ID:6R/wfGBx0
>>29
ありがとうございます。
よく読んでコードに反映させたいと思います。
2023/03/15(水) 21:46:20.27ID:a+7TiLued
colab上で生成した多数のファイル(50KB程度で3桁くらい)を順次ダウンロードしようとしたんだけど
colabのセル中に
---
fori in range(len(ファイルパスのリスト)):
files.download(ファイルパスのリスト[i])
time.sleep(10)
---
と書いても
sleepの10秒中に「ブラウザのダウンロードのリストに入る」わけではなく
このfor文が終わってセルが終了したあとで、全部いっぺんに「ブラウザのダウンロードのリストに入る」みたいなんだよね

これってどうにかならないかな?
colabの仕様だからどうしょうもない?
32デフォルトの名無しさん (ワッチョイ fa7f-J1pc)
垢版 |
2023/03/17(金) 02:07:07.10ID:9GL040C80
50行で書かれたサンプルコードを500行にして実行時間1/20にした
達成感ある
33デフォルトの名無しさん (ワッチョイ 6b33-7LVk)
垢版 |
2023/03/18(土) 17:04:01.99ID:CeVtop+A0
ある程度期間開けてパッケージ化する方法調べてると、調べるたびに新しい方法出てる気がする
今回はsetup.pyなくても"pip install -e ."できるようになってた
setup.cfgとpyproject.tomlでも色々違うし覚えるの大変って言うか、まぁ覚えてはないけど
34デフォルトの名無しさん (ブーイモ MM33-ivup)
垢版 |
2023/03/18(土) 18:52:15.00ID:t/DO8+QPM
Googleコラボプロプラスに入ってる方いますか?コラボプロの良さを教えてね!
2023/03/19(日) 10:15:41.63ID:fPDrKYk/a
cargo
36デフォルトの名無しさん (ワッチョイ ebbb-mqp0)
垢版 |
2023/03/19(日) 15:20:20.90ID:vWJPT8yX0
機械学習系の本で簡単に解説される程度にしかPythonのことを知りません
今後Pythonに触れるに当たり、見たことのない演算子や文法等を見かけた場合、簡単に調べる方法とかってありませんか?
(わからないことが出てくるたびにググれば良い気がするものの、ググるための用語にたどり着けない気がしてしまいます)
2023/03/19(日) 16:27:29.24ID:XVcYEcdXM
chatgpt
38デフォルトの名無しさん (ブーイモ MM33-ivup)
垢版 |
2023/03/19(日) 17:49:49.84ID:d2x3qz3uM
gpt4を使いpythonで処理をしてる人は多いよね。ならば先人の知恵を使ってそれを真似した方が効率的だよね。
HTMLならどうだろう?
39デフォルトの名無しさん (ワッチョイ 6b33-7LVk)
垢版 |
2023/03/19(日) 17:54:15.55ID:GQuS0ALO0
>>36
そういう時にちょうどいいものがあります

Python 標準ライブラリ
https://docs.python.org/ja/3.10/library/index.html

Python チュートリアル
https://docs.python.org/ja/3.10/tutorial/index.html
2023/03/20(月) 08:05:27.12ID:ESW08vHy0
>>32
そういうの脳汁ドバドバでるよね
ネットに公開されてるサンプルコードだったら教えて欲しい
俺は1/50を目指す😤
2023/03/20(月) 20:20:22.06ID:prLzZlfe0
Pythonのdatetime.utcnowの精度ってどのくらいでしょうか?
2023/03/21(火) 02:41:54.67ID:JBvPlC1C0
xs = [1.0,2.0]
c = complex(xs)
だとエラー出るけれど、人のコード読んでいたら
c = complex(*xs)
だと普通に通ると知った。
ちゃんと調べたいんだけどこの機能ってなんていうんでしょうか?
2023/03/21(火) 04:30:28.10ID:UXBr+F/Qd
ドキュメント嫁
まあ俺も覚えてないけど
少なくともlispで50年以上使われてるこの記法の由緒正しい呼び方splicing(,@list)のはず
44デフォルトの名無しさん (ワッチョイ 6b33-7LVk)
垢版 |
2023/03/21(火) 08:46:38.88ID:stvAwo0m0
>>42
引数リストのアンパック
https://docs.python.org/ja/3/tutorial/controlflow.html#unpacking-argument-lists
2023/03/21(火) 10:02:36.68ID:JBvPlC1C0
引数リストのアンパックというんですね。
ありがとうございます。
2023/03/21(火) 21:33:34.15ID:BXGew+Jp0
dosでダウンロードして、vscodeでやろうとしてらパスが入ってないとか言ってできません
パスってWindowsの全てのフォルダに通せないんでしょうか
47デフォルトの名無しさん (スプッッ Sd73-LK7t)
垢版 |
2023/03/21(火) 22:55:34.57ID:w7Hhk0EMd
>>46
残念な頭の人は諦めろ
2023/03/23(木) 13:32:51.88ID:RFlYHIpb0
条件判定でandで複数条件を入れた場合
Falseが確定した時点で以降の判定は行われないみたいなんだが
1つ前の条件がTrueじゃないと次の条件式がエラーになる条件を
1行で済ますのは一般的に有り?
49デフォルトの名無しさん (ワッチョイ f197-aoGJ)
垢版 |
2023/03/23(木) 20:28:37.78ID:mBtK7sgT0
>>48
あり
len(val) > 0 and val[0] != 0とかはよく書く
50デフォルトの名無しさん (ワッチョイ eb46-O+fO)
垢版 |
2023/03/24(金) 05:57:17.49ID:k3bvKxeq0
個人的な好みを言えば、Err1と2は区別する方が好き。なので、andで1行で済まさない。
if len(val) > 0:
_if val[0] != 0:
_else:
__Err1
else:
_Err2
51デフォルトの名無しさん (ブーイモ MMc5-lHAu)
垢版 |
2023/03/24(金) 08:36:18.31ID:R/WhsjrEM
>PythonでC/C++に匹敵する実行速度を実現 米MITなどコンパイラ「Codon」開発

これだよこれ
昔っからどんな言語でも、コンパイラさえ優秀に作ればいいって思ってたんだよ
言語でやれること縛られたりデメリットあるのはおかしいんだよ
同じCPUで動かすんだからコンパイラが頑張れよっての
2023/03/24(金) 14:39:42.01ID:OrKfwrOa0
変数の型やスコープをコンパイル時に解決出来る部分は速く出来そうだけど
実行時解決の部分はJIT等に頼らざるを得ないし
Pythonの旨味は後者が多くを占めるからコンパイラが頑張れば良いだけの単純な話では無い気がする

C++でも実行時解決な処理が多いコードはそれなりに遅いし
2023/03/25(土) 00:36:23.03ID:kgmD9joZ0
perlみたいに自由に書きたいってか?
2023/03/25(土) 10:11:48.83ID:B9hd5fwCa
>>51-52
Nim でええやん
2023/03/25(土) 14:31:55.68ID:hlZ//oS70
>>54
そんな言語が既にあるんだね
教えてくれて有り難う
当面は互換性の面が怖くて業務で使うのは不安があるけど普及してくれると嬉しいね
2023/03/25(土) 20:09:03.73ID:4vFOtxlb0
c3dcoord = (0,0,0)
x,y,z = c3dcoord
x += 1
y += 1
z += 1

print(c3dcoord)
=>(1,1,1)

としたいんですけど、アンパックした変数
x,y,z = c3dcoord
って参照にすることってできないんでしょうか?
2023/03/25(土) 20:10:28.90ID:4vFOtxlb0
すいません。
c3dcoord = [0,0,0]
でした。タプルにしたらそりゃ変更できないです。
2023/03/26(日) 01:17:05.37ID:x8rcyUOT0
p = (3,4)
x,y = p
x+=1
p=(x,y)
print(p)
=>(4,4)
59デフォルトの名無しさん (ワッチョイ d2bd-+msU)
垢版 |
2023/03/26(日) 05:07:20.56ID:OlOn0nrS0
教科書でPython を使うに至った経緯って分かる?
もうPython 一択って塾の子供に言いたいけど、
変な理由でPython に決まったら嫌じゃん
60デフォルトの名無しさん (ワッチョイ 2e46-4NaH)
垢版 |
2023/03/26(日) 05:25:17.27ID:N7AJWMSJ0
新しい歴史教科書をつくる会が和製Ruby推しとか、そんな事でもあるのだろうか...
61デフォルトの名無しさん (ワッチョイ 6e33-wSlO)
垢版 |
2023/03/26(日) 11:37:36.64ID:NbG7mSEV0
流行ってる、文法がシンプルで読みやすい、ライブラリが豊富
こんなとこだろ
62デフォルトの名無しさん (ワッチョイ 6e33-wSlO)
垢版 |
2023/03/26(日) 11:38:46.21ID:NbG7mSEV0
大学のCS入門とかだとPython以外ではJava, Cが多いのか?
2023/03/26(日) 12:18:30.58ID:9IcBJ+NCa
>>59
言語は別になんでもいい
64デフォルトの名無しさん (アウアウウー Saa5-tUaT)
垢版 |
2023/03/26(日) 16:23:36.82ID:EIuzoBSLa
>>59
microPythonとか子供がおもちゃで遊ぶのにちょうどいいのがあるからな
2023/03/26(日) 16:30:57.43ID:1gNnWqJGF
>>62
10年前だけど俺はPascalだった
66デフォルトの名無しさん (ブーイモ MM6d-pkhP)
垢版 |
2023/03/26(日) 16:58:25.83ID:UjqQqbysM
>>59
教科書のマーケティング的な理由と元ネタになる講義や教科書本が豊富で作るのが楽だからでしょ

中高生がプログラミングに入門する際の有力な選択肢の筆頭と言う程度ならいいだろうけどPython一択とまで言っちゃうのは言い過ぎ
特に教育者が「〇〇一択」という悪い思考の癖を子供に植え付けるのは良くないぞ
67デフォルトの名無しさん (ワッチョイ d2bd-+msU)
垢版 |
2023/03/26(日) 18:53:47.57ID:OlOn0nrS0
子供には断定的な方が分かりやすいの
含みを持たせるとか抽象的な理解は難しいの
で、断定してPython 使わせたけど
裏側では変な政治家がハニトラで
Pythonに決めました。だったら嫌じゃん、
だから断定して教える前に理由を知りたくなったの
68デフォルトの名無しさん (ワッチョイ d2bd-+msU)
垢版 |
2023/03/26(日) 18:57:25.03ID:OlOn0nrS0
Python とJava がいいよとかって教えると
どっちも中途半端に覚えてしまうの
だからひとつだけ断定的に興味を持たせるの
私だけの意見で押し付けずにみんなの
意見を聞いて参考にしてるでしょ?
69デフォルトの名無しさん (ワンミングク MM92-h/t+)
垢版 |
2023/03/26(日) 20:00:18.71ID:i0hL3v/7M
Google Collaborates で pyinstaller 使ってexe ファイル作成完了通知出てるんだけど、肝心の完成したexe ファイルがgoogle drive の何処にも見当たりません
作業フォルダにある筈なのに
2023/03/26(日) 22:57:21.33ID:90L+5Zxw0
もしかして:Google Colaboratory
71デフォルトの名無しさん (ブーイモ MM26-pkhP)
垢版 |
2023/03/26(日) 23:11:28.31ID:zGe4zRyjM
>>68
子供の年齢や頭の良さやプログラミングを学びたい目的によって
どういう言語がいいかは変わってくるんだから
そこを無視して勝手に選択肢を限定するのはダメだろ
それぞれの状況にあった選択肢を提示しつつその中で自分の考える一番のおすすめと理由をあわせて伝えたほうがいいぞ

共通試験目的限定ならDNCLの範囲だけなので命令型で書ける普通の言語なら基本的にどれでもいい
しいて言えばインデックスがゼロベースじゃない言語はやや不利
2023/03/27(月) 00:02:23.30ID:Zr0uw00ma
バックエンドエンジニア : 80万円
Ruby : 90
Python, Go : 85

レガシー
Java : 80

ただし、Pythonはウェブ開発ではなく、AI・機械学習。
Javaは給料の中抜き構造があるので、
リモートワーク・副業など、モダンなバックエンドはRuby
2023/03/27(月) 00:14:37.02ID:oSkR0ochM
一番初めに覚える言語なんて極端に難しかったり非実用的だったりする言語でなければなんでもいいだろう
一つの言語に拘ってる奴は結局モノにならないよ。
74デフォルトの名無しさん (スプッッ Sdc2-sLGM)
垢版 |
2023/03/27(月) 02:12:05.21ID:rXMlzKKVd
Rubyは既に終わってる
これから学ぶのは愚の骨頂
75デフォルトの名無しさん (アウアウウー Saa5-l/MQ)
垢版 |
2023/03/27(月) 08:13:51.01ID:OH4YPBlYa
>>73
じゃあなにか一つ選んで
76デフォルトの名無しさん (ブーイモ MM26-0why)
垢版 |
2023/03/27(月) 09:05:16.71ID:3N4bL3ItM
エクセルとVBAは理想的
セルをメモリ空間に見立てて好きなとこに数字入れて演算させる
全てのプログラム言語がセル内包してりゃいいのにな

変数初期値もセル内に記述
プログラムはアルゴリズムだけ記述するだけっての
77デフォルトの名無しさん (ワッチョイ 2e46-4NaH)
垢版 |
2023/03/27(月) 10:19:19.01ID:tnMA91mR0
二次元配列を好きに使うと良いのでないの。
78デフォルトの名無しさん (ブーイモ MM26-0why)
垢版 |
2023/03/27(月) 11:42:54.48ID:3N4bL3ItM
セル内計算式もプログラムに記述しなくていい
2023/03/27(月) 18:35:08.31ID:yqCWHD4F0
>>75
目的と想定受講者を決めて。
80デフォルトの名無しさん (ワッチョイ 6e33-wSlO)
垢版 |
2023/03/27(月) 19:12:03.68ID:78ye37e60
>>79
じゃあ、中学生と高校生の情報の教科書
81デフォルトの名無しさん (ブーイモ MM19-pkhP)
垢版 |
2023/03/27(月) 21:59:41.94ID:OOl3bABcM
え?教科書決める側の人なの?
2023/03/27(月) 22:15:05.71ID:+kKm8gNC0
R7RS-small か R5RS
2023/03/28(火) 14:53:42.83ID:vZrgWFuJ0
>>62
1年次教養の純粋なCS/ITリテラシならPythonがLisp/Schemeを駆逐しつつあるな、数値計算ではFortranとMatlab(Octave),Python+scipy,Rが三強
東大の進振り後の理数系シラバス見るとFortran一強だけど

Fortranといっても今は2008水準が普通だから、ライブラリ無しの素でnumpyより配列操作が短く書けて強力、素で十分なので環境構築も楽

最近pipが検索出来なくなったり不安定なのが解決されれば、やはり最強エコシステムを持つPythonが完全覇権になるのは時間の問題だと思うが
2023/03/28(火) 15:15:05.26ID:vZrgWFuJ0
90年水準(33年前)だけどnumpyとfortranの対応表、完全に一致
https://www.fortran90.org/src/rosetta.html

そもそもmatlab(octave)/Fortran書きがPythonでもfortran風なコードを書けるようにするのがscipy/numpyの目的かつ求心力だから、どっちか書いてる人なら互いに移行するのは容易なんじゃないかな
多分うわべだけなら数日

numpyの核はFortranコードをコマンド一発でimportできるPythonライブラリにコンパイルするf2pyモジュールだから、Pythonで本格的に数値計算や配列プログラミングやるならFortranも多少学ぶべきと思う
85デフォルトの名無しさん (アウアウウー Saa5-tUaT)
垢版 |
2023/03/28(火) 17:01:21.71ID:hvNFNzxEa
>>75 >>80
Nim
86デフォルトの名無しさん (ワッチョイ 493c-+ld4)
垢版 |
2023/03/30(木) 21:47:14.33ID:8bCrCcnU0
すみません、勉強したてで教えてほしいです。
CSVファイルに機器情報が入っています。(以下参照)
そのCSVファイルを読み込んで、機器情報クラスに値をリストに格納していく処理をしたいと思っています。
リストに格納自体はできているのですが、クラスオブジェクトの値を出力すると、下記のようになぜかNoneと表示される部分があります。


1
router
192.168.1.1
admin
None
2
switch
192.168.1.2
admin
None


ソースコード
https://pastebin.com/1bkPJdVY

CSVファイルは以下のような構造になっています。
1行目はヘッダーです。
id,device,ipaddress,password
1, router, 192.168.1.1, admin
2, switch1, 192.168.1.2, admin
3, swtich2, 192.168.1.3, admin
4 ,accesspoint, 192.168.1.1, admin
87デフォルトの名無しさん (ワッチョイ 493c-+ld4)
垢版 |
2023/03/30(木) 21:49:01.61ID:8bCrCcnU0
print_device_list()メソッドで、自信のid,device,ipaddress,passwordの4種類を表示しているだけなのですが
何故5つ目にNoneという値が表示されるのでしょうか。

教えてください。。。
2023/03/30(木) 21:55:24.24ID:8C8DwwZp0
書けるかな
2023/03/30(木) 21:56:43.08ID:8C8DwwZp0
>>86
最後の行が間違い
device_info[num].print_device_list() の結果を print してしまって None が表示されてる
90デフォルトの名無しさん (ワッチョイ 493c-AYh6)
垢版 |
2023/03/30(木) 22:56:11.91ID:8bCrCcnU0
>>89
なるほど…
確かになんのためにメソッド呼び出したんだっていう最後のプリントですね…笑

ありがとうございます!
2023/04/02(日) 11:03:39.24ID:iE0mKbow0
スクレイピングするプログラム作ったけどロリポップのサーバーにアップロードして運用しようとしてるけど上手くできない。
みんなローカルでやってるのかな?
常時パソコンオンならそれでいいかあ
2023/04/02(日) 11:14:31.42ID:LokYTN6p0
そのレベルのやつがスクレイピングするなよ
2023/04/02(日) 11:15:43.27ID:iE0mKbow0
さーせん
2023/04/02(日) 13:49:47.16ID:Ky8sq4kqa
User-Agent は真面目に描いた方が良い
cookie 対応は必須
あとは逮捕されんように適度な wait
2023/04/02(日) 15:06:54.62
ゲームのキャラクターをクラス化するときに
class Player:
 def __init__(self, hp, mp, defense, speed):
  self.hp = hp
  self.mp = mp
  self.defense = defense
  self.speed = speed

 def attack(self, target):
  # 攻撃処理
  pass

こんな感じでやると思うけど
例えばattackの引数の部分って
(1)相手のキャラクターオブジェクトを入れる
(2)キャラクターのHPなど、使うパラメーターだけ入れる
のかどっちが良いのだろう

(1)の場合って
#攻撃処理 の部分でtarget.counter(self)とかできて便利そうだけど
パット見、内部で何やってるかわかりにくそう?
(2)の場合だと
attackの返り値を、攻撃され後のHPを返すとかにすると
player2.hp = player1.attack(player2.hp)
みたいに冗長感でる

(1)の方が、おそらく他のメソッド追加したときに基本は引数targetの一つで修正しやすそう
でも、もっとオブジェクト化してPlayerクラス以外の戦闘システムクラスとか作れば
player2.hp = player1.attack(player2.hp)の部分も見やすくなるし、より具体的なメソッド名にすればいい
どこまで分割して設計するかが難しいな・・
あと(1)でやってしまうと、あとでtargetの仕様が変わった時に
target引き継いだメソッド全部チェックしないといけないような
2023/04/02(日) 15:10:35.20ID:N+wJxevFd
>>94

> User-Agent は真面目に描いた方が良い
> cookie 対応は必須
> あとは逮捕されんように適度な wait
ありがとうございます!
2023/04/02(日) 17:03:42.13ID:FAkG0zqpM
>>95
自分だったら敵も味方も同じクラスにして、バトルマネージャークラスに引数1と引数2で渡して戦闘させるかな
2023/04/02(日) 21:44:47.49ID:pfBpJrjB0
>>97
そのマネージャの中の話ちゃうの?
2023/04/03(月) 23:29:26.65ID:vazLPyWV0
>>95
このような場合、引数に何を渡すかはプログラムの設計や実装によって異なります。一般的には、攻撃対象のキャラクターオブジェクトを引数に渡すことが好ましいでしょう。
これは、攻撃処理に必要な情報がキャラクターオブジェクトに含まれているためです。たとえば、攻撃力や防御力、素早さなどは攻撃側と防御側の両方に必要な情報です。また、攻撃によってダメージが発生する場合、キャラクターオブジェクトに現在の体力値が含まれているため、攻撃対象の体力を別途渡す必要がなくなります。
ただし、引数にキャラクターオブジェクトを渡す場合でも、攻撃側のプレイヤークラスのメソッド内で、攻撃対象のキャラクターのオブジェクト内部の状態を直接変更することは避けるべきです。攻撃処理は、攻撃側と防御側のキャラクターの両方のオブジェクトの状態を適切に変更する必要があります。
このような設計を行う場合、戦闘システムクラスなど、別のクラスを導入することもできます。攻撃対象のキャラクターのオブジェクトに対して、攻撃処理を実行するためのメソッドを定義し、戦闘システムクラスから呼び出すことができます。こうすることで、攻撃処理に関連する情報をまとめて扱うことができ、プログラムの保守性や拡張性を高めることができます。
2023/04/04(火) 00:33:15.86ID:Y1prdwvH0
chatGPTは中身がねえな
2023/04/04(火) 03:05:10.39ID:Vcg4gzRX0
@AIBoom_net 日本医師国家試験にGPT-4が合格
https://doi.org/10.48550/arXiv.2303.18027
ワシントン大・札幌心臓血管クリニック・東北大・イエール大学の研究者グループによる報告。 過去5年間にわたる試験で複数の大規模言語モデルをテストした所GPT-4は5年間全てに合格したとのこと。日本語においてもLLMの可能性を示唆。 https://pbs.twimg.com/media/FsxgcIqakAAy6El.png
2023/04/04(火) 21:54:16.17ID:gwk3sUuA0
プログラム全くの初心者だけど
最新がPython 3.11ってWikiに書いてあるけど
3.9の本で勉強するのはやめたほうが良い?
3.9もらったけど新しいの買うべきかな
2023/04/04(火) 22:10:09.40ID:eULr+R9z0
変更履歴
https://docs.python.org/ja/3.11/whatsnew/changelog.html
2023/04/04(火) 22:11:29.74ID:eULr+R9z0
ちなみにVscodeでインストールできるマイクロソフト提供の現在のバージョンは3.10.10
2023/04/04(火) 22:40:13.03ID:hpZyh5qR0
まだ大半の人が3.9以下の機能でしかコーディングしてないから学習上は問題ないよ
導入は最新にしといて便利な3.10や3.11の機能を見つけたら取り入れていけばいい
2023/04/04(火) 22:41:11.68ID:xfFnhO3R0
>>102
基本的には大丈夫だぞ!
分からなかったらココで聞いてくれれば答えるよ (規制されてなければ)
2023/04/04(火) 22:46:20.60ID:gwk3sUuA0
こんな親切なスレ初めてだ
ありがと
2023/04/05(水) 08:31:57.17ID:m7UpLh2J0
ほんとありがたいですよね。
感謝してます
2023/04/05(水) 09:09:36.82ID:9/ydvHjQ0
(普通は3.9の環境で学習して最終的に最新使うんだよ。Pythonの入門書なら仮想環境の作り方ぐらいのってんだろ)
110デフォルトの名無しさん (ワッチョイ ff33-9P2W)
垢版 |
2023/04/05(水) 09:21:31.45ID:jJ19tKHg0
>>109
頓珍漢な事書かないで
2023/04/05(水) 11:52:04.66ID:m7UpLh2J0
良いスクレイピングはサイト内移動は直接リンク指定よりクリックさせたほうがいいですか?
112デフォルトの名無しさん (スッップ Sd9f-yXQ9)
垢版 |
2023/04/05(水) 22:47:04.75ID:S76AEhIad
複数のDataframe型をひとつのリスト型にまとめたとき、
その変数(リスト)を出力・ファイル保存する方法、
保存したファイルを再び読み込んで元のリスト変数を取り出す方法、
を教えていただけないでしょうか?

to_parquetが使えるかと思ったら、リストには使えないようで、困っております
pythonにはmatlabのmatファイルのようなものは存在しないのですね?
2023/04/05(水) 23:22:13.78ID:CU/hLZe30
>>112
リストのままは行けないから中身を回しながら to_{任意の形式} する
読み込む時も同じ
2023/04/06(木) 02:43:39.76ID:E3jlMe5F0
>>112
リストをpickleファイルに保存する方法あるけどそれ使えないでしょうか
115デフォルトの名無しさん (ブーイモ MMa3-e2c1)
垢版 |
2023/04/06(木) 15:38:12.20ID:GjcsnpaqM
>>112
DataFrameのメソッドでシリアライズしたいならリストの代わりにネストしたDataFrameにすれば可能
リストを使いたいならpickle.dump/load
でもDataFrameごとに個別にシリアライズしたほうが扱いやすくていいと思う
116デフォルトの名無しさん (ワッチョイ cd46-zyVn)
垢版 |
2023/04/09(日) 10:35:43.18ID:Sk1Y+X+W0
intとNoneを返すfunc()の型ヒントはどう書くの。
Noneを返さない実装は少ないと思うが、そんな型ヒント例がない。Noneを省略でintのみ?

def func() -> int:
2023/04/09(日) 10:43:17.20ID:pP899uy+0
https://docs.python.org/3/library/stdtypes.html#union-type
公式に書いてるがな
古いPythonだとOptionalかUnion
2023/04/09(日) 11:42:14.17ID:RVii0j8Q0
>>116
Optional[int]
Python3.10以降なら int | None
2023/04/09(日) 14:35:42.69ID:l7RPhDng
型ヒントってエラーチェックもしてくれるようになる日はいつくるの
120デフォルトの名無しさん (ワッチョイ cd46-B/IP)
垢版 |
2023/04/09(日) 15:12:18.81ID:Sk1Y+X+W0
>>117,118
ありまとう。そのURLから辿った先の peps.python.org/pep-0484/ に例あった。
def lookup(self, name: str) -> Optional[Node]:
2023/04/09(日) 15:48:14.66ID:RVii0j8Q0
>>119
ダックタイプは捨てないから公式で強制は来ない
TypeScriptみたいになる可能性はある、dataclassに型指定がデフォルトで組み込まれた次のステップとして基本的なバリデートがライブラリからインスパイアされて入る未来はあるかもね
基本的にはmypy, pyright, pydanticあたりで対応
2023/04/09(日) 15:57:52.49ID:l7RPhDng
ABCモジュールで抽象クラスを作るメリットが全然ピンとこない・・

https://magazine.techacademy.jp/magazine/19310
継承して子のクラスでsayHello上書きすればいいだけじゃないの?
https://qiita.com/Akatsuki_py/items/3e35ba326ff254a6790d
これもattack上書きすればいいだけじゃないの?

→ 共通の変数やメソッドをたくさん持っていることが多いので、手間が省ける

継承するだけなのに手間ってある?

AIに聞いてみた
ようは
> 抽象メソッドを定義することで、サブクラスで実装する必要があることを明示的にすることができます。
> 抽象クラスを継承したサブクラスは、抽象メソッドを実装しない限りインスタンス化できないため、クラスの使い方が明確になります。
> 例外を発生させることで、抽象メソッドが実装されていないことを明示的にすることができます。
ってことらしい

ようは例えば、サブクラスを他の開発者に投げていたとき、オーバーライドすべきメソッドをエラーによって明示できる
ってこと・・?
2023/04/09(日) 15:59:55.38ID:l7RPhDng
>>121
なるほど
今のところ何かしらライブラリに付属しているバリデーション機能とか使ってるけど
そのライブラリ使ってないときは別の方法で、みたいにしてるから揃えたいなぁと前から思ってた・・
124122
垢版 |
2023/04/09(日) 16:21:39.12ID:l7RPhDng
・親クラスHumanを書く開発者A
・そのHumanを継承する子クラス(犬クラス、猫クラス)を書く開発者B、C
・犬、猫をインスタンス化して機能を実装する開発者D

よくよく考えると、たしかに開発者B、Cは実装し忘れが無くなっていいかもしれない
でも親クラスのabcモジュールで抽象化されたメソッドに変更があった場合
開発者DがsayHello実行したら、子クラスで上書きされたsayHelloが実行されるのでは・・?
だったら最初から上書き前提で書いたほうが、
と思わんでもないのですが
2023/04/09(日) 16:43:24.90ID:csvNgA1W0
そーゆーのは仮想関数でやるべき
2023/04/09(日) 17:34:31.05ID:RVii0j8Q0
>>124
なんの入門書みてるのか分からんが継承なんてPython関係なしに非推奨の流れだから使わなくていいよ
Humanを継承する猫なんて例えとしても論外
ライブラリやフレームワークなどの提供側で有用なケースは多いけど使う側のユーザーが手を出すケースはほとんどない、初学者ならなおさら
2023/04/09(日) 20:05:53.89ID:yYyAhZLzM
問題集おすすめしてほしい
ついにこの日がきた 姪っ子がPythonと書かれた教科書を持って帰ってきた
姪っ子は数学に時間がかかりすぎてるので、代わりにPythonを勉強して教えてやりたい
自分はずーっと食わず嫌いでPythonから逃げてたんだが、いい機会なので、高卒レベルくらいに使えるようになりたい

なお、日ごろはC++がちょろっと【しか】使えない
128デフォルトの名無しさん (ワッチョイ ae33-/aea)
垢版 |
2023/04/09(日) 20:42:55.90ID:jJFRgIVZ0
何か気持ち悪いな
あと、問題集とか聞いてるやつ初めて見たかもしれん
2023/04/09(日) 20:53:35.11ID:zwa/Onc+0
paizaでもやれば
130デフォルトの名無しさん (ワッチョイ ae33-/aea)
垢版 |
2023/04/09(日) 20:57:13.03ID:jJFRgIVZ0
オンラインの学習サイトすぐみつかるからそこでやればいいよ
2023/04/09(日) 21:03:05.02ID:l7RPhDng
>>126
Humanは間違えました、Animalですね
>継承なんてPython関係なしに非推奨の流れ
>ライブラリやフレームワークなどの提供側で有用なケースは多い
これはどういうことでしょうか
いわゆる委譲やコンポジションの話ですよね
なるべく委譲使えるところは委譲で、継承と使い分けする、という話ではなく
>非推奨
ということは、どのような場合にも継承を使わずに記述するという意味でしょうか?

Animalの例で言うと
class Dog:
 def __init__(self):
  self.animal = Animal()

dog1 = Dog()
dog1.animal.say()

みたいな?
2023/04/09(日) 21:18:36.24ID:l7RPhDng
継承のデメリットって
例えばBirdクラスを作ったときに
Animalクラスにflyメソッド作りがち
つまり犬と鳥との間で、共有メソッドではないflyメソッドを定義しちゃった
みたいな問題かな、と想像するのですが
そういう場合のデザインパターンってあるのでしょうか
runメソッドもflyメソッドもまとめたmixin継承して、飛ぶ系のAnimalクラスもうひとつ作るとか
でもこれだと結局は継承しちゃいますよね
2023/04/09(日) 23:17:30.33ID:FKzaKr3N0
本質的に難しい問題だね
動物の中でも鳥、こうもり、昆虫などが飛べるけど
鳥でもダチョウとか飛べないし
カイコも飛べない
軽傷を使うと比較的ましというだけだね
2023/04/10(月) 00:10:55.10ID:0qWpy2US0
うまくモデル化できてるならよくて
直感的じゃないのに無理やり適用するのが悪いってだけ
犬にfly投げて能力不足で失敗ともできるし
2023/04/10(月) 00:12:02.83ID:e9gB5xZX0
AnimalクラスにBoolean型のflyableってメンバ変数を作って
flyメソッドを呼び出したとき
Falseなら何もしない(または何かエラーを返す)Trueならflyの内容を処理するっていうのはダメかな?
空飛ぶDogとか飛べないBirdとかが欲しくなっても作れると思ったんだけど…
136デフォルトの名無しさん (ブーイモ MM66-9pDP)
垢版 |
2023/04/10(月) 05:05:07.56ID:oMIHCwe3M
30代Pythonクソチョン男は強姦魔の犯罪者です!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
2023/04/10(月) 06:17:45.77ID:AkbnXQ4MM
分類というのは共通項を括りだしたものだから、どっちかしか持ってないものを持たせるのはおかしいんじゃない
moveやactionみたいな抽象的な仮想関数を作って派生先でrunやflyを呼び出せば良さそう
138デフォルトの名無しさん (スププ Sd22-fkYs)
垢版 |
2023/04/11(火) 07:28:10.41ID:g9ggwvxZd
>>135
その発想を発展させるとobjectクラスにflyメソッドとflyable持たせればいいじゃんってなるから
継承の真逆の考え方でしょ
2023/04/11(火) 12:13:57.24ID:tWs/BYOwd
Animalとして管理したい属性にflyableがあるんだから別に良いと思うけどな
というか無かったら指示できない
2023/04/12(水) 09:20:22.82ID:tingCOYl0
>>139
ある門があって飛べる動物のみ入れる、みたいなのを作るときにflyableで判定するって作り方が簡単そう
2023/04/12(水) 14:23:32.75ID:uWUQySNG0
flyableという属性が実行時に変化するものではなくて型によって決まってるものなら
Gate.accept(target: Flyable)としておけば実行時に問い合わせなくても静的にチェック可能

異なる種類の”門”が追加されるたびにベースクラスに~ableなフラグを追加して
継承したクラスのコンストラクタやそれを呼び出してるコードをすべて変更する必要があるから
それが望ましい設計となる状況はかなり限られてる
2023/04/12(水) 18:19:53.40ID:u0W7mUTqd
突き詰めていくとanimalなんて要らなくて振る舞いやらインターフェースだけでええやんとなり
動物とは何かという問いに
2023/04/12(水) 19:33:55.06ID:7avtugDp0
https://www.chibanippo.co.jp/newspack/20170827/433469
2023/04/13(木) 07:06:26.87ID:7NoTvSPt0
numpyのarrayで内包表記を使う方法ってありますか
リスト内包表記をnumpyに渡してるサンプルは見つかりましたが、これはまずリストを作ってそれをnumpyに渡してるだけですよね
145デフォルトの名無しさん (スッップ Sd22-z9Lb)
垢版 |
2023/04/14(金) 05:56:54.13ID:Gstlub5yd
>>113-115
お返事ありがとうございます!
pickleがよさそうです。
146デフォルトの名無しさん (アウアウウー Sacb-/q5i)
垢版 |
2023/04/15(土) 10:16:53.39ID:nVVXe4mla
>>144
numpyの速さのメリットが失われる場合があるから
numpyに合わせた方が良いよ
2023/04/15(土) 10:34:24.00ID:P4lYIe9L0
jupyterじゃないならどっちみちpycなるんやからそんな変わらんやろ
2023/04/15(土) 11:42:56.51ID:O06ex0uM0
ProcessPoolExecutorを使ってマルチプロセスで複数処理を動かすとき、あるプロセスから別プロセスの処理状況を知る、または知らせるような事って出来ますか?

今はManagerによるプロセス間共有変数にプロセスの処理状況を格納してフラグとし、他のプロセスはその変数の値が特定の値になるまでtime.sleepとwhileで待機しています。
スマートではないように思うので、例えば
別プロセスに対して「処理を再開してもいいよ」と通知したり、
別プロセスのインスタンスの関数を実行したり...
といった事が出来ればと思ったのです。何か良い方法はないでしょうか。
2023/04/15(土) 11:53:29.81ID:iK0tlqDR0
>>146
リスト内包表記を
> numpyに合わせ
るというのはどうするんでしょうか?
whereとかmaskで書く
2023/04/15(土) 15:09:11.60ID:sKf60sYO0
>>148
awaitに書き直すのが一番スッキリすると思うけど書き直すのが面倒ならcondvar
151Jun (ワッチョイ 7fda-F1k0)
垢版 |
2023/04/16(日) 01:28:24.77ID:Lsji3jpm0?2BP(0)

PythonでPyGameを使ってゲームが作れるようになりたいです。
152Jun (ワッチョイ 7fda-F1k0)
垢版 |
2023/04/16(日) 01:49:57.68ID:Lsji3jpm0?2BP(0)

Pythonのソースコードをすらすら書けるようになるには、どうしたらいいですか?
153デフォルトの名無しさん (ワッチョイ 8736-Jl7Z)
垢版 |
2023/04/16(日) 22:36:43.99ID:2LWEnpk00
dictionary型ってどういうときに使うの?
全然ありがたみがわからない
2023/04/16(日) 23:07:46.43ID:zYleX6N80
適材適所だから配列だけで困ってないなら知らなくてもいい
配列の探索はみつかるまで最悪全要素しらべる必要があるけど
辞書のキーは比較的短時間で探せる構造になってたりはする
155デフォルトの名無しさん (ワッチョイ 7f33-S3w6)
垢版 |
2023/04/16(日) 23:12:03.98ID:KBeSrEQR0
dict型とdictionary型は違うからな
2023/04/16(日) 23:28:39.97ID:calMfenH
WebアプリのAPIでクエリとかレスポンス返すときにJSONで扱いたいときかなぁ
json.dumps/loadsであんまり意識しなくてよくなる

import json
json_str = '{"a":10,"b":20,"c":true,"d":null}'
d = json.loads(json_str)
print(type(d),d)
json_str = json.dumps(d)
print(type(json_str), json_str)
#<class 'dict'> {'a': 10, 'b': 20, 'c': True, 'd': None}
#<class 'str'> {"a": 10, "b": 20, "c": true, "d": null}

あとは引数に展開するときとか?
def deco(a,b=0,*args,**kwrgs):
 print(a,b)
 print(args)
 print(kwrgs)
a=1
b=2
args=[3,4,5]
kwrgs={"x":11,"y":22}
deco(a,b,*args,**kwrgs)
#1 2
#(3, 4, 5)
#{'x': 11, 'y': 22}
2023/04/17(月) 00:52:15.92ID:n1XKDS030
googleアカウントとか python じゃないけど辞書型だよ
メールアドレスをキーにしてバリューはそのアカウントの情報
配列よりも高速にアクセスできるし
重複チェックも容易
2023/04/17(月) 13:29:10.71ID:4hNaPs7ta
Ruby では、辞書はHash

require 'json'

# JSON では、nil ではなく、null を使う
json_str = '{"a":1,"b":"bb","c":true,"d":null}'
puts json_str #=> {"a":1,"b":"bb","c":true,"d":null}

p json_obj = JSON.parse( json_str )
#=> {"a"=>1, "b"=>"bb", "c"=>true, "d"=>nil} # nil になる

p json_obj.class #=> Hash

puts JSON.dump( json_obj )
#=> {"a":1,"b":"bb","c":true,"d":null} # null になる
2023/04/17(月) 16:06:07.88ID:kmcXsww3a
>>158
Rubyは欠陥言語
# https://ideone.com/cpA5lk
require 'json'
json_obj = {:a=>1, :b=>"bb", :c=>true, :d=>nil, "b"=>"BB"}
p json_obj.class #=> Hash
json_str = JSON.dump(json_obj)
puts json_str #=> {"a":1,"b":"bb","c":true,"d":null,"b":"BB"}
puts JSON.parse(json_str) #=> {"a"=>1, "b"=>"BB", "c"=>true, "d"=>nil}
160デフォルトの名無しさん (アウアウウー Sacb-Naft)
垢版 |
2023/04/18(火) 15:41:29.64ID:sxhvE7iUa
白目!
2023/04/18(火) 20:29:38.91ID:OYqyJGa8a
元々、JSON では、:b みたいなシンボルは使えない。ParserError。
"b" みたいな文字列しか使えない

require 'json'

json_str = '{:b=>"bb"}'
puts json_str #=> {:b=>"bb"}

p json_obj = JSON.parse( json_str )
#=> JSON::ParserError
2023/04/18(火) 20:54:35.49ID:OYqyJGa8a
元々、JavaScript でも、同じプロパティが上書きされるだけ

const json_str = '{"b":"bb","b":"BB"}';
const json_obj = JSON.parse( json_str );

console.log( json_obj );
//=> Object { b: "BB" } 1つになる!
2023/04/19(水) 03:05:38.54ID:ZTiW0i9K0
そもそもアカウント管理はLDAP使うんじゃないのか?
プログラムレベルの処理になるとメモリ上でディクショナリ使うかもしれないが
2023/04/19(水) 11:55:51.92ID:J7SITOSf0
インデックスが同じ DataFrame df と Series s があり、全ての要素は float であるとする。
df の各行について s の対応する行の要素より大きい要素が一つでもあるかどうか調べたいんだが、どうしたら良い?
df > s で True/False が格納された DataFrame が返ることを期待していたが、「automatic reindexing は推奨されない」と言われてすべて NaN の DataFrame が返された。
2023/04/19(水) 13:52:15.60ID:HyPlOTI2
pathlibでイテレーティブルに操作できるようなライブラリ作ろうとしたけどめんどくさくて断念
例えば
ディレクトリ構成
data
├a
├b
└c
dataディレクトリを指定して、子ディレクトリに対して操作する場合
pathlibを拡張したクラス=PathEXとして
PathEX(data_dir_path).find_dir(pattern).delete_files_with_chars(characters)
(pattern=aとcディレクトリだけ見つける)
みたいなことをやりたい場合

イテレーティブルな操作だと
「aの中のcaractersを含むファイル1を削除、aの中のcaractersを含むファイル2を削除、、、cの中のcaractersを含むファイル1を削除、、、、」
みたいなのが理想だけど
その前にdirかどうかをスルーする操作やpatternのdirかどうかを判別しないといけないので
イテレーションであるメリットが少ないような・・

なのでfind_dirの段階でイテレーションを再帰して、patternだけのパスをリストに格納
そのリストからfileだけを検索(イテレーションを再帰して→ファイルだけのパスをリストに格納)
そのリストからdelete_files_with_chars(characters)
みたいに、目的のファイルやディレクトリのパスだけをflattenにして
その確定したリストに対して操作する方が良いような気がしてきた
これが何万ファイルとかになってくると違いがあるのかはわからないけど。
明らかにpathlibオブジェクト数の分だけメモリ溜まっていきそうなので

ただこれなら.find_dir(pattern).find(pattern).ignor(pattern)みたいにいくらpatternを追加しても
pattern毎に再帰は増えるけどシンプルに操作できる
今のところこれで困ってないしエラー処理が簡単なのでいいけど、無駄は多そう
2023/04/19(水) 14:26:56.97ID:r24Gen790
整数がいくつか入力されて、最終的に0からmaxまで揃ってるかどうか調べたい
exists[num] = True
みたいなことをすると、エラーになるので、どうやって回避したもんか
2023/04/19(水) 14:59:59.68ID:NBiOUl/V0
>>166
ソートして舐めるのは駄目なん?
最終的に整数列が欲しいだけなら0からmaxの数列生成してからシャッフルした方が楽かも
2023/04/19(水) 15:12:22.49
>>166
max = 3
d = {}
while True:
 print(d)
 i = int(input(f"{max}までの正の整数を入力してください。"))
 if i > 0 and i <= max:
  d[i] = i
 if len(set(list(d))) == max:
  break
print("終了")
print(d)

{}
3までの正の整数を入力してください。0
{}
3までの正の整数を入力してください。2
{2: 2}
3までの正の整数を入力してください。4
{2: 2}
3までの正の整数を入力してください。1
{2: 2, 1: 1}
3までの正の整数を入力してください。3
終了
{2: 2, 1: 1, 3: 3}
2023/04/19(水) 15:22:18.37ID:r24Gen790
何を入れてもいい箱は辞書か集合だよな
なんかキーが数というのに抵抗がある
dic{1.1} = True
とかちゃんと動くの?
2023/04/19(水) 15:22:52.39ID:r24Gen790
[1.1]
2023/04/19(水) 15:33:37.73
google colaboratoryのpython3.9はいけた
d = {}
d[0.05]=True
d[1.1]=True
d[1.2]=True
d[2.0]=True
print(d)
print(len(d))
#{0.05: True, 1.1: True, 1.2: True, 2.0: True}
#4
len(d)だけでいけた >168
2023/04/19(水) 15:54:16.31ID:r24Gen790
d = {}
d[1] = True
print(d[0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1]) # KeyError: 0.9999999999999999

こんなのはやっぱり動かない
2023/04/19(水) 16:00:04.24
何がしたいのかはわからんけど
普通にエラー吐けばいいだけの話では
2023/04/19(水) 16:00:53.93ID:VKTpm4xNd
要素数max+1個のlistを使えよ
2023/04/19(水) 16:04:43.65
>exists[num] = True
この辺の謎縛りがなけりゃ普通にリストとappend使ってif inで重複調べるだけでいけそう
2023/04/19(水) 16:34:20.46ID:V36h4z9V0
>>164
不等号の代わりにDataFrameのgtとかltを使う
2023/04/19(水) 16:40:40.19ID:V36h4z9V0
>>165
イテラブルとイテレーティブという言葉はあるけどイテレーティブルという言葉はないぞ
んでもって変なライブラリ作らなくてもPath.globでイテレーティブに操作できる

メソッドチェーン化したいという理由があるのかもしれないけど
それはPythonのやり方ではないので自分しか読まないようなコード以外では避けたほうがいい
汎用化したい場合はdata_dir_path, pattern, charactersを受け取るような関数を作る
中身はforループ
178デフォルトの名無しさん (ワッチョイ 7f12-bLn0)
垢版 |
2023/04/19(水) 17:10:02.05ID:1S6lpC/v0
pythonでmxnetをインポートしようとすると出てくるエラーに関する質問です。
(私の使用している環境は以下の通りです。
python: 3.10.8, mxnet: 1.8.0, windows: 10.0.19044.2728
CPU: intel core i7, GPUはありません。)

import mxnet を実行すると、

Could not find module
'C:\Users\ \AppData\Local\Programs\Python\Python310\lib\site-packages\mxnet\libmxnet.dll' (or one of its dependencies).
Try using the full path with constructor syntax.

というエラーが出現します。
調べると、どうもlibmxnetのpathに関する問題らしいのですが、
具体的な解決方法がわかりません。
具体的にどんなコードを実行したらエラーが直るか、教えていただけないでしょうか?

あるいはGPUが必要なのでしょうか?
2023/04/19(水) 17:23:53.73ID:V36h4z9V0
>>166
入力値がリストで0からmaxまでの整数値なのであればsetにして長さを比較
マイナス値やmaxを超えた整数値が存在する可能性があるのであればmax+1の長さの配列を用意して比較

def check(input_list):
__xs = [False] * (_max + 1)
__for i in input_list:
____try:
______xs[i] = True
____except IndexError:
______return False

__return all(xs)
2023/04/19(水) 17:35:15.56ID:r24Gen790
maxはgivenではなくて入力された中の最大値
2023/04/19(水) 17:51:09.87ID:+idC8n5I0
>>176
gt, lt に axis 指定で望みの動作になりました!
ありがとうございます!
2023/04/19(水) 17:57:15.31ID:HyPlOTI2
>>177
>Path.globで
やってみるとわかるがこれだと結局、目的のパスが静的に決定している場合のみの逐次処理にしないといけないので
PathEXを作る意味はない
もちろんそういう場合にはpathlibだけで事足りるのでPath.globを使えばいい
2023/04/19(水) 18:12:08.30ID:PFleyHUL0
>>166
リストの内容が0から最大値まで連番になっていることを確認というならrangeで連番作ってそれと比較とかどうでしょう
重複や順番不問にするためにset使って
set(input_list) == set(range(0,len(set(input_list))))
みたいな
2023/04/19(水) 18:12:36.99ID:V36h4z9V0
>>180
最大値を先に把握できてるという状況がよくわからないけど
>>168のコードみたいにインタラクティブな逐次入力前提なのかな?
もしそうなら要素数も知れてるだろうからわかりやすくリストにappendしてソートで十分だと思うよ
2023/04/19(水) 18:17:25.11ID:V36h4z9V0
>>182
>目的のパスが静的に決定している場合のみの逐次処理にしないといけない
悪いけど何を言ってるか全然分からない
2023/04/19(水) 18:24:51.45ID:V36h4z9V0
>>184
単純なソートだと重複があったら簡単ではなかった
やっぱりsetだね
2023/04/19(水) 18:31:44.30ID:HyPlOTI2
ファイル操作をやってみるとわかるけど
ファイルを動かしたり名前を変えたりすれば
イテレータの状態と合わないことがある
やってみないとわからないけど
188デフォルトの名無しさん (ワッチョイ 7f33-S3w6)
垢版 |
2023/04/19(水) 19:28:54.64ID:c0AxLdlu0
>>172
これはID:r24Gen790が何を言いたいのか理解できてるのか?
189デフォルトの名無しさん (ワッチョイ 7f33-S3w6)
垢版 |
2023/04/19(水) 19:36:30.83ID:c0AxLdlu0
ていうか全体的に意味がわからん

l = ['1','2','3']
while l: l.remove(input())
2023/04/19(水) 21:38:08.88ID:V36h4z9V0
>>187
それはglob関係なく設計の問題
2023/04/19(水) 22:12:04.01ID:iYk70KDD0
os.walk
2023/04/19(水) 22:17:34.54ID:HyPlOTI2
いや設計も何もイテレータでやるならやったらいいし
再帰の部分でどのみちコードの量が二度手間以上になるから
メリット無さそうだし最初からflattenにする、という話なんだが・・

どっちもやった上で、イテレータ維持しようとすると面倒だからやめたって言ってるんだが
globやって、globやって、みたいなのならそりゃ書けるし
その程度の用途しかないなら無理してやらなくていいと思うよ
2023/04/19(水) 22:28:57.93ID:HyPlOTI2
あとこの人いつもいる?オブジェクト指向やら継承からの脱却、の人だと思うけど
違ったらすまんけど
この前、何がなんでも継承しない方がいいの?みたいなこと聞いたらどっか行っちゃったよね
自分はそれが正解か間違いかはわからないので純粋に聞きたかったんだが
設計って確実にその思想の部分に大きく影響されるよね
2023/04/19(水) 22:31:27.43ID:HyPlOTI2
関数型が正義と思っていてそう書かなきゃいけないなら
そりゃそうなるわ、としか言えんもの
2023/04/19(水) 22:38:25.10ID:iYk70KDD0
できあがりが見通しや効率で優れているかで判断すればいいのであって
手法は目的じゃないからあってるよ
ところでなしてos.walkつかわんの?
2023/04/19(水) 23:23:13.93ID:V36h4z9V0
>>195
os.walkでやってた多くのケースがPath.globやglob.globでまかなえるようになったからね
2023/04/19(水) 23:23:38.32ID:GSMGMYxg0
関数型プログラミングは高速化に寄与することもあるよねと思うところもあるし
オブジェクト指向やるならオブジェクト指向でやる必要がある場合に限ってやればいいし
だからといってオブジェクト指向やりたいなら、Pythonみたいな超高級言語じゃなくてC++でゴリゴリ書いたほうがメモリに優しいし高速だしって話になるよ?
2023/04/19(水) 23:26:57.39ID:GSMGMYxg0
何がやりたいかによって手段とツールが変わるだろうけど
Pythonでやるなら実装はC++も使ったほうが独自APIを実装するときの自由度が高い
2023/04/19(水) 23:40:18.23ID:V36h4z9V0
>>192
Path.globを知ってたら↓こんなコード書かないから
まずリファレンスを読もう
>PathEX(data_dir_path).find_dir(pattern).delete_files_with_chars(characters)

>再帰の部分でどのみちコードの量が二度手間以上になるから
それは書き方が悪いだけ
思い込みを捨てたほうがいい

>関数型が正義と思っていてそう書かなきゃいけないなら
関数型とは全く関係ないぞ
単純なforループを推奨してるんだからむしろ関数型とは真逆

>>190の設計の問題というのは>>187のような状況に陥るのは設計が悪いという意味
古典的な設計の問題だからわからなければググって勉強して
2023/04/20(木) 00:14:41.43ID:dFvm1wua
>>199
それは自作だからあえて変えてるだけで実際内部では実質
Path("ディレクトリやファイルのパス").glob(pattern).filter(処理for_each)
したり、再帰したり、しなかったりだよ
わざわざ存在しないクラス名、メソッド名使ってるのになぜそんな解釈したのかちょっと謎すぎる
globを使っていないわけではなくglobのイテレータ維持したまま最後の処理までするのは面倒なので断念しただけ

処理の部分が例えば”直接ファイル操作(removeなど)”みたいな投げっぱな単純な処理ならglob完結でいいけど
処理結果を返したり保持したい場合や、処理途中でファイル更新、単にパス名を文字列だけの用途として利用したい場合など個人的にあったので
あえてイテレータの恩恵少ないしforループ隠蔽するために、自分の場合はクラス化ほぼほぼ一択と判断しただけ
どの道、forループ処理は一度でも行う、はあなたがやってもだれがやっても行き着く事実であって設計云々ではないですね
あなたの想像し得る基本的な用途なら別にforループforループforループで良いしクラス化とか必要ないと思いますよ
見づらいだろうなぁとは思うものの、そこに関しては全然悪いとは思っていません
お好きなように
2023/04/20(木) 00:24:53.99ID:QMVhjkAJ0
os.walkオジサンになっていい?
2023/04/20(木) 00:25:34.76ID:dFvm1wua
実際forループで書いて管理しきれなくなってからのos.pathやらpathlibの拡張なんで
何がなんでもosのみpathlibのみで書く縛りがあるなら別に書けばいいと思うけど。
自分はあとあとのこと考えると管理面倒だからforループforループで管理は無理だな
「あのディレクトリの○○なファイルだけ発見したい」みたいな超シンプルな使い方のみの想定ならそれでいいと思うけど
2023/04/20(木) 01:25:19.09ID:R0tK1jDo0
>>200
うーん”設計”が伝わらないとは・・・
じゃPathEX(data_dir_path).find_dir(pattern).delete_files_with_chars(characters)で頑張ってくれ
俺は諦めた
2023/04/20(木) 08:09:16.58ID:uCwEPaTc0
ワッチョイ消してるやつの相手すんなよ...
2023/04/20(木) 09:18:43.87ID:Gkc0C+yM0
IPは消してたけどワッチョイ消したことはないな
なんだろう
うまい喩えが見つからないけど、死ぬほど恥ずかしい
2023/04/20(木) 09:26:39.56ID:dFvm1wua
>>203
いや1レス目からもう十分伝わってますよ
>メソッドチェーン化したいという理由があるのかもしれないけど
>それはPythonのやり方ではない
というあなたの設計思想は >>177
誰が見ても違和感でしかないですよ
標準ライブラリでその恩恵を預かりながら自作では徹底してforループ
決められたこと以外は出来ない
狂信とまではいいませんけど、頑張ってください
207Jun (ワッチョイ 7fda-F1k0)
垢版 |
2023/04/20(木) 23:59:27.49ID:ohUBo7l50?2BP(0)

Pythonはシンプルな言語だがオモチャでない。
2023/04/21(金) 01:14:13.92ID:KCdL0+Bq0
いろいろ目をつむらないとシンプルに扱えないから
玩具の品質には到達していないのはわかる
2023/04/21(金) 01:27:36.69ID:fM6D7Jjb0
おもちゃとは考えが逆だろう
最小のコードで複雑なことができたら楽しい
pythonは暗黙でいろんなことが決まるのを避けるので、何かするならきっちり指定する
きっちり指定してきっちり動いても何も面白くはない
210Jun (ワッチョイ a6da-Fj9N)
垢版 |
2023/04/22(土) 23:31:49.33ID:ZUue34CB0?2BP(0)

Python以外で何かいい言語はありますか?
2023/04/23(日) 00:04:54.40ID:DlHbN44X0
GoやってGoの仕事に就くとしばらく食える
2023/04/23(日) 00:11:46.19ID:Y0v5ztu40
pep8とzenくらいやっとけばMonkになれる
2023/04/23(日) 00:12:41.43ID:Y0v5ztu40
所謂monkに文句無し的な
2023/04/23(日) 00:13:34.99ID:Y0v5ztu40
ふふってなった ちんこ痒い
2023/04/23(日) 01:40:11.94ID:RcbzEQSV0
香ばしいレスが多いな
216Jun (ワッチョイ a6da-Fj9N)
垢版 |
2023/04/23(日) 02:06:25.42ID:F2K2mK+f0?2BP(0)

Go言語はCから学ばなくても修得できますか?
2023/04/23(日) 02:32:01.30ID:X2+aRqhz0
Rustとまちがってない?
まーどの高級言語も先にCやってた方がだんぜん理解深まるけどね
218デフォルトの名無しさん (ワッチョイ a633-F6q8)
垢版 |
2023/04/23(日) 14:44:10.81ID:U/RsZCHU0
>>217
今は順番が逆
2023/04/23(日) 15:34:25.39ID:fUzoPDLKa
文系でウェブ系なら、Ruby on Rails 1強。
米国年収でも、Rails, AWS Solution Architect が13万ドル

Ruby, Elixir : 9.3 万ドル
Go : 8.9
Rust : 8.7

多くの言語 : 6.5〜7

PHP : 5
Dart : 4.4

日本では、バックエンドの求人倍率が数倍で、
フロントが0.5倍と、10倍の開きがある。
フロントは供給過剰で、低価格競争になっている

つまり欲しい人材は、Rails, Linux, Docker, AWS が出来る香具師

YouTube で有名な雑食系エンジニア・KENTA は、
キャリアパスを、Rails → Go のみと言ってる

理系ならPython で、大学院数学科とか、AWS 機械学習の資格など
220Jun (ワッチョイ a6da-Fj9N)
垢版 |
2023/04/23(日) 23:53:51.08ID:F2K2mK+f0?2BP(0)

PythonとGoを両方やることにします。Goも教材がたくさんありますね。現在、人気の
言語ですね。
2023/04/24(月) 00:07:55.90ID:HkcOJ3w60
結局ベースにCがあるんだよな
Cでも書けることを、より簡単に、より堅牢に、より保守性高く、書き直しているに過ぎない

そもそもCで書けんわというアーキテクチャーが登場するまで、Cは残り続ける
222Jun (ワッチョイ a6da-Fj9N)
垢版 |
2023/04/24(月) 23:39:25.46ID:xypANbuI0?2BP(0)

C言語。デニス・リッチーですか。長寿の言語ですね。WindowsOSもC言語で書かれて
いるんですね。
2023/04/25(火) 13:51:41.19ID:FPTpqTcN0
goやpythonよりもPHPやったほうが良い
2023/04/25(火) 22:11:51.74ID:+HdKZSwh0
Webアプリ以外でもPHPで書くの?酔狂やね
2023/04/26(水) 12:04:22.99ID:cIPQx0Y6a
MLでPHPとPython使うだろうjk
2023/04/26(水) 18:39:27.90ID:JavlcTjg0
perlで作ったツールを移植してるけど

if key3 not in d[key1][key2]:
 d[key1][key2][key3] = {}

みたいなのがたくさん追加で要る
しかもループの中で毎回評価してて気持ち悪い
autovivificationを使わずに多次元辞書をすっきり書けないものか
227デフォルトの名無しさん (ワッチョイ 6646-0EuI)
垢版 |
2023/04/26(水) 21:19:22.89ID:vPfd2wHV0
暗黙の初期化のような、うちうちのノリが多くて、Perlは嫌われたんだろ。
2023/04/26(水) 21:33:02.57ID:JavlcTjg0
keyが存在するかどうかのチェックはどうせ毎回やってるんだから同じことか
2023/04/26(水) 22:20:00.88ID:VuAuol7y0
defaultdict
2023/04/26(水) 22:29:32.74ID:JavlcTjg0
from collections import defaultdict
d = defaultdict(dict)
d['a']['b']['c'] = 1 # KeyError: 'b'

2次元までなら
2023/04/26(水) 22:43:05.12ID:k7DLXEM30
辞書をそんなネストしないといけない時点で根本的に設計がおかしいのでは?
2023/04/26(水) 22:47:14.72ID:VuAuol7y0
def deepdict(): return defaultdict(deepdict)
d = deepdict()
d['a']['b']['c'] = 1
もっとうまく書けるかもしれんけど
2023/04/26(水) 22:52:56.90ID:JavlcTjg0
dictだけ続くならいいけど、listが混ざったりするんだよな
2023/04/26(水) 22:56:15.01ID:VuAuol7y0
後出しは書く必要ない
任意の関数渡せるんだからスキにしたらええ
2023/04/26(水) 23:03:54.93ID:JavlcTjg0
a[1] がlistなのかdictなのか判らんという時点で、pythonでは自動は無理なんだよな

l = []
l[1] = 1 # IndexError

perlはこれが出来るというのも、かなりの飛躍がある
236デフォルトの名無しさん (ワッチョイ a633-ASru)
垢版 |
2023/04/26(水) 23:05:17.48ID:sUnbpfBB0
jsonで受け取ったデータをデコードしてそのまま使ってるとかじゃないの
2023/04/27(木) 16:04:02.47ID:BTOHfqgT0
if m := re.search(パターン1):
 処理1
elif m := re.search(パターン2):
 処理2
else
 処理3

みたいに書いていたものを、:= を使わないように変更
m := re.search(パターン1)
if m:
 処理1
else:
 m := re.search(パターン2)
 if m:
  処理2
 else
  処理3

気持ち悪い
elifは展開するともともとこういうものだから仕方ないのか
2023/04/27(木) 16:11:37.78ID:Noc5t00Md
assignment expressionが必要になった理由がそれだから仕方ないね(pep572)
2023/04/27(木) 16:43:35.35ID:SfEpe4Pu0
m = None
def search(pat):
____global m
____m = re.search(pat, str)

こういうのを直前に書くとか
2023/04/27(木) 16:50:03.39ID:BTOHfqgT0
re.searchは別関数にしたいとは常々感じてる
m.groups() を返してくれると有り難い
マッチしなかったら[]を返すようにすれば、ifにそのまま入れられる筈

なんで正規表現回りこんなに不便なんだろう
241デフォルトの名無しさん (ワッチョイ a633-ASru)
垢版 |
2023/04/27(木) 18:30:59.89ID:5qwnrWFd0
競プロで複数行の標準入力を受け取るとき、stdinを使った方がだいぶ早いみたいな記憶があったんだけど、今はだれも使ってない
これは自分が何か記憶違いをしてる?
242Jun (ワッチョイ a6da-Fj9N)
垢版 |
2023/04/27(木) 23:58:21.80ID:CoNlHc/S0?2BP(0)

Pythonはオブジェクト指向とデータ隠蔽の所が面白い。
2023/04/28(金) 00:38:35.47ID:fNFGtOF30
ハードウェアやdbの設計やらセキュリティやら色々大変だよ
まじで全部はやれそうに無い
2023/04/28(金) 01:17:05.61ID:0Z+HC9sf0
>>241
だれも?
まわりみんなPowerShellユーザなの?
245241 (ワッチョイ a633-F6q8)
垢版 |
2023/04/28(金) 07:46:56.36ID:X3vhIzka0
2系の時の話だったかもしれん
246241 (アウアウウー Sa21-F6q8)
垢版 |
2023/04/28(金) 09:49:13.94ID:gpbxWykPa
>>244
どういうこと?
247デフォルトの名無しさん (アウウィフ FF21-YWDm)
垢版 |
2023/04/28(金) 10:58:04.57ID:pksuSfeeF
>>240
matchなんか使うからだ
findallで良い
2023/05/03(水) 19:16:59.83ID:LjnRJYKu0
個人でプログラムしている程度の素人からの質問です
dataclassでクラスの作り方を覚えたら従来のクラスの作り方を覚える必要ってありますか?
dataclassでできないことがイマイチ分からなくて・・・
2023/05/03(水) 20:31:00.66ID:dRzFRHH60
setdefaultが便利なことに気付いた
2023/05/03(水) 20:42:31.43ID:jsxN4Jfn0
>>248
ひとのコード読まないならいいんじゃない?
@dataclass使わずに自前で実装している事のが多いから
内包表記にもいえるけど同等のベタなコードも知ってたほうが
他人のコードの理解が進むし自分のコードの幅も広がるとは思う
2023/05/04(木) 03:58:07.49ID:1n3OCeKB0
>>250
ありがとうございます
従来のクラスは読める程度にしておいて自分で作るときはデータクラスにしようと思います。
引数をいちいちself.hoge = hogeって列挙していくの面倒で・・・
2023/05/04(木) 10:26:11.29ID:Oq6zT20d0
書く量はあんまり変わらないからなあ
reprとか書くならその分減る
253デフォルトの名無しさん (ブーイモ MMff-1K07)
垢版 |
2023/05/08(月) 15:08:20.54ID:PDbtS8P/M
すまん。パイソン歴3年とリクルートエージェントで言ってしまった(笑)
本当はvscodeと言いたいが、実はGoogleコラボしか経験がないです。(笑)
今からvscodeでパイソン歴3年は何を言えばいいですか?
2023/05/08(月) 15:26:52.63ID:OygwxwuO0
結果をリストに入れて副作用で返したい

def func(list):
# 処理
list.clear()
list.extend(result)

こんな感じでできるけどどう見ても汚い
副作用がそもそも汚いけど、もう少し何とかならないか
2023/05/08(月) 15:54:19.13ID:N55ghYlR0
>>254
関数にはリストを渡さずに格納したい結果だけを返して、
リストに入れるのは呼び出し元の方でやるのが一般的じゃないかな
2023/05/08(月) 15:57:26.54ID:OygwxwuO0
戻り値には成功かどうかを返したい
2023/05/08(月) 16:12:14.22ID:NZN2JSTa0
何がしたいかよく分からないけど成否とリストのタプルを返せばええやん
2023/05/08(月) 16:13:54.12ID:OygwxwuO0
:= を使わずにif func()に使いたい
2023/05/08(月) 16:23:33.58ID:N55ghYlR0
成功なら普通に値を、失敗ならFalseを返すとかじゃ駄目なの?
2023/05/08(月) 16:26:44.75ID:OygwxwuO0
それは := を使う前提の話では
261デフォルトの名無しさん (ブーイモ MMdb-vs1K)
垢版 |
2023/05/08(月) 17:15:30.96ID:Kz8WKKNDM
成否と成功時の結果を返したい場合は例外を使うのが一般的なんじゃないかと思う
でなければHttpResponseのように結果ステータスとデータをまとめたクラスのインスタンスで返す
タプルはその簡易版

結果ステータスを持たずにクラス化する方法もなくはない
if foo.func(): do_something(foo.data)
2023/05/08(月) 17:17:05.80ID:htP7Y4l40
if func(list)で副作用で返すとかまぁ現代では誰もやらないから素直に
result = func()
if resultの正常条件:
にしときなよ。
2023/05/08(月) 17:35:23.12
l = []
result = None

def func():
____try:
________l.clear()
________l.extend(result)
________return l
____except:
________return False

#
result = None
print("成功" if func() else "失敗", l)
#
result = ["r1","r2"]
print("成功" if func() else "失敗", l)

#失敗 []
#成功 ['r1', 'r2']
2023/05/08(月) 17:48:09.47ID:OygwxwuO0
elifで繋いでいくとどんどん深くなるんだよな

多分、:= を使うのがベスト
でも環境的に使えない
副作用で返すのが次善の策で、実際うまく行っている
ただどう見てもバグの元
2023/05/08(月) 19:55:50.84ID:Z+v93H2P0
深くなるなら早期return
関数仕様変えたくないならreplace_xxx(list)とか関数名で説明するしかないんじゃない?
2023/05/08(月) 20:19:26.02ID:z5F93KHO0
その場で直前に関数定義(def)して条件につかえばブラックボックスにはならない
2023/05/09(火) 01:02:42.07ID:95FlmxIY0
https://gigazine.net/news/20230508-mojo-programming-language/

> 従来のPythonよりも高速化が可能な新たなプログラミング言語「Mojo」が開発される
> Mojoはこれまでのプログラミング言語であるPythonの使用感と
> C言語並みの性能を合わせ持つ言語だとされています。
2023/05/09(火) 13:13:30.67
同じコードで動くならもうPython13とかで統合してほしい
2023/05/09(火) 13:25:05.82ID:iN9Igm8n0
アンドロイダー乙
2023/05/09(火) 17:43:47.32ID:yVvdWTsg0
同じコードで動くのなら、それは現行のpython作ってる人達におまえら無能と言ってるのと同じだからずーっと喧嘩し続けるだろう
2023/05/11(木) 16:00:43.55ID:gUZpd4Xj0
テキストが1行ずつ入ったリストを順に処理していて、
ある条件の時は次の行も読んで処理したい
次のループでは処理済の行は飛ばす

普通にforでループにして、処理の中でイテレータをさらに取ってくるとかできる?
272デフォルトの名無しさん (ブーイモ MM63-vs1K)
垢版 |
2023/05/11(木) 16:22:44.99ID:bMPdFZE5M
>>271
2行ずつイテレートすれば?

(1, 2), (3, 4), (5, 6), …で十分なのか
(1, 2), (2, 3), (3, 4), …とする必要があるかは処理内容次第
273デフォルトの名無しさん (ブーイモ MM63-vs1K)
垢版 |
2023/05/11(木) 16:25:43.89ID:bMPdFZE5M
次の次の次の行もまとめて処理する必要があったりするならイテレーションを跨いで状態を持ち回る必要があるので単純な2行ごととはまた違うやり方になる
2023/05/11(木) 16:42:51.40ID:rmkBIaEM0
>>271
処理済の行は飛ばすなら単純
it = iter(lst)
for x in it: print(x, next(it))
ただ最終行でnext(it)したら例外になる
飛ばさないならmore_itertoolsかitertoolsを活用かな
2023/05/11(木) 17:37:54.85ID:gUZpd4Xj0
forの対象をリストでなくてiterにすればいいのか
forもnext()するし中でも同じものをnext()する

続きがあるよとデータに書いてあるのに実際には無いならそれはエラーでいい
2023/05/12(金) 00:21:34.94ID:hQCPlnw9a
Ruby なら、

input_text = <<'EOT'
あい
aa
あい
あい
bb
あい
あい
EOT

prev_line = [ ] # 前の行

# 改行を削除して、1行ずつ処理する
input_text.each_line( chomp: true ) do |line|
if line == "あい"
prev_line.push( "あい" ) # 代入だけして処理はしない
else
puts prev_line.join + line # 表示
prev_line = [ ] # 内容を削除
end
end

# もし、中身が残っていれば表示する
puts prev_line.join if prev_line.length > 0

出力
あいaa
あいあいbb
あいあい
2023/05/12(金) 07:13:16.33ID:pPbvGVzs0
今の行だけで続きがあるか判別できれば楽だけど、
次を読んで始めて前ので終わりだったと判明する処理は厄介だな
実際にはそっちの方が多い
pythonのコードもそれ
次のを読んで確定ならまだいいけど、最後まで読んだら終わりとみなす処理も必ずつきまとう
2023/05/21(日) 19:54:50.70
なぁ・・ __pycache__とかいう雑草みたいに抜いても抜いても生え散らかす謎ディレクトリなんの役に立つのこれ・・
2023/05/21(日) 23:07:26.87ID:kjLdpiYM0
キャッシュじゃねーの?
280デフォルトの名無しさん (ササクッテロレ Sp03-4vPs)
垢版 |
2023/05/22(月) 17:36:01.89ID:kOYkg4dap
Twitterの自動投稿をスレッド形式でツイートしたいのですけどできるのでしょうか?
281デフォルトの名無しさん (ワッチョイ 5ebb-cUXk)
垢版 |
2023/05/22(月) 18:22:25.30ID:EzOozQYh0
techiedelight.com/compiler/?~dictclass

こんな感じで実際にはデータが入ってる辞書型クラスがあるんですが
def get(self, _id:str):
if _id in self._results:
この時点では_idはstr型なのに
def __getitem__(self, key):
これにステップした瞬間keyがつねにintの0になります
デバッガで見ても何が何だかわからんのですが
どういう仕組みなんでしょうか?
2023/05/22(月) 18:35:07.65ID:TcXdI8Pp0
key は整数型とドキュメントに書かれているが?
283デフォルトの名無しさん (ワッチョイ 4a7f-ZDLm)
垢版 |
2023/05/22(月) 18:50:31.32ID:jGNTm+uC0
>>282
それはシーケンス型の場合って書いてませんか?
dict型のエミュレーションが目的なんですが
ちなみにin比較しないでmyclass[key]の場合は動作は期待通りです
inで比較したいのにエラーなるのでなぜかわからない事態です
キーは実際にあるので__missing__の実装とは関係ないかと思うのですが
284デフォルトの名無しさん (ワッチョイ 4a7f-ZDLm)
垢版 |
2023/05/22(月) 19:06:11.68ID:jGNTm+uC0
自己解決しました
>__contains__() を定義しないオブジェクトに対しては、メンバシップテストはまず、 __iter__() を使った反復を試みます
でした
2023/05/22(月) 19:15:00.64ID:2xhSnxHv0
a, b, c = list[:3]
とすると、中身があればいいけど無いとエラーになる
無い時はNoneが入るようにしようと思うと、
a, b, c = list[:3] + [None, None, None]
みたいにしないといけない

なんかもやもやするので、もっといい書き方ある?
2023/05/22(月) 19:52:51.64ID:Y3GhwDFGp
List_A
List_B
List_C
があって、CSVに出力すると1行目にA,2行目にBっていうふうになります。
これを縦に並べて1列目にA,2列目にB,3列目にCと出力したいです。

パンダスで行列に変換してから転置、転置したものの1行目をリストA',2行目をリストB'みたいにして出力して対応はできたのですがもう少しスマートなやり方ないでしょうか?
2023/05/22(月) 20:17:51.14ID:sAlsu4+P0
>>286
https://docs.python.org/ja/3/library/functions.html#zip
2023/05/22(月) 22:53:16.45ID:XGVinkOj0
>>285
いいやり方ないね
a, b, c = unpack_or_default(mylist, 3)のように自分で関数化かな
2023/05/22(月) 22:55:57.03ID:sAlsu4+P0
おおがかりでもよければ
from more_itertools import *
a, b, c = take(3, pad_none(lst))
2023/05/22(月) 23:03:18.26ID:2xhSnxHv0
やってること一緒だもんな

足りてない時はNoneで埋めます、を暗黙にする訳にはいかなくて、
何らかの方法でそれが判るように書かないといけないなら、元のままが一番素直かもしれん
2023/05/23(火) 03:09:27.85ID:gLCisDzi0
お前らのせいでクララが立ったんだが
292デフォルトの名無しさん (アウアウウー Sa2f-SwK+)
垢版 |
2023/05/23(火) 10:49:55.37ID:X1m2WkvHa
a, b, c, _ = (list + [None] * 3)[:3]
2023/05/23(火) 10:57:50.75ID:Kb7aSTvI0
_はなんで要るの?
2023/05/23(火) 16:45:29.43ID:koKlYaEi0
printで文字列と数値を合わせて表示する場合
formatメソッド使うとstr関数で数値を文字列に変換する必要が無い?
2023/05/23(火) 16:53:43.43ID:d8FV5sbM0
何故試さないんだ?
2023/05/23(火) 18:06:50.19ID:Kb7aSTvI0
formatって自由度高すぎて逆に正解が判らん
2023/05/23(火) 18:21:05.98ID:d8FV5sbM0
n=1
print(f"とりあえず{n}回試してみたらいいんだよ")
2023/05/23(火) 18:26:28.31ID:2KukQYy00
古い人間なんで
print('とりあえず{}回試してみたらいいんだよ'.format(n))
2023/05/23(火) 18:56:03.36ID:JMXPuiCR0
Formatは使わずに

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

とかやっちゃうな。
2023/05/23(火) 18:58:29.83ID:Kb7aSTvI0
print(f'{a=}')
が使えない期間はどのくらいあったんだっけ
2023/05/23(火) 19:02:29.48ID:gLCisDzi0
%dがないと書けないだろそれ
2023/05/23(火) 19:37:45.42ID:JMXPuiCR0
a=1
print('aは', a, 'です')

で1行に書ける。
桁数指定等しないならformatを使わなくてもよい。
2023/05/23(火) 19:44:20.80ID:Kb7aSTvI0
それでいいじゃんという思いがあったから、f文字列の実装があんなに遅かったんだろうな

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

ができるので、文字列にしちゃった方が取り回しがいい
2023/05/23(火) 19:46:06.48ID:JMXPuiCR0
>>302
はpython3の場合ね
2023/05/23(火) 20:26:41.69ID:vaXvQcIB0
PILでカウントアップするgif画像を生成するプログラムを作りたいのですが、gif画像が動きません。
https://dpaste.com/2ZDT9KPHC

希望では開くと順次数字がカウントアップされるgifファイルとなるはずなのですが、
どこがわるいのかわかりません。
2023/05/23(火) 20:37:30.97ID:vaXvQcIB0
自己解決しました。
最終行のパラメータが
append_image
になってました。正しくは、append_imagesでした。
2023/05/23(火) 22:16:27.17ID:gLCisDzi0
python2.2くらいのころ
2023/05/27(土) 08:52:36.37ID:kNCRj74ed
スクレイピングしようとbs4でしたところ
URL:http---.jpgがあってそのままだと吸い出せず
そのあとにつづく.netでした
けれどの\sや\nなどでやっても結合できず
置き換えでやったところprintで見ると.netの部分が空白行になってました
要素か何か別々になってるような感じで、、、
初心者過ぎてよく分かりません

soup = BeautifulSoup(res.text, "html.parser")
[tag.extract() for tag in soup(string='n')]
elems = soup. find_all("img", class_="ほにゃらら")
for elems in elems:
elems = elems.get("data-src")
elems = elems.replace('.net','')
elems = elems.replace('jpg','jpg.net')
elems = elems.replace('png','png.net')
if elems.startswith("http") and (elems.endswith('')):

printした時こうなります
http jpg.net

http jpg.net

http jpg.net
改行のようではなかったのでどのように結合させて
ファイルを1.jpgから順に書き出すにはどうしたらいいですか?
2023/05/27(土) 09:00:31.23ID:L2vd50qR0
初心者はスクレイピングはするなよ
2023/05/27(土) 09:25:50.64ID:UvPowDbL0
AIに聞け
2023/05/27(土) 12:02:06.97ID:fcbjf6f+0
skyscraping
2023/06/01(木) 16:52:29.22ID:gN7DNRA50
import ffmpeg

# 出力①
stream = ffmpeg.input("test1.wav")
stream = stream.filter('afade', type='in', start_time=0, duration=5)
stream = ffmpeg.output(stream, "test1.mp3")
ffmpeg.run(stream)

# 出力②
stream = ffmpeg.input("test2.wav")
stream = stream.filter('afftdn')
stream = ffmpeg.output(stream, "test2.mp3")
ffmpeg.run(stream)

この様にした場合出力①のフィルターは出力2でも有効なのでしょうか
streamのオブジェクトをリセットできませんか
2023/06/01(木) 17:09:12.89ID:2ejdPdKk0
ffmpegの挙動は謎が多いからなあ
コマンドラインからでもよく判らんものをさらに上から被せたらもっと判らん
2023/06/01(木) 17:10:47.28ID:gN7DNRA50
stream = Noneとかしておけばいいのかな
2023/06/01(木) 19:28:49.46ID:9UkFjNvY0
streamのインスタンスはそれしても変わらんから
ライブラリの実装がまずいならPython側でプロセス分けるとか
fork、multiprocessing他
2023/06/03(土) 18:43:23.62ID:vl84qNBAd
>>308だけど
URLを格納したのを表示させたら\n\nでした
それを無くせば良かっただけでした
それで処理からカウントjpgにして、、、

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


https://i.imgur.com/raAWXxI.jpg
2023/06/03(土) 20:59:56.61ID:uw9I+Q3M0
>>316
>>309
318デフォルトの名無しさん (ワッチョイ ee10-pkPH)
垢版 |
2023/06/03(土) 22:18:25.13ID:ZC+gxQ5g0
asyncio使うのはいいけど負荷に気をつけろよ
2023/06/03(土) 23:03:36.74ID:2QEQ5+1m0
調子乗って処理させたら青画面なった
2023/06/04(日) 03:47:02.55ID:XolxJINE0
とりあえずテキストエディタの背景が白いのをやめるんだ
321デフォルトの名無しさん (ワッチョイ 065f-N/Lw)
垢版 |
2023/06/06(火) 11:15:45.11ID:NOo63SXR0
ピソン、
なんでもできる言語だと聞きましたが
ブログとか作ろうと思ったら
HTMLのほうがいいんですか?
JAVAの人気もそうですが、
パイソンが出てきても他の言語が駆逐されてないんですね…
322デフォルトの名無しさん (ワッチョイ 065f-N/Lw)
垢版 |
2023/06/06(火) 11:20:43.65ID:NOo63SXR0
すみません、誤爆しました
初心者スレ行けですね
323デフォルトの名無しさん (ワッチョイ 02bd-Riq8)
垢版 |
2023/06/06(火) 12:40:14.37ID:thyMI4pi0
ドストエフスキーの文章よりも難しいな
324デフォルトの名無しさん (アウアウウー Sac5-Rr/m)
垢版 |
2023/06/06(火) 13:18:02.81ID:h4TMdgn6a
マルチ判定リクエスト中
2023/06/06(火) 13:49:56.81ID:c5Tg6KEz0
出てきてもとか言ってるけどpython自体は確か30年以上前から開発されてる言語だけどな
2023/06/06(火) 14:19:20.43ID:TOjFiGIo0
1.5.2より前から使ってるから妻よりつきあい長くて草
2023/06/06(火) 14:21:55.09ID:763lc9G+0
会社の環境が3.6で固定されてるので、変な回避技が身につく
328デフォルトの名無しさん (ワッチョイ 8546-rNJ6)
垢版 |
2023/06/06(火) 14:55:53.55ID:qDf8J72k0
>>326
奥様の初期版は幾つですか。
2023/06/06(火) 19:27:25.63ID:vWLMTBxN0
flaskを使ってloggingでログをファイルに出力しようとしています。
ログを見るとエスケープシーケンスがうまく働いていない?のですが、どうすれば綺麗に読める文字列のみ出力されるでしょうか。

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

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

https://i.imgur.com/0CnrwNX.jpg
2023/06/06(火) 19:42:24.47ID:763lc9G+0
環境による
多分windowsで、その場合は儀式が必要
331デフォルトの名無しさん (ワッチョイ 6963-vCKA)
垢版 |
2023/06/06(火) 23:57:03.60ID:On4pFXf00
https://qiita.com/nash_4ed9/items/85ab1660262a44d47a61
このPyAudioをつかう方のソースをコピペして、cmdで起動して
リブートってマイク入力すると再起動って表示されるんだけど
recognize_google()なにかおかしいのかな
332デフォルトの名無しさん (ワッチョイ 7d5f-92fi)
垢版 |
2023/06/07(水) 05:30:31.36ID:aCOIJr4k0
>>329
chatGPTに聞いてみたよ

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

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

```python
import logging
from flask import Flask

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

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

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

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

この設定を使用すると、色付きのエスケープシーケンスがログファイルに出力されず、綺麗に読める文字列のみが出力されるはずです。
333デフォルトの名無しさん (ワッチョイ 7d5f-92fi)
垢版 |
2023/06/07(水) 05:40:47.02ID:aCOIJr4k0
>>330
同じく聞いてみた

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

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

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

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

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

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

これらの修正を行った後、再起動と入力すると、"再起動"と表示されるはずです。
334デフォルトの名無しさん (ワッチョイ 7d5f-92fi)
垢版 |
2023/06/07(水) 05:41:49.43ID:aCOIJr4k0
アンカー間違えた
>>331

332
333
とも実際に試してはいない
2023/06/07(水) 05:47:14.44ID:yPtLBTHe0
通例エスケープシーケンスつけるのは出力先が対応してるときだけで
FlaskかPythonのWindows対応がマズくて画面に見えちゃってるけども
ファイル出力するならそうはならんでしょ
2023/06/07(水) 07:45:36.76ID:uhVmgr37a
常に平気で嘘を吐く ChatGPT
2023/06/07(水) 07:47:50.59ID:pHrUHK5+0
色付きで表示するよ、というパッケージはいろいろあるけど、
エスケープシーケンスの文字列を定数にしてるだけで、自分で作った方がまし
colorama.init() さえやっとけばok
2023/06/07(水) 08:03:00.41ID:YNIOL4trM
>>336
本当かのように嘘付くよな
2023/06/07(水) 08:44:55.80ID:bO+mGfX90
windowsで人工知能 deep learning データ解析とかをpythonで勉強したいのですが、
wsl2とかいうのにpythonをインストールしたほうがいいのですか?
一応古くて安い奴だけどグラフィックボードgeforce2060が取り付けてます。これを生かすにはそっちのほうがいいのですか?
2023/06/07(水) 08:55:02.41ID:pHrUHK5+0
特に違いは無いのでは
2023/06/07(水) 08:59:29.26ID:pHrUHK5+0
と思ったけどwindowsの方が遅いという計測結果があるから、linuxの方がいいらしい
342デフォルトの名無しさん (ワッチョイ 02bd-Riq8)
垢版 |
2023/06/07(水) 11:47:01.88ID:V1RpM5Mg0
ここで詰まるようではDLにたどり着くには何年かかるか…
2023/06/07(水) 11:49:34.84ID:pHrUHK5+0
まあ、高速化したいと思った時に乗り換えでも困らないけど
2023/06/07(水) 23:20:02.31ID:bO+mGfX90
>>341 343
とりあえずwsl挑戦することにしました。ありがとうございました。
345デフォルトの名無しさん (ワッチョイ b901-BNQN)
垢版 |
2023/06/08(木) 22:39:09.80ID:Q71DyilT0
PythonからTorプロキシ刺してIP変わってるか確認するコード動かすとエラーになるんだけど、このスレで質問してもいいですか?
346デフォルトの名無しさん (ワッチョイ 02bd-Riq8)
垢版 |
2023/06/09(金) 00:14:58.20ID:5qXtjY9+0
エラーメッセージ見ても対応できんのなら、ここで聞いても無駄じゃね?
ググって出てくること以上の回答なんかないぞ
347デフォルトの名無しさん (ワッチョイ b901-BNQN)
垢版 |
2023/06/09(金) 01:08:05.56ID:n1DTPL+N0
ググりまくったけどわかんなかったんで聞こうと思ったんです。
5ちゃんの天才方なら知ってるかなぁって。
2023/06/09(金) 05:49:46.21ID:AE/orgDH0
torなら自力で解決できるようになるまでさわるな
絶対に他人に迷惑かけてる
2023/06/09(金) 07:05:57.87ID:Oq0Svxoj0
>>345 がどういうコードとエラーか知らんけどオレが試したら問題なかった
imgur.com/a/WGJSCEi
350デフォルトの名無しさん (ワッチョイ 02bd-Riq8)
垢版 |
2023/06/09(金) 11:28:02.80ID:5qXtjY9+0
まあ、torで何をしたいのかをちゃんと説明したら
優しい人なら回答してくれるかもねw
2023/06/09(金) 15:55:47.91ID:m5Jmc/8C0
そのコードでいうとTor依存じゃなくSOCKS Proxy使ってるだけだから
Tor側がちゃんと起動してないだけじゃないの?
ブラウザが同じProxy設定で使えてるかまず確認した方がいい
それかPythonを仮想マシンで動かしてるか
352デフォルトの名無しさん (ワッチョイ 027f-uXEq)
垢版 |
2023/06/09(金) 18:30:17.12ID:ueZRd9hZ0
WSLでGUI動かすと激重だからコーディングするのWindows側になるじゃん
そしたらそのままVS Codeで起動すれば良くねってなるから
結局WSL要らなくね
2023/06/09(金) 18:41:41.13ID:Oq0Svxoj0
基本的に仮想環境って自身の開発環境とは別の本番環境を想定して使うものじゃない?
自身のPCで動かすもの作ってるんだったらわざわざ仮想環境なんて作らなくていいと思うけど
2023/06/09(金) 19:32:50.07ID:HOKl4gpB0
windows用のバイナリを作るのにWSL2からクロスコンパイルした方が楽だったりする
355デフォルトの名無しさん (ワッチョイ b901-BNQN)
垢版 |
2023/06/09(金) 22:00:09.19ID:n1DTPL+N0
345だけど書き込みができない...
356デフォルトの名無しさん (ワッチョイ 82fb-prIY)
垢版 |
2023/06/09(金) 22:13:43.14ID:OxCpfWI40
???
357デフォルトの名無しさん (ワッチョイ b901-BNQN)
垢版 |
2023/06/09(金) 22:40:27.64ID:n1DTPL+N0
あ、できてた!

345だけど、IPの秘匿化に関して実験してるだけなのよ。
興味があっただけでそれ以上何かするつもりないのよ。
力を貸してください(泣)

[目的]
Pythonでtorのプロキシを使って接続し、IPが変わってる事を確認したい。

[環境]
Torブラウザ(12.0.6)
PCはsurface go 3
python実行環境はjupyter lab
接続はテザリング
OSはWindows11
358デフォルトの名無しさん (ワッチョイ b901-BNQN)
垢版 |
2023/06/09(金) 22:44:54.65ID:n1DTPL+N0
[結果]
[WinError 10061] 対象のコンピューターによって拒否されたため、接続できませんでした。 とエラーが出て接続できない

[参考]
・Torブラウザ単体でwebに接続した場合は問題なく接続でき、IPが変わってた。
・ファイアーウォール無効でもダメだった
・Torに設定されてるプロキシ情報がどこにも無くて困ってる(デフォは127.0.0.1で9050らしいけど...どこに設定されてるのよ)
・テザリングでも自宅のLANでも同じ現象が発生
359デフォルトの名無しさん (ワッチョイ b901-BNQN)
垢版 |
2023/06/09(金) 22:45:56.07ID:n1DTPL+N0
[ソース]
import requests
proxies = { 'http':'socks5://127.0.0.1:9050', 'https':'socks5://127.0.0.1:9050' }
res = requests.get('IPインフォのURL',proxies=proxies).json()
print(res)
360345 (ワッチョイ b901-BNQN)
垢版 |
2023/06/09(金) 22:48:13.26ID:n1DTPL+N0
連投すません。
長すぎたのと、リンクがあると書き込みできなかったので小分けにしました。

何卒よろしくおねがいします。
2023/06/09(金) 23:00:49.15ID:m5Jmc/8C0
EdgeでもChromeでもそのSOCKSプロキシを設定してみ
それで接続先が正しいか切り分けできるでしょ
>>349 が動いてるから明白だけど
362デフォルトの名無しさん (ワッチョイ b901-BNQN)
垢版 |
2023/06/09(金) 23:48:18.41ID:n1DTPL+N0
>361
EdgeとChromeどちらでも、SOCKSプロキシを設定してみたのですが、ネット接続が切れるだけでダメでした。

いろんな人に聞いても、何も設定などせずTorブラウザ立ち上げとくだけで、PythonからTorプロキシ刺せるっていうんです。
自分の環境だけ何でできないんだろうか...
363デフォルトの名無しさん (ワッチョイ 13bd-T65b)
垢版 |
2023/06/10(土) 00:47:43.47ID:r0ySRgqu0
下手なんでしょ、色々と
2023/06/10(土) 01:31:58.04ID:Zq/8zyxv0
>>358
tor.exeを実行してるときとTorブラウザを実行してるときとで、使うポート番号違うんだけどそれはもう試した?
ブラウザの場合は9050じゃなくて9150で、読んだか分からんけど>>349のURLに貼ってあるソースでは9150使ってる。
2023/06/10(土) 04:58:26.12ID:l45aDm8W0
torは機械アクセスで使用するようなリソースじゃない
迷惑だからやめとか
2023/06/10(土) 09:58:16.55ID:Zq/8zyxv0
念の為jupyter labからも試したけどちゃんとip変わった
https://i.imgur.com/OVb2jIA.png
2023/06/10(土) 12:57:50.19ID:6IGx049dd
copilotやってみたけど、
楽しいな
コードよりコメントを丁寧に書くようになるw
368デフォルトの名無しさん (スプープ Sd73-E3UD)
垢版 |
2023/06/10(土) 14:24:42.38ID:muD8D6FKd
345です。

>364
あなたは天才です。
9150で刺したら通りました。

他にも回答していただいた方々本当にありがとうございました!
ちゃんと勉強します。
2023/06/10(土) 21:31:03.52ID:HKPT3ucF0
>>367
コピロットってどこでできんの?
2023/06/11(日) 00:13:53.27ID:LyU8IF5C0
>>369
githubで申し込んで
vscodeのプラグインいれる

pycharmでも、いけるんかいな
2023/06/12(月) 16:25:28.47ID:VmiV3Y6z0
>>370
サンクス入れてみた
ってこれ有料か
2023/06/12(月) 16:35:27.44ID:Lj2zWY+Q0
>>371
有料だけど、未来が垣間見れる
出来たコードをgptに読ませると、また面白い
2023/06/12(月) 16:42:19.86ID:qTkaXJUF0
AIがAIを開発するようになるとシンギュラリティ起きるぞ
2023/06/12(月) 17:13:57.24ID:rYc4uFtU0
aiでエロ動画作りたいのですが、スタンダードなツールありますか(´・ω・`)
2023/06/12(月) 18:44:06.75ID:Lj2zWY+Q0
コメントを変数名まで指定して書くと
丁寧に補完してくれる
性格は結構せっかちだな
2023/06/13(火) 10:07:06.61ID:40Mg8HNk0
377デフォルトの名無しさん (オイコラミネオ MMd5-koSu)
垢版 |
2023/06/14(水) 07:49:11.95ID:D3Gndqn3M
>>352
WSL側にファイルそのものや実行/デバッグ環境を置いて、WindowsのVSCodeからリモート接続する。
378デフォルトの名無しさん (ワッチョイ 8bbb-f0F1)
垢版 |
2023/06/14(水) 12:40:23.94ID:zQTHCkUD0
pythonというかおそらくVS code の問題なんだろうけど
特定のスクリプトを実行するときにデバッグポイント素通りしてしまいます
pyファイルにはclassが一つだけあって
スクリプト実行時にはそのクラスのインスタンスを作って
メソッド呼ぶだけなんですが

if __name__ == ‘__main__’:
にブレイクポイント置いてもそこすらすり抜けてもはや意味わかりません

別のスクリプトからモジュールとしてインポートする時は期待どおりに動きます
また、他のpyファイルではブレイクポイントに問題ありません
launch.jsonでは’stopOnEntry’ : trueにしてます

対処法教えてください
2023/06/14(水) 12:54:34.72ID:XWt8afSz0
プークスクス
2023/06/14(水) 13:03:44.01ID:iWYHYN4ra
__name__ が '__main__' になるのは自分を実行したときだけだが
381デフォルトの名無しさん (ワッチョイ 8bbb-f0F1)
垢版 |
2023/06/14(水) 13:17:40.25ID:zQTHCkUD0
${file}をデバッグ起動してるから
__name__はmainになるはずだし
if __ name__ == ‘__ main__’:
pass

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

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

とするとifで止める事すらできなくてなぜか全部実行されるので
意味がわからんのです
最初class hogeのdef __init__がおかしいのかなって思ったけど
そもそもすべてのブレークポイントが反応しない
1行ごとに置いてもだめ
syntax errorも出てないしもちろんマルチスレッドでもない
2023/06/14(水) 13:22:46.46ID:iWYHYN4ra
if __ name__ == ‘__ main__’:
以外のところで何かやってない?
2023/06/14(水) 13:24:16.40ID:iWYHYN4ra
ああ編集してるのと違うファイルが実行されてる可能性もあるな
384デフォルトの名無しさん (ワッチョイ 8bbb-f0F1)
垢版 |
2023/06/14(水) 13:28:21.48ID:zQTHCkUD0
>>382
from importが15行くらい
折りたたむと全部隠れるのでclass以外に実行してるコードは無し
自分の書いたモジュール以外だと

tqdmが外部ライブラリで
これが怪しそうだけど確信はない
385デフォルトの名無しさん (ワッチョイ 8bbb-f0F1)
垢版 |
2023/06/14(水) 13:31:04.88ID:zQTHCkUD0
>>383
“program : “${file}”で”module”は指定してません
2023/06/14(水) 14:44:35.81ID:bsnrwMoS0
MS標準のPython拡張だと問題なく止まるけどどういう環境?
こんなかんじで実行されてる
% /usr/bin/env /opt/homebrew/bin/python3 ~/.vscode/extensions/ms-python.python-2023.10.1/pythonFiles/lib/python/debugpy/adapter/../../debugpy/launcher 53796 -- /PATH/TO/test.py
387デフォルトの名無しさん (ワッチョイ 8bbb-f0F1)
垢版 |
2023/06/14(水) 14:53:59.57ID:no7cETpk0
windowsアップデート来てたから再起動かけたら直ったかも
止まるようになった…
388デフォルトの名無しさん (アウアウウー Sadd-qEZs)
垢版 |
2023/06/15(木) 19:02:34.97ID:YfplQawpa
エラーメッセージはChatGPTにコピペして教えてもってるわ
2023/06/15(木) 19:16:40.16ID:D64wDQkR0
でも明らかなインデントエラーも見落とすからな、chatgpt
もうちょいでいいから、賢くなってくれればいいのに
2023/06/15(木) 19:19:44.10ID:M9bt3STi0
可能性見てるだけやからな
つまり当たり外れあるよってこと
2023/06/15(木) 19:24:36.87ID:D64wDQkR0
コードの一行一行はうまく解釈してくれる
でも全体を見るとなると、適当になるんだよな
2023/06/15(木) 19:28:55.29ID:M9bt3STi0
次に来る文節の可能性みてるだけだからな
2023/06/15(木) 19:30:14.90ID:M9bt3STi0
つまり当たり外れあるよってことよ
2023/06/15(木) 19:37:13.41ID:+DcTqNCxa
次に来る字句が適切かの可能性を評価して学習して平均的かつ多数であれば、適切と評価しちゃうんだよな
多数であっても、評価結果に影響がないように出来てるっぽいので、可能性が高い方が出力される仕組みだよね
2023/06/16(金) 09:10:18.67ID:ly+Q1cW8a
まだ脊髄反射レベルにさえ達していない
2023/06/16(金) 09:12:51.55ID:QtztxJ5V0
脊髄ないしな
2023/06/16(金) 12:47:07.07ID:AFoiPDKcd
これはひどい
detail.chiebukuro.yahoo.co.jp
/qa/question_detail/q13281535528
398デフォルトの名無しさん (ワッチョイ a9a8-3D3L)
垢版 |
2023/06/16(金) 19:18:04.90ID:Xntsmxpr0
a=100
if a == 100:
print("100点満点")
else:
print("ざんねん")

昨日勉強し始めたばっかりで質問です。
インデントはスペース4つか2つと書いてあり、ズレたらエラーになると書いてたのですが、0.2.3.4.5試したのですが、エラーにならないです。
どうやったらエラーになりますか?
2023/06/16(金) 19:34:39.11ID:ZPTtRGB70
ブロック内でインデントズレてるとエラーにならない?
例えば↓の100点満点とやったねはインデントが揃ってないといけないけどズレてるからエラーになるはず
if a == 100:
 print("100点満点")
  print("やったね")
else:
  print("ざんねん")
400デフォルトの名無しさん (ワッチョイ a9a8-3D3L)
垢版 |
2023/06/16(金) 19:48:22.60ID:Xntsmxpr0
>>399
ありがとうございます。
401デフォルトの名無しさん (ワッチョイ a9a8-3D3L)
垢版 |
2023/06/16(金) 19:52:34.54ID:Xntsmxpr0
>>399
インデントを揃えてたら何個でもいいってことですか?
2023/06/16(金) 21:40:00.82ID:MAnoUayu0
(自分でやってみた方が早いんじゃないだろうか・・・)
2023/06/16(金) 22:05:22.73ID:Qr7qGmVF0
strip()で全角スペースも除去するんだったら、
インデントに使わせてくれてもいいのに
2023/06/17(土) 13:43:48.34ID:nv4PMJEL0
https://github.com/discord-camp/discord-autoposter

短文だと問題ないのですが1000文字くらいの長文だと途切れてしまったり、一部分しか送信されなかったりするのですが何処が駄目なんですかね。
2023/06/17(土) 14:33:52.44ID:Fi2FK6UR0
>>404 そもそもこのアプリケーション利用規約違反じゃね?
うろ覚えだけどボットアカウント以外を自動化して何か行うのダメだった気がするけど
2023/06/17(土) 14:59:56.92ID:Fi2FK6UR0
>>404 規約も見つけたから URL 貼っておくわ
discord.com/developers/docs/topics/oauth2#bot-vs-user-accounts

> Developers must abide by the terms of service, which includes refraining from automating standard user accounts (generally called "self-bots") outside of the OAuth2/bot API.
以下 DeepL 訳
開発者は、OAuth2/bot API以外の標準的なユーザーアカウント(一般に「セルフボット」と呼ばれる)を自動化することを控えるなど、利用規約を遵守する必要があります。
2023/06/17(土) 15:26:31.62ID:nv4PMJEL0
>>405,406
となるとディスコ側で弾いてる可能性もありますね
BANされるのも嫌なので今回はやめておこうと思います
ありがとうございました
2023/06/17(土) 20:49:20.63ID:Fi2FK6UR0
うん、一定間隔でメッセージ送信するくらいだったら簡単に作れると思うから、ボット作っちゃったほうがいいと思う。
ただ、サーバーの管理者じゃないとボット参加させられないけど。

まぁあとdiscord.pyは揉め事があって開発再開してから今どうなってるかわからないけど。
2023/06/17(土) 21:25:30.40ID:nv4PMJEL0
>>408
ディスコの運用初心者で詳しくないのですが、ボットで違うサーバに自動投稿というのは出来ないんですよね?
やりたいのはゲームのチーム募集で10時間に一回投稿という感じなのですが
2023/06/18(日) 03:49:42.01ID:FVqhDmcT0
ボットが参加してるサーバーじゃないと無理だね
あとチャンネルにメッセージ送信できる権限も必要
2023/06/18(日) 08:30:36.69ID:GZZlDb8U0
>>410
まあ自動投稿って荒らしがやりそうな事ですもんね
手動投稿でがんばります
412デフォルトの名無しさん (ワッチョイ 8950-wtyc)
垢版 |
2023/06/19(月) 16:31:51.04ID:1BUWfJEl0
環境変数の文字列を置換するのに何か方法ありませんか?
以下ではエラーでした。
aaa = "$HOME/xxx"
re.search("(\$[^/$ ]+)", f"{os.environ(\1)}", aaa)
2023/06/19(月) 17:24:28.76ID:Glrukv1f0
>>412
hoge = re.sub("\$([^/$ ]+)", lambda x: os.environ[x.group(1)], aaa)
414デフォルトの名無しさん (ワッチョイ 8950-wtyc)
垢版 |
2023/06/19(月) 18:02:40.50ID:1BUWfJEl0
>>413
確認できました。
助かりました。ありがとうございます。
2023/06/21(水) 04:25:45.06ID:J4l8RQKca
DISCOってよくわからんが、ブラウザで動くならSeleniumで自動化したらいいんじゃない?
2023/06/21(水) 06:09:22.65ID:0uJYSTxc0
>>415 そういう事するのが利用規約違反って話
2023/06/21(水) 07:37:30.57ID:t9LzbMUnM
ルール通りAPI使えば済む話だろ
2023/06/21(水) 08:37:09.02ID:0uJYSTxc0
APIだろうが外部のアプリケーションだろうが、Discordの利用規約では「ボットアカウント以外を自動化するのが禁止」という話。
もう終わった話だからこれ以上これについて議論する価値が無いと思う
>>404からをよく読んで欲しい
2023/06/21(水) 15:02:01.93ID:H/mww/Ws0
bot APIを使えばいい
2023/06/21(水) 16:35:28.17ID:0uJYSTxc0
>>419 793d-C6j3 は自分のサーバーに自動投稿したいんじゃなくて、他のユーザーが管理してるサーバーに自動投稿したいという話。
なので Bot 作ってもそのサーバーの管理者がその Bot をサーバーに追加してくれないことには意味無い。
っていう話も >>409 あたりから書いてあるんだけどちゃんと読んでからレスしてる?

あと Discord 公式に「bot API」なんてものは存在しないからよくドキュメント読んでから書いた方が良いよ
discord.com/developers/docs/intro
421デフォルトの名無しさん (ワッチョイ 927d-/M2v)
垢版 |
2023/06/21(水) 21:34:20.09ID:0ajJDSrZ0
【プログラミング言語】企業が求めるエンジニア言語ランキング 2位「R」、3位「Go」 1位は? 企業DB運営会社が発表
https://egg.5ch.net/test/read.cgi/scienceplus/1687350694/
2023/06/21(水) 21:49:16.50ID:73YbeCUa0
Rは言語っちゅうよりツールだよな
2023/06/21(水) 22:17:17.38ID:nOYD/YvV0
デフォでエクセル読み込めないRがなんだって?
2023/06/21(水) 22:29:38.95ID:H/mww/Ws0
https://image.itmedia.co.jp/news/articles/2306/20/l_tm1636144_06203_2_w490.jpg
ええー
perlは?
425デフォルトの名無しさん (ワッチョイ 12bd-u/GO)
垢版 |
2023/06/22(木) 01:06:30.61ID:trtsfi5v0
Perl大好きだったDeNAも今はほとんど使ってないだろ
2023/06/22(木) 02:16:00.37ID:hPQpnAZR0
Cなの??
2023/06/22(木) 08:41:10.37ID:6qCgvqyK0
Cは納得するけどRの違和感がすごい
2023/06/22(木) 16:27:42.10ID:ry2OhFJB0
Rustはどこいったんだよぉ
2023/06/22(木) 16:59:36.96ID:I0fx1jsA0
機械語吐ける処理系は
便利さより簡明さの方が優先なんだろうな
2023/06/22(木) 18:58:58.97ID:eFYWna5Y0
Cが多いのはああそういう母集団なんだなと思うだけたがそれと同等でRが並ぶのは謎すぎる
2023/06/22(木) 19:09:00.39ID:6qCgvqyK0
これからRで新規に何か作ったりはしないだろうから、
既存システムのメンテ要員なんだろうけど、何をそんなにたくさんRで作ったんだ
2023/06/22(木) 21:37:10.06ID:4vIH+GrL0
aws transcribeをboto3で使ってるけど、凄い便利で精度も凄い

でもリアルタイム処理もやりたい
chromeからリアルタイムで音声を受け取ってawsに投げて、リアルタイムで音声認識できたら最高だけど
awsのサーバーレスLambdaでやればいいのか、それともflaskでやるのか迷ってる
いい方法ないかな
大人しくJavascriptでやれ、と言われそうだけど
2023/06/22(木) 21:46:27.68ID:6qCgvqyK0
多分これあれだな
求人情報で持ってて欲しいいろんなスキルを集計した奴だ
excelとかもあったけど、それは言語じゃないから省いた
Rも便利に使えて欲しくて、一応言語だから残ったけど、それで開発する訳ではない
2023/06/22(木) 22:00:42.51ID:GMczMVxU0
RとJavaが逆じゃねってっくらい案件数違う
JavaScript入るのにmatlabは無いのおかしいだろ
2023/06/23(金) 02:16:39.84ID:FiJyLSIOM
Pythonをやってみてしみじみわかる
自分が昔Cに挫折した原因は、Cが原始的過ぎるのだと
何せCには俺らがPythonで何気なく使っているリストがなく、
データ構造の実現には配列や構造体を組み合わせてポインタでアクセスすることが求められる
これでは毎回Pythonのリスト機能を一から手実装しているようなものだ
コードの大半がデータ構造アクセスに浪費され、肝心のロジックを書く前にプログラマーが消耗してしまう
2023/06/23(金) 06:34:45.67ID:PvP1hDIF0
string型もないしな
2023/06/23(金) 06:44:34.67ID:fMNbteF10
まあ各種データ型は一旦コードを書いたらライブラリ化して再利用してもいいし、
何かのAPIを使ってコード書いてるときにはそのAPIが各種の型も提供している場合がある
けどね
438デフォルトの名無しさん (ワッチョイ 5e46-CMa5)
垢版 |
2023/06/23(金) 10:12:50.43ID:jQcBUz850
リスト型はともかく、
車輪が必要になって、「pip 車輪」すりゃよいものを、再発明してしまうことはよくある。
2023/06/23(金) 14:55:50.06ID:hn7rk+Ru0
wheelのこと?
2023/06/23(金) 16:03:42.34ID:lCxAQSJFa
今日 AWS のテレビコマーシャル初めて観た
普通の人あれ観て何のCMか判るんかな
どういうマーケティングなんやろ
2023/06/23(金) 16:06:06.70ID:lCxAQSJFa
>>435
STL使うならC++
Cなら今はtcl/tkのクラス使うと便利
2023/06/27(火) 17:12:41.59ID:qBS161b80
AIプログラマーになりたいんですが、書店の参考書読めばなれますか?

今まではXbox系、Playstation系のプログラマーをやってきて、
もちろんC++やPythonは使ってます。
2023/06/27(火) 17:15:41.51ID:18qbID/D0
>>442
くくりがでかすぎるから、まず本屋でどんな分野があるのか調べるとこからだと思うよ
てか、実績のくくりもおかしいから人に相談する前にまずは自身のスキルセットの整理からかも
2023/06/27(火) 17:42:34.35ID:WeQZqkEK0
Kaggle(じゃなくてもいいけど)に興味がある分野があれば挑戦してみては
本は基本遅いし誤りも多いからとっかかりで読むだけ
445デフォルトの名無しさん (ワッチョイ 23bd-HQei)
垢版 |
2023/06/28(水) 00:25:23.03ID:89dyc+Yr0
5chで質問してる時点で無理
2023/06/28(水) 10:08:46.19ID:h1/9qa9W0
>>442
データサイエンスのある学部に3年次編入したら?書籍買買い漁るもありだけど、体系的に学ぶ方がとっかかりやすい
2023/06/28(水) 10:14:19.41ID:xFveyc720
AIプログラマーにはなれないだろうけどe資格でも取ればいい
2023/06/28(水) 10:49:00.73ID:5nvtk/TU0
>>444
ありがとうございます。

Kaggleはよさそうですね。
無料で利用できるみたいですね。
2023/06/28(水) 10:52:17.26ID:5nvtk/TU0
>>446
ありがとうございます。

私は国立大学(東京大学)の情報工学出身なので、
それなりに基本は理解してるかなと思い、いい本で勉強できればいいな、とか思ってました。
450デフォルトの名無しさん (ワッチョイ 4bbb-WxNW)
垢版 |
2023/06/28(水) 12:36:52.52ID:x7EqKs650
院に上がればいいじゃん
2023/06/28(水) 12:40:15.98ID:yVk2loca0
アメリカの大学に行くのが正解だな
2023/06/28(水) 13:31:40.23ID:YUZzapSuM
東大卒が便所の落書きで質問して市販本で勉強するわけない
2023/06/28(水) 13:51:51.94ID:xJ5N72uh0
掲示板で自己紹介しても本人証明はできんからな
2023/06/28(水) 13:53:14.64ID:xJ5N72uh0
否定する理由もないから
あっそう  てなところだな
2023/06/28(水) 18:34:56.74ID:eg2z38w70
相手をしてもらっただけでめっけもんなんじゃないの?
養分とはよく言ったもんだ
2023/06/29(木) 10:35:46.35ID:97xspd+w0
def func():
 func.counter += 1

みたいに、関数名.変数名で前回の値が保持できるけど、
これはどういう名称?
static変数でいいの?
2023/06/29(木) 10:43:55.35ID:nlvFIcH90
バカどもが、
ゴミ書き込みをして、人を叩いて満足するスレ

バカが…
2023/06/29(木) 10:50:50.20ID:sVqSU9Dt0
わざわざバカの集まるところにマウンティングをしにきて
自己肯定感を満足させようとするが
それすら叶わず捨て台詞を置いていくスレの間違いです
2023/06/29(木) 10:53:26.88ID:nlvFIcH90
また
ゴミ書き込みバカ登場

バカが…
460デフォルトの名無しさん (ワッチョイ 4b46-GfJH)
垢版 |
2023/06/29(木) 11:08:49.93ID:WQ4uFLEn0
>>456
知らんけど、(関数オブジェクトの)オブジェクト変数?
逆に訊きたいのだけど、それ、保証された動作なの?
2023/06/29(木) 11:27:51.39ID:97xspd+w0
え、駄目なの?
グローバル変数を使うよりよっぽどスマートだと思うけど
外部から初期化するのが面倒なだけで
2023/06/29(木) 13:11:09.10ID:zn3rSI/c0
自動で初期化されるようにしようとすると面倒だし初期化を強制することもできないので
普通にモジュールグローバル・クラス変数・インスタンス変数を使ったほうがよっぽどスマートだと思う
2023/06/29(木) 16:28:15.36ID:NJ3ikdMQ0
クロージャだから外に変数おけばいいんだけど
名前空間汚さないのはいいかも
def func(): ...
func.counter = 0
並べて書けば必ず初期化はされるし
2023/06/29(木) 22:46:19.39ID:zn3rSI/c0
いろいろデメリットがあるから使い捨ての短いプログラム以外ではやめといたほうがいいと思う
クラスにするのがオーバーキルと感じる場合ならクロージャ使う

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

デフォルト引数にmutable objectを使うやり方もあるけど
あれもちょっとしたハックなので避けたほうがいい良いと思う
2023/06/29(木) 22:58:21.86ID:97xspd+w0
聞きたかったのは是非ではなく名称なんだけど
結局誰も知らないということかな
2023/06/30(金) 00:07:55.24ID:k2cLJ2r80
関数オブジェクトにプロパティ追加してるだけ
2023/06/30(金) 10:42:56.33ID:bRI+/epy0
Python用語では「関数属性」と呼ばれてる
2023/06/30(金) 12:03:51.62ID:eJGBY8G60
https://peps.python.org/pep-0232/
これか
2023/06/30(金) 12:11:46.76ID:YNoPlx540
強い人はどのようなところを見ているか参考になるなぁ
2023/06/30(金) 14:01:00.28ID:01oPuE97
命名規則が今いち定まらない

たとえばデータベースでリレーションシップ組むときに
userが投稿したpostという設計だったとき
UserモデルとPostモデル
そのリレーションモデル名をPostUserにするのかUserPostにするのか
user,postはまだ一対多なのでわかりやすいけど
もし一対一の関係だった場合、どっちがどっちでもいいじゃんってなるような・・

頻繁に困りはしないけどコードを後で見直したときに
どっちが先だったっけ?ってモヤモヤする
2023/06/30(金) 14:18:27.36ID:7I3jd3Xx0
userpostだとユーザーがポストした内容そのもの
posruserだとポストしたユーザーの情報
2023/06/30(金) 14:29:22.66ID:COdzz4kma
変数ならなにをどうしたものか
メソッドならなにをどうするものか動詞句を用いて記述するのがオヌヌメ
曖昧さを回避するなら
create post session
get input by user from contentviewer
query results
validate from controller
とかが鉄板
2023/06/30(金) 15:08:45.48ID:01oPuE97
そういうメソッド名の命名規則というより
JOIN文でどのテーブル名を先に書くか
みたいな問題と似てると思う >>471-472
2023/06/30(金) 16:22:36.82ID:ko6oOWb50
名前決めてくれるサイトがあった
2023/06/30(金) 16:56:20.54ID:01oPuE97
命名専用サイト使うほど、変数名つけること自体はそこまで難しくないし言うほど困らない
翻訳とかChatGPTでいいし
2023/07/03(月) 00:10:29.29ID:gwE/4uCf0
プログラミングの経験を聞かれた時に「パイソンチョトデキル」と答えてもいい基準は?
2023/07/03(月) 00:18:28.77ID:pHhD+O8v0
開発の実務経験でしょ
2023/07/03(月) 00:39:30.70ID:Xaa1oBX80
python開発者にならないと
479デフォルトの名無しさん (ワッチョイ 62bd-3PuC)
垢版 |
2023/07/03(月) 01:14:10.43ID:Gvp+84VE0
自分ができると思ってればそういえばいい
そんなフワッとした質問に厳密性は求めてない
2023/07/03(月) 15:06:18.12ID:vDP44hRQ0
今までJavaとかC++でコツコツコードを書いてたんですよね
で少し前から機械学習のことをやってて、Pythonはそこで各種ライブラリを呼び出すのに
しか使ってないんですよね、基本的には
Pythonそのものよりライブラリをどう使うかに重点がある感じ
こんなでも「パイソンチョトデキル」と言ってみてもいいですか?
2023/07/03(月) 15:18:48.53ID:Qelwnf7e0
478のコメントで満足しとけよ
オマエうざいわ
2023/07/03(月) 17:44:19.22ID:O7SCHRRk0
応用情報とpython認定試験の2つの資格(基礎・データ分析)と実務経験5年以上位でちょっとできるでいいと思う
2023/07/03(月) 17:57:08.16ID:As32LQND0
そんなのとってるPythonistaどこにおるん?
2023/07/03(月) 18:06:55.69ID:CSWTIyVV0
ITSSのレベル2~3くらいだね
2023/07/03(月) 18:32:08.53ID:FqLUwTrja
実際コーディング試験で能力測るからいいんじゃねーの
資格取ってる人は民間に証明してもらえるから案件獲得時のアピールにはなる
486デフォルトの名無しさん (ブーイモ MM02-Mxvu)
垢版 |
2023/07/03(月) 18:35:13.90ID:EKa0XJn3M
python認定試験とか誰が受けてんだよ
2023/07/03(月) 18:59:10.80ID:CSWTIyVV0
齢を取ればわかるが
こいつが 何がどの程度できるか 会っただけじゃわからんのだから
資格持ちかどうかでとりあえず足切りできる
2023/07/03(月) 19:02:14.07ID:Xaa1oBX80
判らんというとこまでは合ってる
使って駄目だった時に、でもこいつ資格持ってたから、と採用担当が言い訳する為にある
2023/07/03(月) 21:26:04.92ID:wow6f6TN0
パイソン4級もってるお
490デフォルトの名無しさん (ワッチョイ f78c-q98R)
垢版 |
2023/07/03(月) 23:44:38.12ID:5m8mumv50
二次元配列の0埋め初期化調べたら
list = [[0]*13]*20
とか書いてあったけどこれ内側の配列のidがすべて同じになっててダメじゃん
なんで複数のサイトでコレで解説されてるの…解決に無駄に時間食った…
2023/07/03(月) 23:53:47.85ID:Xaa1oBX80
配列を埋めて初期化して
array[n]
にいつアクセスしてもエラーにならないんだ
という考えは古いので、そんなことをしなくても済む方法を考えた方がいい
2023/07/04(火) 00:54:41.68ID:CD2OXxFv0
>>490
numpy.zerosで
2023/07/04(火) 06:44:39.73ID:TkEucfjya
列毎にencode指定するにはどうしたらいいの?
文字列にしたい列と数値にしたい列が混在してる。
csvインポート時に指定したらいいのかエクスポート時なのかもよく分かってない。
csvインポートしてsumまではできたけど文字化けと数値が文字列判定で文字がくっついた状態。12+34=1234みたいな。
でも文字列指定にしないと0落ちする列がある…。
2023/07/04(火) 06:57:35.95ID:ivBNorbE0
>>493
pandas使えばいいのでは
2023/07/04(火) 08:25:21.63ID:4uPHnKtKM
ググればすぐ解る
496デフォルトの名無しさん (アウアウウー Sabb-hiKC)
垢版 |
2023/07/04(火) 09:49:02.57ID:X5jhzPkAa
>>490
いまだにそんな解説してるサイトは君がここに晒して知識の共有DB化に貢献してくれ

あと普通はリストじゃなくて配列はnumpy使え
2023/07/04(火) 19:04:03.10ID:jEw6QJzt0
配列とリストは似たようなもん
という考えを、perl使ってたから最近まで引きずってた
$array[10] = 1;
とかいきなり書いても平気

その時の$array[0]は空なので、1を足してもいいし文字列を結合してもいい
498デフォルトの名無しさん (ワッチョイ 0646-8QP+)
垢版 |
2023/07/04(火) 19:20:37.82ID:VrKRGNM40
>>497
何それ。$array は
[1,0,0,0,0,0,0,0,0,0] になるの?
[1,1,1,1,1,1,1,1,1,1] になるの?
それとも全く別の何か?
499デフォルトの名無しさん (ワッチョイ 0646-8QP+)
垢版 |
2023/07/04(火) 19:22:44.58ID:VrKRGNM40
あ、単に
[0,0,0,0,0,0,0,0,0,0,1] か。
2023/07/04(火) 19:25:29.97ID:E4cNaUeN0
>>497
配列と連想配列をいっしょくたにしてそうなのと
BASICのようなPerlの緩さはまた別の話
2023/07/04(火) 19:28:31.63ID:jEw6QJzt0
単に空になる
空は数字として評価すれば0だし、文字列として評価すれば''
502デフォルトの名無しさん (ワッチョイ c633-hRAP)
垢版 |
2023/07/04(火) 20:03:53.48ID:BtduUDpY0
>>497の意味が分からん
perlの配列とPythonのリストを同じようなものと考えてたっていうこと?
2023/07/04(火) 20:19:24.19ID:jEw6QJzt0
Cの配列だな
領域を切ってしまえば途中のインデックスにいきなりアクセスできて当然という感覚

perlのリストとpythonのリストは見た目も挙動もよく似てるけど、
根本のところが全然違う
2023/07/04(火) 23:04:19.26ID:HXHLoMzH0
すみませんasyncioなんですが

asyncio.run(main())

というのは

asyncio.run(main)

ならわかるんですが、なんで asyncio.run(main()) なんですか?
関数呼び出してますよね?
納得できる理解が出てこないんですが
2023/07/04(火) 23:05:53.72ID:HXHLoMzH0
それとも asyncio.run() は mainの返り値を受け取ってるだけでしょうか?
それならわかりますが
2023/07/04(火) 23:08:11.81ID:HXHLoMzH0
自己解決しました
2023/07/08(土) 08:44:42.01ID:O5MPIwDu0
DataFrame df があったとき、たとえば
df["A"] > 0
とすれば列 df["A"] の各要素が 0 より大きいかどうかを示す真偽値の列が返りますよね。
10 より大きいか、0 より大きく 10 より小さいか、0 より小さいか、という 3 値の分類をしたいときはどのようにするのが良いでしょうか?
apply で行ごと処理するやり方は分かるのですが、上の例のような高速なやり方を知りたいです。
508デフォルトの名無しさん (スフッ Sdbf-5tAh)
垢版 |
2023/07/08(土) 10:01:14.37ID:a3G/XYZLd
0と10は放置で良いのか?
2023/07/08(土) 10:13:23.90ID:NHSo0HCe0
どう頑張っても真偽値は2種類なので、その組み合わせになるだろう
2023/07/08(土) 10:25:56.65ID:jhsaf/8G0
>>508
ああ間違えた
もちろん含むように定義します

>>509
DataFrameの書き方ではどうか、という質問です
511デフォルトの名無しさん (スフッ Sdbf-5tAh)
垢版 |
2023/07/08(土) 14:35:33.75ID:wniS2YMkd
(df['A']<0)*1+(0<df['A']<10)*2+(df['A']>10)*4
512デフォルトの名無しさん (スフッ Sdbf-5tAh)
垢版 |
2023/07/08(土) 14:47:11.67ID:R+7Yl+5pd
訂正
(df['A']<0)*1+((0<df['A'])*(df['A']<10))*2+(df['A']>10)*4
2023/07/08(土) 17:48:44.07ID:hY1qVx7y0
はるか昔にBASICで速度稼ぐために条件式組んでたのに似てるね
2023/07/08(土) 18:13:40.82ID:pyRMyuKU0
条件だけ見るとこれでよくね?
(df['A']<0)+((0<df['A'])*(df['A']<10))*2
2023/07/08(土) 18:18:05.83ID:pyRMyuKU0
あ、これでいいかw
(df['A']<0)+(df['A']>10)*2
2023/07/08(土) 18:19:37.71ID:NHSo0HCe0
3パターンしか無いのに3bit必要という時点でおかしい
2023/07/08(土) 18:43:10.62ID:9tTQWgpe0
3周することになっても単純に各条件でboolの結果を得たほうが速いと思う
1周で済ませたければTrue/Falseの意味がちょっと変わるけどブロードキャストすれば速い
df[‘A’].to_numpy()[..., None] < [0, 10]
2023/07/08(土) 19:29:00.77ID:jhsaf/8G0
>>511-512
ありがとうございます
locにブール列を渡すのでも良さそうだと思いました。
2023/07/08(土) 19:31:32.45ID:jhsaf/8G0
>>514-517さんももちろんありがとうございます
2023/07/08(土) 22:16:31.30ID:N9Ky4OK40
exeにしてダブルクリックすると起動するんだが黒い画面が出てくるんだけどこれって消せる?
2023/07/08(土) 22:21:59.70ID:Wa1j7G/90
exeにしてって操作がPython標準じゃないからなんともいえんけど
使ってるツールにコンソール無効化みたいなオプションあるはず
2023/07/09(日) 00:49:41.22ID:IRbmqSts0
pyinstaller xxx.py --noconsole
2023/07/09(日) 01:28:43.17ID:LTD59+Eo0
>>521>>522
ありがとう、やってみる
524デフォルトの名無しさん (ワッチョイ ffbb-YiFt)
垢版 |
2023/07/09(日) 21:13:55.30ID:3iZocu1K0
pypyでbeautifulsoupとかのライブラリ使えないのなんとかならんの?
自分でhtmlパーサーなんて組めないぞ
2023/07/09(日) 21:26:46.05ID:+zrdKLhN0
なんでそんなん使ってるの
526デフォルトの名無しさん (アウアウウー Sa9b-HEX/)
垢版 |
2023/07/10(月) 19:00:47.80ID:ebofKpc7a
>>520
ソースを hoge.pyw にすると消える
2023/07/12(水) 21:03:15.12ID:pcy3cOib0
>>524
pypyつかうくらいだから問題はわかってんでしょ?
素直にPure Pythonなモジュールか
自前で外部ライブラリをCFFIやcppyyで使えばよろし
528デフォルトの名無しさん (ワッチョイ b77f-rqKn)
垢版 |
2023/07/13(木) 05:19:15.27ID:P+pcu+dV0
Pylanceが急に日本語に切り替わってて気持ち悪い
2023/07/13(木) 12:39:21.74ID:NisY6ZLZ
ファイルやディレクトリ名の頭文字を数字にすると
importするときにエラーになる
一体どうすれば・・
例 5chモジュール作りたい
5ch.py
import 5ch # error

_5ch.py
ch5.py
【目的】_5ch.py
なんかダサいけど仕方ないか
2023/07/13(木) 13:00:03.04ID:SuCqDk4B0
先頭数字の識別子が使えるほうがマイナーだから
命名の時点で候補から外すしかない
2023/07/13(木) 14:27:15.58ID:ZYHhnIor0
>>529
import importlib
_5ch = importlib.import_module("5ch")
2023/07/13(木) 19:03:09.05ID:e6fQTteq0
全角ならいけるのでは
2023/07/13(木) 19:24:12.45ID:SIvxUY2q0
ちんこかゆい
2023/07/13(木) 20:45:16.67ID:CbGMPheV0
>>529
例えに敢えて突っ込む。
ひろゆきが5chを奪還したら、モジュールを改名せなならんでしょ。なので、chmate に倣い ch.py。
2023/07/13(木) 20:49:16.40ID:e6fQTteq0
5番目のチャンネルならch5が普通なんだよな
2023/07/14(金) 09:51:10.95ID:WrWkCYWC0
スペースちゃんねる 5
537デフォルトの名無しさん (ササクッテロル Sp88-/C8I)
垢版 |
2023/07/15(土) 04:45:11.52ID:GxGOjSejp
そういえばAIに特化した言語が新しく出来るんじゃなかった?
2023/07/15(土) 07:45:46.55ID:L14bh+x+0
そんなのはそろそろAIが勝手に作るだろ
2023/07/15(土) 08:50:48.64ID:WLzbmngd0
それってもはや機械語じゃない?それに人間には読解不能な奇怪語かも知れん
2023/07/15(土) 09:22:20.54ID:L14bh+x+0
AIが一人で考えるなら言語なんか要らないけど、
複数のAIが話し合いをしようとすると何らかの共通言語は要るだろうな
2023/07/15(土) 09:55:24.27ID:xHAexrGh0
聖帝「AIなど要らぬ!!」
2023/07/15(土) 10:23:04.50ID:sgI1NpCc0
そんなニュースはあったな。

終わりの始まり…? 独自言語で話しはじめた人工知能、Facebookが強制終了させる
https://www.gizmodo.jp/2017/08/facebook-ai-sf.html
543デフォルトの名無しさん (ワッチョイ 6602-5Iwu)
垢版 |
2023/07/15(土) 10:48:59.50ID:HUYc3ujc0
AIイラストで背景や服に描かれてる謎の文字がそれじゃね?
2023/07/15(土) 12:29:00.80ID:FawF2Viqa
ただでさえ人間の言語でも色々あるし
プログラミング言語だって一つじゃないのに
AIが言語使い始めたらそれこそ百花繚乱になるだろうな
2023/07/15(土) 12:44:22.86ID:L14bh+x+0
地球ピジン語みたいなエスペラントに代わるものができるかもしれん
2023/07/15(土) 14:09:07.13ID:bqZq+Kwu0
そんなことよりインタープリタからの脱却はまだまだ先なのかね
547デフォルトの名無しさん (ワッチョイ ac46-rpZg)
垢版 |
2023/07/15(土) 14:09:10.71ID:xHAexrGh0
不美人語や醜女語、人三化七語があるのかと思ってしまった。
2023/07/15(土) 14:36:36.53ID:tBtSZ9aSM
>>546
ソースと実行ファイル両方管理すんのマンドクセ
インタープリタこそ至高
549デフォルトの名無しさん (ササクッテロロ Sp10-/C8I)
垢版 |
2023/07/16(日) 00:13:05.89ID:tV35rrDMp
つかPythonこそChatGPTのcode interpreterで十分やろと
550デフォルトの名無しさん (ワッチョイ 8cbb-S0DD)
垢版 |
2023/07/16(日) 23:04:15.17ID:/c1wD1eS0
別にコンパイルしようと思えば出来るじゃん
それにインタープリターのメリットは実行環境選ばないところにあるから
551デフォルトの名無しさん (ワッチョイ 8cbb-S0DD)
垢版 |
2023/07/16(日) 23:05:54.93ID:/c1wD1eS0
>>539
機械語じゃなくて中間言語になるだろ
機械語同士は方言多いから
552デフォルトの名無しさん (アウアウウー Saab-Fman)
垢版 |
2023/07/18(火) 12:57:58.25ID:U1yb2f1Da
>>550
計算によってはハードやOSの違いで値が変わることもあるけどな
2023/07/18(火) 17:16:45.69ID:W27H1kNN0
ちょうどCythonがメジャーアップデートしたらしいから使ってみたら
2023/07/18(火) 18:14:48.63ID:xmXOk1Vf0
お前ら知らないようだから教えてあげようと思ったんだがやはり止めることにしたんだ。
2023/07/19(水) 14:34:57.36ID:/XJELpjn0
seleniumでプロキシを通すとき、ローテーションタイプのエンドポイントだといちいち認証ダイアログ突破しなきゃならないのがめんどい
例えば http://username:password@host:port みたいなのだと
--proxy-server=でchromeドライバーのオプション設定しても認証無理だった
profile上書きして、みたいな解決策はあるみたいだが
556デフォルトの名無しさん (ワッチョイ 3abd-EfLL)
垢版 |
2023/07/19(水) 14:43:10.35ID:k5f5k9F30
急になんだよ
2023/07/19(水) 14:53:53.97ID:Ewgs5Hf50
>>555
https://developer.mozilla.org/ja/docs/Web/HTTP/Authentication
HTTPヘッダで渡せん?
2023/07/19(水) 15:28:03.19ID:4BqgSJod0
>>557
それは自分で実際やってみて出来たってこと?
一応やってみようと思うが、過去にadd_optionとかでやった気がするかもしれないが
ぐぐってStackOverflowに無かったと思うのでたぶんできなさそうな気もする
2023/07/19(水) 15:44:25.18ID:Ewgs5Hf50
>ぐぐってStackOverflowに無かったと思うので
技術者辞めたほうがいいよwww
2023/07/19(水) 17:00:10.42ID:u+cdsS/3M
そもそもselenium使うのがダメなんだと思うよ
2023/07/19(水) 18:25:21.36ID:sF8RrwrcH
>>559
なんで笑ってるのかまったくわからんけど
StackOverflowにすら無かったかも、逆にあったら試し済みかも
って意味な

で、結局
>HTTPヘッダで渡せん?
ってのは自分で試してできたのだろうか
そこ聞きたかったのに完全スルーされてる

ちなみに認証ヘッダ作成してadd_argumentする方法は通らなかった
というかその程度で解決してるならstackoverflowにすでにやってる人がいると思う
そもそもプロキシサービスが提供するベーシックな解決方法が
今のseleniumじゃ--headlessでは無理ですスマン、みたいな説明だったし

てかstackoverflowに限らずまずざっと同じ事例調べんのって普通のことだと思ってたけど違うのか
>>557>HTTPヘッダで渡せん?(だろうか)
のようにまずアタリつけて、「お、イケた よっしゃー!」みたいな?笑
もちろんそういう喜びはあるけど今回みたいにダメだった時どうすんだろ
べつに煽ってるわけではないが気になるなぁ
2023/07/19(水) 19:05:27.52ID:a1zHaHr9M
そういうところだぞ
563デフォルトの名無しさん (ブーイモ MM5e-IGBM)
垢版 |
2023/07/19(水) 21:10:46.70ID:ES61DorgM
こういうメンタリティの人は何やってもダメだわな
2023/07/19(水) 21:17:25.88ID:6R5NftZQ0
たしかに、自分で試したこともない方法で助言するメンタリティの人は何をやってもだめだろうなぁ
565デフォルトの名無しさん (ワッチョイ 7033-/jfo)
垢版 |
2023/07/19(水) 21:28:55.17ID:XLDi8Tb/0
>>557は可能性の一つを示しただけだろ
それを否定して、しかもその根拠がQ&Aサイトに載ってないから、だぞ
だいぶやばいだろ
2023/07/19(水) 21:30:37.27ID:oHydL3V30
探し物してるときに一番ハッキリさせておきたいのは
そもそも無い物を探してた
かどうかってところ

あそこにあったんじゃなーい?
とか助言どころかむしろ邪魔でしかない
567デフォルトの名無しさん (ワッチョイ 1e8c-Y6s1)
垢版 |
2023/07/19(水) 21:44:27.57ID:nKTepp9S0
普通は可能性を示されたらそれが正か否かの確認を自分でしない?
パソコン自体の不具合もそうやって絞り込んでいくし
2023/07/19(水) 21:47:43.09ID:Hzpaw23F0
まずググれとは言うくせに
助言者には、出来ると思うじゃなくまず自分で試せ
とは言わない謎
相手がぐぐっていたら、それ試しましたって不毛になる可能性も高まるのに
なぜか上から目線で自分に甘い

実際、試して出来ました出来ませんでしたって事例があるのがstackoverflowなどのナレッジコミュニティ
>>565は根本的に勘違いしてるけど>>555は1_も助言は求めてないぞ
2023/07/19(水) 21:52:00.02ID:FbW6mKxi0
どこそこで壺買ったらうまくいったぞ
という可能性を示されたら生か否か確認を自分でしないとな笑
いや、そんなことでうまくいかないと知ってる側からすれば確認などするわけない
まずおまえが自分で試せ、となるだけ
2023/07/19(水) 22:01:23.39ID:ihTqsCIr0
A「わからないんです 教えてください」 → B「○○すればええのでは」 → A「わかりました試します」
これはわかる

A「これは出来ないっぽいぞ」 → B「○○すればええのでは」 → A「そんな事例ないけど、自分それでできた?」 → B「知らんけど、可能性を示されたら自分で試せや」
これはまったく理屈がわからない

現実的に後者のやつがいたらごくごく普通に不信感抱くけど
2023/07/19(水) 22:11:14.22ID:Ewgs5Hf50
>>555のURLみるとBasic認証だったんで
技術的には固定のHTTPヘッダを出力するだけなのを案内
うまくいかないのはヘッダ出力か、なーるほどとなると甘く考えてた
おなじように site:stackoverflow.com 縛りでググったけど
add_argumentは仕様でできないからrequest_interceptorをつかえと
いくらでもヒットするし意味わからん
572565 (ワッチョイ 7033-/jfo)
垢版 |
2023/07/19(水) 22:57:06.27ID:XLDi8Tb/0
ごめんなさい、間違ってました
悪いのはID:Ewgs5Hf50です
2023/07/22(土) 08:54:19.91ID:xOnSvjXE0
任意の長さのlistを受け取る関数で、listが一つの要素しか持たないときはlistの代わりにその要素を渡しても良いことにしたいのですがどうするべきでしょうか?
つまり
func([hoge])
の代わりに
func(hoge)
と書くのを許したいということです。
C++ならオーバーロードするだけですが、Pythonの場合はどのようにしますか。
574デフォルトの名無しさん (ブーイモ MMab-3wqI)
垢版 |
2023/07/22(土) 09:22:02.65ID:CGuNy4vJM
>>573
API設計の良し悪しは置いとくとして
何もしなくても関数の引数に違う型を渡すのは許されてる
type hintの話ならunion使えばいい
int | list[int]
オーバーロード的に別関数にしたいなら関数名を変える
575デフォルトの名無しさん (ワッチョイ 7f46-ut6A)
垢版 |
2023/07/22(土) 09:27:38.97ID:i05cYusF0
listが一つの要素しか持たないときでも、例外を設けずlistを渡すべきだ。
2023/07/22(土) 09:28:28.85ID:2b3RUs8b0
自前で型を判定して分岐する。

def func(arg):
 if not isinstance(arg, list):
  arg = [arg]
 return arg

print(func(1)) # [1]
print(func([1,2,3])) # [1,2,3]

一応、オーバーロードっぽい書き方もできる。(結果は上と同じ)
singledispatch という名前の通り、先頭の引数にしか効かないけど。

from functools import singledispatch
@singledispatch
def func(arg):
 return [arg]
@func.register
def _(arg: list):
 return arg
2023/07/22(土) 10:54:42.82ID:v5hjaRdU0
a, _, b, _, c = list
みたいにせずに、
a, b, c = list[0, 2, 4] # 誤り
みたいな感じにリストの一部だけ抜き出すにはどうすれば
578デフォルトの名無しさん (スププ Sdff-8Gu3)
垢版 |
2023/07/22(土) 12:11:10.18ID:RUx94lS4d
>>575
賛成
例外投げるべき
2023/07/22(土) 12:11:33.92ID:265f1RXI0
>>574-576
アザトゥース!
580デフォルトの名無しさん (スププ Sdff-8Gu3)
垢版 |
2023/07/22(土) 12:13:57.55ID:RUx94lS4d
>577
a, b, c = (list[0], list[2], list[4])
あと変数名を'list'にするのはよせ
numpyやpandas使うともうちょっと気の利いた書き方もあり
581デフォルトの名無しさん (アウアウウー Sa2b-tGd7)
垢版 |
2023/07/22(土) 12:24:49.80ID:YLqzZrt5a
>>577
>>> L = [1, 2, 3, 4, 5]
>>> a, b, c = (L[n] for n in [0, 2, 4])
>>> a, b, c
(1, 3, 5)
582デフォルトの名無しさん (アウアウウー Sa2b-tGd7)
垢版 |
2023/07/22(土) 12:34:17.51ID:YLqzZrt5a
>>577
>>> import pandas as pd
>>> L = [1, 2, 3, 4, 5]
>>> L = pd.Series(L)
>>> a, b, c = L[[0, 2, 4]]
>>> a, b, c
(1, 3, 5)
2023/07/22(土) 12:37:31.89ID:YLqzZrt5a
>>577
>>> import numpy as np
>>> L = [1, 2, 3, 4, 5]
>>> L = np.array(L)
>>> L
array([1, 2, 3, 4, 5])
>>> a, b, c = L[[0, 2, 4]]
>>> a, b, c
(1, 3, 5)
2023/07/22(土) 12:46:18.36ID:v5hjaRdU0
現状はリストのインデックスにリストがくるとただのエラーになるから、
pythonがpandasやnumpyの仕様を取り込んでくれればいいのに
2023/07/22(土) 12:50:42.27ID:v5hjaRdU0
まあ、
a, b, c = L[[0, 2, 4]]
こう書く代わりに
a, b, c = np.array(L)[[0, 2, 4]]
こう書けばいいだけか
586デフォルトの名無しさん (ブーイモ MMff-3wqI)
垢版 |
2023/07/22(土) 14:23:00.24ID:QXCscxEqM
不要な要素を除去するステップと
個別の変数や辞書にマッピングするステップは
分けた方がいいんじゃないかという気がする
587デフォルトの名無しさん (ブーイモ MMff-3wqI)
垢版 |
2023/07/22(土) 14:38:32.38ID:kcC8tnpEM
良く考えてみたら分けられてるといえば分けられてるのか
ただ両辺の要素数の一致を保証できるコードか
一致しない場合も考慮したコードじゃないとモヤモヤする
2023/07/22(土) 18:28:57.35ID:v5hjaRdU0
具体的にどういう用途だったかというと、excelのシートを一旦2次元配列に読み込んで、
その中から必要な部分を抜き出している

先頭の行をインデックスにして、そこに書かれた名前でやるのが普通だけど、
得体の知れない手作りデータがソースだと、そんなこともある
589565 (ワッチョイ 7f33-onGn)
垢版 |
2023/07/22(土) 21:02:36.96ID:uM7XUdqd0
>>588
それならfilterのが楽じゃないか
>その中から必要な部分を抜き出している
これをコードに落とし込めるならだけど
filter(lambda x: x % 2 == 0, l)
2023/07/22(土) 21:50:00.68ID:v5hjaRdU0
飛び飛びだよ、という意味で0, 2, 4なだけで、もっと続けると、
0, 2, 4, 7, 11, 12 みたいな感じになる
591デフォルトの名無しさん (ブーイモ MMab-3wqI)
垢版 |
2023/07/22(土) 22:01:05.17ID:oa2ckNVGM
そういう用途ならpandasのread_csvやread_excelでskiprowsやusecolsを指定して必要な部分だけ読み込むかな

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

入力データを整形するステップと
整形したデータをもとに計算加工するステップは分離しておきたい
592565 (ワッチョイ 7f33-onGn)
垢版 |
2023/07/22(土) 22:22:00.69ID:uM7XUdqd0
>>590
>>589のコードはあくまで例で、必要な部分を抜き出す処理を関数化できるならっていう意味です
593565 (ワッチョイ 7f33-onGn)
垢版 |
2023/07/22(土) 22:31:52.11ID:uM7XUdqd0
官公庁から送られてくるデータで、csvとかjsonで送ってくれたら楽なのにexcelファイルでしか送ってくれないとかいうのあったな
2023/07/22(土) 22:40:18.16ID:v5hjaRdU0
取り消し線で消した部分は無効にしないといけないexcelとか地獄
あと何故かみんなセル結合大好き
2023/07/22(土) 23:01:13.06ID:pjILcF770
マイナンバーとか上手く行かないハズだわ
2023/07/22(土) 23:06:41.26ID:v5hjaRdU0
マイナンバーは作った時に暗証番号の登録が大量にあった時点で、
これは絶対駄目だわと思った

行政に理系が皆無なんだよな
理系なら絶対せんやろということを平気でやって失敗する
2023/07/22(土) 23:09:58.01ID:ywRUx2Al0
いまだにコンビニで誤交付あるのがなんとも
2023/07/22(土) 23:15:46.42ID:v5hjaRdU0
システムは別に間違ってない
紐づけの処理を間違ったヒューマンエラー

何故間違ったかというと、前の人の画面のまま次の人の入力したから
2023/07/22(土) 23:31:58.51ID:VWoIL+TEH
うんちをすると、おしっこも同時に出るようなものかな。
2023/07/23(日) 00:10:42.60ID:Y2dIYUXH0
>>593
官公庁はR使ってるからな
互換性持たせるためにpandasつかえってことでしょ
601デフォルトの名無しさん (ワッチョイ 7fbb-IQbN)
垢版 |
2023/07/23(日) 01:53:23.55ID:a7j2OMe40
マイナンバーをプライマリーキーにすれば95%くらい解決する話
要件定義で失敗してる
2023/07/23(日) 08:48:42.98ID:XMl58DhzM
設計開発した企業の名前は全部公表して欲しいな
2023/07/23(日) 09:06:55.98ID:1hxNS+Jv0
その段階でのミスはただのバグで容易に修復が可能
仕様や要件がそもそも間違ってるので、もうどうしようもない
604デフォルトの名無しさん (ブーイモ MMff-3wqI)
垢版 |
2023/07/23(日) 09:09:02.32ID:B6RMz+SmM
>>601
マイナンバーをプライマリキーにしたらダメだよ
クレジットカード番号をプライマリキーにしないのと同じ
605デフォルトの名無しさん (ワッチョイ 678c-FGcY)
垢版 |
2023/07/23(日) 09:11:22.21ID:ijFwVi/G0
一体どういうシステム組めば同姓同名の他人と取り違えて登録できるんだよというのは疑問だった
2023/07/23(日) 09:12:09.24ID:1hxNS+Jv0
そんなケースあった?
2023/07/23(日) 09:13:28.92ID:NhS1+0R50
まあマイナンバーに限らず官公庁は昔から富士通系
2023/07/23(日) 09:18:19.30ID:E9NR74nn0
入力ミスじゃなくて富士通がバグ直してなかった
2023/07/23(日) 09:22:35.53ID:NhS1+0R50
まあ普段からEXCELしか触らない事務員からすればcsv何それだからね

pandas使うにしろ目視手操作による前処理はまあ必要
2023/07/23(日) 09:38:52.76ID:NhS1+0R50
人間一人一人を本気で識別しようと思ったら塩基パターンのダイジェスト値でも求めるしかなさそう

いやそれこそ個人情報だけどな
2023/07/23(日) 09:41:09.96ID:1hxNS+Jv0
DNAの個人差なんか殆ど無いよ
2023/07/23(日) 10:40:07.53ID:NhS1+0R50
え?警察のDNA鑑定も無駄だってこと?
613デフォルトの名無しさん (ワッチョイ 7f46-ut6A)
垢版 |
2023/07/23(日) 10:49:52.76ID:SbvWaAdq0
>>612
八卦占いレベルと聞いているが、向上したのかな。
614デフォルトの名無しさん (アウアウウー Sa2b-tGd7)
垢版 |
2023/07/23(日) 10:58:57.84ID:kMNWXVHya
>>598
主張1「前の人がログアウトしてない」
>>605
主張2「同姓同名の人が重複」
つまり2の原因が1だと言ってることになる
そんな奇蹟的なことがあるか?
政府の発表は嘘だということ
2023/07/23(日) 10:59:49.13ID:NhS1+0R50
人とチンパンジーの遺伝子が99%同じって話もこれ100分率が尺度として粗すぎるって事だけどな
2023/07/23(日) 11:02:16.46ID:kMNWXVHya
>>610
最近プーチンの影武者が話題になっているが
NE○が自慢してる画像だけで100億分の一で判定出来る顔認証AIで判定して欲しいものだ
2023/07/23(日) 11:28:45.57ID:foNozPN40
>>601>>604
どのテーブル/エンティティを対象にしているかを抜かして議論するのがそもそもダメ。
マイナンバーに紐付くべき情報を保持するテーブルでマイナンバーをキーにするのは何もおかしなことはない。
618デフォルトの名無しさん (ブーイモ MM8f-3wqI)
垢版 |
2023/07/23(日) 17:04:38.87ID:SI3XE8qvM
>マイナンバーに紐付くべき情報を保持するテーブルでマイナンバーをキーにするのは何もおかしなことはない。
マイナンバーを発行する機構のシステムでもアクセスキーを持つ情報保有機関のシステムでもそんな設計したらダメだよ
詳しく知りたければDB設計スレにでもどうぞ
2023/07/23(日) 17:07:00.98ID:1hxNS+Jv0
詳しくは知りたくないがざっくり説明すらできないのは何も知らんとしか
2023/07/23(日) 17:30:31.15ID:foNozPN40
>>618
まずはどういう理由でダメなのかを一言で説明してみて。
更新異常とかパフォーマンスとかセキュリティとかいろいろあるわけだし。
2023/07/23(日) 17:37:23.40ID:NhS1+0R50
マ板的な話題かも知れんね

なぜマイナンバーカードはうまくいかないのか
https://medaka.5ch.net/test/read.cgi/prog/1688658413/

まあこういう話題は身近なプロジェクトでも起こりうるのであながち無縁ではない
2023/07/23(日) 17:42:43.73ID:foNozPN40
>>618
じゃあよろしく。

DB設計を語るスレ 11
https://mevius.5ch.net/test/read.cgi/db/1630156137/307
2023/07/23(日) 18:13:42.78ID:y9AcmLwP0
>個人番号(マイナンバー)は原則として生涯同じ番号を使い続けていただき、自由に変更することはできません。
>ただし、漏えいして不正に用いられるおそれがあると認められる場合に限り、ご本人の申請または市町村長の職権により変更することができます。

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

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

DB設計的に綺麗なのは後者だけど、実装が楽で高速なのは前者
テーブル結合が発生するやり方は性能設計的にやりたくない
2023/07/23(日) 18:23:19.83ID:gta1+Avk0
個人番号自体は悪用された場合等に変更されることもあるんじゃなかったっけ?
だとすれば、これをプライマリーキーにしたらまずいと思うんだけど
2023/07/23(日) 18:43:52.80ID:1hxNS+Jv0
例外なく個人と生涯対応した隠しIDみたいなのがあって、それで管理されている
個人番号はそれと紐付けられた情報の一つ
2023/07/23(日) 19:10:08.65ID:foNozPN40
>>624
それは個人とマイナンバーをちゃんと区別する話。
再発行があるなら古いナンバーに紐付く情報と新しいナンバーに紐付く情報が個別に存在するかもしれないし。
2023/07/23(日) 19:58:18.01ID:Y2dIYUXH0
個人番号をある数値で割って剰余を〇〇みたいな古典的な暗号化だったら笑う
2023/07/23(日) 20:31:45.21ID:EYaHQibB0
個人番号って秘密にするものなの?
身分証明証として使えばふつうに漏洩するじゃん。
どっかの店の会員登録したり、使うケースは今後多くなるんじゃない?
なぜなら保険証も免許証もなくなるのだから。
2023/07/23(日) 20:37:40.81ID:uD38j19SM
番号自体でどうこうできないけども
トラッキングに使えるから収集は制限されてる
2023/07/23(日) 20:56:43.81ID:1hxNS+Jv0
個人情報は保護しなければ
と理由もなく思い込んでるフシがある
昔は住所も電話番号も普通に公開してたのに

スウェーデンみたいに番号知られたって何も困らんというスタンスの方がいろいろ便利
2023/07/23(日) 22:00:31.57ID:ZJTCwnE/M
10年以上Python使ってきたけど、今日ドキュメントを見ていてmatch文て存在を初めて知って軽いカルチャーショックだわ
これCとかのswitchだよね?
Pythonはswitchがなく、複数の条件分岐にはif~elifを使うってのが常識だったように思うが俺が見落としていたのか
2023/07/23(日) 22:15:19.88ID:AOK+XCDI0
まあまあ最近に追加されたから知らなくてもおかしくはないかな
Cのswitch/caseとしても使えるしもっと複雑なこともできる
633デフォルトの名無しさん (ワッチョイ 678c-FGcY)
垢版 |
2023/07/23(日) 22:20:57.34ID:ijFwVi/G0
Python 3.10からなら超最近じゃん
2023/07/23(日) 23:25:41.19ID:ZJTCwnE/M
職場で個人的にEUCを推進していてさ
自分で書いた小物ツールを他者に説明したりするんだけど
偉そうに「Pythonはシンプルを旨とし、一つのことをするのに
複数の書き方はできないようになってる。
よって条件分岐はifしかない」なんて能書き垂れてたんだよね
人に教える立場の者は常に勉強してないといけないなって反省
2023/07/23(日) 23:28:32.79ID:1hxNS+Jv0
sjisの方がよくね
2023/07/23(日) 23:41:11.15ID:E9NR74nn0
matchそのまま代入できたらよかったのに
637デフォルトの名無しさん (ワッチョイ 7f33-DCff)
垢版 |
2023/07/24(月) 07:42:50.24ID:bhgXPbrR0
>>634
ちなみに、utf-8よりEUCを推奨する理由についてはどう説明してるんですか
2023/07/24(月) 08:10:31.42ID:E+poxZzBM
>>635の意味がわからなかったけど>>637で把握
マジレスしとくとエンドユーザーコンピューティング
エンドユーザー部門が自力でツールを開発メンテすれば金がかからず仕事も楽になる
639デフォルトの名無しさん (オイコラミネオ MM3b-vA7O)
垢版 |
2023/07/24(月) 08:23:31.68ID:OTkPxk5XM
>>635
eucはsjisより後に作られた。もちろん理由があってのことだ。
640デフォルトの名無しさん (ブーイモ MMcf-2YhC)
垢版 |
2023/07/24(月) 08:55:56.30ID:hxZ6wCW4M
UTF-8が標準なのもなんかなぁ
マルチバイト環境ならUTF-16のが効率よくね
641デフォルトの名無しさん (ワッチョイ 678c-FGcY)
垢版 |
2023/07/24(月) 08:58:01.85ID:SSci5eI60
世界的に普及している中で世界中の文字をそれなりに扱えるのがUTF-8だから
642デフォルトの名無しさん (アウアウウー Sa2b-dDmk)
垢版 |
2023/07/24(月) 09:21:53.31ID:opC+VrO7a
EUCが一番不要
何のメリットがあるんだよ
2023/07/24(月) 09:30:34.81ID:b4teMFwba
>>623
そもそも12桁って少な過ぎる
絶対将来枯渇するよな
644デフォルトの名無しさん (アウアウウー Sa2b-tGd7)
垢版 |
2023/07/24(月) 09:33:25.07ID:b4teMFwba
>>628
そもそも秘密なら「教えろ」って言ってくるはずが無い訳だが
そういう仕組みにはなっていないね
2023/07/24(月) 09:36:09.41ID:b4teMFwba
>>636
どこのRustの人ですか
646デフォルトの名無しさん (アウアウウー Sa2b-tGd7)
垢版 |
2023/07/24(月) 09:39:02.04ID:b4teMFwba
>>642
unicodeのcodepointのうちで
sjisに変換不可能な文字は存在するが
eucなら変換出来るんじゃないかな
それだけでもsjisがいかに糞か判る
647デフォルトの名無しさん (ワッチョイ 7f33-DCff)
垢版 |
2023/07/24(月) 10:43:02.36ID:bhgXPbrR0
>>638
とりあえず、>>637
っていうか、utf8普及しまくってるのに何でわざわざeucにするんですかって聞かれ時はどう答えてるの?
2023/07/24(月) 11:23:39.95ID:4YyKbOUI0
>>647
読み間違えてるよ
誤:EUC(Extended Unix Code)を推奨する
正:EUC(End User Computing)を推進する
649デフォルトの名無しさん (ワッチョイ 7f46-ut6A)
垢版 |
2023/07/24(月) 12:11:52.51ID:jISsTKbU0
EUC(European Union Center)だろ。
2023/07/24(月) 18:28:38.98ID:NnxoLtiq0
>>643
日本が存続する限り運用するなら何桁にしても枯渇する
651デフォルトの名無しさん (ワッチョイ df02-/dWn)
垢版 |
2023/07/25(火) 01:07:45.39ID:BpssBnM30
足りなくなったら電話番号みたいに桁増やすでしょ
その時はお役所仕事でグダグダになるんだろうけど
2023/07/25(火) 05:40:35.68ID:xb+ZpjMN0
IPアドレスの枯渇とかと同じだと思ってるな
ビット数なんか決まってないんだからどうにでもなる
内部的には19桁までいける筈
2023/07/25(火) 07:01:10.71ID:VkH/on+mM
web3は国策のはずだがどうなったのだろうな
失敗するんだったらコッチで失敗した方が後の糧となるのにな
654デフォルトの名無しさん (ワッチョイ 678c-FGcY)
垢版 |
2023/07/25(火) 07:37:27.20ID:7bxToldZ0
web 2.0の時点で何それ知らんだったのにまだやるのか
655デフォルトの名無しさん (ワッチョイ bf63-4dwq)
垢版 |
2023/07/25(火) 14:07:53.28ID:rWqhM1Bk0
from importってどこで定義すれば良いのか規則とかあるのでしょうか?

from . import samples
def util():
 pass
def main():
 ここでsamples.aaaなどを参照する処理

とかやった場合にsample.aaaでutil参照してる場合に循環importエラーでますよね
なのでmain関数の中でfrom .import samples
にするかそもそもutile関数を分けるか、だとおもうのですが
そういう場合は、って慣習があるのか気になりました
2023/07/25(火) 14:33:36.56ID:iTChcdyRa
as hogehoge するとか
ディレクトリ造って __init__.py の方でなんとかするとか
657デフォルトの名無しさん (ワッチョイ 5f32-QY1y)
垢版 |
2023/07/25(火) 14:50:47.21ID:SopfjPcB0
最小構成はこんな感じです
https://pastebin.com/1VEJDXPC

要は、samplesとhogeはお互いの機能を使い合いたい、感じです

仮に、aaaでしかsamples.util使わないならaaaの中でimportすれば循環は回避できます。
また、
hoge.utilの中ではsamplesを参照しない、
のは誰が書いても論理的に確定しているから
hoge.mainの中でsamplesをimportする
という方がしっくりきます

しかし、hoge.main以外にmain1,2と増えた場合に毎度その中で書くことになります
なのでそれが通例?なのかな、と。または別の慣習があるとか
それだったらもう、
「samplesの機能を使うようなモジュールとそうでないモジュール」
として、hoge.utilを完全に隔離した方がシンプルで迷うことは無いのではと考えました

こういうの__init__.pyとかで解決できるんですかね・・?
ちょっと調べてみようと思います >>656

感情論で言うと
「hoge.util内でsamplesの機能ひとつも使っていないのに、どうしてhoge全体でsamplesをimportしたの?」
が根本的な問題なような気がして・・
2023/07/25(火) 16:03:23.98ID:iTChcdyRa
hoge.py の中で from samples import aaa
659デフォルトの名無しさん (ワッチョイ e7da-elOp)
垢版 |
2023/07/25(火) 17:03:52.28ID:vV5HZ24s0
>>658
>>655の>ここでsamples.aaaなどを参照する処理
の”など”というのは、もしかしたらbbbかもしれないしcccかもしれないし
mainの引数を受け取って条件分岐したりgetattrしたりするかもしれない
ということです

つまりhoge.mainをもう少し汎用的に書くとすれば
hoge内でsamplesから使う機能を把握しておき、例えば
from samples import aaa,bbb,ccc,ddd
など使う可能性のある機能だけを事前に宣言しておいて
def main(sample_type):
のように条件分岐する設計がベストということでしょうか

たしかにこれならmainと同じ場所にutilを書いても論理性が担保されるなと思いました。
デメリットは、samples側でsamples_typeに渡す引数に変更があった場合
import aaa,bbb,ccc,ddd の行 と hoge.mainの条件分岐内のコードも修正しなければならない
ということくらいでしょうか
660デフォルトの名無しさん (ワッチョイ 7fcf-WOXz)
垢版 |
2023/07/25(火) 17:18:07.90ID:igfKK3yD0
というかsamplesでfrom .hoge import utilしていると
hoge.pyの中で部分的に from samples import しても循環エラー出ますね。 >>658

やはり、使わない機能は隔離して一方向でimportする
というのがベストなのかもしれない
661565 (ワッチョイ 7f33-onGn)
垢版 |
2023/07/25(火) 19:50:56.15ID:UAjCsPDR0
何でそういう構成なのかよくわからんからあれだけど、そのままでいくならhoge.pyのmainを__int__.pyに移すとかじゃない
662デフォルトの名無しさん (アウアウウー Sa2b-X5BL)
垢版 |
2023/07/25(火) 21:22:26.38ID:VfuQkNGra
>何でそういう構成
構成にしているというか、現状はしてません

samples.pyとhoge.pyでお互いの機能をimportし合うケースってあるよね
というのが前提にあって、かつ
「hoge.mainとhoge.utilは機能的に関連性が高いので同じpyファイルにまとめる」
と循環が起きる
対策は
(1)importの場所を変える
(2)pyファイルを分ける
(3)__init__.pyでやる
で、今は(2)hoge.mainとhoge.utilをhoge.pyとhoge_util.pyに分けてます

>hoge.pyのmainを__int__.pyに移す
というのがいまいちわかりませんが
とりあえず__init__.pyで処理したのは
https://pastebin.com/DctEgQwC
これですが、やはり循環エラーが出ます
やり方があっているのかはわかりません。
663565 (ワッチョイ 7f33-onGn)
垢版 |
2023/07/25(火) 22:02:11.25ID:UAjCsPDR0
>>662
https://pastebin.com/0Z9qiNyv
664565 (ワッチョイ 7f33-onGn)
垢版 |
2023/07/25(火) 22:10:25.73ID:UAjCsPDR0
.hogeの"."みたいな使い方初めて知った
665565 (ワッチョイ 7f33-onGn)
垢版 |
2023/07/25(火) 22:13:45.51ID:UAjCsPDR0
実行結果わすれた
https://pastebin.com/TMhJtUVi
666デフォルトの名無しさん (ワッチョイ 275f-OZEF)
垢版 |
2023/07/25(火) 22:22:23.99ID:6HC3TGbL0
>>663-665
ありがとうございます
>mainを__int__.pyに移す
って文字通りだったんですね・・w
ただ、これってhoge_util.pyとhoge.pyに分ける
と何が違うんでしょうか??

hoge.mainという関数名はあくまで最小構成のための仮の命名なので
__init__.py内に書くのは雰囲気的には合ってますが
もっと具体的な機能名だった場合に
hogeモジュールとほぼ関係が断ち切られるので困るような

ちなみにhoge_util.py hoge.pyにあえて分けたやつです
https://pastebin.com/SkAM1JhB
667565 (ワッチョイ 7f33-onGn)
垢版 |
2023/07/25(火) 22:22:28.79ID:UAjCsPDR0
>>662
>samples.pyとhoge.pyでお互いの機能をimportし合うケースってあるよね
あるか?
668デフォルトの名無しさん (ワッチョイ 7fbb-IQbN)
垢版 |
2023/07/25(火) 22:54:39.51ID:kbsi1DjE0
__init__.pyってディレクトリ名を名前空間として
他のクラスを使う特殊なモジュールだという認識
言い換えればディレクトリ名というクラスのコンストラクタであり
ディレクトリ内のモジュールは内部クラスである
669デフォルトの名無しさん (ワッチョイ dfad-IOyT)
垢版 |
2023/07/25(火) 22:55:19.84ID:P8udYAxA0
util分けずに>>662の(1)のimportのスコープを替えて回避する、もついでに
https://pastebin.com/NsXLF3T2

やはりimportは自作モジュールか否かに関わらず
基本は一番上のスコープでimportするようにして
そのimportしたモジュールの機能を使っていないものは
素直に隔離して小分け、という規則に従った方がいいっぽいですね
まだ何か弊害ありそうな気はするものの
2023/07/26(水) 09:31:51.47ID:udWNOLwT0
matplotlib.pyplot.show()すると一々ウィンドウができてスクリプトが止まるけど、そうならないでほしい
block=Falseにすると止まらないが図が一瞬で消える
show()する度に永続的な (=閉じるまで消えない) ウインドウを出しながらスクリプトは続行する方法ありますか
2023/07/26(水) 10:19:22.64ID:gDBE6+Md0
>>670
https://matplotlib.org/stable/gallery/misc/multiprocess_sgskip.html
こんなとこで聞くより公式サイトをまず漁る
2023/07/26(水) 11:11:48.46ID:78KtOcma0
ChatGPTに聞けば一瞬で答えてくれるやろ
673デフォルトの名無しさん (ワッチョイ dfbd-h4sM)
垢版 |
2023/07/26(水) 12:16:00.18ID:NW3R3IJu0
この手の質問してくる人が>>671を見てパッと理解できるとは思えん
674デフォルトの名無しさん (ワッチョイ a734-ZCrp)
垢版 |
2023/07/26(水) 13:22:27.16ID:GIx/DHwN0
>show()する度に永続的な (=閉じるまで消えない) ウインドウを出しながら
って極論ブラクラみたいになるってこと? >>670
そのやり方はわからないので必要ないかもだがあえて別の方法を掲示
自分がやるなら画像に出力して、ビューワで表示するなり
簡易的なhttp-serverでも立ててwebアプリにしてしまう

画像出力するだけの方をチャッピーに聞いてそのまま実行したけどできた
https://ideone.com/pNXjgN
2023/07/26(水) 14:45:09.68ID:+VPKYlg4a
show()使わずにpause()してdraw()するんだよ
2023/07/27(木) 03:37:07.84ID:uhvAOvsF0
>>671,673
ええ。全くわかりません。
一時ファイルに書き出して最後に全部表示して消すとかで代替しようかと思います。

>>674
>> show()する度に永続的な (=閉じるまで消えない) ウインドウを出しながら
> って極論ブラクラみたいになるってこと?
そうです。
意外と難しいっぽいですね。

>>675
何も理解せず的外れなこと言ってるね。
2023/07/27(木) 04:05:01.27ID:uhvAOvsF0
いやよく見たら>>671も同じウインドウ内で次々と違うプロットを出す方法じゃん。
show()毎に前のウインドウを残したまま新しいウインドウを出すというのが今やりたいことです。
2023/07/27(木) 09:01:24.08ID:GoQM94Wca
>>675-677
馬鹿には無理
679デフォルトの名無しさん (ワントンキン MMbf-FGcY)
垢版 |
2023/07/27(木) 09:09:41.74ID:F3HgNoZlM
またこいつか
質問する側なのに偉そうな奴
2023/07/27(木) 09:23:17.34ID:HNphsCPDM
答えもしない外野が一番偉そうだよなw
681デフォルトの名無しさん (ワントンキン MMbf-FGcY)
垢版 |
2023/07/27(木) 09:41:18.81ID:F3HgNoZlM
>>680
じゃあ答えてあげてね
2023/07/27(木) 10:39:22.50ID:6rwcdyUp0
>>670
その文面をChatGPTに入れて聞けよ
2023/07/27(木) 10:55:48.95ID:KDpjz6pI0
>>678
うん。で、なんで>>675みたいな投稿しちゃった?
684デフォルトの名無しさん (ワッチョイ dfbd-h4sM)
垢版 |
2023/07/27(木) 12:27:31.67ID:klnm5ZEA0
マルチスレッド、マルチプロセス、同期、非同期、その辺もろもろの基礎知識ないとダメかと
急がば回れでまずはそこを学ぼう
2023/07/27(木) 21:41:08.59ID:alYzqiaL0
そうだよね
俺が間違ってたよ
画像のエンコードから学んでくる!
2023/07/27(木) 21:51:47.85ID:tOZTURiE0
質問者様の方が偉いんだよ
687デフォルトの名無しさん (ワッチョイ 7f46-ut6A)
垢版 |
2023/07/27(木) 23:57:37.27ID:WsZf6wiz0
まず「急がば廻れ」(Walk, Don't Run) を聴きましょう。
2023/07/28(金) 00:38:09.66ID:7q/zwki10
ChatGPT4-DefaultとChatGPT4-Code Interpreter
に依頼しまくれば基礎知識無くてもアプリできちゃうよ

根気よく会話して、話が噛み合わなくなったら
チャットを新規で始める
エラーが出たらそれをそのままChatGPTに伝える
2023/07/28(金) 00:40:24.18ID:7q/zwki10
ChatGPT4-Code Interpreter+Custom instructionsの回答

matplotlib.pyplot.show()を使用すると、
通常、図を表示するウィンドウが開き、
そのウィンドウが閉じられるまでスクリプトが停止します。
しかし、スクリプトを停止させずに新しいウィンドウで図を表示したい場合は、
次の方法を試してみると良いでしょう。

ion()を使用してインタラクティブモードをオンにします。
figure()を呼び出すことで新しい図を作成します。
グラフをプロットします。
draw()を使用して図を更新します。
2023/07/28(金) 00:44:32.99ID:7q/zwki10
以下は、この方法を使用して3つの異なる図を作成し、
それぞれの図を新しいウィンドウに表示する例です。

import matplotlib.pyplot as plt
import numpy as np

# インタラクティブモードをオンにする
plt.ion()

# 最初の図
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
plt.figure() # 新しい図を作成
plt.plot(x, y1)
plt.title("図1: sin(x)") # 日本語のタイトル
plt.draw() # 図を更新

# 2番目の図
y2 = np.cos(x)
plt.figure() # 新しい図を作成
plt.plot(x, y2)
plt.title("図2: cos(x)") # 日本語のタイトル
plt.draw() # 図を更新

# 3番目の図
y3 = np.sin(x) * np.cos(x)
plt.figure() # 新しい図を作成
plt.plot(x, y3)
plt.title("図3: sin(x) * cos(x)") # 日本語のタイトル
plt.draw() # 図を更新
2023/07/28(金) 00:47:48.47ID:7q/zwki10
ChatGPT4-Code Interpreter+Custom instructionsの回答(別のチャット)

matplotlibのデフォルトの挙動では、plt.show()を呼び出すと、
ウィンドウが表示される際にスクリプトの実行が停止します。
しかし、block=Falseを設定すると、
ウィンドウがすぐに閉じてしまうという問題が生じます。

この挙動を変更して、
show()を呼び出すたびに新しいウィンドウを生成しながらスクリプトを続行するには、
以下の手順を試してみることができます。

plt.figure()を使用して新しいフィギュアを明示的に作成します。
プロットやサブプロットを作成します。
plt.show(block=False)を使用してフィギュアを非ブロッキングモードで表示します。
plt.pause()を使用して少しの間ウィンドウを表示させます。
この時間は調整できますが、通常は短い時間(例えば0.1秒)で十分です。
2023/07/28(金) 00:48:15.50ID:7q/zwki10
以下は、この手順を使用して連続して2つのグラフを表示するサンプルコードです。

import matplotlib.pyplot as plt
import numpy as np

# データの生成
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 最初のグラフを表示
plt.figure() # 新しいフィギュアを作成
plt.plot(x, y1)
plt.title("y = sin(x)")
plt.show(block=False)
plt.pause(0.1) # ウィンドウを少しの間表示させる

# 二つ目のグラフを表示
plt.figure() # 新しいフィギュアを作成
plt.plot(x, y2)
plt.title("y = cos(x)")
plt.show(block=False)
plt.pause(0.1) # ウィンドウを少しの間表示させる
693デフォルトの名無しさん (スフッ Sdff-nfxy)
垢版 |
2023/07/28(金) 10:31:09.70ID:KkbicWNnd
判らないなら黙ってて下さい
ウザいだけです
2023/07/28(金) 11:59:26.34ID:pDBZ2PJA0
>>688-692
全く俺のやりたいことじゃない
2023/07/28(金) 12:40:41.62ID:viYsqOsS0
あほくさ
2023/07/29(土) 00:47:40.65ID:LDYSy/8b0
指摘できる人が来ると思ったけどダメだったか
2023/07/29(土) 02:29:49.24ID:bG9XHQk/0
Seleniumでwebdriver_manager当たり前のように使ってたけど、Chrome115問題でちょっと色々考えさせられた。
結局今後もGoogleがドライバーの場所変えたらエラー吐くわけだから対処するならchromeのアプデしないようにするべきか。
698デフォルトの名無しさん (ワッチョイ 3ebb-bWks)
垢版 |
2023/07/29(土) 11:12:06.08ID:CFjN6W2L0
手動でダウンロードしてきたらいいだけでは
2023/07/29(土) 12:39:48.66ID:S5qD2leK0
"""
Usage:
test.py [-t <test>]
"""
from docopt import docopt
args = docopt(__doc__)
print(args)

>test.py -t aaa
{'-t': False,
'<test>': None}

win11でdocoptが動いてない気がする
docopt 0.6.2
2023/07/29(土) 13:41:09.08ID:YEGyQG5k0
チンチンシュッシュッシュッしてる感じのスレッドか
2023/07/29(土) 14:12:11.80ID:S5qD2leK0
自決

>python test.py -t aaa
{'-t': True,
'<test>': 'aaa'}

win10と挙動が違う
2023/07/29(土) 14:26:43.60ID:S5qD2leK0
test.py で起動すると、open('file')はtest.pyと同じ場所から開く
python test.py だとカレントの場所が変わるのでエラーになる

コードに絶対パス埋め込むのも何だし、pyのある場所を取得するのも面倒だし
きっちりすると面倒が増える
2023/07/29(土) 14:43:38.34ID:S5qD2leK0
parent = Path(__file__).resolve().parent
parent.joinpath(file)

みたいにすれば相対で書ける
これは便利だと関数化ライブラリに登録すると、ライブラリのあるパスになってしまう
2023/07/29(土) 15:57:30.99ID:S5qD2leK0
別のフォルダのライブラリにある関数を呼び出して、
open(add_current_path(LOG_FILE))
みたいにできないもんか
2023/07/29(土) 19:30:37.27ID:E/MzBLso0
個人的に基本、pythonスクリプトで扱うファイルやディレクトリの絶対パスは
envファイルに書いてる
環境変数にしてもいいし、嫌ならenvファイルに直接アクセスさえ出来れば
出口が必ず絶対パスになるのでenvの編集だけ気にすればいいだけだし
2023/07/29(土) 19:57:56.17ID:S5qD2leK0
__file__ を渡したらchdirしてくれる関数を作って、おまじないの1行を追加しよう
707565 (ワッチョイ 7e33-CF7t)
垢版 |
2023/07/29(土) 22:21:52.96ID:NWGO3xeu0
venv使えばいいじゃん
2023/07/29(土) 22:35:15.06ID:S5qD2leK0
windowsでランチャーからスクリプト起動して処理させる使い方とvenvが合うと思えないんだよな
709565 (ワッチョイ 7e33-CF7t)
垢版 |
2023/07/30(日) 01:38:23.04ID:xSgp5A2Q0
windowsのランチャーって何?サービスと違って実行環境にvenv指定できないの?
2023/07/30(日) 02:18:03.51ID:lPGZsOOx0
def find_data_file(filename):
if getattr(sys, "frozen", False):
datadir = os.path.dirname(sys.executable)
else:
datadir = os.path.dirname(__file__)
return os.path.join(datadir, filename)
2023/07/30(日) 05:48:45.82ID:bULoPszl0
だからそれだと、その関数を登録したライブラリのあるパスを返すんだって
2023/07/30(日) 06:05:34.19ID:GM7u7fGAa
漏れは、デスクトップにショートカットを作って、

WSL2, Ubuntu-18.04, VSCode を起動して、
プロジェクトフォルダを開いているけど

リンク先
C:\Windows\System32\wsl.exe code .

作業フォルダ
\\wsl$\Ubuntu-18.04\home\<ユーザー名>\test\proj1
2023/07/30(日) 14:37:10.07ID:98nj2cg90
pythonで扱うファイルのパスってほぼ100%
設定ファイルだったり静的だったりするから
pythonファイル毎に相対パスで扱うのは罰ゲームでしかない
2023/07/30(日) 14:39:33.51ID:bULoPszl0
同じディレクトリにconfig.iniを置いて、とかむしろ常套手段なのでは
2023/07/30(日) 14:45:19.86ID:YLokddKe0
だからenvするのが常套なんじゃないの
env後は相対パスになりようがないから
pythonスクリプト内で相対か絶対か処理を気にしなくてよくなる
2023/07/30(日) 15:08:07.33ID:bULoPszl0
venvは殆ど使ったことない上に、使うと混乱するのでむしろ避けてる
ぐぐってもコンソールから使ってる例しか見つからないけど、
例えばexcelのマクロからさらに呼び出して、みたいな時にも使える?
2023/07/30(日) 17:23:26.95ID:kJu8CNGi0
そりゃ環境変数案件だな
718デフォルトの名無しさん (ワッチョイ 7e33-CF7t)
垢版 |
2023/07/30(日) 18:30:42.96ID:xSgp5A2Q0
>>715のenvとvenvは別もんよな?
2023/07/30(日) 20:26:24.18ID:xOWqpOI00
import traceback
print(traceback.extract_stack()[0].filename)
これで実行開始のファイル名が取れたりしない?
スタックトレースの1番最初を取ってくる感じだけど

試してないので、出来なかったらごめんなさい
720718 (ワッチョイ 7e33-CF7t)
垢版 |
2023/07/30(日) 20:37:36.60ID:xSgp5A2Q0
よな?違う?どうなん>>715
2023/07/30(日) 20:42:39.05ID:bULoPszl0
これならいけそう
2023/07/31(月) 01:38:57.99ID:Eecmz8Qn0
>>718
env: 普通は環境変数のことを言う
venv: 公式の仮想環境ツール
だからまったく関係ないよ
2023/07/31(月) 06:36:07.27ID:sj/Zsipy0
python.exeのある場所をカレントディレクトリにして立ち上がるのが間違ってるんだよな
そんな場所に用はない
何かのオプションを付けると、pyの場所をカレントにして立ち上がるとかになってるべき
本当はそれがデフォルトであって欲しい
2023/07/31(月) 07:13:10.38ID:hd73voNN0
w
725デフォルトの名無しさん (アウアウウー Sa1f-MRRk)
垢版 |
2023/07/31(月) 08:10:06.12ID:i86yzHNoa
>>723
実行環境無視しろってこと?
インストールしてるライブラリーも環境によって違うのに?
2023/07/31(月) 08:14:28.90ID:48kAXXAcM
ハイレベル過ぎてついて行けない
2023/07/31(月) 10:02:13.71ID:8wbRk2dYF
if __name__ == '__main__': で __main__ 描いている人は多いと思うけど
__file__ で自分の .py の位置取れるの知らない人は多い
728デフォルトの名無しさん (ワッチョイ 1746-ZTxv)
垢版 |
2023/07/31(月) 11:12:47.09ID:abrV6Hh30
>>727
> 自分の .py
とは何。
2023/07/31(月) 14:10:18.34ID:Gx4f02N00
ググらんの?
730デフォルトの名無しさん (ワッチョイ 1746-ziAf)
垢版 |
2023/07/31(月) 14:29:11.89ID:abrV6Hh30
>>702
ググって分かることなのか...

> python.exeのある場所をカレントディレクトリにして立ち上がる

とか、京人が妄言を交わしているようにし見えないけど、皆真摯に話しているので事実なんだろうね...
731デフォルトの名無しさん (スププ Sd8a-kvF/)
垢版 |
2023/07/31(月) 14:42:29.33ID:z7fzl/90d
眼の前に答えがあっても観えない
観ようともしないフシアナさんには
Pythonは無理
732デフォルトの名無しさん (ガックシ 063f-0KF6)
垢版 |
2023/07/31(月) 14:52:20.98ID:W5vBZByd6
>>716
使える
>>730
事実ではない
2023/07/31(月) 14:52:49.91ID:UKf8oRTI0
VSCODEでワークスペースに置いて作業すれば全て解決する話なのでは?
>test.py云々
2023/07/31(月) 21:15:58.91ID:+1m4O9oL0
>>716
venvなんてPythonの実行環境をvenvディレクトリ内にそのまま持ってるだけだから、そこのPython実行ファイルをフルパスで直接指定してやればいいだけ

普通はPythonにパスが通ってる状態で
python hoge.py
とかで実行するけど、それを
C:¥foo¥bar¥puroguramu¥venv¥bin¥python hoge.py
みたいにやる
2023/07/31(月) 21:24:17.33ID:Vr4eYj/H0
venvそういうのなのか
コンソールでコマンド打って、今からここだけバージョンなんとか、みたいに使うんだと思ってた
複数のバージョンを切り替えたい要求は特に無いので全部最新で構わない

venvとhoge.pyが自分の場所が判ることとは関係ないよね
736デフォルトの名無しさん (ワッチョイ 7e33-CF7t)
垢版 |
2023/07/31(月) 22:03:58.43ID:AftC5NAU0
python hoge.pyしたらインストール先のpython.exeが呼ばれるけど、venvをactivateした場合はpython hoge.pyしたらvenvのpython.exeが呼ばれる
Lib\site-packagesも同様
仮想環境っていうかインストールした環境と切り離して実行環境を構築できるのがvenv
venv環境のPythonバージョンはvenv作るときに実行したPythonのバージョンと同じになる
2023/08/01(火) 14:23:03.31ID:s61+iNuO0
<div class="form-input-wrapper" data-v-a0d39a18=""><input type="text" name="" value="" placeholder="メールアドレス" class="form-input" data-v-a0d39a18=""></div>
seleniumでこんなelementを取得してsend_keys()しても何も入らない
ぐぐって見つかる自動ログインの記事とhtmlの書き方が違う
何か別の方法が必要?
2023/08/01(火) 14:25:20.51ID:s61+iNuO0
と思ったらできた
> input を削ったのを忘れてた
2023/08/01(火) 17:28:09.70ID:s61+iNuO0
折角作ったのに、本番環境のwin7では動かなかった
2023/08/01(火) 20:03:07.92ID:s61+iNuO0
selenium4だったのが原因みたいで3にしたら動いた
開発用は普通にインストールしたのになんで3だったんだ?
741デフォルトの名無しさん (アウアウウー Sa1f-IPSQ)
垢版 |
2023/08/02(水) 09:26:45.38ID:4pI1Wfnva
日記は日記スレで
2023/08/02(水) 10:15:35.41ID:c5QFWyvkM
オナニー見せたい人なんだろうな
2023/08/03(木) 03:06:00.60ID:USexfWQAa
cwd(current working directory)の移動か?
VSCode の拡張機能・Code Runner なら、この設定をチェックしておく

Code-runner: File Directory As Cwd
Whether to use the directory of the file to be executed as the working directory.

そうすると実行時にcd で、そのファイルがある場所へカレントディレクトリを移動してから、
ruby "絶対パス/ファイル名.rb"
又は、ruby "絶対パス/tempCodeRunnerFile.rb"
で、そのファイルを実行する

tempCodeRunnerFile.rb は、Rubyのコード片をコピーした一時的なファイル

設定項目、executorMap には、多くの言語の実行コマンドが書いてある。
"code-runner.executorMap": {

"javascript": "node",

"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

"python": "python -u",
"ruby": "ruby",

pythonには、-u が付く
744デフォルトの名無しさん (ワッチョイ 5b02-mBaV)
垢版 |
2023/08/06(日) 16:25:19.98ID:yWag1CDn0
ゲームのBGMの中から効果音を抽出するpythonプログラムを作りたいんですが、いいライブラリとかありますか。
2023/08/06(日) 16:36:45.75ID:jdOXBstM0
Demucsとか?
2023/08/07(月) 01:58:40.68ID:VL80kvYz0
>>711
>>719
今更だけどはsys.argv[0]でも実行開始のファイル名取得できる
config.ini読みたい場合はそこにchdirしてから読めばいい
os.chdir(os.path.dirname(os.path.abspath(sys.argv[0])))
exe化するとexeファイルの場所と__file__が別になったりするからこれ使う
2023/08/07(月) 02:20:10.84ID:VL80kvYz0
ちなみに今どきはSeleniumよりpyppeteerの方がいいんじゃね?
2023/08/07(月) 02:30:19.22ID:VL80kvYz0
むしろこれか、今度使ってみよう
https://github.com/microsoft/playwright-python
2023/08/07(月) 06:45:02.83ID:O0KH7AXh0
test.pyのある場所に移動して
python test.py
とすると、sys.argv[0]はtest.pyなんだよな
2023/08/07(月) 11:26:18.20ID:VL80kvYz0
test.pyの人はモジュール化した関数から実行開始ファイルの場所を取得して
設定ファイルとかを読みたかったみたいだけど
そもそもそういうのはmainがある場所でやって引数で渡すのが一般的
2023/08/09(水) 12:45:22.50ID:Dwekhx5a0
モミモミちんちん
2023/08/11(金) 08:50:33.66ID:G/NZQwIra
python勉強始めて1年半かかったけど
やっと機械学習動かせるようになった
2023/08/12(土) 12:23:33.25ID:20qyV/w+M
かっこいい
754デフォルトの名無しさん (ワッチョイ cebb-K2V0)
垢版 |
2023/08/13(日) 21:21:07.31ID:0E5SXPYI0
numpyがpypy3.9までしか対応してなくてつらい
お前ら早く3.10対応させて
2023/08/13(日) 21:41:15.56ID:CM3COsH1M
ライブラリ作者も大変だな
勝手に上がる本体バージョンに無償で対応させられて
2023/08/13(日) 21:54:12.08ID:nWSth0yh0
openで新規書き込みで開く時に、そのファイルを他のソフトで見てたりするとエラーになる
問答無用で書き換えるオプションとかある?
757デフォルトの名無しさん (ブーイモ MMb6-A2L1)
垢版 |
2023/08/14(月) 09:06:14.98ID:0zfUzHP0M
ファイルハンドルの一覧を取得して
OSにファイルハンドルのクローズしてもらう
2023/08/14(月) 09:19:45.83ID:ZA3ioCne0
世の中の大抵のソフトはそんなことにならずに、もう一度開くとちゃんと更新されてるんだよな
それらがいちいちそんな面倒なことをしてるとは思えなくて、pythonだけがひ弱に作られているとしか
2023/08/14(月) 09:24:08.81ID:r+a5TBmRM
「世の中の大抵のソフト」と言うオマエの物差しなんぞ誰も知らん
バッチやpower shellでも同じ結果になるだろう
2023/08/14(月) 09:27:09.98ID:ZA3ioCne0
簡単なスクリプトで試すと、特にエラーにならずに期待通りに書き込んだ
条件を似せても成功する
761デフォルトの名無しさん (ワッチョイ 1abd-Q0IG)
垢版 |
2023/08/14(月) 09:31:22.12ID:RuCw8Hbd0
もう少し具体的に書かないとアドバイスは出てこなさそう
2023/08/14(月) 09:35:28.32ID:YftetqPpM
「簡単なスクリプト」
2023/08/14(月) 14:09:38.85ID:ZA3ioCne0
seleniumでスクレイピングしながら取り込んだ情報をjsonに書き出す、
というのが実際にやってた処理で、そっちではエラーになるんだけど、
普通にjsonを書くだけでは問題が起きない

ファイルサイズが大きいからかな
2023/08/14(月) 14:15:36.24ID:ZA3ioCne0
OSError: [Errno 22] Invalid argument:
のエラーになるというのがよく判らない
大抵はパスの指定が間違ってるとかが原因だけど、普段はちゃんと動くのに
2023/08/14(月) 14:24:33.26ID:niAdk3sTM
じゃあ「普段」通りにしてないって事なんだろうな
自分で答えだしてるじゃん
766デフォルトの名無しさん (ワッチョイ 8b01-DXLR)
垢版 |
2023/08/14(月) 17:43:45.04ID:3nQHx1DG0
pythonでseleniumつかってブラウザ操作して自動ログインするときについて質問させていただきたいです。

画像を選ぶタイプの認証が存在する場合はどのようにして突破すればいいでしょうか?
一応試してみたことは、

・ログイン画面に遷移した後、ユーザ名、パスワードを自動入力後、
 をsleep()を使って10秒止めている間に対象の画像を手動クリックで選択する
 そのあと10秒経ったらシステムが自動でログインボタンを押下する

・ログイン画面に遷移した後、ユーザ名、パスワードを自動入力後、
 現在のURLを取得して文字列として変数に保存(oldUrl)
 2秒に一回回すwhile内でURLを改めて取得(newUrl)をoldUrlとnewUrlを比べて
 異なるURLになったらば(ログイン後の画面に遷移できたら)
 そのwhileループを抜けて続きのブラウザ操作の処理を実行する方法

 この2つ目の方法は、whileが回っている間に画像の選択とログインボタン押下を手動で行うものとしています。

この2点を試してみましたが、うまくログイン後の画面に遷移することができませんでした。
両方法ともログインボタンはアクティブ表示になっていて、
見た目としてはクリックができてないとかそういう感じではなさそうです。

画像選択など、特別な認証が必要ない別サイトでログインを試してみましたが、ログインが可能だったので、
大まかな方法は間違っていないのかなあと思っているのですが...

なにか解決方法などご存じの方いらっしゃいましたら、ご教示いただきたいです。。。
767デフォルトの名無しさん (ワッチョイ 4e31-mJLh)
垢版 |
2023/08/14(月) 19:28:02.18ID:M/R0A3us0
ハイレベルでついていけないと言いつつ煽り文書ばっかだな
嫉妬か?
2023/08/14(月) 21:45:37.58ID:2+cZA+P90
>>766
マウスの動き等で人間かCPUかの判断してるタイプの認証じゃね?
無駄な動きいれてみても同じかな
例えば同じ自動運転でもuwscみたいにマウスカーソルの制御もいれるとログイン出来るんじゃないだろうか
2023/08/14(月) 21:53:53.00ID:31y8BS1q0
そのサイトを見ないと分からんのに、目隠しで想像して目的を達するモノを作れとか鬼畜…
2023/08/14(月) 21:54:32.97ID:ZA3ioCne0
マウスの動きなんかサーバには伝わってない
判断するとしてもクリック位置とタイミングから
2023/08/14(月) 22:03:05.34ID:r+a5TBmRM
from 皮肉 import ハイレベル
2023/08/14(月) 22:21:41.71ID:x1KiHz8w0
>>766
手動タスクが必要な箇所にデバッガーのブレイクポイントを入れて
ゆっくり手動タスクを実行しながらブラウザのデベロッパーツールで
DOMやHTTPリクエスト/レスポンスを確認して原因を探ればいい

まずはログインボタン押下時のHTTP POSTリクエストの状況を見てみる
2023/08/14(月) 22:37:22.37ID:BuOguaPF0
犯罪のやり方を人に聞くようなものだよ
774デフォルトの名無しさん (ワッチョイ 1abd-Q0IG)
垢版 |
2023/08/14(月) 23:42:21.41ID:RuCw8Hbd0
そんなやり方をオープンな場で聞くなよ
どうしてもやるなら自分の力だけでやらないと
>>773も言ってるが、他人の家や車の鍵の開け方を聞いてるのと同じだよ
2023/08/14(月) 23:49:39.71ID:ZA3ioCne0
んなこたーない
2023/08/14(月) 23:56:24.91ID:1GFaH4W20
ちんこ維持りなら>>3をみろ
777デフォルトの名無しさん (ブーイモ MMb6-A2L1)
垢版 |
2023/08/15(火) 08:12:45.63ID:hBc3zv6fM
画像認証だけ別端末で人間がやれば?
2023/08/15(火) 08:15:08.81ID:JoMoSokj0
余計困難になるがな
2023/08/15(火) 08:28:44.16ID:JoMoSokj0
手動ログインした後の情報を取得しなくちゃと難しく考えて、
再度get()してしまってログイン前に戻っているとエスパー
2023/08/15(火) 08:35:53.48ID:NUc+9Fyua
おそらくpostsのほうかと思われる
781デフォルトの名無しさん (ワッチョイ 8b01-DXLR)
垢版 |
2023/08/15(火) 11:03:41.51ID:6qN8XCM10
766です。
回答くださった方も、
あんまりよろしくないのでは?とご指摘くださったも方ありがとうございました。

今回いずれの方法も画像認証の部分は完全に手動の想定で、かつアカウント自体も自分自身のものを使用していましたので、
他人の家の鍵を開けるような悪い方法でセキュリティを突破しているという意識はありませんでした...

確かに便利な技術なので、悪用してしまう方もいるかもしれませんから自動でログインすることを
画像認証は手動だったとしてもエラーを起こす高いレベルで防止している可能性はありますね...

お騒がせしてしまってすみません、みなさんありがとうございました...
782デフォルトの名無しさん (ワッチョイ 9701-DXLR)
垢版 |
2023/08/15(火) 13:21:27.20ID:/nceAzo40
・フリーエンジニアが年間3,600万円の売上を上げた方法を解説する
・26歳で独立して月収150万になった 元引きこもりエンジニアの物語
・ブラック企業から退職し、独立後11ヶ月で“月収300万円超え”になるまでの軌跡を
 デザイナー社長船越良太に聞いてみた!
・ITフリーランスで月額単価150万円!万が一の就業不能に備える
無料の保険もある「クラウドテック」
・フリーランス時代に月収4万円→最高340万円を達成した船越さんに、
「お金」との向き合い方を聞いてみる
・フリーランスSEってどれくらい稼げるの?月単価160万円の案件を扱う定番エージェント
・フリーランスの仕事や職業の種類って何があるの?独立5年目で月収200万の僕が詳しく解説
2023/08/15(火) 21:07:08.25ID:iHrYHeWs0
>>781
seleniumよりplaywrightでstorage_stateを使ってセッション情報再利用した方が簡単だよ
ログイン処理は手動になるけど
2023/08/17(木) 00:50:23.37ID:kQVkGKvWa
ユーザ名、パスワードを自動入力する所までを、
selenium で自動操作して、

これ以後を手動にすれば?
2023/08/19(土) 13:12:32.57ID:52JmQRSba
データベースから取得したレコードを、requestsでどこかに投げるときって
データベースから取得した時点でセッションから抜けた方が良いと思うのだがみんなどうやってるの?

セッション開く → レコードを取得 → レコードを変換して変数に格納 → セッション閉じる
→ 変数に格納されたレコードの内容をrequests.post → 成功or失敗など
→ セッション開く → idなどからレコードを特定 → レコードを更新 → セッション閉じる

セッション開いたままだと
セッション開く → レコードを取得 → レコードの内容を成型してrequests.post → 成功or失敗など
→ レコードを更新 → セッション閉じる
簡潔だが「成功or失敗など」の部分でtimeoutがある場合その影響が気になる
2023/08/19(土) 19:09:54.75ID:Yb/5nk3j0
普段使ってないからseleniumでchromeを使ってるのに、勝手にupdateしてエラーになる
しかも116用はテスト版しか無い
2023/08/19(土) 19:11:55.30ID:o9YRXmkxM
グダグダ言う前にまず作ってみろよ
2023/08/20(日) 10:43:01.59ID:w+meV9DH0
>>785
DBへの更新が必要なら基本コネクション維持してやってしまうな
更新時にコネクション状態をチェックして、閉じていたら再接続する処理を入れる
DBへの接続はコネクションプールを使用
2023/08/20(日) 18:05:19.16ID:PX4OpZxJ0
メモ
txt.replace("条件","置換")
re.sub("条件","置換",txt)
この引数の順番間違って
re.sub("条件",txt,"置換")
ってやってしまってイラッとする
エラーでないし
790デフォルトの名無しさん (ワッチョイ 5946-zV/e)
垢版 |
2023/08/20(日) 19:01:51.69ID:fDuIIfw90
>>789
> re.sub("条件",txt,"置換")

sed 's/条件/' txt '/置換/g'

とするような発想はなかなか得られない。誇っていい。
2023/08/20(日) 19:46:58.41ID:yfTKONE60
名前付き引数「…」
2023/08/21(月) 20:16:18.01ID:2s9JbA1O0
意を決してseleniumを3から4に上げる
影響むっさ少ない
2023/08/23(水) 12:10:00.22ID:08U3MUKX0
Microsoft「Python in Excel」を発表
2023/08/23(水) 12:18:24.50ID:MwQSoi4aa
https://www.itmedia.co.jp/news/articles/2308/23/news089.html
2023/08/23(水) 12:29:49.59ID:T2QqPuZT0
猫も杓子もpythonPythonって
数値計算や機械学習ならRやc++で扱いたいわ
2023/08/23(水) 12:38:43.49ID:08U3MUKX0
なんかR嫌い…
2023/08/23(水) 12:54:37.65ID:me1+gCKa0
Rが適した用途はRがいいんだけど、
範囲が狭いから便利になる人が少ないんだよな
798デフォルトの名無しさん (ワッチョイ db02-5owp)
垢版 |
2023/08/23(水) 13:01:27.66ID:wIF471YP0
エクセルでpython使えるとか前から言われてたけどついにそうなったのか
mysqlやsqlite3,postgresqlなんかと違って
表示前提のRDBMSって感じ?
2023/08/23(水) 13:14:34.96ID:WZJfreeh0
まあVBAを嫌ってた人にとっては選択肢が増えるのは喜ばしい事なんだろうな
2023/08/23(水) 13:15:00.88ID:3Xorbibba
RDBMSでは無い
2023/08/23(水) 13:25:21.92ID:WZJfreeh0
まだまだ限定的な利用しか出来ないんだな
LibreOfficeとかかなり前から使えてるのに
2023/08/23(水) 13:39:23.20ID:me1+gCKa0
excelの形式そのものがガンなんだけどな
データを読み込んでxlsxにして保存するだけで30秒とかかかる
100万行に上限がある

ちゃんと処理したいならexcelは極力避けて、人間とのIF部分だけに留めるべき
その程度ならVBAでも大した手間にはならない
2023/08/23(水) 13:43:16.41ID:1DVbltby0
ネットからデータ取得出来る様になってれば大分捗るな
外部アクセスは機能制限されてそうだけど
804デフォルトの名無しさん (ブーイモ MM4b-tjTV)
垢版 |
2023/08/23(水) 13:45:01.10ID:AcCxuATFM
>>799
もうVBA覚える必要すらないんだ
805デフォルトの名無しさん (ワッチョイ 2b46-6Yea)
垢版 |
2023/08/23(水) 14:08:39.22ID:w8jQJQs20
>>804
Dim var とか変数宣言する Python かもしれないよ。Py# とか名づけられて。
2023/08/23(水) 14:49:16.09ID:Rc0NIPuS0
>>800
それはわかってるよ
逆説的に、例えば「pythonで、データベース部分をmysqlで、エクセルっぽいアプリ作りました」と変わらくなってくんじゃないのってこと
詳しくは知らないけどGoogle Sheetsとかまさにそうじゃないの?
2023/08/23(水) 14:55:19.32ID:9u+qB/A00
データベース操作有りきのpythonってことにはなりそうではある
2023/08/23(水) 14:58:39.32ID:5+B+6aoI0
そりゃまぁ表計算ソフトってどう考えても計算機能主体よりもデータベース主体で考えた方が合理的だわな
2023/08/23(水) 15:05:20.50ID:OE9aeGm20
idスレだとあいつ一発退場になってて草
2023/08/23(水) 15:06:37.91ID:OoNHdIe20
次はあえてpythonでゲームプログラミング周りを強化してほしい
2023/08/23(水) 15:16:40.66ID:me1+gCKa0
excelを扱わないといけないこともあるけど、pandasとかそういういい感じのは使えない
ただの2次元配列として読み込んで、必要なデータは自力で探す

機械で素直に読めるようにと気を使うような人だったら、
最初からデータ形式にexcelを選ばんのよ
2023/08/23(水) 15:20:51.16ID:WZJfreeh0
あくまで出力用でデータストアとしての利用は無理が
813デフォルトの名無しさん (アウアウウー Sa45-greZ)
垢版 |
2023/08/23(水) 15:28:57.50ID:89z/H8g7a
>>801
ほんそれ
>>805
やめれ
2023/08/23(水) 21:36:48.76ID:Odc9jJej0
>>806
記事を見る限りはVBAやマクロの代わりにpythonが書けるようになったとしか思えないが
2023/08/23(水) 23:28:55.34ID:Gy+Uvs1z0
Pythonでexcel弄るのと何が違うんだ。
2023/08/24(木) 07:08:32.89ID:UfAeCzV0a
Pythonでexcel弄るのは
15年以上前から出来てるのを今更
excel上のpythonで実行する方が遅い可能性まである
2023/08/24(木) 09:10:43.31ID:336gIh/k0
単にVBAでいじるのが嫌ってだけでしょ。俺もVBAは嫌い。
2023/08/24(木) 09:18:05.21ID:XmY66ZqSd
パパも?!
ママー裸じゃいやー!!
2023/08/24(木) 09:24:28.24ID:ERnyjfkQ0
あんなもんは懲役刑の一種だ
被告をVBA開発3年の刑に処す
2023/08/24(木) 09:30:40.61ID:mwIHzd4fd
リストのappendって順序保証されてたっけ・・?
821デフォルトの名無しさん (ワッチョイ 2b46-zV/e)
垢版 |
2023/08/24(木) 09:33:26.42ID:fKPaMPSR0
>>815
ワークシートにコードを書くと、自オブジェクトがワークシートなので、excel.workbooks[x].worksheets[x] みたいに辿らなくて済む「気安さ」はあるのかもしれない。
や、想像だけど。
2023/08/24(木) 09:38:02.70ID:/tekwqPS0
excelからpython使いたい人はもう使ってるわな
2023/08/24(木) 10:00:56.65ID:gv9nNnk+M
罫線やらフォントやら背景やら
装飾の手間が省けるといいのだがな
excelやpoor point使うのは多様な見せかたができるからだろ
2023/08/24(木) 10:03:24.50ID:ERnyjfkQ0
画像の貼り付けとか出来なかったな
似たようなのをフォントと色を工夫して作った
2023/08/24(木) 13:47:47.18ID:B0BRQL9da
そもそもExcelだけPython OKにするのは違和感でしかないので
826デフォルトの名無しさん (ブーイモ MM4b-tjTV)
垢版 |
2023/08/24(木) 13:52:11.78ID:itl4U/XBM
Pythonは学習コストが低いから
その点JSでも良いんだけど、そっちは10進数型使えなくて数値計算に向かない
2023/08/24(木) 14:51:34.81ID:6pjOgQ6JM
しかし編集はVBA用の糞エディタつかうのかなぁ?
VS Code埋め込んで欲しいわ
2023/08/24(木) 19:52:22.32ID:KHAHuAyj0
学習コスト低いって学習しやすい訳ではなくて応用の幅が広いからコスト低いだけやからな
マルチスレッドや純粋仮想関数などもあるので他の言語と学習時間そのものはそんなに変わらない
2023/08/24(木) 20:56:17.41ID:ERnyjfkQ0
いや、学習しやすいよ
2023/08/24(木) 20:59:40.23ID:KHAHuAyj0
学習しやすいってcに比較しても学ぶこと多いのにか?
学習しやすいって何をもって学習しやすいって言ってる?
オブジェクト指向言語であれば他とそんな変わらないだろう
2023/08/24(木) 21:23:03.14ID:KHAHuAyj0
まぁいっか
おちんちんびろーん
2023/08/24(木) 21:40:52.41ID:Zzh0jzpS0
Excel搭載のPythonが古くてクソって言われる未来が見える
833デフォルトの名無しさん (ワッチョイ c946-6Yea)
垢版 |
2023/08/24(木) 22:12:13.69ID:whWZK/lb0
>>830
> 学習しやすいってcに比較しても学ぶこと多いのにか?

少ないのでないか。ハードウェアを気にする必要ないし。
2023/08/24(木) 22:16:44.91ID:JuHRNHof0
>>832
>>794を見る限りクラウド上で実行されるからそれはなさそう
その代わりオフラインでは使えないんだな
835デフォルトの名無しさん (ワッチョイ 93bd-dU66)
垢版 |
2023/08/24(木) 23:21:58.79ID:/RAaAAMu0
Pythonは豊富なライブラリ使ってなんぼだから、
そっちの方向学んでいくとなるとめちゃくちゃに広い
2023/08/24(木) 23:30:23.91ID:len+BldFM
Pythonは外部ライブラリを使わない素の状態が最強
2023/08/24(木) 23:34:24.16ID:ERnyjfkQ0
何かツールを作って、ユーザが機能拡張できるようにする
関数とか変数を提供して、それを組み合わせてロジックを自由に作って貰う
そういう時のスクリプトの文法としてpythonは最適
classとかライブラリとかは無くても素直に書ける
2023/08/25(金) 12:30:22.74ID:uVWCvp2aa
Excel上のPythonからExcelを操作する
839デフォルトの名無しさん (ワッチョイ 2b46-6Yea)
垢版 |
2023/08/25(金) 12:45:18.35ID:wAyzNZg/0
Excel上のPythonからOpenOfficeを操作できたりするのだろうか。
2023/08/25(金) 12:51:18.70ID:nyMvJkyga
>>839
出来るでしょ
普通に考えて
2023/08/25(金) 15:49:25.26ID:ORSBbG2a0
minicondaもここでいいの?
842デフォルトの名無しさん (ワッチョイ 7101-glFA)
垢版 |
2023/08/25(金) 22:41:28.75ID:j9uNZFV/0
>>837
名前も文法もゲテモノだろ。早く消えてもらいたい。
2023/08/30(水) 20:32:20.95ID:GMxyW1Ul0
enumerateが便利なんだけど使い倒してもいい?
i=0でi+=1で再帰とかした方がいいとか無いよね
2023/08/30(水) 21:05:50.79ID:lO/fHs/A0
大抵は、list_a[i]とlist_b[i]をセットで扱いたい時だからなあ
list[i].a と list[i].b の方が絶対素直
845デフォルトの名無しさん (ワッチョイ ca5c-4sYy)
垢版 |
2023/08/30(水) 21:28:34.25ID:s6yXhO480
emumerateは地獄の関数
無分別な使用は冥府魔道を行くことになる
2023/08/30(水) 23:58:43.22ID:G+IjVkrC0
具体的にはざっくりこういうことをしたんだけど
何かいい方法ないかな

items = [item1,item2,item3]
prms = [prm1,prm2,prm3]
# prms = [prm1]

max_prm_index = len(prms)-1
for i,item in enumerate(items):
 item( prms[min(i,max_prm_index)] )

prmsがprm1の一個しかなかったら、itemsのitem全部にprm1を適用
prmsがitemsと同じ数だけ複数入ってたら、順番通りにitemsにprmsを適用
って感じ

もちろん場合分けでいいとは思うけど
再帰内にかぶる処理があるのでどうしたもんか
2023/08/31(木) 00:48:42.81ID:+B6kd0y50
>>846
prmsの要素数が1個でもなくitemsと同じ要素数でもない場合はどうするの?
そのmin(i, max_prm_index)でやってるようにprmsの最後の値を適用し続けたいの?
2023/08/31(木) 00:50:53.88ID:+B6kd0y50
prmsの最後の値を適用し続けたいということであれば
なるべくその意図を反映したコードにする

from more_itertools import repeat_last
zip(items, repeat_last(prms))
2023/08/31(木) 00:55:23.28ID:f6H5fM910
more-itertoolsみたいな変なのを使うのが本当に望ましいのか疑問
2023/08/31(木) 07:00:46.66ID:Xf8Vje2bM
こんだけ簡潔に書けるpythonてすごいなぁ
コードを文章として読んだ場合、はしょり過ぎてて誤解を招き安いのが玉に瑕
2023/08/31(木) 10:35:23.89ID:O9IKqF4q0
>場合はどうするの?
単にエラー吐いて終わり

>prmsの最後の値を
ではない
>そのmin(i, max_prm_index)でやってるように


prmsが1個の場合 → max_prm_index = 0
itemsを再帰したときの i → 0,1,2,,,,,,,,,,
min(i, max_prm_index)の値 → min(0,0)=0,min(1,0)=0,min(2,0)=0,,,,,,,

prmsが複数の場合 → 例max_prm_index = 2
itemsを再帰したときの i → 0,1,2
min(i, max_prm_index)の値 → min(0,2)=0,min(1,2)=1,min(2,2)=2
852デフォルトの名無しさん (ワッチョイ 4d9e-lN7b)
垢版 |
2023/08/31(木) 21:27:37.09ID:G16r3L3O0
uncompile6もdecompile3もpydumpckもmarshal使った逆シリアル化も
できないpycファイルの逆コンパイルどうやったらええんや
2023/08/31(木) 22:28:08.13ID:bCA9PkL70
>>851
>単にエラー吐いて終わり
それなら場合分け必須なので1件の場合と要素数が一致してる場合を含めて
最初から分岐させたほうが効率的

min(i, max_prm_index)はprmsが2件でitemsが4件のときだと
(prms[0], item[0]), (prms[1], item[1]), (prms[1], item[2]), (prms[1], item[3])になるでしょ
つまり不足してる要素数分だけprmsの最後の要素を適用し続ける
そういう処理を意図してないならやめたほうがいい

あとループもしくはイテレートのことを再帰と呼んでない?
2023/08/31(木) 23:27:03.60ID:MxLxGpNx0
>>853
>min(i, max_prm_index)はprmsが2件でitemsが4件のときだと
それは>>846の>prmsがitemsと同じ数だけ
とは違うしあなたが設定したルールだと思う

>あとループもしくはイテレートのことを再帰と呼んでない?
なにか問題が?
>最初から分岐させたほうが
全部を分岐するってこと?
>場合分け必須
から察するに、例えば
if itemsとprmsのチェック:
 if prms複数の場合 and :
  for item in items:
   ここに処理
 elif prmsひとつの場合:
  for item in items:
   ここに処理
みたいなことだろうか?

話はずれるけど前から条件分岐でこういうの疑問だったんだけど
if itemsとprmsチェック:
 raise
if 条件:
 pass
else:
 pass
みたいなことってしないほうが良いのだろうか?
>>846では意図的にif itemsとprmsチェック:rase
の部分を(それ以降の処理に関係ないので)省略したんだけど
855デフォルトの名無しさん (アウアウアー Sace-SPXT)
垢版 |
2023/08/31(木) 23:31:59.97ID:7sC80GbKa
shutil周りを調べていて気になったのですが
更新日時や作成日時が引き継がれるような、Windowsの通常のファイル移動は
shutil.copy2()で実現できますか?

調べるとos.system()にcopyコマンドを投げる方法なども出てきました
少し気になったのですが、そもそもWindowsの標準的なファイル移動ってcopyコマンドと等価なのでしょうか?
2023/08/31(木) 23:42:37.28ID:VJWa/tTF0
os周りはわざわざimportして頑張ってもどうせ互換性なんか無いし、
コマンド実行するのが確実で簡単にやりたいことがやれる
2023/09/01(金) 00:25:46.36ID:r2cK95F90
ふと思ったけどすんごい重いファイルをpythonスクリプトでmvなりコピーしたときって
OS側?で処理してる間はpython側で並列作業になりそう
要はpython側で

重いファイルを移動する処理()
print("まだ移動し終わっていないのにここ実行される")

ってなってもええんか?
2023/09/01(金) 00:46:42.98ID:wJDQ+FTE0
os.system()じゃなくてsubprocess.run()とか
asyncioのcreate_subprocess_exec()やcreate_subprocess_shell()で待ち受けて
2023/09/01(金) 01:35:23.83ID:l7PfhcLtd
>>854
enumerateとかminとか使わず、zipで処理しちゃえば?
>>848のrepeat_lastを無くしただけだけど

if len(prms) == 1 or len(prms) == len(items):
 for item,prm in zip(items,prms):
  item(prm)
860デフォルトの名無しさん (オイコラミネオ MM65-FN/f)
垢版 |
2023/09/01(金) 03:48:02.24ID:3/H3WgxVM
>>1
carnetsのデータが消えたのだが、
どうすればいいのか、、、
2023/09/01(金) 06:58:42.11ID:K1CWe1BUM
>>858
横だけど
良いヒントを得た
ありがとう
2023/09/01(金) 07:21:36.52ID:SrdLFIhrM
半可通だな
2023/09/01(金) 09:28:33.88ID:G4N8Tnic0
>>859
itemsが3つ、prmsが1つのとき結果はどうなった?

items = ["items","item2","item3"]
#prms = ["prm1","prm2","prm3"]
prms = ["prm1"]
if len(prms) == 1 or len(prms) == len(items):
 for item,prm in zip(items,prms):
  print(item,prm)
2023/09/01(金) 10:30:26.13ID:JR96MCqK0
shutil.copy(), shutil.copy2(), shutil.copyfile():

これらのメソッドは、ファイルの内容をバイトで読み取り、
コピー先のファイルに書き込みます。
ファイルのサイズが大きい場合、このプロセスは時間がかかりますが、
Pythonは他のタスクをブロックせず、他の操作を進行させます。

os.systemを使用した場合
子シェルを作成し、そのシェルでコマンドを実行します。
ファイルのサイズが大きい場合、コピーに時間がかかりますが、
os.systemはコマンドの実行が完了するまでプログラムの実行をブロックします。
そのため、他の操作を進行させることはできません。

osモジュールを使用した場合
ファイルの内容をバイトで読み取り、コピー先のファイルに書き込むため、
ファイルのサイズが大きい場合、このプロセスは時間がかかります。
しかし、Pythonは他のタスクをブロックせず、他の操作を進行させます。

subprocessモジュールのrun関数を使用した場合
ファイルのサイズが大きい場合、コピーに時間がかかりますが、
subprocess.runはコマンドの実行が完了するまでプログラムの実行をブロックします。
そのため、他の操作を進行させることはできません。

subprocess.runは、デフォルトで子プロセスの標準出力と標準エラーを
親プロセスにリダイレクトします。
そのため、コピー中にエラーが発生した場合、
エラーメッセージは親プロセスに表示されます。
865デフォルトの名無しさん (スフッ Sdea-v2/v)
垢版 |
2023/09/01(金) 12:48:44.57ID:5muTzi0Ed
subprocess は popen とともに使うもの
run なんてしたら subprocess の意味ない
初心者が誤解する嘘は良くない
2023/09/01(金) 13:02:04.03ID:sF2bDDsj0
んなこたーない
非同期も同期も両方使う場所がある
867デフォルトの名無しさん (アウアウアー Sace-SPXT)
垢版 |
2023/09/01(金) 14:01:33.97ID:RO0UJfOQa
>>864
詳細にありがとうございます
手続きの順序が前後したら大抵困るので
shutilよりもos.systemやsubprocessを使うべきという感じでしょうか

Windows標準のコピーもバイトを読んでバイトを書くという仕様なのでしょうか?
868デフォルトの名無しさん (アウアウアー Sace-SPXT)
垢版 |
2023/09/01(金) 14:03:08.18ID:RO0UJfOQa
すみません、Windows標準の移動も です
あちらは同じドライブ間のファイル移動だと一瞬で終わるので読み込み書き込みはしていないのかなと思ったのですが
2023/09/01(金) 14:13:41.59ID:sF2bDDsj0
プログラムの動作が遅くなるのはIOが詰まってる場合が大半なので、
ボトルネック部分が100%働くように調節するとむっさ速くなる

ファイルのコピーは遅延書き込みでまだ完了してないのに先に進むことでさらに速くなる
870デフォルトの名無しさん (ワッチョイ d95f-sVGh)
垢版 |
2023/09/01(金) 21:40:13.68ID:qVeR1pY40
>>868
同じドライブならファイルの中身を移動されるわけではなく、どこに格納されているかの位置情報を変えるだけだから速い。
2023/09/04(月) 13:47:18.73ID:nQJHAXPh0
コンストラクタの引数ってキーワード付きにできる?
2023/09/04(月) 14:50:35.53ID:38Xoielz0
できるよ
2023/09/04(月) 15:07:41.79ID:nQJHAXPh0
あ、できた
試せばいいだけだな
ぐぐってもそんなサンプル無いから出来ないのかと思った

単に複数の変数を一つに束ねたい、というだけの理由でクラスを作る時に、
コンストラクタに値をずらずら並べて渡すことになるけど、
それを順序で管理するのはどう考えてもおかしいと思ってた
2023/09/04(月) 16:47:03.86ID:VAGVSD2y0
そういうのはstruct使うといいかも
2023/09/04(月) 17:08:04.13ID:nQJHAXPh0
C言語だとstructだけど、pythonのはバイナリデータを扱う奴なのでは
2023/09/04(月) 17:20:17.40ID:VAGVSD2y0
c++のスレと間違えてたw
すまんね
877デフォルトの名無しさん (ブーイモ MMc7-aOfx)
垢版 |
2023/09/04(月) 18:49:15.11ID:JKt5eAqLM
>>873
リストをアンパックで渡せばスッキリ書ける
2023/09/04(月) 21:30:43.15ID:MbyPAFgv0
>>873
dataclassで簡略化できる
879デフォルトの名無しさん (ワッチョイ 4301-4OYV)
垢版 |
2023/09/05(火) 04:12:29.33ID:2K1Jd26A0
位置引数として渡された引数は関数内の処理の変数としては何という名前で渡されてるんでしょうか?
原理的に完全に無名ですか?
フレームの中では何かは付いてる?
2023/09/08(金) 07:59:23.00ID:KCF1PxQr0
関数定義のパラメータ名?
881デフォルトの名無しさん (ワッチョイ e305-+GqY)
垢版 |
2023/09/08(金) 09:20:44.03ID:8IHmD7Ej0
お詳しい方ご教示ください。

@Pythonのライブラリxlwingsで、ピボットテーブルを更新したいと思っています。
A今、FILE.xlsxには「Sheet1」にデータ、「Sheet2」にピボットテーブル(Pivottable1)が入力されています。
B以下のようにプログラムを組みました。
import xlwings as xw
app_excel = xw.App(visible = True)
wbook = xw.Book('FILE.xlsx')
wbook.sheets['Sheet2'].select()
wbook.api.ActiveSheet.PivotTables('Pivottable1').PivotCache().refresh()
wbook.save()
wbook.close()
Cエクエルは立ち上がるのですが、ピボットテーブルは更新されずにそのまま止まってしまいます。

どなたか原因を教えて頂けますでしょうか。
Pythonは3.10、Windows10を使用しています。
よろしくお願いします。
2023/09/08(金) 10:41:30.46ID:CadaQfwJ0
import xlwings as xw

# Excelアプリケーションを表示しない場合は、visible=Falseに設定
app_excel = xw.App(visible=False)

try:
# ワークブックを開く
wbook = xw.Book('FILE.xlsx')

# シート2を選択
sheet2 = wbook.sheets['Sheet2']
sheet2.select()

# ピボットテーブルを更新
pivot_table = sheet2.api.PivotTables('Pivottable1')
pivot_table.refresh()

# ワークブックを保存
wbook.save()
finally:
# ワークブックを閉じ、Excelアプリケーションを終了
wbook.close()
app_excel.quit()
2023/09/08(金) 10:54:24.65ID:CRh3f5WxM
ココで聞くよりAI添削した方が早いだろ
884デフォルトの名無しさん (アウアウウー Sae7-fXI3)
垢版 |
2023/09/08(金) 11:09:50.09ID:Qwh1dPVPa
excel の話題は 「excel python スレ」 でやってほしいな
2023/09/08(金) 11:35:25.91ID:Zl2xH9PI0
pythonからexcelへのアプローチはxlwingsとopenpyxlの2つがあって、
openpyxlはpythonの内容だけど、xlwingsはもうexcelというかVBAの内容なんだよな
どうしても駄目な部分以外はopenpyxlで頑張る方が幸せになれる
2023/09/08(金) 11:40:03.94ID:pGmKehjU0
pandasでやれ
887デフォルトの名無しさん (ワッチョイ e305-+GqY)
垢版 |
2023/09/08(金) 11:46:30.25ID:8IHmD7Ej0
ご回答ありがとうございます。
ご教示頂いたとおりにやってみましたが
「・・object has no attribute 'refresh'」
「pywintypes.com_error: (-2147352570, '名前が不明です。', None, None)」
とエラーが出ました。

これ以降は「excel python スレ」で伺ってみます。
お手数をおかけしました。
2023/09/08(金) 11:50:04.72ID:Zl2xH9PI0
pandasが別にexcelの機能を持ってる訳ではなくて、openpyxlのラッパーなだけ
そしてpandasを通すとインデックスとか付いた変なデータ構造を扱わないといけなくなる
2023/09/08(金) 15:54:50.44ID:CRh3f5WxM
そのエラーでピンと来ないならVBAでいいだろう
890デフォルトの名無しさん (ワッチョイ e346-ADg4)
垢版 |
2023/09/08(金) 18:01:03.69ID:hn6Lo9vu0
ピンと来るなら、もったいぶらず、教えてあげると良いじゃない。
2023/09/08(金) 19:42:42.46ID:l/IaMtio0
何でもかんでも教えるのは良くない
2023/09/08(金) 20:44:45.69ID:kFel51fR0
5chで質問者の成長とか考える必要ない
どんな奴か分からないから
2023/09/09(土) 00:17:57.19ID:zaCXHBrVa
こんな事も分からないの?
痴呆症を疑うレベルw

エラーメッセージ
object has no attribute 'refresh'

# ピボットテーブルを更新
pivot_table = sheet2.api.PivotTables('Pivottable1')
pivot_table.refresh()
894デフォルトの名無しさん (ワッチョイ b346-dpy9)
垢版 |
2023/09/09(土) 07:47:14.73ID:ZW9tstmG0
>>893
分からなくて相談に来た相手に、こういう言葉を投げる意味はあるのかな。

> こんな事も分からないの?
> 痴呆症を疑うレベルw
2023/09/09(土) 08:11:54.57ID:2NAxPIYI0
イキりたい年頃なので
2023/09/09(土) 08:54:51.39ID:p+ZV9obNM
>>894
だったらお前が教えれば済む話だろ
教えていないと言うことはお前も俺も同類なんだよ
2023/09/09(土) 11:24:59.08ID:o97DPu5k0
>>893
別の人ですがありがとうございます
2023/09/09(土) 15:49:31.85ID:FUE4d5Ey0
仮に宿題だろうがなんだろうが普通に解答を教えればいい >>891
自分が成長させてあげてるとか恩着せがましいにも程がある
回答者が与える影響など世界規模で見ればたかが知れてる
2023/09/09(土) 15:55:20.73ID:uQ6xa98E0
ワシが育てなければ

なんでもかんでも答え教えられると困るやつってようは
ワシの活躍する場が・・
みたいなことでしょ
うん、普通にキモい
2023/09/09(土) 16:02:46.03ID:PII51rQf0
え、どういうこと?
2023/09/09(土) 16:09:48.18ID:IGBPhOV00
AIに対してもなんでもかんでも教えるな
とか言ってそう
2023/09/09(土) 16:58:54.31ID:WX9adZSN0
バカばっかり
2023/09/09(土) 19:32:58.82ID:xE2yYEU3d
教える教えないの話だったのか、、、?
904デフォルトの名無しさん (ワッチョイ 1aad-6jLp)
垢版 |
2023/09/10(日) 07:29:49.40ID:hps7g+0s0
30代Pythonバカチョン男は強姦魔の犯罪者です!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
905デフォルトの名無しさん (ワッチョイ 1aad-6jLp)
垢版 |
2023/09/10(日) 07:33:16.13ID:hps7g+0s0
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨
「^クソチョンw$」をNGワード登録推奨

30代Pythonバカチョン男は強姦魔の犯罪者です!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
906デフォルトの名無しさん (ワッチョイ 1aad-6jLp)
垢版 |
2023/09/10(日) 07:33:52.54ID:hps7g+0s0
スレ主はチョンw
スレ主はチョンw
スレ主はチョンw
スレ主はチョンw
スレ主はチョンw

30代Pythonバカチョン男は強姦魔の犯罪者です!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
907デフォルトの名無しさん (ワッチョイ 1aad-6jLp)
垢版 |
2023/09/10(日) 08:34:38.19ID:hps7g+0s0
クソチョンは、
いきなりオレを攻撃しはじめた。

理由がわからず、過去の書き込みを調べてみると、
「馬鹿でもチョンでも」と書いたのが原因だとわかった。
もちろん、日本人なら知ってるが「馬鹿でもチョンでも」の
チョンは韓国人のことではない!

が、そのクソチョンはオレが韓国人を差別したと勘違いして、
猛烈におれを攻撃しはじめた。
そして、おれが反撃を開始したわけだ。

それが全ての始まり。
チョンは諸悪の根源!
2023/09/10(日) 08:37:28.23ID:adfDDVgWM
まだこんなことやってるヤツが居るんだな
仕事に活かせば良いのに
909デフォルトの名無しさん (ワッチョイ 1aad-6jLp)
垢版 |
2023/09/10(日) 08:39:10.02ID:hps7g+0s0
そのクソチョンは、
もう何年もおれを攻撃し続けているわけだ。

自分の勘違いから人を攻撃しておいて、
まじで糞チョンだと思った。

チョンはそうなんだよ。
だから次に地震のあったときも、
チョンは日本人を強姦・虐殺するだろうな。
だからチョンは皆殺しにしなければならない。

それを覚えておくことだ!
2023/09/10(日) 08:40:46.79ID:BRsbEtkF0
こんなのどうやって仕事に使うんだよ
2023/09/10(日) 08:49:12.27ID:6MRCqhIwM
>>910
興味深いテーマを与えれば勝手に行動するみたいだから
人に聞かないとなんにもできないお前らよりコイツの方がよっぽど使えるだろう
912デフォルトの名無しさん (ワッチョイ 1aad-6jLp)
垢版 |
2023/09/10(日) 08:52:38.42ID:hps7g+0s0
おれは元々、差別はいかん!
という主義だった。

そのおれに差別発言させるまで
攻撃をつづけたんだから、
まあ、恐るべき怨み粘着性だなと感心する。
調べてみると、それがチョンの性質らしい。

それで決心した。
おれは死ぬまでチョンを差別するぞ、と。
チョンを全員半島に追い返すまで戦います!
913デフォルトの名無しさん (ワッチョイ 4e46-dpy9)
垢版 |
2023/09/10(日) 09:39:59.07ID:RgTg1P0N0
之を如何せん、之を如何せんと曰わざる者は、吾之を如何ともするなきのみ
と古人は言いました。分からない事は積極的に訊きましょう。
914デフォルトの名無しさん (ワッチョイ 1aad-6jLp)
垢版 |
2023/09/10(日) 10:58:24.80ID:hps7g+0s0
おれは元々、差別はいかん!
という主義だった。

そのおれに差別発言させるまで
攻撃をつづけたんだから、
まあ、恐るべき怨み粘着性だなと感心する。
調べてみると、それがチョンの性質らしい。

それで決心した。
おれは死ぬまでチョンを差別するぞ、と。
チョンを全員半島に追い返すまで戦います!
915デフォルトの名無しさん (アウアウウー Sa47-/bgi)
垢版 |
2023/09/12(火) 19:54:34.04ID:Y185PNUOa
Pythonやるならまず「多重継承」な!

なぜ多重継承かというと、自然言語処理において語句の意味は「文脈」によって異なるからだ!

随意筋  不随意筋
  ↖   ↗
   チンポ

チンコの随意筋と不随意筋
http://d.hatena.ne.jp/tottokotokoroten/20130516/1368716650

https://mobile.twitter.com/daikidomon/status/1385368820240437248

土門大貴/Daiki Domon
@daikidomon
Pythonの多重継承がわかりづらい。
継承クラスの左のクラス名を指定とかあたおか。
https://twitter.com/5chan_nel (5ch newer account)
https://twitter.com/5chan_nel (5ch newer account)
2023/09/12(火) 20:48:15.22ID:gN0G7IVm0
多重じゃない継承すら読みにくくない?
917デフォルトの名無しさん (アウアウアー Sa06-bjEX)
垢版 |
2023/09/13(水) 06:55:25.38ID:fd6I2zsCa
多重継承とか何に使うのか想像すらつかんけどpathlibがガッツリやってるらしいね
何に使うの?
ほんとに想像つかない

クラスを集合と捉えて排反でない分割したいこととかそんなあるか?
2023/09/13(水) 07:35:15.02ID:es5nzpicM
そーそー普通ダイヤモンド継承だよね~
2023/09/13(水) 17:59:56.20ID:YINB0qAa0
入れ子した辞書同士の同定って
d1 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":3}}}
d2 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":3}}}
キーと値の総当りをやるのが確実なんだろうけど
if d1==d2でいいよね・・?と思ってふと値がインスタンスだった場合もやってみたら
class Hoge:
 def __init__(self,a):
  self.a=a
d1 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":Hoge(10)}}}
d2 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":Hoge(10)}}}
d1==d2 # False

Falseだった
辞書の値が、辞書 or リスト or str or int or boolean or Noneしか取らない
って前提だったらもうd1==d2でいいか・・
json.dumps(d1)==json.dumps(d2)ってのもどこかでみたことあるけどなんかメリットあるのかこれ
2023/09/13(水) 19:05:29.66ID:mZetXESn0
==は同じオブジェクトという意味だしな
インスタンスは別のオブジェクト
921デフォルトの名無しさん (ワッチョイ 0e33-erq7)
垢版 |
2023/09/13(水) 21:33:39.48ID:2ECL/EIJ0
>>919
class Hoge(int):
def __init__(self,a):
self.a=a

d1 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":Hoge(10)}}}
d2 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":Hoge(10)}}}
print(d1==d2) # True
d1 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":Hoge(1)}}}
d2 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":Hoge(10)}}}
print(d1==d2) # False
2023/09/13(水) 21:41:47.97ID:FudrDNP00
Hogeを値で比較したいなら__eq__と__hash__を書くかdataclass的なものを活用するか
2023/09/13(水) 21:58:52.60ID:GC1GSAPg0
へー、javaみたいなのあるんだ
924デフォルトの名無しさん (ワッチョイ 0e33-erq7)
垢版 |
2023/09/13(水) 22:33:54.03ID:2ECL/EIJ0
__hash__は無理じゃね
925デフォルトの名無しさん (ワッチョイ 0e33-erq7)
垢版 |
2023/09/13(水) 22:54:25.82ID:2ECL/EIJ0
https://ideone.com/eiiqyF
これって、これ?
https://docs.python.org/3/c-api/stable.html#c-api-stability
926デフォルトの名無しさん (アウアウウー Sa47-bpS4)
垢版 |
2023/09/13(水) 23:35:03.93ID:ljzzNVbDa
>>919-920
==は同じオブジェクトという意味ではない

x1 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":3}}}
x2 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":3}}}

print(x1 == x2)
print(x1 is x2)

class Hoge:
def __init__(self,a):
self.a=a

d1 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":Hoge(10)}}}
d2 = {"a":{"aa":1},"b":2,"c":{"cc":{"ccc":Hoge(10)}}}

print(d1 == d2)
print(d1 is d2)
2023/09/14(木) 15:38:55.11ID:E7PcL1rL0
ようは早い話が
Hogeがもし非自作だったりしたときも
__eq__で拡張しとけば、いちいちforとかで回したりせずに
d1==d2だけでイケるってことでいいのか
928デフォルトの名無しさん (ワッチョイ 0e33-erq7)
垢版 |
2023/09/14(木) 20:02:46.79ID:x6b4sEhy0
わざわざ__eq__だけ実装するよりもdataclassのほうがいいと思う
2023/09/14(木) 21:20:20.60ID:Z5WLuif8r
今Paizaで勉強してる
一通り終えたら入門書として、入門Python3 第2版を買おうと思うのですが、他に良いのあれば教えてください
2023/09/14(木) 21:40:35.40ID:mJzwIL1R0
pythonを本で勉強するという発想が無かった
2023/09/14(木) 22:01:47.20ID:XNzOozgR0
体系的に学ぶには本がよい
2023/09/14(木) 22:10:24.13ID:PDE0vufJ0
本読むと良いよ
めっちゃ興奮するしエロ本と変わらん
2023/09/15(金) 00:41:34.46ID:AGwvaccFa
プロ向きなら、Perfect series が良いけど、

パーフェクト Python [改訂2版] (PERFECT SERIES 5)、2020

改訂2版 パーフェクトRuby、Rubyサポーターズ、2017
パーフェクト Ruby on Rails 【増補改訂版】 (Perfect series)、2020
2023/09/15(金) 01:21:30.34ID:/EOrssYW0
>>933
Ruby関係ないし
2023/09/15(金) 01:43:25.39ID:1n4P5OHW0
>>933
ネタにマジレスするけど
そこはperlじゃないん?
2023/09/15(金) 04:07:37.47ID:cd4Mhd650
RORってGPLに汚染されて使えなくなったって聞いた
2023/09/15(金) 07:25:53.48ID:p7MIb3Fq0
>>929
paizaは学習コースあるんだから本なんて要らんが
2023/09/15(金) 08:52:17.62ID:StBTamIiM
>>929
本で仕入れた知識なんて糞の役にも立たん
ITは実践あるのみ
実用になるコードを書きまくって動かしまくれ
2023/09/15(金) 08:55:53.02ID:Y0aMdWmH0
effective pythonはたまに開いて刺激を得てる
2023/09/15(金) 10:38:10.58ID:X7EUN8b/0
本で仕入れた知識を実践するんやで
2023/09/15(金) 10:48:21.69ID:XTzSJ3sy0
本ばかり読んでもなんにもならないが
本を読まないのは馬鹿
2023/09/15(金) 10:52:59.05ID:Y0aMdWmH0
余計な苦労を避ける為の上手い書き方に納得するには、
一度は余計な苦労をしてる必要があるんだよな
943デフォルトの名無しさん (アウアウアー Sa06-bjEX)
垢版 |
2023/09/15(金) 18:32:02.40ID:KXmk4gupa
Pythonは本かサイト使いながら勉強するのが良いよ
Pythonチュートリアルを読み解く実力がある人なら必要ないけど
そうじゃないなら、体系的知識を身につけるには入門書読むのが早い
というかベスト
944デフォルトの名無しさん (ワッチョイ 0e33-erq7)
垢版 |
2023/09/15(金) 20:35:47.41ID:BvXWB9/L0
Paizaの入門コース終えたなら何か作ってみたらいいのに
2023/09/15(金) 21:53:30.72ID:Y0aMdWmH0
っていうか、まず作るんだよ
で、本を読んでもっといい方法を知る
2023/09/16(土) 00:50:04.13ID:GOLJ0aM50
書籍で言ったら秀和システムの『実践100本ノック』はどれも良かった
O'Reillyが一番なんだろうが
2023/09/16(土) 00:52:51.04ID:Ki/MMBdQa
Effective Ruby は良い。
バグが起きにくい、安全で効率的なコーディングと、
間違いやすいポイントを解説

Effectiveシリーズも、日本人の著者もあるから、気を付ける。
「Effective Modern C++」の元祖・Scott Meyers と関係ないのに、
Effectiveと付けている本もある

その点、Effective Rubyは、Meyersにレビューをしてもらっている。
Effective Python は知らないけど
2023/09/16(土) 08:19:40.72ID:6K0or2YE0
effective perlは読んでる最中にperlに対する興味を失ってしまった
949デフォルトの名無しさん (ワッチョイ 0f01-JSeT)
垢版 |
2023/09/16(土) 09:20:44.97ID:FQ6fYHli0
T,o,k(迷惑という方は←をあぼーんしてください。)

家族に紹介する側になり、加えて¥4000×人数をGET!
https://i.imgur.com/X3cw4bL.jpg
2023/09/16(土) 10:54:43.68ID:FZJflFW60
>>949
エロ動画多いよな
2023/09/16(土) 11:11:03.27ID:VYkZR1o+M
自分で書くのは時間の無駄
今はChatGPTにこんなコードが欲しいと聞けば一瞬で書いてくれる
プログラマにはもはやコードを書く能力は求められていない
2023/09/16(土) 11:26:29.93ID:mzsOP2I60
と思っていた時期がありました
2023/09/16(土) 11:38:03.52ID:6K0or2YE0
ChatGPTの仕組みを知らないと、頼ってもいいかもと思えてしまうんだよな

過去に誰かが書いたコードの丸コピーならうまくいくというだけ
簡単な算数すら間違う奴に論理的思考を期待するのが間違い
2023/09/16(土) 11:55:51.96ID:xpoAECi+0
>>949
グロ
955デフォルトの名無しさん (アウアウウー Sa53-HRje)
垢版 |
2023/09/16(土) 12:24:39.04ID:RATZO/gia
>>949 死ね
>>953 それ
ChatGPT持ち上げてる連中は文系馬鹿だけ
2023/09/16(土) 12:25:22.55ID:4RrVea/Jd
Python勉強し始めたけど環境構築について調べてるだけであっという間に時間が溶けてく・・・
2023/09/16(土) 12:35:00.43ID:VYkZR1o+M
>>956
環境構築は出来る限りするな
・使うツールはテキストエディタとコマンドプロンプトのみ。VSCodeなど言語道断
・外部ライブラリは一切使わない
この二つを守ればトラブルのないPythonライフを送ることができる
2023/09/16(土) 12:41:08.76ID:IXYjqLnl0
>>957
それ言語の初学者には良いだろうけど
業務で使うなら超縛りプレイじゃない?
2023/09/16(土) 12:46:59.61ID:6K0or2YE0
まずexcel読み書きモジュールの内作からだな
2023/09/16(土) 12:50:19.75ID:mzsOP2I60
インタプリタ自作してから言え
2023/09/16(土) 12:55:37.64ID:ChIAnApXM
>>956
わかる
2023/09/16(土) 12:57:40.87ID:VYkZR1o+M
>>958
業務なら環境構築の規約や手順が整備されているだろうし同僚の真似をすればいいからな
初学者が自力で一から環境構築ってのはあまりに無理ゲー
2023/09/16(土) 14:24:19.55ID:LU1R8AA00
>>949
絶対に試すべきだね
2023/09/16(土) 14:37:41.98ID:JW3zmgped
とりあえずVSCodeのdevcontainerを利用して環境構築中
パッケージ管理はpoetryってのを使ってみることに
2023/09/16(土) 22:39:17.34ID:XboORpcQ0
>>964
いいね今やるならこれだろうね
2023/09/16(土) 23:27:56.86ID:6K0or2YE0
macでpythonやってる人も多いんだよな
macの人がコード書くとか全然イメージ無いのに
2023/09/16(土) 23:34:24.05ID:atjd4Lev0
意識高い系プログラマーは皆mac使うとるだろ
2023/09/16(土) 23:46:37.75ID:6K0or2YE0
他の言語の人はmac使わないのに、何故かpythonだけmac多い
2023/09/17(日) 00:26:14.83ID:yUmh7hqEa
YouTube で有名な雑食系エンジニア・KENTA のベストセラー本、
「21世紀最強の職業 Web系エンジニアになろう」にも、

Web系自社開発企業は、東京でMac を使って、
Ruby on Rails で開発すると定義しているけど、

YouTubeのRailsの第一人者・Deanin は、WSL2 で開発している。
VSCode, React, Docker なども使う
2023/09/17(日) 11:20:47.44ID:UA70Y2jw0
BeautifulSoupでfindするのも、使わずに正規表現でリストにするのも、
階層を辿っていくから本質的になんも変わらんなと思ってたけど、
selectだと一発で行けるんだな
今更CSSを基礎からやってる
2023/09/17(日) 23:37:38.35ID:3hfVWz4fa
CSS Selector の書き方でしょ?
jQuery でも見れば?
2023/09/17(日) 23:53:47.61ID:UA70Y2jw0
タグ #ID .class だけ覚えて、> で連結するだけだから1分で判る
2023/09/18(月) 08:00:23.72ID:8bZhJQqX0
flaskを勉強中なんだけど、これって静的なhtmlを表示したいとき、

return render_template('hoge.html')

だけの関数をhtmlファイルの数用意しなきゃいけないのかな?
2023/09/18(月) 10:02:56.02ID:i/AvTRYAa
>>973
テンプレートエンジンでぐぐれ
大抵は雛形(テンプレート)となる穴あきのbase.htmlとか作って再利用できるような仕組みになってる

イメージ
base.html側
<html>
 {% block head %}{% endblock %}
 <body>
  {% block body %}{% endblock %}
 </body>
</html>

hoge.html側
{% extends "base.html" %}
{% block head %}
 <title>hogeタイトル</title>
{% endblock %}
{% block content %}
 <span>hogeコンテンツ</span>
{% endblock %}

結果 hoge.html
<html>
 <title>hogeタイトル</title>
 <body>
  <span>hogeコンテンツ</span>
 </body>
</html>
2023/09/18(月) 10:09:15.85ID:FUf5l9vT0
で、もちろん例えば引数で値を渡したりして動的に生成できる
return render_template('hoge.html',{"title":"hogeタイトル","content":"hogeコンテンツ"})
flaskでのやり方はあってるかどうかはしらんが
大体どれも同じ

大抵はデータベースのレコードの値を渡して
テンプレート側で展開してあたかも静的なhtmlにみせる、みたいな使い方だと思う
2023/09/18(月) 10:13:25.85ID:17IvgiG/0
jinja2使うならデータベースのselectで返ってきたオブジェクトをそのままテンプレートエンジンに渡せたはず
2023/09/19(火) 09:56:44.37ID:+8wHCmI/0
プログラムはちんぷんかんぷんで他の人の書いたコードを動かす事くらいしか出来ない者ですが質問良いですか
コマンドプロンプトをつかって一週間以上前までは動いていたコードが(完了まで長くても15分くらい)
昨晩起動したら全く進まずタイムアウトするようになってしまいました
環境の変化で思い当たる節が一昨日辺りにパソコンの更新を下くらいです

更新後コードが動かなくなるってありますか?
2023/09/19(火) 11:50:46.13ID:qRsK9kDC0
更新でpythonやプログラムで使っているライブラリのバージョンも更新されて動かなくなることはある
もしそれが原因なら、そのプログラムで使われているライブラリのバージョンさえわかればなんとかなる
README見ると大抵は「このバージョン使って」と書いてある
2023/09/19(火) 12:51:57.56ID:ImzyW01Z0
ちんちんかゆい
2023/09/19(火) 13:59:44.77ID:9F0I7Cta0
>>978
了解しました
ライブラリのバージョン確認仕方わかったら出来たら再度質問させてもらいます
2023/09/19(火) 14:07:06.31ID:eyeH4fPH0
エラーメッセージ読めないの?
まずそれ読まなきゃ
982デフォルトの名無しさん (ワッチョイ 4f0d-oAvq)
垢版 |
2023/09/19(火) 19:01:14.14ID:SMbXmEhI0
ファイルの読み書きの操作をしたいのですが
間違ってもシステムに関わるような重要なファイルは消さないようにしたいです
Windowsでスクリプトを扱うとして、スクリプトにベタ書きされているパス文字列を多少いじってもカレントディレクトリを絶対に動かさない、システムファイルを消さないような設定にするにはどうしたらよいでしょうか?

管理者権限のないアカウントで動かそうと思っているのですが、それだけでは足りないでしょうか?

管理者権限のあるアカウントで動かす場合にはどのような安全対策が考えられますでしょうか?
983デフォルトの名無しさん (ワッチョイ ff90-xbk3)
垢版 |
2023/09/19(火) 19:43:56.29ID:GWqstgC30
質問する前にぶっこわしてもいい環境で好きなだけやってみたら?

何をしたいのかも知らんし。
984デフォルトの名無しさん (ワッチョイ 0f70-hbIC)
垢版 |
2023/09/19(火) 19:48:14.03ID:zCznr2Fq0
>>982
管理者権限のないユーザーで実行すれば、最悪ユーザーファイルがおかしくなるまでに留まると思う

本当に不安ならVMとかコンテナとかColabで試すという手もある
2023/09/19(火) 19:48:45.14ID:7Ah1acT00
openをラップしてそれだけ使う
2023/09/19(火) 19:56:20.01ID:QCYT99dv0
例えばリネームするならfrom toをprintして確認してからリネームするなどできることはある
2023/09/19(火) 19:59:34.12ID:SLj63IF90
自分がミスしないようにしたいのか、悪意のある誰かが悪いことをできないようにしたいのか
2023/09/19(火) 20:57:43.78ID:+8wHCmI/0
>>978
お世話になってます
確認したましたところおそらく推奨Pythonが3.10.6で入っていた私のPythonは3.10 64-bitでした、これが原因でしょうか
あと使用しているコードはnoteで公開されていた物で、クラウド環境modalにHugging Faceで発行したトークンを使用して実行しています

>>981
エラーメッセージは自分で分かる範囲が
タスクの状態がタイムアウトしました程度にしかわからなくて
スタック?にはPythonのフォルダが多いのPythonのバージョンが合わなくなったのかと思い込んでるんですがどうでしょう

https://i.imgur.com/EtbGeUR.jpg
989デフォルトの名無しさん (ワッチョイ ff90-xbk3)
垢版 |
2023/09/19(火) 21:30:03.42ID:LDuRdoQ30
パソコンの更新って具体的に何ですか?
2023/09/19(火) 21:39:48.17ID:eyeH4fPH0
>>988
わからんならそのまま検索ボックスに投げるかchatgptに聞け
2023/09/19(火) 22:04:54.37ID:+8wHCmI/0
>>989
すみません、これです
https://i.imgur.com/bfl64Da.jpg
https://i.imgur.com/tmxnUNx.jpg
https://i.imgur.com/KwDcDca.jpg
2023/09/19(火) 22:13:30.32ID:A59QEeRE0
hugging faceから何か大きいサイズのモデルダウンロード中に6000sタイムアウトしたとかではなくて?
もしそうであれば全ソースコードから"6000"って数値いじれば応急処置にはなるかも

詳しくは見てないけどここら辺なんか似たような症状ぽい
間違ってたらすまんが
https://zenn.dev/link/comments/b1a978d1a65058
2023/09/19(火) 23:26:15.76ID:+8wHCmI/0
>>992
ありがとうございます
そうですそちらの該当記事をを参考に作成してました
多分追加機能を入れる際に何かしら大きな物をダウンロードしているのだと思います
教えていただいた症状の方と症状は違いますが時間の弄り方は見落として居たので助かります
時間を伸ばして再度チャレンジしてみます
2023/09/19(火) 23:44:39.25ID:BiYVMB+c0
ならこんなスレでふんわりした聞き方するよりstable diffusionのスレで聞いた方がいいんじゃない?
同じような現象に遭遇した人もいるかもだし
2023/09/19(火) 23:50:28.46ID:+8wHCmI/0
>>994
すみません
プログラム知識に長けた人こちらの方が多いかと思ってこちらで相談させて頂きました
2023/09/19(火) 23:59:14.31ID:BiYVMB+c0
>>977程度の情報ではプログラム知識もへったくれもないよ
同じものを触ってる人達のノウハウの方がよっぽど頼りになる
997デフォルトの名無しさん (アウアウクー MM23-hs9u)
垢版 |
2023/09/20(水) 05:18:39.13ID:HkbOmDGqM
お勉強スレならPython全く書けない人の質問は流石に反応すべきでない
2023/09/20(水) 09:12:30.69ID:u6xixiUt0
2023/09/20(水) 09:13:08.28ID:u6xixiUt0
2023/09/20(水) 09:15:03.37ID:u6xixiUt0
次スレ
Pythonのお勉強 Part71
https://mevius.5ch.net/test/read.cgi/tech/1695168821/
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 200日 8時間 57分 3秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。

▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/

▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況