Pythonのお勉強 Part68

■ このスレッドは過去ログ倉庫に格納されています
2022/09/15(木) 18:52:26.67ID:VqLViKoX0
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
 エラー文(勝手に省略orスクショうp等の横着禁止)と
 おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。

★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/

●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その57
http://mevius.5ch.net/test/read.cgi/tech/1653225908/

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

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ### ​
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2022/09/15(木) 18:56:18.62ID:VqLViKoX0
print()
2022/09/15(木) 20:24:28.18ID:VqLViKoX0
保守します
4デフォルトの名無しさん (ワッチョイ 4a0c-To/p)
垢版 |
2022/09/15(木) 21:36:55.07ID:v5ZFVedh0
input()
2022/09/15(木) 22:29:59.15ID:u8cmgYgo0
raise Exception
2022/09/16(金) 03:01:25.86ID:mHJ2EhzM0
Hello World
2022/09/16(金) 03:26:22.69ID:CP0EuvL40
import this
2022/09/16(金) 04:02:44.42ID:A450q/gvd
oppai = 2 * math.pi
2022/09/16(金) 08:12:32.25ID:BdFdhtkEr
str(math.pi) * 2
2022/09/16(金) 11:29:06.80ID:IG7NLL2G0
meboっていうチャットボット用のAPIを操作したいのですが
単純なAPIが使えなくて挫折してます。

meboHP: https://mebo.work/
meboAPIのAI構築について:https://zenn.dev/makunugi/books/f3d9eb62b6d133/viewer/f0c36f

環境
google colab(Python 3.7.14)

コード
https://pastebin.com/jjDUXv4h

現在の出力
rpc error: code = InvalidArgument desc = Document name "projects/mabo-f1cc7/databases/(default)/documents/bots/" has invalid trailing "/".

サーバーからのステータス
<Response [500]>
2022/09/16(金) 11:30:32.88ID:Mhf3UwY50
挫折ですか
残念でしたね
2022/09/16(金) 11:45:52.27ID:fe3TsGSyx
勉強してて、5ちゃんの名前欄に!omikujiって入れたら結果が出てくるけどPython使ってるのかーってすげー関心したよ
2022/09/16(金) 12:19:10.92ID:XGOelKRjd
5chってperlかphpじゃなかったっけ?
2022/09/16(金) 12:24:02.04ID:STPMjQbh0
perl
2022/09/16(金) 13:52:31.50ID:fe3TsGSyx
お恥ずかしい
あれPythonじゃないのね
16デフォルトの名無しさん (ワッチョイ a52c-qXZl)
垢版 |
2022/09/16(金) 15:13:38.95ID:s0L9ffNv0
vscodeとtkinterのナヤミデス

class myLabel(tk.Label):
__def __init__(self, parent, *agrs, **kwargs):
____super().__init__(parent, *a, **kw)

tkinterでカスタムウィジェット作るときこうすると思うんですが
これだとmyLabel呼び出し時に親のパラメータの一覧が表示されません
l = tk.Label() だと引数ズラズラーと確認できるのに
myl = myLabel() だとスン…というかんじ


myl = myLabel(
と書いたところで、master, cnf, bg...
が表示されるよう書く方法はないですか?
17デフォルトの名無しさん (アウアウウー Sa21-1xMQ)
垢版 |
2022/09/16(金) 18:07:30.98ID:xVhXxd2Ka
class myLabel(tk.Label):
__def __init__(self, parent, *agrs, **kwargs):
____super().__init__(parent, *args, **kwargs)
18デフォルトの名無しさん (アウアウウー Sa21-1xMQ)
垢版 |
2022/09/16(金) 18:08:30.05ID:xVhXxd2Ka
武漢コロナ ω株 PI.3.14型
2022/09/16(金) 20:01:18.48ID:hwvpyfny0
>>16
手元だとmyLabelでもスラズラでるから言語サーバかな
Pylanceになってるか確認してみて
2022/09/16(金) 21:51:17.25ID:lcGJOFxSM
んちんちんちんちん
2022/09/16(金) 21:51:25.91ID:lcGJOFxSM
以下んちんちんちんちん禁止
22デフォルトの名無しさん (ワッチョイ d72c-W3aP)
垢版 |
2022/09/17(土) 11:16:05.47ID:mOZyl/wc0
https://imgur.com/GZujQcs.jpg
下でも上の表示がいいんす
2022/09/17(土) 12:19:11.97ID:kn9qAbXr0
>>10
解決しました。>>10のレスは無視してください。
2022/09/17(土) 16:45:25.92ID:T/Ka29IB0
>>17
この関数の引数、
可変長引数のあとに連想配列では値がわたらないだろう
25デフォルトの名無しさん (ワッチョイ bf5f-W3aP)
垢版 |
2022/09/17(土) 17:15:48.49ID:t52rQtHi0
初心者です。
seleniumでGoogleChromeを起動させたいのですが、
コードを実行しても一瞬起動するだけですぐに落ちてしまいます。
chrome,chromedriverともに105.0.5195.127です。
time.sleep()を使えば一応閉じることはありません。
ネットで調べたのですがchromeとchromedriverのバージョンを一致させれば解決できるらしいのですができなかったのでわかる人いたら教えてください。

from selenium import webdriver
import chromedriver_binary
driver = webdriver.Chrome()
import time
driver.get('https://www.google.com/')
2022/09/17(土) 19:09:57.35ID:6XxZTqFF0
chrome,chromedriverともに105.0.5195.127と書いてるのにバージョンがあってないとはいかに
2022/09/17(土) 19:25:38.45ID:0jjtsTOp0
繰り返し使うプログラムならドライバー自動で取ってきてくれる
webdriver-manager使った方がいいよ
28デフォルトの名無しさん (ワッチョイ bf5f-W3aP)
垢版 |
2022/09/17(土) 20:15:49.18ID:t52rQtHi0
webdriver-managerで上手くいきました。
ありがとうございます。
2022/09/17(土) 23:33:23.67ID:eA0eWCp60
漏れは、Ruby でSelenium Webdriver を使っているけど、
Chrome の自動更新で、105.0.5195.127 になって、急に動かなくなった

ChromeDriver 105.0.5195.52 をダウンロードしたら、正常に動いた
2022/09/20(火) 10:16:04.22ID:0+YIm89I0
abspath → absolute path
__init__ → initialization
pardir → parent directory
curdir → current directory
getcwd → get current directory
chdir → change directory

こういうの、英語を略してるのだけど思うけど、元の略されてない英語のスペルを調べられるサイトとかありませんか?
毎回ググって出てきた検索結果ページで「abspath (absolute path)」みたいになってるのを探してるのですが、時間が掛かってしまいます
2022/09/20(火) 10:29:13.62ID:pd2Ujokt0
>>30
>>30
2022/09/20(火) 10:42:03.05ID:7MkL1qhTa
cwd は current working directory
2022/09/20(火) 10:54:15.10ID:HlTpV5j10
>>30
まずは公式を見れば?
2022/09/20(火) 10:57:11.96ID:0+YIm89I0
>>32
抜けてました訂正助かります
略称の元を調べる方法で、地道にググる以外の方法とかも分かりませんか?
2022/09/20(火) 11:02:55.38ID:0+YIm89I0
>>33
python.org/ の検索窓にgetcwd, chdir, cwd, ch 色々入れてみても、ググった時と一緒で地道に複数タブでページ開いて探すのと同じでした
2022/09/20(火) 11:06:51.68ID:7MkL1qhTa
>>34
辞書を引くとか
2022/09/20(火) 11:09:36.67ID:HlTpV5j10
>>35
わからないときに調べるのではなくて、一括でリストみたいに知りたいということですか?そういうサイトは知らないです
2022/09/20(火) 11:16:09.11ID:7MkL1qhTa
知識がないのが問題だったら知識を得るか補助ツール使うしか無いんだよなあ
google翻訳みたいにリアルタイムでオーバーレイで適当な情報出してくれるやつがあればいいんだけども
2022/09/20(火) 11:19:05.42ID:EhDO16lPa
>>30
そういうサイトがあると便利だよな
是非作ってくれ
40デフォルトの名無しさん (ワッチョイ d72c-3X0R)
垢版 |
2022/09/20(火) 11:20:47.83ID:DMd4PKyr0
sizes = list[(int, int),,,]
からmax_widthとmax_heightを取りたいんだけど

numpyなどの外部ライブラリなしだったら
max_width = [i[0] for i in sizes]
max_height = [i[1] for i in sizes]
が速くて見やすいですか?
もったいないからループ一回で両方ゲットできたらいいんだけど、天の声がそれは遅いというんです
2022/09/20(火) 11:27:35.23ID:0+YIm89I0
>>36
pythonの広辞苑みたいなのあるなら知りたいです

>>37
そんな感じです。イメージとしてはこんな感じ
https://i.imgur.com/okACaxU.mp4

>>39
もうすでに誰かしら作ってそうな気がしたのですけど意外にないんですね
2022/09/20(火) 11:30:55.43ID:0+YIm89I0
なぐり書きしたので案の定スペルミスしてる
IME辞書みたいに誰かしら作って配布してたりしないのかな
あったら本当に便利だと思う
2022/09/20(火) 11:35:44.18ID:7MkL1qhTa
>>40
求めてるのはzipとちがうの?
2022/09/20(火) 11:35:51.10ID:pd2Ujokt0
>>40
max_width = max(sizes)
max_height = max(sizes, key =lambda x:x[1])[1]
45デフォルトの名無しさん (ワッチョイ f733-E+l9)
垢版 |
2022/09/20(火) 12:11:40.27ID:i/aW+9oN0
いまいちどういうものを欲してるのピンと着てないけど、存在しないという事はそういうことだろ
もしくは、誰もが思いつかなかった画期的なものの可能性はあるので、作れば人気でるかもしれないよ
46デフォルトの名無しさん (ワッチョイ f733-E+l9)
垢版 |
2022/09/20(火) 12:20:23.86ID:i/aW+9oN0
エディタの補完機能とか知らないわけじゃないですよね
2022/09/20(火) 13:03:31.73ID:dpaaQYZ2M
>>30
python が発展してきた歴史を知るといい
2022/09/20(火) 13:32:48.86ID:+UHOIJTp0
>>30
英語の略語を集めたサイトはあるけど一般的な略語はともかくabspathみたいな奴はヒットしないし逆にcwdみたいに短い略語はヒットしまくるから使いづらいよ
https://www.abbreviations.com/category/COMPUTING
2022/09/20(火) 14:47:32.20ID:yGE7fJx20
>>30
osモジュールの該当メソッドの説明を読むのがいいと思う
https://docs.python.org/3/library/os.html

一般的なunixコマンドから拝借してるものが多いから
pythonでの一覧がないならそっちを調べるといいかもしれない
50デフォルトの名無しさん (ワッチョイ 9714-xcNX)
垢版 |
2022/09/20(火) 14:59:07.65ID:HlTpV5j10
>>49
>>35
2022/09/20(火) 15:12:53.61ID:0+YIm89I0
30について回答くれた方々ありがとうございます。コメントで教えてもらったサイト見てみます
ググって意味を調べる時間の短縮目的は、そもそも我儘な要望だったかもしれません
2022/09/20(火) 15:33:22.20ID:0+YIm89I0
https://i.ibb.co/QnYv5Sz/CB-0001.jpg

望みの実行結果にはなるのですが、パスがないエラーを吐いてしまいます
本来は、os.mkdir(“パス名”)、os.makedirs(“パス名”)、のようにパス名を挿れるとのことですが
for文の変数を引数に渡したい場合はどう記述すればエラーを吐かないのでしょうか?

今朝始めたばっかなので用語の使い方間違ってるかもしれません
2022/09/20(火) 15:54:52.63ID:yGE7fJx20
>>52
エラーメッセージにあるように空文字が渡されてるのがエラーの原因
split(‘\n’)した結果のfolder_listの中身を確認すると分かると思う
でもってsplit()じゃなくsplitlines()を使うといい
2022/09/20(火) 16:08:35.44ID:0+YIm89I0
>>53
おかげで解決しましたありがとうございます
テキストファイルに何もない改行がありました
55デフォルトの名無しさん (ワッチョイ bf2d-RYbe)
垢版 |
2022/09/20(火) 17:56:48.55ID:xv+EClXQ0
問題とは関係ないけれど
パスを操作する時はpathlibのほうがいいよ
2022/09/20(火) 18:02:43.94ID:GUzHgw240
正規表現で16進数を表すのに、いちいち[0-9a-fA-F]と書くのが面倒
もっとスマートに書けないものか
2022/09/20(火) 18:12:50.27ID:0B59Bo4G0
>>56
https://www.google.com/search?q=posix+character+classes
2022/09/20(火) 20:23:11.29ID:zGhXnhGV0
case-insensitiveで [\da-f]
2022/09/21(水) 19:43:53.71ID:b5Bal3Dn0
https://i.ibb.co/LkLcvky/CB-0001.jpg

pathlibというのを使って>>52と同じことをやってみたのですが、書き方が間違ってる気がしてならないので指摘して欲しいです
line14-15は何で上手くいかないのかも教えてほしいです
2022/09/21(水) 20:06:17.61ID:Qxk2XzJU0
まず、12行目のmkdirで例外発生してない?
temporaryなんてらフォルダはchdirしてるからすでに存在してるんでしょう?
2022/09/21(水) 20:13:22.49ID:VhW4jWqJ0
os関連の処理は互換性とか捨てて、subprocessでやるのが楽でしかも安定してる
2022/09/21(水) 20:30:50.72ID:2GcRUbUk0
繰り返される任意の文字列を1回の繰り返しに直す方法ありませんか?

"abcdabcdabcdefg"→"abcdefg"(abcdの繰り返し)
"abababc"→"abc"(abの繰り返し)
"aabbaabbc"→"aabbc"(aabbの繰り返し)

パターンの長さはとりあえず固定でいいので(例えば4でabcdとaabbはマッチできる)一気に置換する方法ないでしょうか
2022/09/21(水) 20:30:55.54ID:b5Bal3Dn0
>>60
存在してます。path.rename()書いてない時は、同名のフォルダが作られて「すでに存在してる〜」みたいなエラーを吐いてました

そもそもpathlib使って>>52をやりたい場合は、osを使う必要がなかったりもするのでしょうか?
64デフォルトの名無しさん (ワッチョイ d733-E+l9)
垢版 |
2022/09/21(水) 20:31:19.96ID:yjl6UhSi0
>>59
https://ideone.com/E4lQt0
2022/09/21(水) 20:52:17.39ID:b5Bal3Dn0
>>64
参考に直して見たら無事にできました。ありがとうございます。
https://i.ibb.co/XSzr82B/CB-0002.jpg
2022/09/21(水) 20:58:11.32ID:b5Bal3Dn0
変数名とか色々、短く略して書いた方が良いのでしょうか?
入力時間的には大差ないので、見返した時に分かりやすいようにしてるのですが
これは初心者だからで、経験者から見ると見苦しいとか、むしろ略されてた方が見やすいとかありますか?
67デフォルトの名無しさん (ワッチョイ d733-E+l9)
垢版 |
2022/09/21(水) 22:11:39.31ID:yjl6UhSi0
>>62
競プロの問題?
2022/09/21(水) 22:25:22.90ID:sVtx8qcf0
>>62
質問の意味がよくわからん
"abcdabcdefcdefg"の場合どうしたいの
2022/09/21(水) 22:30:53.91ID:4122FyYT0
LZ78の考え方の応用で行け
2022/09/21(水) 22:52:22.34ID:2GcRUbUk0
>>67
普通に処理したいだけです

>>68
"abcdabcdefcdefg"なら"(abcdabcd)efcdefg"→"abcdefcdefg"だと思います
2022/09/21(水) 22:55:15.34ID:2GcRUbUk0
あ、cdefcdefが繰り返されていたんですね…
最終的に人がチェックする工程があるので、先にマッチした方優先とかで大丈夫です
72デフォルトの名無しさん (ワッチョイ d733-E+l9)
垢版 |
2022/09/21(水) 23:11:15.16ID:yjl6UhSi0
'abcabcdabcabcdefg'
だったら?
2022/09/21(水) 23:16:47.91ID:VS1qJent0
長さ4固定でいいなら、正規表現あたりで

>>> import re
>>> re.sub(r'(....)\1+', r'\1', "abcdabcdabcdefg")
'abcdefg'
>>> re.sub(r'(....)\1+', r'\1', "aabbaabbc")
'aabbc'
2022/09/21(水) 23:21:53.64ID:757dNGj40
>>62
https://www.online-python.com/36ZCD0xAqV
2022/09/21(水) 23:30:41.78ID:Qxk2XzJU0
そこにforを使うなんて
2022/09/21(水) 23:49:19.41ID:2GcRUbUk0
>>73 >>74
ありがとうございます!
文中に含まれてるものにも対処したいので73を長さ変えながら複数回適用で使いたいと思います
77デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
垢版 |
2022/09/22(木) 11:05:41.34ID:u9/ouAZsa
>>39
いらね
78デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
垢版 |
2022/09/22(木) 11:11:13.09ID:u9/ouAZsa
>>72 の回答はよ
2022/09/22(木) 11:12:02.23ID:ufV304t80
見てすぐ判らんようなもんは使うべきではないな
2022/09/22(木) 13:04:09.56ID:kBSagdtc0
abracadabra
81デフォルトの名無しさん (ワッチョイ d72c-3X0R)
垢版 |
2022/09/23(金) 06:05:04.44ID:l/gDdEyB0
x = [i for i in range(10)]
idxs = [start, end] # 0 <= start <= end <= max(x)かつend +=1

xが上記の場合
最小はidxs = [0, 1]
最大は idxs = [0, 11]
です。このとき
for i in idxs:
__x[i]
だと最後が11のときindexErrorになるんだけど
try exceptでcontinueする以外にいい書き方ないですか

if i == len(x): breakみたいなのとか
_idxs[1] -= 1
for i in idxs:
みたいなのは嫌です
2022/09/23(金) 06:29:46.22ID:ciin+wbx6
その11にはどういう意味があるんですか
2022/09/23(金) 06:42:29.24ID:j5q+73vfM
>>82
そもそも、「いい書き方」って何ですか
2022/09/23(金) 07:14:40.79ID:ILPrLpfC0
これ、やべぇな
https://gigazine.net/news/20220922-python-old-bug-unpatched-15-years/

GitHub Copilot とかで広まっちゃうのか
2022/09/23(金) 09:31:57.58ID:nucVVsrtd
>>84
これは完全に誤訳
翻訳元では、GitHub上の数多くのOSSにこの脆弱性が存在するからCopilot等がそれを学習して広がるかもしれないと言っているだけ
2022/09/23(金) 09:39:19.95ID:08DmGtnT0
そんな風に読んだけど違うの?
2022/09/23(金) 10:22:01.14ID:7VR4OLWz0
確かにtarを使うリポジトリではcopilot経由で広がる可能性があるけど、tarを使うリポジトリなんてリポジトリ検索してもそんなにないので実数としては眉唾
依存関係から侵入してくる方がよっぽど可能性が高い

Copilotが批判されがちなので批判の文脈で喋ったほうが肯定的に聞いてもらえるだろうという余計な意図が入ってるのではと邪推してしまうね:)
2022/09/23(金) 12:26:25.28ID:nucVVsrtd
>>86
> Trellixによると、35万件を超えるリポジトリがこの脆弱性に脅かされていると見られ、その多くでGitHub Copilotなどの自動ツールが使われているとのこと。
前知識なく普通にこれ読んだら、35万件のリポジトリがGitHub Copilptを使っている、そして、Copilotがその脆弱性の原因であると思うでしょ
というかこの記事書いた人はたぶんそのように誤解してる
> https://www.trellix.com/en-us/about/newsroom/stories/research/open-source-intelligence.html
まあソースも推計方法や論理がガバガバで似たようなレベルだが
89デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
垢版 |
2022/09/23(金) 13:17:45.83ID:esyqbAqHa
>>81 が何を考えてるのか詳しく知りたいなωωω
2022/09/24(土) 01:05:33.05ID:WVAdUwxP0
>>81
インデックスなら0~10の番号で管理すべきじゃないの
endを取り出して使うときに+1すれば良いんじゃない
スライシングと混同してるのかな
91デフォルトの名無しさん (JP 0H1f-nvXy)
垢版 |
2022/09/24(土) 02:03:35.51ID:6DJLRQJMH
>>90
外部入力でスライス範囲を受け取ってて(start, end)
その値を使いまわしてインデックスアクセスしたいんだろう
テーブル扱うGUIとかでままある
2022/09/24(土) 07:13:39.52ID:52DloiQc0
単にインデックスの範囲とスライスを混同してるだけだろ
外部からの入力なら値のチェックは必須だしその時に調整しとけばいいだけ
2022/09/24(土) 07:29:05.56ID:RoHmfu6K0
一昔前のseabornのカラーマップだか忘れたけど1から数えて最後の数字を入れるようなインデックス指定を偶に見かける
[0, 10] → 0から9までと
[1, 10] → そもそも0が存在せず1から10
この2つの書き方にそれぞれ名前ついてたりする?
2022/09/24(土) 08:37:46.88ID:3mLYFKO40
>>93
前者は「半開区間」として [0,10) といった表記にするのをよく見る
2022/09/24(土) 09:09:58.79ID:RoHmfu6K0
>>94
あーたしかに数学で見るわ
2022/09/24(土) 09:21:01.36ID:P3HsQQA/0
メモリマップとかで、
A: 0x0000 - 0x0fff
B: 0x1000 - 0x1fff
みたいに末尾をfffにせずに、末尾は1足して表記する、という約束にした方が使いやすい
2022/09/24(土) 09:53:57.04ID:N1C+NhRL0
そうすると最後は
F: 0xf000 - 0x10000
と最後だけ2バイトでは表記しきれなくなるね
2022/09/24(土) 10:03:22.17ID:P3HsQQA/0
それはもう0でいい
2022/09/24(土) 10:26:03.89ID:8OhmHPew0
すみません、プログラミング初心者です、python構築について質問があります
python3.10.7をインストールしたのですがコンドプロンプトで確認したらpython 3.9.12になっています
もしかしたら以前DLしてたのかと思って探しても見つからないのですが
こういうものなのでしょうか?
2022/09/24(土) 10:37:33.81ID:8OhmHPew0
すみません、調べてみたらanacondaの方にpythonが入ってたみたいです
101デフォルトの名無しさん (ワッチョイ 372c-nvXy)
垢版 |
2022/09/24(土) 10:54:04.69ID:gdtERKOB0
まーたanaconda被害者がひとり…
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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