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

2024/09/01(日) 19:58:04.89ID:tGCM6k6e
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード設定推奨。荒らしは、完全スルー放置が一番きらいです。

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

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

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

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

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

次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
2デフォルトの名無しさん
垢版 |
2024/09/01(日) 20:02:26.33ID:tGCM6k6e
>>1
https://agree.5ch.net/test/read.cgi/mango/1724946346/257
ここで絞り込んだところ、旧テンプレ「NGワードトー6推奨」のトーロク+URLがあるとロックにかかりスレ立てできないようなので
用語を「設定」と置き換えめ立てました
3デフォルトの名無しさん
垢版 |
2024/09/02(月) 14:24:25.02ID:bEOQuk+Q
標準ライブラリでEBNFを解釈できる構文解析器ってある?さすがにねーか
4デフォルトの名無しさん
垢版 |
2024/09/04(水) 23:59:52.02ID:Wt3u+ph7
この度Pythonを勉強することになったぜ。よろしくう😀
2024/09/05(木) 00:27:43.46ID:oSzSq1tU
手軽すぎて他の言語触らなくなる
2024/09/05(木) 06:40:21.27ID:MAGLdus3
俺、退職したら今まで買って積んでいたPython技術書を読みまくりの
コード書きまくりの毎日を送るんだ…
誰にも強制されない期限に縛られない夢のようなプログラミングライフ
2024/09/09(月) 10:38:21.70ID:YY6FzbWS
pythonでjsの様な即時関数の使い方できないのかとやってたら、
jsと同じ書き方でできるんやね。
jsの即時関数もこれで意味が理解できた。

test = (lambda:1+2)()
2024/09/09(月) 21:15:10.77ID:+To1Amul
lambdaは中途半端で使いたくないし
その場で関数定義するかな
ドキュメンテーションにもなるし
9デフォルトの名無しさん
垢版 |
2024/09/10(火) 10:59:02.03ID:ij18hT+A
openpyxlで
ws.column_dimensions[str].hiddenで非表示列を削除したいと思ったのですが
どうやらAG-AJまでが非表示のばあいAGのみTrueになるため、削除範囲の設定が出来ません。

どのように処理したら良いのでしょうか?
10デフォルトの名無しさん
垢版 |
2024/09/11(水) 19:58:44.82ID:Blw77c4i
ctypesの型を派生して新しい型を作りたいです。
普通に A() の形でインスタンスを作ると __new__や__init__が呼ばれるのですが
A.from_buffer()でインスタンスを作ると__new__も__init__も呼ばれません。
インスタンスが出来たときに初期化処理を走らせたいのですが
あらゆる場合に処理を走らせるにはどこに書けば良いのでしょう?

class A(ctypes.Structure):
  def __new__(cls):
    print("__new__")
    return super().__new__(cls)
  def __init__(self):
    print("__init__")

a1 = A()   # __new__も__init__も呼ばれる
a2 = A.from_buffer(b'\x00' * 100) # __new__も__init__も呼ばれない
2024/09/12(木) 17:55:43.14ID:pWxIzWg0
>>9
自己レスです。できました。
非表示列〜max_columnの範囲で削除していけば大丈夫でした。
2024/09/19(木) 19:44:44.58ID:Qrv8mEfZ
def hoge[Tl
2024/09/19(木) 19:46:16.55ID:Qrv8mEfZ
def hoge[T]() -> Tとは書けないの??
2024/09/19(木) 22:22:51.10ID:60TRcAah
[key]の解決がランタイムだから
class Hoge:
def __getitem__(self, t: T):
def inner() -> T:
return t + t + t
return inner
こんなんならコンストラクタでジェネリクスした方が素直か
2024/09/19(木) 22:23:14.52ID:60TRcAah
ホワイトスペースさん
16 警備員[Lv.21]:0.02637569
垢版 |
2024/09/21(土) 17:11:39.20ID:JkarD7jl
Pyinstallerでmpmathとsympyを使用しているスクリプトをEXEにしたところ、
スクリプトで実行した状態と挙動が異なってしまった。
mpmathだけの場合と両方を使用したEXEの場合を比較しても、挙動が異なる。

何か良い対処法はないでしょうか?
17 警備員[Lv.22]:0.02645913
垢版 |
2024/09/21(土) 18:51:37.38ID:JkarD7jl
>>16
ちなみにnuitkaでEXEファイルを作っても、状況は多少異なるが同様にスクリプトとは挙動が異なるEXEが出来上がる。

何か良い対処法はないでしょうか?
2024/09/21(土) 18:59:46.17ID:OxUtHfMh
バージョンは?gmpの有無は?
19 警備員[Lv.22]:0.02649869
垢版 |
2024/09/21(土) 19:57:23.45ID:JkarD7jl
pyinstallerは6.6.0、
nuitkaは2.2.2で確認。

altgraph 0.17.4
mpmath 1.3.0
Nuitka 2.2.2
ordered-set 4.1.0
packaging 24.0
pefile 2023.2.7
pip 24.0
pyinstaller 6.6.0
pyinstaller-hooks-contrib 2024.3
pywin32-ctypes 0.2.2
setuptools 69.2.0
sympy 1.13.3
zstandard 0.22.0

こんな環境です。
20 警備員[Lv.22]:0.02649869
垢版 |
2024/09/21(土) 20:00:08.62ID:JkarD7jl
mpmathだけの場合とsympyを加えた場合の話ですが、どうもスクリプトプログラムのデグレードだったようで、
スクリプトとEXEの挙動の相違はmpmathのみの場合と同一な相違なようでした。
21 警備員[Lv.22]:0.02649869
垢版 |
2024/09/21(土) 20:15:11.47ID:JkarD7jl
具体的な挙動の相違は、スクリプトではmp.dpsを2000にして、mp.piを実行するときちんと表示できるのですが、
EXEでは
No module named '_pylong'
とエラーになってしまう点です。
ちなみにmp.dpsを1700程度まで下げると両方共問題なく実行できます。
22 警備員[Lv.22]:0.02653820
垢版 |
2024/09/21(土) 20:53:29.00ID:JkarD7jl
>>19
はpipenv上の環境ですが、どうもpythonのバージョンがスクリプトを実行しているvscodeの3.12.1より古く、
3.10.11だったようで、今nuitkaを実行しているのが終了したらバージョンを上げて試してみます。
23 警備員[Lv.22]:0.02653820
垢版 |
2024/09/21(土) 20:58:21.42ID:JkarD7jl
>>20
デグレード内容は、

if x or y in a:
処理1
else:
処理2

としていたら常に処理1になっていたのを、

if x in a:
処理1
elif y in a:
処理1
else:
処理2

としたらうまくいったものです。
24 警備員[Lv.22]:0.02653820
垢版 |
2024/09/21(土) 21:04:03.31ID:JkarD7jl
>>23
失礼。正確には

if 'x' or 'y' in a:
処理1
else:
処理2

としていたら常に処理1になっていたのを、

if 'x' in a:
処理1
elif 'y' in a:
処理1
else:
処理2

としたらうまくいったものです。
シングルクォーテーションでもダブルクォーテーションでも一緒です。
25 警備員[Lv.22]:0.02653820
垢版 |
2024/09/21(土) 21:34:39.21ID:JkarD7jl
>>22
pipenvのpythonのバージョンが
pipenv updateしても
pipenv install --python 3.12.1しても
3.12.1に上がらない。どうしたものか?
26 警備員[Lv.23]:0.02657819
垢版 |
2024/09/21(土) 22:15:10.80ID:JkarD7jl
pyenvを入れていないので、仕方なくpython3.10.11をアンインストールして、
最新のpython3.12.6を入れなおしてみたわ。

しかしpyinstallerで作ったEXEでは>>21の状況は変わらず。
nuitkaは実行時間がかかりすぎた上に作成に失敗したので再度は試していない。
27 警備員[Lv.23]:0.02657819
垢版 |
2024/09/21(土) 22:29:18.61ID:JkarD7jl
>>21
pyinstallerで作ったEXEでは、
mp.dpsを1700にすると実行可能、1800にすると実行不可能、
その続きで1710や1720、などと上げていくと1793までは実行できて1794では実行できない状態となった。
ちなみにいきなり1793で実行すると実行できない。

不思議な挙動。
2024/09/22(日) 02:09:08.59ID:iEtTQpvN
いやおっぱいって日本語だろ。pythonとは関係ないんじゃねぇ?
2024/09/22(日) 02:09:25.45ID:iEtTQpvN
すみません誤爆しました
30デフォルトの名無しさん
垢版 |
2024/09/22(日) 09:32:26.97ID:hrlCT4AQ
独り言ってレベル超えてずっと一人で話してる人いるよね
2024/09/22(日) 10:36:41.73ID:dIZ6tRX9
一人で書き込んでるの多く見かける記憶…
2024/09/22(日) 10:57:46.27ID:alV6F0SM
原因は明らかなのに「挙動が異なる」「不思議な挙動」などと書き込む”挙動”を繰り返す。
どうしたものか?
2024/09/22(日) 15:43:44.33ID:OxFtcwXp
野良ライブラリに関する話題もそうだけど、スクリプトのexe化はPythonの本質的な話題じゃないから質問してくるの自重して欲しい
2024/09/22(日) 17:49:51.10ID:/wmMBDIa
質問するくらいは別にいいと思う

ただEXE化の質問は8〜9割はEXE化すると動かない/動きが変わるという内容でそのほとんどがPythonやライブラリのバージョンが違うというもの
ビルド時のログにも出るしプログラムからも実行時に簡単に確認できるんだから最低限その程度の確認はやれよと思う

それすらもできないやつはEXE化に手を出すレベルに達してないんだが質問してくるやつに限って自分はそこそこできるとなぜか勘違いしてるからタチが悪い
2024/09/22(日) 18:01:35.83ID:7jSNUzoA
exe化の前に質問の仕方を学んでこいって思うの多い
2024/09/22(日) 20:27:04.79ID:WWspizht
そんなにexe化したいならコンパイル型言語使えばって思う
2024/09/22(日) 20:39:16.19ID:dIZ6tRX9
他人に渡すからしてるんやないの
38デフォルトの名無しさん
垢版 |
2024/09/23(月) 08:02:08.24ID:vqwgr4fH
一人でレスパ流行ってんのか
2024/09/23(月) 12:05:12.11ID:relGJQy1
レスパーティ?
2024/09/23(月) 14:16:57.99ID:DSzpjkZo
頭悪いなりに色々やってるのはまだマシでしょ
41デフォルトの名無しさん
垢版 |
2024/09/23(月) 23:09:27.75ID:srXpNshp
連投があった後、ゴミしか書き込まなくなってるな。
連投は良くないな。
42デフォルトの名無しさん
垢版 |
2024/09/24(火) 11:36:20.90ID:YyBNUQHT
連投っていうかお前の質問の仕方は答えようとする人間のモチベを全力で削ぎにきてんのよ
2024/09/24(火) 13:18:48.39ID:25SVKRoU
ChatGPTあるのに質問してる時点でただのかまってちゃんなんだよ
相手してやれ
2024/09/24(火) 13:19:19.38ID:9HmnlcCc
>EXE化に手を出すレベルに達してない
これ
45デフォルトの名無しさん
垢版 |
2024/09/24(火) 14:42:00.01ID:4G7JOFbX
初心者がやりたいことのステップとして代表的なものであるのもたしか
学びやすいpythonにとって向いていることでもなく力技的にやらないとならないのもたしか
かなり変な連投があったとはいえタコ殴りにしすぎと思う

いわゆるexe化で挙動が違ったことないしそこまで難しいプログラムつくらないので解決法はわかりません
モジュールがないと言われてるなら含んでるか中身見てみたり
最小限の再現可能なプログラムを書いてpyinstallerやnuitkaのgitかredditなどに聞いてみたらよいのでは(簡潔に連投後だしとかなく)
2024/09/24(火) 14:53:42.32ID:vvKB2ofD
https://github.com/python/cpython/blob/main/Lib/_pylong.py
_pylongって多分これで、Python3.12からの新しいモジュールなんだよね
これを含めるようにpyinstallerに指示するとよさそう
47デフォルトの名無しさん
垢版 |
2024/09/24(火) 19:52:47.78ID:jcIZztnR
ぼくにはわかりませんを質問の仕方が悪いにすり替えるのやめな?
48 警備員[Lv.25]:0.02685878
垢版 |
2024/09/24(火) 20:24:47.71ID:y9/PRn2Y
>>21
だが、chatgpt4ominiに聞いて、.specに1行追加してビルドしなおしたら解消したわ。
ありがトン。
2024/09/24(火) 21:15:04.20ID:USgVeblu
ダメだこいつww
2024/09/24(火) 22:23:02.67ID:71jTp3KI
>それすらもできないやつはEXE化に手を出すレベルに達してないんだが質問してくるやつに限って自分はそこそこできるとなぜか勘違いしてるからタチが悪い
マジでこれだな
51 警備員[Lv.25]:0.02694023
垢版 |
2024/09/24(火) 22:32:00.42ID:y9/PRn2Y
>>49
答えられなかったお前はもっとダメだな
>>50
独りよがりな見解など聞いても誰も得しない
52デフォルトの名無しさん
垢版 |
2024/09/25(水) 13:25:16.90ID:UPZugvt8
>連投っていうかお前の質問の仕方は答えようとする人間のモチベを全力で削ぎにきてんのよ

解答する義務なんてないし
2024/09/25(水) 15:58:57.53ID:qqRCBOP9
windows用python入れてp2exeしろよ
うぜえからもう来るな
2024/09/25(水) 16:04:11.66ID:qqRCBOP9
py2exeな
2024/09/25(水) 23:54:35.69ID:z+Q3TXdX
Pythonしか出来ない低脳ゴミカスが増えたのか
単に広く全分野の学生がPythonを習うようになったってことなのか
ゴミの集う言語になっているな
2024/09/26(木) 00:22:27.01ID:o+tIQtE0
>>55
後者だよ
今やPythonユーザーの大半はプログラマーではなく学者・研究者だろう
だから文法などよりも特定のライブラリの質問が多い
2024/09/26(木) 09:42:59.31ID:N5lAm0Fk
プログラマーでも文法などの基礎を押さえたらライブラリの使い方を学ぶようになるのは自然なことなのでライブラリの質問が多いからという理由だけでユーザー層が分かるわけではない

今回のはライブラリとは関係なく実行環境の各種バージョンを確認する・揃えるという基礎ができてないことが原因だが本人は基礎ができていないという自覚がないばかりか学ぼうとすらしていないから総スカンをくらう
2024/09/26(木) 09:56:48.61ID:djNQpW3f
>自覚がないばかりか学ぼうとすらしていない
同意
>>23,24,25あたりを見ればよくわかるよね
2024/09/26(木) 10:47:15.19ID:R5lWYvWF
>シングルクォーテーションでもダブルクォーテーションでも一緒です。

どう観てもネタだよなωωω=2πf
2024/09/26(木) 12:42:12.31ID:FQ69FIWk
>>59
それな
61デフォルトの名無しさん
垢版 |
2024/09/26(木) 17:34:29.02ID:7fFER7sA
しつこいよ
本スレならともかく超初心者のくだらない質問スレで
あれがなってないこれがなってない自分で調べたのか等々、好意的進言ならともかく否定したいだけ
こんな初心者むけのとこでしかイキれないやつがずっと(何十年)いるよなこの板
昔からここで精神性とかグチグチいってるのほとんどは同じやつだと思うわ
2024/09/26(木) 18:40:57.11ID:BPSB0id4
> 好意的進言ならともかく
お前は何様何だよw
2024/09/26(木) 19:54:25.65ID:o+tIQtE0
今気づいたけど
>>1に、「へび使いが優しくコメントを返します」ってあるんだな
どんなアホな質問でも辛辣な応対をしてはならんということだ
64デフォルトの名無しさん
垢版 |
2024/09/26(木) 21:07:37.94ID:8lxGjkv9
では僕の股間のパイソンが独り身で困っていますので何とかしてください
2024/09/26(木) 21:14:28.87ID:khh2va5j
3.13は10/1に出せそうなん?
66デフォルトの名無しさん
垢版 |
2024/09/26(木) 21:19:48.61ID:0toPOXHQ
>>24
chatgptは
if 'x' in a or 'y' in a:
と書けと答える。

こんなところで聞かないでchatgptに聞けばいいというのが正解。
ゴミが脊髄反射するだけ。
2024/09/26(木) 21:54:42.65ID:szOQTK2Q
ダメなやつ再登場w
これでバレないと本気で思ってるww
68デフォルトの名無しさん
垢版 |
2024/09/27(金) 17:00:33.76ID:pgg/4VuR
質問するなとは言っていないし
解答も言い方辛辣でも内容が的を得ているものなら問題無いだろう

>>34>>57
これに尽きる
69デフォルトの名無しさん
垢版 |
2024/09/27(金) 18:47:43.37ID:FpdDHDra
>>64
スレチ ニューナンブのスレにどうぞ
2024/09/27(金) 19:57:53.73ID:j14ps9A/
>>68
「優しく回答します」なのだから辛辣なのはダメだろ
71デフォルトの名無しさん
垢版 |
2024/09/27(金) 20:17:51.56ID:UrFCEFS1
>>69
パイソンマグナムの俺の場合は?
72デフォルトの名無しさん
垢版 |
2024/09/27(金) 20:58:14.49ID:FpdDHDra
>>71
発射できない封をされたものはモデルガンのスレにどうぞ
73sage
垢版 |
2024/09/28(土) 01:16:56.52ID:tIM57Eh2
>>70
優しい嘘は罪
74デフォルトの名無しさん
垢版 |
2024/09/28(土) 03:38:11.69ID:t/h+8kfb
>>73
文盲
75デフォルトの名無しさん
垢版 |
2024/09/28(土) 05:40:20.71ID:f328xjaA
>>72
発射はできるが相手がいないだけの場合は?
76デフォルトの名無しさん
垢版 |
2024/09/28(土) 06:12:56.01ID:sJCfgRRB
>>75
まさにpythonの出番です彼女ロボットを作ってAIを注入してください
2024/09/28(土) 09:03:58.52ID:yIoq6vwe
ここで俺ら凡人がヘタな回答するより、ChatGPTの使い方をアドバイスした方が有効なんじゃないかな
2024/09/28(土) 16:38:35.18ID:mMCuPuM4
ChatGPTの使い方というのも結局のところ質問の仕方に帰着する
2024/10/19(土) 10:54:47.99ID:3T8uATjn
ここで質問があったらコピペしてchatGPTに質問
chatGPTの回答をまたコピペしてここに回答
さらに質問があったらコピペしてchatGPTに質問
chatGPTの回答をまたコピペしてここに回答

これを辛抱強く繰り返してみろ
2024/10/19(土) 15:17:25.50ID:nrXZ8yuj
それだけじゃメタ思考能力は身につかない
2024/11/18(月) 00:03:39.70ID:K13rtGep
Python1.13のJITはどんな感じ?いけてる?
2024/11/18(月) 01:43:18.04ID:lkgbe76j
phpのJITを超えた
83デフォルトの名無しさん
垢版 |
2024/11/18(月) 07:26:59.58ID:RGRNWCsj
GitHub - rio-labs/rio: WebApps in pure Python. No JavaScript, HTML and CSS needed
ps://github.com/rio-labs/rio
2024/11/18(月) 07:47:30.54ID:rNW/yup2
CSS好きじゃないからそういうのが増えるのは嬉しい
85デフォルトの名無しさん
垢版 |
2024/11/18(月) 08:19:06.31ID:boZQ3aHy
>80
AIωにメタ認知能力は無い
2024/11/19(火) 11:55:31.57ID:LfZBfwg3
Fletでguiを作成しようと思っているのですが、右クリックのイベントって無いのです?
on_clickしかない感じなのですが、簡単に右クリックイベント足すならcv2やongameとかが色々あるみたいなのですが何が良いでしょうか?
2024/11/19(火) 13:49:48.34ID:LfZBfwg3
>>86 調べきった結果、無かったのでとりあえずpynputモジュール使うことにしました。
88デフォルトの名無しさん
垢版 |
2024/11/20(水) 12:29:11.18ID:/vkp6Se1
右クリはGestureDetectorで包んでsecondaryからできる
2024/11/21(木) 21:43:27.89ID:KBaufqW0
Windows環境でsubprocess.runを呼び出す時の、ダブルクオートの処理について教えてください
いろいろ検索したのですが、どうしても解決できませんでした。

目的は、コマンドプロンプトのstartコマンドで、タイトルを引数に与えて実行したい、というものです。
タイトルは必ずダブルクオートを付与する必要があります(実行するコマンド部分と区別するため)

pythonからではなく素で実行する場合(以下は仮でdateコマンド、タイトルをhogehoge)
start "hogehoge" date

これを、subprocess.runから呼び出す場合
subprocess.run(['CMD', '/C', 'start', '"hogehoge"', 'date'])
とすれば動きそうですが、subprocess.runがダブルクオートを変換してしまいエラーとなります。
(「\hogehoge\ が見つかりません」となります)

以下の用に、タイトル部分に意図的に空白を入れて、ダブルクオートを外せば、自動的にダブルクオートが付いて渡されます
subprocess.run(['CMD', '/C', 'start', 'hoge hoge', 'date'])

どうも、引数のリストで与える場合、ダブルクオートを意図的に与えることができないようになっているみたいです

回避策として、ダミーの空白を入れる、引数をリストで与えず単一の文字列で与える(非推奨)、実行後のプログラム内で"title"コマンドでタイトルを変更する、などあるかと思いますが、もし、引数のリストを使用し空白を入れないタイトルを指定する方法があれば教えていただけると助かります。
2024/11/21(木) 22:46:13.69ID:W8C7TPi3
>>89
subprocess.runでやってるのと同じことを素で実行するなら
CMD /C start "hogehoge" date
2024/11/21(木) 22:56:30.70ID:KBaufqW0
>>90
すみません、CMDが抜けてましたね。

いずれにしても、以下はtitleが正しく渡らずエラーになりまふ。
subprocess.run(['CMD', '/C', 'start', '"hogehoge"', 'date'])
↑hogehogeのクオートはダブルクォートをシングルで囲ってます

引数のリストで意図的なダブルクォートを渡す方法が知りたいです。
2024/11/21(木) 23:33:42.87ID:J//2W2fX
普通にエスケープしとけばいいだけでは?
2024/11/21(木) 23:43:28.51ID:7QbzhZq9
普通のコマンドでは,command "a" とcommand aは等価です.
これを区別するためCMDはWindows特有のGetCommandLineAのようなAPIでコマンド文字列を取得して使用しています.
単一の文字列で与えるやり方を使ってください.
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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