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


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

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



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

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

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

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

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

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

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

467 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 14:06:44.19 ID:6p0ry24q.net]
うまく行かない→画面外にlineの先端が飛び出す です

468 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 15:38:52.20 ID:NWS7XA3x.net]
>>461
これを試してみてくれ
point = np.array([0, -center_y])

x = rotated_point[0] + center_x
y = rotated_point[1] + center_y

469 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 15:59:41.53 ID:6p0ry24q.net]
>>462
ありがとう
円になりました

470 名前:デフォルトの名無しさん [2024/03/15(金) 17:26:12.14 ID:8JWNUOHY.net]
>>456
なんで?

471 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 17:38:05.39 ID:NWS7XA3x.net]
>>463
座標回転は原点からのベクトルにしてから回転して
後で始点座標を加算する
後、縦横の長さが違う時は短い方に合わせないと飛び出す
必要なら1/2、1/4などして長さを調節する
画面サイズを元にスケーリングして長さを求めるのは画面サイズに依存しないやり方

472 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 17:46:21.03 ID:F3qtk1ON.net]
>>464
project_xっていうような名前のプロジェクト名だったけどherokuを覗いてみるとそんなフォルダーはなくて/app/って名前になってた

だから相対パスや絶対パスを消して全部プロジェクトルートからのimportにした(ここらへんよく分かってない)

あとherokuでポスグレ使うためにadd-on入れて、自動生成されたsqlalchemyに接続するためのDATABASE_URLっていう環境変数の中身であるpostgres://から始まるurlが正しくはpostgresql://でコード中で直す羽目になった

色々とherokuは使いやすくない
これならawsでも学べばよかった

473 名前:デフォルトの名無しさん mailto:sage [2024/03/15(金) 17:47:08.11 ID:F3qtk1ON.net]
あとgitのdevelopブランチをpushしてたけどherokuはmasterしか見ないらしくそれもハマった

474 名前:デフォルトの名無しさん [2024/03/15(金) 21:48:19.54 ID:8JWNUOHY.net]
>>466
>だから相対パスや絶対パスを消して全部プロジェクトルートからのimportにした(ここらへんよく分かってない)
https://devcenter.heroku.com/articles/getting-started-with-python?singlepage=true
https://devcenter.heroku.com/articles/python-pip
この辺みたらpipでインストールできるようにしてたらコード書き換える必要なさそう

herokuに限らずデプロイするのにコード書き換える必要がでてきてしまったのはパッケージの構成がよくなさそう
何にしろ別環境にデプロイする以上、pipでインストールできるような構成にした方が楽だよ

475 名前:デフォルトの名無しさん [2024/03/15(金) 23:44:29.33 ID:gLD47Opc.net]
>>451
条件式がTrueのときループして、条件式がFalseのときelseになる
forもwhileもループ目的でつかうので、条件式がFalseのときというのは自然と終了時になる
たとえば下記のようなループしないコードだとfalseとだけ表示される

while True == False:
____print("true")
else:
____print("false")



476 名前:デフォルトの名無しさん [2024/03/16(土) 00:23:50.73 ID:tIIuw8RV.net]
いやいや

477 名前:デフォルトの名無しさん [2024/03/16(土) 00:34:26.59 ID:IFaiGfVE.net]
キーワードを節約のために同じ単語を使ってるけど
if-elseのelseと
try-except-else-finallyのelseと
for-else/while-elseのelseと
みんな意味が違う

ループのelseは”if not break”

478 名前:デフォルトの名無しさん mailto:sage [2024/03/16(土) 00:41:49.95 ID:ENgm2ZqF.net]
意味を与えたら異なってくるけど
内部処理は同一にみえん?

479 名前:デフォルトの名無しさん mailto:sage [2024/03/16(土) 03:10:31.74 ID:KKwFKDp9.net]
全部gotoやろなあ

480 名前:デフォルトの名無しさん mailto:sage [2024/03/16(土) 05:06:55.01 ID:aWIocRO6.net]
herokuにアップしたらドメインとフォルダーの間のスラッシュが何故か2つになって恐らくそのせいで404とcors error出る
ローカルではちゃんと動くし有り得そうなところは全部見たんだが

もうfastapi、react、herokuのどれのせいなのかわからなくて積んだ

elastic beanstalk に変えてデプロイし直すか.....

481 名前:デフォルトの名無しさん [2024/03/16(土) 10:02:19.46 ID:eI+Kyosu.net]
なんか、ドキュメントとかログとか読まなそうな人だな

482 名前:デフォルトの名無しさん [2024/03/16(土) 10:47:04.93 ID:h3KSZFE8.net]
>>473
ジョークにマジレスしちゃうけどgotoする条件の違いが重要

goto if false
goto if no exception
goto if no break

483 名前:デフォルトの名無しさん mailto:sage [2024/03/16(土) 12:00:46.66 ID:KKwFKDp9.net]
>>476
(なので同一には見えないの意味でした. 補足ありがとう

484 名前:デフォルトの名無しさん mailto:sage [2024/03/16(土) 13:00:21.70 ID:BNVm3LV8.net]
たぶん予約語を増やしたくないからelseを流用したんだろうね
この辺は言語設計のさじ加減だから仕方ない

485 名前:デフォルトの名無しさん mailto:sage [2024/03/16(土) 13:18:07.52 ID:gBCe/Ijm.net]
try-exceptのelseってtryに全部書きたくない人が使うの…?



486 名前:デフォルトの名無しさん mailto:sage [2024/03/16(土) 14:41:32.39 ID:fX07kGnW.net]
こんな混乱が起こる構文なので
使わない方がベター
実装されてる機能が全ていいとは限らない

487 名前:デフォルトの名無しさん mailto:sage [2024/03/16(土) 15:25:29.24 ID:S+aPEpZd.net]
例外が発生するかもしれないけど上のexceptに混ぜたくない処理を書きたい場合とか?

488 名前:デフォルトの名無しさん [2024/03/16(土) 23:03:57.53 ID:1SZ3hjNN.net]
forのelseというのは
forに対するelseではなく
forのループの条件式に対するelse

だから意味は違っても内部処理は同一となる
なのでif-elseをループさせてやるとfor-elseと同じ処理を再現できる
https://ideone.com/2MULxa

489 名前:デフォルトの名無しさん [2024/03/16(土) 23:25:35.65 ID:HgWB99Ut.net]
>>482
なるほどね
言わんとしてることは良くわかったわ

490 名前:デフォルトの名無しさん mailto:sage [2024/03/18(月) 19:10:03.43 ID:mMZjYpOD.net]
ωってPyPyに似てるよね

491 名前:デフォルトの名無しさん mailto:sage [2024/03/18(月) 22:57:43.88 ID:k+0BFsOa.net]
おいなりさんだろ

492 名前:デフォルトの名無しさん mailto:sage [2024/03/20(水) 21:07:42.45 ID:g3UAOGQ4.net]
def one():
 return 1,2

def two(a,b):
 print(a,b)

two(100,100)
two(one())

最後の行で「TypeError: two() missing 1 required positional argument」エラーとなります。
twoで1と2を受け取れるようにするにはどうすれば?

493 名前:デフォルトの名無しさん [2024/03/20(水) 21:12:04.19 ID:GeI9OXvQ.net]
two(*one())

494 名前:デフォルトの名無しさん mailto:sage [2024/03/20(水) 21:27:30.26 ID:g3UAOGQ4.net]
>>487
サンクス
できました

495 名前:デフォルトの名無しさん mailto:sage [2024/03/25(月) 21:04:47.80 ID:ybmcJkp8.net]
def myfunc():
__myfunc.initialized = True

こういうのってあり?
1年くらいpython勉強してきて、先日初めて見かけたんだけど
ちょっとおどろいてしまって



496 名前:デフォルトの名無しさん mailto:sage [2024/03/25(月) 22:22:30.06 ID:JhT+JdiB.net]
functionもオブジェクトで__call__が生えてるだけと思えるならあり
ただどんな用法でも見通しが悪ければなし

497 名前:デフォルトの名無しさん [2024/03/26(火) 01:38:33.45 ID:CAcXk4Yx.net]
おどろいてしまうようなやり方はじっくりコードを見ないとわからない振る舞いをするから基本なし

498 名前:デフォルトの名無しさん mailto:sage [2024/03/26(火) 02:04:23.26 ID:s3c2P37L.net]
便利ではあるけどわりと悪用寄りじゃねーかなあ

499 名前:デフォルトの名無しさん [2024/03/26(火) 04:38:00.60 ID:vQ76deH4.net]
"initialized" て何?

500 名前:デフォルトの名無しさん [2024/03/26(火) 09:15:41.63 ID:we9m9tD+.net]
>>489
なにそれ

>>> def myfunc():
...   __myfunc.initialized = True
...
>>> myfunc()
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "<stdin>", line 2, in myfunc
NameError: name '__myfunc' is not defined
>>>

501 名前:デフォルトの名無しさん [2024/03/26(火) 09:32:42.21 ID:VDce1kQ4.net]
アンスコはインデントのことやろ

502 名前:デフォルトの名無しさん mailto:sage [2024/03/26(火) 10:24:26.34 ID:1hPeYZqd.net]
www

503 名前:デフォルトの名無しさん mailto:sage [2024/03/26(火) 10:40:59.11 ID:oEfu3HhX.net]


504 名前:デフォルトの名無しさん mailto:sage [2024/03/26(火) 10:56:16.21 ID:SqtaP4pc.net]
便利なことある?
100%無しだと思うが

505 名前:デフォルトの名無しさん mailto:sage [2024/03/26(火) 11:22:52.88 ID:cN9vnyja.net]
気持ちはわかるが………
https://i.imgur.com/osueu8f.jpg



506 名前:デフォルトの名無しさん mailto:sage [2024/03/26(火) 11:30:55.84 ID:XEFglfYx.net]
クラス定義より軽量、外の名前空間を汚さない
ジェネレータもあるしこれでしか書けないってのは思いつかない

507 名前:デフォルトの名無しさん [2024/03/26(火) 12:34:45.39 ID:rLv5Wa1V.net]
template metaprogramming に匹敵する犯罪

508 名前:デフォルトの名無しさん mailto:sage [2024/03/26(火) 12:38:21.94 ID:HGM8+XQV.net]
>>499
それはクロージャかクラスを使うべきケース
状態を外から更新したいならクラスを
更新されたくないならクロージャを使う

副作用じゃなく値を返すのがメインならジェネレータも選択肢の一つ

509 名前:デフォルトの名無しさん [2024/03/26(火) 13:03:56.77 ID:/DMrazJH.net]
これGUI書きのクセっていうか、イベント・バインドの高階関数とかで見るな
簡単なGUI書いてて、クラス化まではしてないときかつ状態が2値のみのとき
ウィジェットまわりに全部押し込んだほうが目線動かなくてメンテしやすいんよ
それより表現が複雑だったら変数はrootに置いたり、クラスに持たせたりするんだけど、これはウィジェット(たとえばボタン)に持たせてるような感じ
initializedとか、btn.locked / del lockedとかだしょ

510 名前:デフォルトの名無しさん mailto:sage [2024/03/26(火) 15:17:24.89 ID:/6tigVoe.net]
pylanceって何?

511 名前:デフォルトの名無しさん [2024/03/30(土) 09:21:28.53 ID:FABGEyhJ.net]
うちの pipが、

$ pip --version
pip 55.0 from /usr/lib/python3.99/site-packages/pip (python 3.99)

だとして、python3.1/site-packagesを pip listしたい。どうしたら?

512 名前:デフォルトの名無しさん [2024/03/30(土) 11:49:14.06 ID:lTb8Ggax.net]
python3.1 -m pipでやってみたら
要は使いたいpythonからモジュールでpipを起動する

513 名前:505 [2024/03/31(日) 06:27:21.58 ID:r7c9jkcO.net]
>>506
python3.1 はもう無い。

514 名前:デフォルトの名無しさん mailto:sage [2024/03/31(日) 12:09:50.75 ID:sPPO74qw.net]
$ pip list ―path python3.1/site-packages

515 名前:505 [2024/03/31(日) 17:11:49.91 ID:wZMZSRnS.net]
>>508
なるほど。どうもありがとう。

$ pip --version
pip 55.0 from /usr/lib/python3.99/site-packages/pip (python 3.99)
$ pip list --path /usr/lib*/python3.1/site-packages
Package Version
------- -------




516 名前:デフォルトの名無しさん [2024/03/31(日) 20:01:34.78 ID:k+SRq7RN.net]
モダンなGUI作れるっていうからflet触ってるんだけど
もしかしてこれGUIに対するドロップ受け付け機能ない感じ?

517 名前:デフォルトの名無しさん mailto:sage [2024/04/02(火) 21:32:23.08 ID:tcE9WrX3.net]
身体がflutterを受け付けない
pythonでflutterアプリが作れるとか
なんで、なんでそんなことを

518 名前:デフォルトの名無しさん [2024/04/03(水) 09:07:29.94 ID:gYUDipyH.net]
fletはflutterで根本的にwebアプリ用だから外部からの入力はdropzoneないと無理じゃないか

519 名前:デフォルトの名無しさん [2024/04/09(火) 09:59:41.23 ID:vz2W6XdT.net]
>>511
自分はDartを覚えず使わずflutterアプリ作れるってのが良いんじゃね
知らんけどw

520 名前:デフォルトの名無しさん mailto:sage [2024/04/25(木) 18:36:04.67 ID:et3aNg4p.net]
>>510
それないのネックだよなー

521 名前:デフォルトの名無しさん mailto:sage [2024/04/26(金) 04:15:50.28 ID:irc/xjdb.net]
このスレにあった質問かどうか自信がないんだけど・・・
投資系のライブラリ"talib"てあるじゃないですか
これに含まれるCCIの使い方がわからんのです

522 名前:デフォルトの名無しさん mailto:sage [2024/04/26(金) 06:53:25.16 ID:ZBCRkORu.net]
>>515
ChatGPTに聞いてみなよ
もうプログラミングは人に聞いたりドキュメントを読む時代じゃない

523 名前:デフォルトの名無しさん mailto:sage [2024/04/26(金) 07:20:49.79 ID:oC+HoZzz.net]
やってみたらわかるけどマイナーなライブラリの使い方聞いてもデタラメ答えるだけ

524 名前:デフォルトの名無しさん mailto:sage [2024/04/26(金) 08:47:57.09 ID:irc/xjdb.net]
>>516
無料版3.5で聞いてみた
突然英語で喋りだして、思ってたのと違うコードを紹介してきたので諦めたw

525 名前:デフォルトの名無しさん mailto:sage [2024/04/26(金) 08:50:24.75 ID:GzSmFxiN.net]
ChatGPTの野郎は知ったか振りばかりして「知らない」と言うことを知らないからな



526 名前:デフォルトの名無しさん mailto:sage [2024/04/26(金) 08:59:13.25 ID:svyb6xY8.net]
>>516 みたいにプログラミングやってるくせにChatGPTの実力や使いどころを知らないのまじ無能

527 名前:デフォルトの名無しさん [2024/04/26(金) 18:16:07.03 ID:AmdOltG1.net]
いけず石の説明させたら架空の鉱物の説明しだすからな

528 名前:デフォルトの名無しさん mailto:sage [2024/04/26(金) 20:01:21.45 ID:sEQNDfGh.net]
>>518
3.5で聞いたみたら下記の回答が返って来たぞ
これじゃダメなのかい?

import talib


# サンプルデータの作成(適宜自分のデータに置き換えてください)

high_prices = [105, 110, 115, 120, 118, 112, 115, 118, 122, 125]
low_prices = [95, 98, 102, 108, 100, 102, 105, 108, 110, 112]
close_prices = [100, 105, 110, 115, 112, 108, 110, 115, 118, 120]



# CCIの計算

cci = talib.CCI(high_prices, low_prices, close_prices, timeperiod=14)



# 出力の表示

print("CCI:", cci)


talib.CCI()`関数には、高値、安値、終値の配列を渡し、`timeperiod`パラメーターを指定する必要があります。これはCCIの期間を表します。計算されたCCIの値は、指定された期間ごとに配列として返されます。


上記の例では、10日間の高値、安値、終値のデータからCCIを計算しています。実際の取引データを使用する際には、それに応じてデータを入力してください。

529 名前:デフォルトの名無しさん mailto:sage [2024/04/26(金) 20:15:58.39 ID:SscvQYbj.net]
ドキュメント読めよ

530 名前:デフォルトの名無しさん [2024/04/28(日) 21:51:15.65 ID:zlR73q8o.net]
スレ立てあらしスクリプト対抗age

531 名前:デフォルトの名無しさん [2024/04/29(月) 05:58:27.57 ID:sMTBjD6w.net]
ちゃす
質問す

プログラミングのロジックを考える時に使える考え方ありますかね
入力と出力を考えるといいますが、関数の引数が入力、返り値が出力といいますか?

532 名前:デフォルトの名無しさん mailto:sage [2024/04/29(月) 07:27:54.81 ID:xgq67JZI.net]
考えることはうんこを食って食べ物を尻から出すようなことだが
重要なのはコンピューターにとってばうんこも食べ物も変わらないという事だな

533 名前:デフォルトの名無しさん mailto:sage [2024/04/29(月) 07:55:32.14 ID:Irrt06Ch.net]
そうやね
いかに物事を抽象化してシンプルにモデル化するか

534 名前:デフォルトの名無しさん [2024/04/29(月) 07:57:38.43 ID:sMTBjD6w.net]
複雑に考えすぎなんすかね
関数増えてくとわけが分からなくなります

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



536 名前:>2024/04/29(月) 12:40:37.42 ID:sMTBjD6w.net mailto: 材料→材料の処理→結果、というのがプログラムの基本なんすかね []
[ここ壊れてます]

537 名前:デフォルトの名無しさん [2024/04/29(月) 12:43:56.77 ID:1Ba7WF72.net]
何でもそうだけど真似というか模倣から始めるのはどうよ
ギターでもHIDEがカッコいいとか布袋みたいにとか真似するでしょ

デザインパターン本だとか有名なオープンソースのコード見てると何となく癖というか法則みたいなのが分かってくる

538 名前:デフォルトの名無しさん mailto:sage [2024/04/29(月) 15:01:05.04 ID:36J4bmfl.net]
アルフィーの高見沢さんの髪がまだ短めで黒かった頃、メイキングのムービーで作曲する姿が写っていたが、
少し書いては弾いて違うと書き直すのを繰り返す姿を見て、これってオブジェクト指向に通じるんじゃないかと思った。

539 名前:デフォルトの名無しさん mailto:sage [2024/04/29(月) 15:24:26.44 ID:3QF86HD9.net]
途中までスクリプトかと思った
短いときなんてあったのかぁ

540 名前:デフォルトの名無しさん mailto:sage [2024/04/29(月) 15:43:29.23 ID:yZBAGAQ6.net]
>>525
一度に一つのことしかしないように考えるかな
あと一般的なことは考えず今必要なことだけをやる仕様にする

541 名前:デフォルトの名無しさん mailto:sage [2024/04/29(月) 16:30:19.78 ID:7kmh2Muz.net]
>>525
>関数の引数が入力、返り値が出力といいますか?
話の文脈によるんだけど「関数の入出力」が引数と返り値だけを指してる場合もあれば
それ以外の外部状態からの入力や出力なんかを含む場合もある
プログラム設計時に関数の入出力を考える場合は
引数や返り値以外も考えないといけないので広い意味も頭に入れておいたほうがいい

>>529
>材料→材料の処理→結果、というのがプログラムの基本なんすかね
上に書いた広い意味で言うなら
指示と材料が入力で結果(成否等)と加工した材料が出力
これが基本

指示―> 処理 ―>処理結果 
材料―>    ―>加工した材料

542 名前:デフォルトの名無しさん [2024/04/30(火) 05:58:23.71 ID:7kO3MDXp.net]
ありがとう(*´ω`*)、、

543 名前:デフォルトの名無しさん [2024/04/30(火) 11:47:25.31 ID:7kO3MDXp.net]
比較について質問なのですが、数値ペア同士の比較というのはプログラミングでは出来ないのでしょうか?
例えばvector2なら、xとyの値を取り出してそれぞれ比較しますね

544 名前:デフォルトの名無しさん [2024/04/30(火) 11:58:01.28 ID:7kO3MDXp.net]
プログラミング得意な人は頭の中がどんなイメージになっているのだろう
すべて図解になっているんだろうか

545 名前:デフォルトの名無しさん mailto:sage [2024/04/30(火) 12:17:12.46 ID:e06sRc0C.net]
>>536
普通にできるでしょ
(0, 1) > (0, 2) => False
(1, 1) > (0, 2) => True

Tupleの場合は内部的にそれぞれの要素を取り出して比較されてるけどね



546 名前:デフォルトの名無しさん [2024/04/30(火) 17:47:36.57 ID:bXsIEdjD.net]
>>537
境界知能みたいな知能が低い人には無理だよ

547 名前:デフォルトの名無しさん mailto:sage [2024/04/30(火) 18:05:05.21 ID:l8IWanaC.net]
>>537
単に経験豊富なだけだよ
色々やればイメージができるようになる

548 名前:デフォルトの名無しさん [2024/04/30(火) 18:08:16.92 ID:7kO3MDXp.net]
>>538
>>540
どうもっす

549 名前:デフォルトの名無しさん mailto:sage [2024/04/30(火) 19:36:23.61 ID:yMZhKZIP.net]
経験を活かせるかどうかが能力なので
539にもアンカつけてあげて
まじで向いてない人いるから

550 名前:デフォルトの名無しさん mailto:sage [2024/05/01(水) 00:28:40.04 ID:+iRkaWFb.net]
>>537
プログラムの構造を考えるのは文章の構成を考えるのと同じ頭の使い方をする
文章の構成を考えるときに図でイメージしてる人もいればそうでない人もいるように
プログラミングに習熟した人でもプログラムを図でイメージしてるとは限らないしできるとも限らない

551 名前:デフォルトの名無しさん [2024/05/01(水) 01:16:14.81 ID:Zve8z/ER.net]
小学生でもバブルソートは書けるので、知能にデコボコがあっても、どの方向が劣っているのかによるのでは。

552 名前:デフォルトの名無しさん mailto:sage [2024/05/01(水) 10:19:05.69 ID:HGDms0B9.net]
小学生でもプログラミング得意なやつはいるけどバブルソートを書くというのはお手本を模写できたり辞書を引いて目的の項目を調べられたりする程度の話だからプログラミングが出来るかどうかの指標にはならないよ

553 名前:デフォルトの名無しさん [2024/05/01(水) 13:34:16.61 ID:OSMPRnYB.net]
実際のプログラムだとソートする関数は用意されてるから自ら実装する事は無い

ソートはあくまでもアルゴリズムを学ぶ上での教材的な感じ

554 名前:デフォルトの名無しさん mailto:sage [2024/05/01(水) 14:26:55.02 ID:G90j3Kau.net]
??アスペにもわかるように書いてほしい

555 名前:デフォルトの名無しさん mailto:sage [2024/05/03(金) 00:19:22.63 ID:In48C7dA.net]
ゲーム制作板で何年も倉庫番完成させられてない人じゃん
親切な人がいっぱい釣れたね



556 名前:デフォルトの名無しさん [2024/05/03(金) 01:30:55.10 ID:ZXRxoWBs.net]
C#スレにもいたあの馬鹿か?

557 名前:デフォルトの名無しさん mailto:sage [2024/05/04(土) 12:25:55.56 ID:+MvlSNsp.net]
あれ人じゃなくてチャットbotだからスルー推奨だよ。

558 名前:デフォルトの名無しさん [2024/05/12(日) 12:51:00.18 ID:Z6PeNQRU.net]
そういや、ぷよぷよかなにかのヤツどこ行った?
同一人物?

559 名前:デフォルトの名無しさん mailto:sage [2024/05/15(水) 16:15:32.43 ID:Ui7vW0sT.net]
pythonを使って、既存のMicrosoft officeのファイル(.docファイルとか)の中身を調べたり取り出したりする事ってできますか?

560 名前:デフォルトの名無しさん [2024/05/15(水) 16:58:28.85 ID:OtQbYBA6.net]
ああその通りだ

561 名前:552 mailto:sage [2024/05/15(水) 17:55:42.92 ID:Ui7vW0sT.net]
出来るみたいです

562 名前: [2024/05/15(水) 21:59:57.58 ID:QNLWEWL4.net]
>>551
脳みそコネコネ、コンパイル。

563 名前:デフォルトの名無しさん [2024/05/16(木) 20:50:07.99 ID:+TVk7IrH.net]
Pythonで処理した画像を連続してwebUIに送って動画にしたいんですけど、ローカルサーバーをスレッドで分けても全然動かないんです。
上手いやり方はあるんでしょうか?

564 名前:デフォルトの名無しさん mailto:sage [2024/05/16(木) 22:01:41.29 ID:s6fDlAb8.net]
まあPythonじゃ無理じゃないかと
君の知る似たようなサービスでPython使ってるの見たことあるかね

565 名前:デフォルトの名無しさん [2024/05/17(金) 09:13:18.34 ID:n7lyb5r2.net]
>>557
そうなの? 単にファイルを httpdにアップロードするのとちゃうの?



566 名前:デフォルトの名無しさん mailto:sage [2024/05/18(土) 02:42:21.17 ID:Y3svyv5q.net]
Image Magick, libvips などで、
連続画像を動画や、gif アニメに変換できないの?

567 名前:デフォルトの名無しさん mailto:sage [2024/05/18(土) 05:29:10.65 ID:+oV5woho.net]
静的にファイル変換じゃなく
リアルタイム配信したいんとちゃう

568 名前:デフォルトの名無しさん [2024/05/18(土) 15:28:18.14 ID:Nno4tBsF.net]
Pythonじゃ無理ってことはないけど、Javascriptで画像を動画のように表示する方法がわからないとPython側をどう実装したらいいかもわからないのでは

569 名前:デフォルトの名無しさん mailto:sage [2024/05/18(土) 15:48:07.52 ID:cxC1UrsB.net]
webUIってお絵かきAIのUIの事を言ってる気がする

570 名前:デフォルトの名無しさん [2024/05/19(日) 17:51:21.58 ID:MUvRAHvn.net]
JavaScriptが嫌でPythonに逃げたのに
Webやるなら結局JavaScriptから逃れられない

571 名前:デフォルトの名無しさん mailto:sage [2024/05/19(日) 18:18:51.96 ID:b9wC29CZ.net]
>>563
Webやらなきゃいいじゃん
覚えることが大杉て向かない人にはとことん向かない

572 名前:デフォルトの名無しさん [2024/05/19(日) 18:29:56.96 ID:R0BEkzb0.net]
>>563
こういう馬鹿な人っているよね
結局、何がどうなっているのかわからん人なのだろう

573 名前:デフォルトの名無しさん [2024/05/19(日) 18:52:17.68 ID:EZ0vB2tL.net]
>>563
たまたまホットな言語になっているのでpython腐るのはとうぶん先
気合でJavaScriptしてこい

574 名前:デフォルトの名無しさん mailto:sage [2024/05/19(日) 19:18:30.80 ID:1dVUvEdV.net]
javascriptの何が難しいのかわからん

575 名前: [2024/05/19(日) 20:04:35.82 ID:j/RUVR5T.net]
>>558
順番を制御する必要がある。



576 名前: [2024/05/19(日) 20:07:09.84 ID:j/RUVR5T.net]
Pythonは構文解析エンジンの作りが下手だったせいで、コンテナなどは変な構文で対処するはめになった。

作った本人は当時のパソコンの性能では難しかったと言い訳するだろうが。

577 名前:デフォルトの名無しさん mailto:sage [2024/05/19(日) 21:12:03.22 ID:b9wC29CZ.net]
>>567
Pythonは簡単に覚えられたけどJavaScriptはダメだった
何の特徴もないので頭に入らない

578 名前:デフォルトの名無しさん mailto:sage [2024/05/19(日) 21:25:11.71 ID:ThBHY2c/.net]
JavaScriptはブラウザ内で多数のイベントが非同期に発生しつつ並行して動く必要があるための仕様とランタイムを備えた言語だからね
そのような実用環境ではPythonだと色々と無理があるんよ
JavaScriptを習得したほうが良いでしょう

579 名前:デフォルトの名無しさん mailto:sage [2024/05/19(日) 21:43:45.99 ID:n4puDrtS.net]
生のJSじゃなくてもtypescriptとかもあるけど?

580 名前:デフォルトの名無しさん mailto:sage [2024/05/19(日) 21:51:27.11 ID:1dVUvEdV.net]
>>570
特徴がないとは?
Webフロントで100%使われてるんだが
つまり理解できていないだけだろ

581 名前:デフォルトの名無しさん mailto:sage [2024/05/19(日) 22:58:44.91 ID:dpzcJCd+.net]
>>571
> 非同期に発生
あれ、非同期だっけ?

582 名前:デフォルトの名無しさん mailto:sage [2024/05/19(日) 23:22:52.01 ID:FYT65XYX.net]
Webのイベントの非同期ってのは言語仕様とほとんど関係ないと思うがな

583 名前:デフォルトの名無しさん mailto:sage [2024/05/20(月) 00:04:59.52 ID:XCNT6iUc.net]
非同期・並行に動くのがJavaScriptの特徴だよ

584 名前:デフォルトの名無しさん mailto:sage [2024/05/20(月) 00:07:58.83 ID:XCNT6iUc.net]
JSは継続渡しによって記述コードは継続できるけど
制御は一旦ランタイムに移って別のコードの処理が並行して動く

585 名前:デフォルトの名無しさん mailto:sage [2024/05/20(月) 00:08:40.12 ID:XCNT6iUc.net]
そして再び非同期に元の継続コードに制御が戻ってくるんだよ



586 名前:デフォルトの名無しさん [2024/05/20(月) 04:36:21.10 ID:IVctLQWM.net]
JSの難しさというかゴチャゴチャは複数人で開発すると顕著化する

587 名前:デフォルトの名無しさん [2024/05/20(月) 04:37:36.57 ID:IVctLQWM.net]
>>576
違うぞ
勘違いしてる様だけど並行では無い

588 名前:デフォルトの名無しさん mailto:sage [2024/05/20(月) 04:57:24.87 ID:XCNT6iUc.net]
>>580
(workerを使わない昔からの)JavaScriptはシングルスレッドで並行(concurrent)に動作します
ちなみに(後に導入された)workerを用いるとマルチスレッドで並列(parallel)にも動作します

589 名前:デフォルトの名無しさん mailto:sage [2024/05/20(月) 07:48:45.56 ID:lmso/U+6.net]
async/await が導入されてからは並行処理と言えるかもしれんが python にも導入されてるから
JS の特徴というほどのものでもないな。

590 名前:デフォルトの名無しさん mailto:sage [2024/05/20(月) 08:56:05.71 ID:oBw42F9L.net]
PythonはOSがプラットフォームだけど
JSはブラウザとnodejsでだいぶ違うし
varとconst/let混ざったコードなんかに遭遇すると頭おかしくなる

591 名前:デフォルトの名無しさん mailto:sage [2024/05/20(月) 09:16:38.85 ID:Rnmyv+xl.net]
メインスレッドを止めても、worker側でイベント受け取れる?

592 名前:デフォルトの名無しさん mailto:sage [2024/05/26(日) 00:09:03.41 ID:J6Dn8duN.net]
誘導されてきました

digits1="0123456789"
print(digits1[2:4])

これで文字列"23"が返ってくるんだが"234"にならない理由ががわからん
インデックスが0から始まってるからインデックス2番目からインデックス4番目までの文字を表示するんじゃないの?

593 名前:デフォルトの名無しさん mailto:sage [2024/05/26(日) 00:45:27.61 ID:EuHdBjWc.net]
>>585
https://docs.python.org/ja/3/tutorial/introduction.html#lists
ここに載ってる
理解できなくてもいいからまずチュートリアルは一通り読んでほしい

594 名前:デフォルトの名無しさん [2024/05/26(日) 00:48:13.48 ID:jZlLPC0/.net]
>>585
2<=i<4だと考えるといいよ
そうした方がいい理屈は以下の通り
リストlをiで分けるとき、以下が成り立っていると見た目でスッキリして嬉しい
l[:i] + l[i:] == l
まあ思想の問題なんで上記のものがスッキリと感じるか感じないかは人による

595 名前:デフォルトの名無しさん mailto:sage [2024/05/26(日) 00:48:19.96 ID:EuHdBjWc.net]
すまん
アンカーまちがえてるけど同じページのすこし手前に書いてる



596 名前:デフォルトの名無しさん mailto:sage [2024/05/26(日) 05:11:49.24 ID:5Cxfl8yi.net]
Google colabでクロムドライバーをどこに置けばいいんですか?

597 名前:デフォルトの名無しさん mailto:sage [2024/05/27(月) 06:00:49.16 ID:qvFqCc+v.net]
漏れ独自のやり方で良ければ、

漏れは、C: 直下に、適当な名前のフォルダを作って、
そこに、chrome driver を置いている。
C:/BrowserDriver/chromedriver.exe

そして、ユーザー環境変数・path に、そのフォルダのパスを追加する。
C:\BrowserDriver

環境変数・path は、Powershell で以下で確認できる。
$env:Path.split( ";" )

598 名前:デフォルトの名無しさん mailto:sage [2024/05/27(月) 20:12:43.14 ID:Hlp/8xqP.net]
>>590
有難うございます、試してみます

599 名前:デフォルトの名無しさん mailto:sage [2024/05/29(水) 21:20:05.17 ID:SBPtCrlE.net]
ある程度自由にデザインできて作りやすいGUIのライブラリって何がありますか?CustomTKinter?
でもこれでもちょっとわかりにくいけど、我慢してコードの書き方を覚えるしかない?

600 名前:デフォルトの名無しさん mailto:sage [2024/05/29(水) 21:22:50.04 ID:SBPtCrlE.net]
あ、でもそんなに難しく無いですね
Custom TKinterくらいがちょうど良い
これでいきます

601 名前:デフォルトの名無しさん mailto:sage [2024/05/29(水) 23:25:41.17 ID:SBPtCrlE.net]
やっぱりPySimpeGUIにした
わかりやすいので

602 名前:デフォルトの名無しさん mailto:sage [2024/05/31(金) 08:16:19.69 ID:zAziLKIc.net]
>>586
読みましたわかんないです

603 名前:デフォルトの名無しさん [2024/05/31(金) 08:19:43.69 ID:5P0I5zKD.net]
abcde
という文字の一部を選択するときに
0a1b2c3d4e5
というように0から数える言語じゃなかったか?python3

604 名前:デフォルトの名無しさん [2024/05/31(金) 09:16:40.63 ID:Rfc8mm4q.net]
>>596
唐突になに?

605 名前:デフォルトの名無しさん [2024/05/31(金) 10:27:03.30 ID:9rLTVgTT.net]
とうぜん585の答えの理由だよ
いいかげんに判れよ
数え方が間違っているんだよ



606 名前:デフォルトの名無しさん mailto:sage [2024/05/31(金) 10:57:52.41 ID:TyV+wAs5.net]
>>585の話ならmylist[start: stop]のstopで指定した箇所が
スライスに含まれるのか含まれないかの話だから
0から数えるかどうかは関係ない

だから>>597の感想も頷ける

607 名前:デフォルトの名無しさん mailto:sage [2024/05/31(金) 11:17:11.06 ID:xqNBz4cX.net]
決めの話でもあるけど半開区間のが書くコードが素直になる

608 名前:デフォルトの名無しさん [2024/05/31(金) 12:39:47.52 ID:9rLTVgTT.net]
スタートオフセットと終了オフセットね
list[x]のxと異なる

609 名前:デフォルトの名無しさん mailto:sage [2024/05/31(金) 13:52:28.81 ID:ixAaAqDb.net]
そうそう、>>596の言うように、スライスで指定する値は各要素そのものの位置ではなくて、要素と要素の間の位置なんだよね。
0●1●2●3… (●は要素)

これが理解できると、マイナス指定で逆から取り出したりとかもすぐに分かるようになるかと。

610 名前:デフォルトの名無しさん mailto:sage [2024/05/31(金) 15:02:02.41 ID:z4TXzonv.net]
ぶっちゃけそれは違う

そういう説明じゃないと理解できない人向けの説明としては意味があると思うけどいつまでも引きずるものじゃない

611 名前:デフォルトの名無しさん mailto:sage [2024/05/31(金) 15:08:57.01 ID:MpCbGIxa.net]
べつに問題ないと思うがなあ。
グラフィックスで言う

612 名前:ピクセル座標に対するグリッド座標系の話と同形。 []
[ここ壊れてます]

613 名前:デフォルトの名無しさん mailto:sage [2024/05/31(金) 15:32:41.83 ID:xqNBz4cX.net]
ここで別の概念を導入しないと習得できないくらいじゃ先が思いやられるってだけで
問題の有無はこれからどこまで取り組むかによる

614 名前:デフォルトの名無しさん mailto:sage [2024/05/31(金) 16:00:35.87 ID:E++g7v66.net]
要素の数はわかりやすいよな
引き算するだけでいいし

615 名前:デフォルトの名無しさん mailto:sage [2024/06/01(土) 16:32:50.72 ID:2v+0cLbq.net]
デザインパターンでオブジェクト指向を理解し始めたら、オブジェクト指向が廃れてしまった(´・ω・`)



616 名前:デフォルトの名無しさん mailto:sage [2024/06/01(土) 17:32:13.74 ID:C+czcv7n.net]
GUI作成ツールって無いの?
グラフィックアプリみたいにウィジェットを配置したら、コードを書き出してくれるツール

617 名前:デフォルトの名無しさん mailto:sage [2024/06/01(土) 17:33:08.15 ID:wmmovTy+.net]
Qt

618 名前:デフォルトの名無しさん mailto:sage [2024/06/01(土) 19:46:57.51 ID:etHHxabq.net]
wx

619 名前:デフォルトの名無しさん mailto:sage [2024/06/01(土) 20:25:37.00 ID:Zt7v+i4d.net]
Qt Quickもぽとぺたできるけど人少なすぎてな…

620 名前:デフォルトの名無しさん mailto:sage [2024/06/03(月) 20:22:29.52 ID:MnZ0MIrt.net]
Anaconda3-2024.02-1-Windows-x86_64をインストールしたいのですが、
エラーが出て実行できません。OSはちょっと古くwindows7になります。

インストールしている最中、このようなエラーが発生します。
最初は『Failed to extract packages』のエラーです
略すと、パッケージの抽出に失敗しました。と言う内容です。

『無視』を押してインストールを進めると今度は、
Failed to link extracted packages to C:\Anaconda! というエラーが出ます。
抽出したパッケージを C:\Anaconda(インストール先フォルダ) にリンクできませんでした。

これも『無視』を押して進むと、Failed to initialize conda directoriesというエラーで
ディレクトリの初期化に失敗しました。というエラーです。
これも無視してもインストールできるのですが、
インストールフォルダを開いて実行しようとすると、
コンピュータにapi-ms-win-core-path-l1-1-0.dllがないため、
プログラムを開始できませんでした。
というエラーが出ました。

こういうエラーはだいたい、Microsoft Visual C++が入ってないことが原因ですが、
私のPCには既に、
Microsoft Visual C++ Redistributable 2013
Microsoft Visual C++ Redistributable 2015-2022はインストールされています。
しかし、このエラーが出ます。

どうすればいいでしょうか?

621 名前:デフォルトの名無しさん mailto:sage [2024/06/03(月) 21:50:52.22 ID:3hY3UrlC.net]
>>612
馬鹿は何で勝手にエラーを無視するの?
馬鹿だから?

622 名前:デフォルトの名無しさん mailto:sage [2024/06/03(月) 23:56:17.44 ID:zK4G03Sv.net]
>パッケージの抽出に失敗しました

エラーなのに、何でそこで処理を止めないの?

623 名前:デフォルトの名無しさん [2024/06/04(火) 01:31:12.37 ID:nKdfCONb.net]
>>614
そりゃ止めるべきですが、そこでインストールが終わってしまいます
その後どうするんでしょうか

624 名前:デフォルトの名無しさん mailto:sage [2024/06/04(火) 01:47:07.24 ID:gWxOd/CS.net]
エラーの原因を調べて対処する

or

「Failed to extract packages」みたいな原因も対処方法も分からない
クソみたいなエラーメッセージしか出せないソフトウェアは今すぐ捨てる

625 名前:デフォルトの名無しさん mailto:sage [2024/06/04(火) 03:02:29.50 ID:hII/eoCO.net]
>>615
原因はいくつかあるけど、これをクリアしてもお前みたいな奴は結局無理だよ



626 名前:デフォルトの名無しさん [2024/06/04(火) 03:21:34.42 ID:hR2Ko9Dv.net]
あ、人を轢いちゃった
でも時間に間に合わないからこのまま行こうっと
何か車の調子が変だな?がちゃがちゃ
あ、また轢いちゃった
まあいいや、このまま行かないと間に合わない
あっ、信号が赤だけど停まれないからえいっ
あー、ぶつけられた

すみません、時間に間に合わせるにはどうしたら良いですか?


こんな感じか?

627 名前:デフォルトの名無しさん [2024/06/04(火) 08:17:16.38 ID:f1zDzjkS.net]
きよし「二人寝てますよ」
やすし「轢いとるやないか!」

628 名前:デフォルトの名無しさん [2024/06/04(火) 11:44:28.70 ID:nKdfCONb.net]
>>612
こちらどうでしょうか?知っている人教えて下さい

629 名前:デフォルトの名無しさん mailto:sage [2024/06/04(火) 11:56:23.33 ID:C1T0aGVu.net]
>>620
>>616

630 名前:デフォルトの名無しさん [2024/06/04(火) 12:15:01.67 ID:f1zDzjkS.net]
>>620
類似事象があるようなので、「いいね」の付けられたレスの解法を試行するのはどうだろう。
https://community.anaconda.cloud/t/cant-install-failed-to-extract-packages-error/62687

631 名前:デフォルトの名無しさん mailto:sage [2024/06/04(火) 12:57:59.77 ID:v1hWPJDU.net]
>>612
Win7に対応してるのは2019-10まで
https://docs.anaconda.com/free/anaconda/install/old-os/

pythonだけでいいならpython.org公式の3.8.10まで

632 名前:デフォルトの名無しさん [2024/06/04(火) 16:49:21.73 ID:tR+BuZi1.net]
ここは超初心者用ではあるけど、境界知能者用のスレではないよ

633 名前:デフォルトの名無しさん [2024/06/04(火) 23:07:28.09 ID:k5yNkVnV.net]
プログラマー板がまともだったことはない

634 名前:デフォルトの名無しさん [2024/06/05(水) 23:47:06.04 ID:ESv2AI1d.net]
>>622-623
ありがとうございます
>>624
>>973
役に立たん荒らしのゴミが相手にされなかったから発狂してて草w死んどけよカスw

635 名前:デフォルトの名無しさん mailto:sage [2024/06/05(水) 23:48:44.31 ID:SEG9AGVJ.net]
pkg install python した方がよっぽど簡単なんじゃねw



636 名前:デフォルトの名無しさん mailto:sage [2024/06/06(木) 10:38:37.99 ID:1RUNBtFi.net]
anaconda、バージョン違いの小さな差異は本体だけでpyでバージョンごとに
個別管理できるようになったし有償化した(割に機能が見合っていない)ので
使い続ける意味あんまなくなったな。
ウチの会社でももう使わないように通達されてる。

637 名前:デフォルトの名無しさん mailto:sage [2024/06/06(木) 10:49:12.08 ID:qz5pj6nB.net]
またanacondaの話になるならanaconda専用スレ立てれば良い

638 名前:デフォルトの名無しさん mailto:sage [2024/06/06(木) 17:55:27.15 ID:+f7ZeVqk.net]
pipxが安全なのはわかるが使いにくいな
pipxは見ずにpoetryだけ使えばいいのか

639 名前:デフォルトの名無しさん mailto:sage [2024/06/07(金) 01:52:33.37 ID:TKo/YskT.net]
>>612
こいつの本性が笑える

Pythonのお勉強 Part72
https://mevius.5ch.net/test/read.cgi/tech/1703659345/970-

ID:ESv2AI1d0

640 名前:デフォルトの名無しさん mailto:sage [2024/06/07(金) 06:04:01.45 ID:+I6YMw89.net]
あれだけ煽っておいてよく同じ質問を同じ板でしたなw

641 名前:デフォルトの名無しさん mailto:sage [2024/06/07(金) 12:09:55.41 ID:dEUVRqD7.net]
pythonのパッケージマネージャーはいくつ出れば気が済むのか(´・ω・`)

642 名前:デフォルトの名無しさん [2024/06/07(金) 12:34:41.54 ID:q6BY+Kco.net]
幾つのパッケージマネージャが出れば、君は Pythonをまともな言語と呼ぶのか。
友よ、その答は風に吹かれている。

643 名前:デフォルトの名無しさん mailto:sage [2024/06/07(金) 12:49:10.90 ID:XsPkgKWU.net]
PythonでのYAMLの処理で教えてください

groupA:
 image: sampleA0.jpg
 section:
 - section1:
  aaa: 0
  bbb: 0
 - section2:
  bbb: 2
  aaa: 1
  image: sampleA2.jpg
groupB:
 section:
 - section1:
  aaa: 123
 - section2:
  image: sampleB1.jpg

こんな感じのYAMLファイルがありまして、「image」キーを持つものの
最上位からの要素を得たいと思ってます

出力のイメージとしては、こんな感じです
groupA: image: sampleA0.jpg
groupA: section: - section1: image: sampleA2.jpg
groupB: section: - section2: image: sampleB2.jpg

他にも、aaaやbbbのキーでも同様なことをしたいです

なにかよい対応方法はありますか

644 名前:デフォルトの名無しさん [2024/06/07(金) 14:49:41.59 ID:SXd2mcAV.net]
groupA: image: sampleA0.jpg
groupA: section: - section2: image: sampleA2.jpg
groupB: section: - section2: image: sampleB2.jpg
にならない理由は?

645 名前:デフォルトの名無しさん mailto:sage [2024/06/07(金) 15:25:32.07 ID:U/LNotLd.net]
いっぱいあるXPath相当がつかえるモジュールでもつかえば?
YAML用じゃなくてもDict向けのでもいい



646 名前:デフォルトの名無しさん mailto:sage [2024/06/07(金) 16:31:15.75 ID:Z4LBLF5E.net]
Python はvenv、Ruby はrbenv、Node.js はnvm など、
各言語で異なるバージョンマネージャーを使う香具師は素人。
すべて使い方が異なるだろ

プロは少なくとも数言語を使うから、
多言語バージョンマネージャーで使い方を統一する

Linux のローカル開発なら、Docker を使うのが簡単だが、
日本人が作った、多言語バージョンマネージャーのanyenv で、rbenv, nodenv も使える。
pyenv も同様。
asdf でも、多言語の好みのバージョンを入れられる

647 名前:デフォルトの名無しさん mailto:sage [2024/06/07(金) 17:35:37.77 ID:wW+zlW8A.net]
>>635
pyyamlとboltonsのresearchを使う
後者は再帰的な処理を自作してもいい(dictとlistで場合分け)

648 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 00:52:57.64 ID:TvmcjMCs.net]
>>633
pythonの破綻が見えてきてると俺は思う
perlもcpanが腐って終わった

649 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 00:54:05.76 ID:TvmcjMCs.net]
dockerは無駄多すぎだろ
さすがに

650 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 12:49:56.73 ID:JJO/Gn8n.net]
dockerがベスト
vscodeのdevcontainerこそ人類がたどり着いた最高地点

651 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 14:04:39.39 ID:pZ+rs27B.net]
俺もvscode devcontainerの組み合わせが良い気がする(´・ω・`)

652 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 14:22:11.33 ID:3whGHUAW.net]
みんなそんなdockerつかうのね

653 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 14:41:09.17 ID:E87q1Rk2.net]
デプロイまで考えるとコンテナにしとくのがシンプル

654 名前:デフォルトの名無しさん [2024/06/08(土) 14:46:38.50 ID:dTYjDoY8.net]
逆にDocker使ってない人見ると何で?って思うぐらいだよね

655 名前:デフォルトの名無しさん [2024/06/08(土) 15:29:59.02 ID:Dxs/ulLi.net]
自分でコード書いてる時間が一番幸せなんじゃ



656 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 17:55:04.64 ID:Hlb2wDxo.net]
>>644
といいかまともな開発してたらもう使うわないと環境が破綻する

657 名前:デフォルトの名無しさん [2024/06/08(土) 21:01:34.24 ID:D2c2x+th.net]
そんなもんデプロイ先の環境によるだろ

658 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 23:58:06.46 ID:gE4A0CAK.net]
くだ質ですまんが教えてください

Win11 + Python3.12.8 + vscode 環境で、
3 * 0.3 を計算させると8.99999...になってしまいます
(期待している計算結果は0.9)

是正させるためには
round(3 * 0.3 *10) / 10
をすればいいのはわかってるんですが、出来るだけコードを簡略化させたいのと、そもそも何故こんな結果になってしまうのかを出来れば知りたい、です

659 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 23:59:19.96 ID:gE4A0CAK.net]
ごめん計算結果のとこは0.899999...の間違いです

660 名前:デフォルトの名無しさん [2024/06/09(日) 00:42:23.58 ID:DuD3W8cN.net]
ttps://docs.python.org/ja/3/tutorial/floatingpoint.html

661 名前:デフォルトの名無しさん [2024/06/09(日) 01:03:55.23 ID:KXbUABQj.net]
デデキントの切断という話でなくて単純に整数n,mによる
n/mをサポートする型がデフォルトではないから
そういう有理数正確に扱える↓を使え
fractions -> Rational numbers

662 名前:デフォルトの名無しさん [2024/06/09(日) 01:19:56.30 ID:KXbUABQj.net]
不動点少数は高速でメモリ消費が少ないのでpythonのデフォルト型には似合ってるよ
でももし、こうした計算が頻回あるいは重要に行なわれるなら
デフォルトで有理数をサポートした言語 common_lisp,R,wolfram等が良いだろう
また無理数も正確に扱いたいならwolframを薦めとく。これはsin(2pi)=0を返す珍しい言語だ

663 名前:デフォルトの名無しさん mailto:sage [2024/06/09(日) 06:20:23.00 ID:zJwQQmGc.net]
サンクス
言語仕様なら仕方ないか
仮想通貨の自動売買用にpythonを始めたんだけど、今のところ他の言語に切り替える考えはないっす
あと調べたらdecimalってモジュールもあって、これを使ってもスッキリ書けそうね

664 名前:デフォルトの名無しさん mailto:sage [2024/06/09(日) 09:38:02.01 ID:XLDZv0sl.net]
浮動小数点数は言語仕様というと違和感があるな
どの言語でもほぼ同じ問題出るだろうし

665 名前:デフォルトの名無しさん [2024/06/09(日) 09:39:22.17 ID:XLDZv0sl.net]
>是正させるためには
>round(3 * 0.3 *10) / 10
>をすればいいのはわかってるんですが

こんなことしたらダメでしょ



666 名前:デフォルトの名無しさん mailto:sage [2024/06/09(日) 10:37:28.45 ID:0/tKVw6D.net]
Decimalは使いづらいんだよね
Decimal('3') * Decimal('0.3')とかいちいちやってられん

667 名前:デフォルトの名無しさん mailto:sage [2024/06/09(日) 11:41:31.33 ID:lrgfA1Gl.net]
継承と合成どちらを使うべきかと基準がよくわからんなぁ(´・ω・`)

668 名前:デフォルトの名無しさん mailto:sage [2024/06/09(日) 17:04:58.68 ID:Fa41Tv3c.net]
>>658
>>> 3 * Decimal('0.3')
Decimal('0.9')
演算子オーバーロードしてるから1箇所でいい
>>> Decimal(3) * '0.3'
TypeError: can't multiply sequence by non-int of type 'decimal.Decimal'
でもこう書けないんだよな
>>> Decimal(3) * 3 / 10
Decimal('0.9')

669 名前:デフォルトの名無しさん [2024/06/10(月) 15:55:09.93 ID:YXHAsqQy.net]
>>> Decimal(3) * Decimal(3/10)
Decimal('0.8999999999999999666933092612')
だっさ

670 名前:デフォルトの名無しさん [2024/06/10(月) 16:09:43.37 ID:17x/k5Bx.net]
まじか decimal だらしねーな
お手本
[1]> (* 3 (/ 3 10))
9/10

671 名前:デフォルトの名無しさん mailto:sage [2024/06/10(月) 17:41:53.13 ID:8JGo2SkV.net]
>>> Decimal(3/10)
Decimal('0.299999999999999988897769753748434595763683319091796875')
>>> Decimal(3/10).quantize(Decimal('0.0'))
Decimal('0.3')
エスパーしない方針だから

672 名前:デフォルトの名無しさん mailto:sage [2024/06/10(月) 21:30:34.55 ID:RgnmhcQ5.net]
>>661
クソだっさwww

673 名前:デフォルトの名無しさん mailto:sage [2024/06/11(火) 10:00:28.46 ID:ufFRRQKE.net]
↓俺の考えた最強のスマートな書式を語れ

674 名前:デフォルトの名無しさん mailto:sage [2024/06/11(火) 11:06:34.00 ID:GrH0S5VC.net]
>>> Decimal('3.0')
だっさpgr

675 名前:デフォルトの名無しさん [2024/06/11(火) 11:19:18.72 ID:GtLbEh/G.net]
perlの2番煎じにはなるが import XXX で オーバーライドしてくれればいいね



676 名前:デフォルトの名無しさん mailto:sage [2024/06/11(火) 20:03:54.96 ID:NWbfM0Iu.net]
C++プログラマーだが、
エディタは何使えばええの?

Visual Studioは一応動くが…

677 名前:デフォルトの名無しさん mailto:sage [2024/06/11(火) 20:27:59.97 ID:OZZ7Wa3f.net]
汎用でつかえるのはPyCharmかVSCodeかな
用途とマッチするならJupyter/Colabもいける

678 名前:668 mailto:sage [2024/06/12(水) 08:58:44.17 ID:j9iMATnj.net]
>>669
一番高機能なのはVS Codeかね?
Colabが本格開発に無理なので、探してたところ。

679 名前:デフォルトの名無しさん mailto:sage [2024/06/13(木) 07:44:44.26 ID:W4hE6ovf.net]
環境を整え無くてもいいPyCharmが楽だな

680 名前:デフォルトの名無しさん mailto:sage [2024/06/13(木) 13:05:54.68 ID:vNUeXKFR.net]
会社の糞PCだとPyCharmが重いんだわ

681 名前:デフォルトの名無しさん mailto:sage [2024/06/13(木) 13:21:14.57 ID:Uc7cK+cC.net]
パイチャ!

682 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 12:06:22.09 ID:2+GH8Qi6.net]
モジュールAのMainクラスがモジュールBに書いたSubクラスのインスタンスを生成する
型ヒントのためにAはBの、BはAの参照するから相互参照になっちゃうんだけど
typing typechecking使えば回避できるとして

これって根本的にどう作って相互参照回避すべきなんだ?

683 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 12:17:35.59 ID:a7DQgjMw.net]
シチュエーションが謎で理解できてないけど
インターフェースとして上位クラスをつくる

684 名前:デフォルトの名無しさん [2024/06/17(月) 12:44:35.82 ID:laKFnUpc.net]
循環しちゃうのは速度落ちてメモリ消費してしまうけど記憶しといたのと照し合わせる手法がある

685 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 12:50:19.30 ID:Me30jdtI.net]
>>674
その状況だとBはAをインポートする必要いやろ

よくあるのはtyping用のスタブモジュールを作る方法



686 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 14:24:03.32 ID:KAevd3qc.net]
>>677
A.py App()
B.py Win()

winがコンストラクタでsuper().__init__(app.root)するとき
App渡せないとroot見えないって言われてしまう

687 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 15:22:40.07 ID:Me30jdtI.net]
>>678
その例だとWinが依存すべきなのはAppそのものじゃなく
Appが継承してる型だったり実装してるインターフェースの型
tkを例にすればWinが依存するのはAppそのものじゃなくtk.Tkやtk.Widget

AとBの相互依存から共通で依存する抽象度の高いCを切り出すことで
AはBとCに依存、BはCに依存、CはAにもBにも依存しない形になる

688 名前:デフォルトの名無しさん mailto:sage [2024/06/18(火) 23:47:26.99 ID:l8Y5coIJ.net]
>>679
仕様上サブがメインのいくつかに依存するから丸ごと渡してたけど
rootと、必要な位存箇所だけ渡すようにすればいいのね

689 名前:デフォルトの名無しさん [2024/06/19(水) 07:39:14.75 ID:Ml7xOhwE.net]
__init__.py 描けば良いのに

690 名前:デフォルトの名無しさん [2024/06/19(水) 08:41:26.42 ID:oNcSZ2Oe.net]
C言語系は数年やっていてpythonのお勉強してるので質問させてくれ

@propertyを使用してgetter/setterを作れるのが分かりました
このプロパティをprotectedにするにはどうしたらいいですか?

691 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 09:10:58.03 ID:Of90IDaN.net]
>>682
この辺の話かな?
ttps://note.com/yucco72/n/nfc5ba5321567

692 名前:デフォルトの名無しさん [2024/06/19(水) 10:07:39.70 ID:Ml7xOhwE.net]
>>683
そいつ馬鹿やな
痒い所に手が届いてる好例なのに

693 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 10:48:00.65 ID:EzJYrWWw.net]
>>680
サブがメインに依存するという仕様がよろしくないんだよ
依存性の方向を一方通行にするというのがモジュール設計の大原則

694 名前:デフォルトの名無しさん [2024/06/19(水) 11:37:31.50 ID:ANMSl1mg.net]
>>685
そうはいってもどんな場合でも回避できるわけじゃないでしょ
うまく切り出せば回避できるかもしれないけど、見通しが悪く不自然になる場合があると思う
今自分が困ってるのは先生と生徒の関係で、先生は生徒を何人か選ぶのだけど、先生の事情もあるし、生徒のスケジュールもあるしで、
先生が生徒を選んだ後に、選ばれた生徒に先生のスケジュールはこなせるか?を確認してもらってるんだけど
かなり先生と生徒が密結合なのが避けられなくてインタフェースに切り出すと見通しが悪くなりそうなんだよね
こういう場合はどうすればいいのかな

695 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 19:41:52.46 ID:E1qEKZbV.net]
>>685
元の質問者だけど
今回はメインGUIとサブGUIでそれぞれ独立させて、メインGUIからサブGUIを見るだけ に作り直しました

ところで__init__.pyを書くとはなんですか?



696 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 22:24:53.92 ID:jr8KvPbD.net]
ctypesで構造体宣言するときに、以下のようにc側が不完全型の配列定義であった場合は、どのように宣言すればよいでしょうか。

typedef struct aa
{
uint32 eListType;
uint16 wRes;
uint16 wOdList[];
}


class aa(Structure)

697 名前::
_fields_ = [("eListType",c_uint32),
("wRes",c_uint16),
("wOdList",???)
]
[]
[ここ壊れてます]

698 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 22:42:47.22 ID:0e7E5JVP.net]
>>686
>先生が生徒を選んだ後に、選ばれた生徒に先生のスケジュールはこなせるか?を確認してもらってる
これもapp.rootのやつと同じで生徒が先生に直接依存する必要なくない?
先生、生徒、コース/クラス、受講、のよくあるモデル
参照じゃなくidで受け渡すことも考えるといいよ

699 名前:デフォルトの名無しさん [2024/06/20(木) 08:09:05.13 ID:hChVJ2JT.net]
>>687
それってpipでインストールできる?

700 名前:デフォルトの名無しさん [2024/06/20(木) 17:09:09.89 ID:F8Q2DGBi.net]
>>688
C の方が malloc(sizeof(struct aa) + N) みたいにやってるだろうから
とりあえず N の最大値くらい確保

701 名前:デフォルトの名無しさん [2024/06/20(木) 17:55:30.81 ID:ZSpymqjs.net]
>>689
直接依存する必要がないので、idを持っておけばよいということ?
確かにidから引けるdictを持っておけばよいのはそうだけど、実質的にはそれは依存関係にあって、プログラミング言語での表現の制約を回避する策にすぎないような気がするのだけど勘違い?

702 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 18:12:29.06 ID:pudWG0gF.net]
>>688
("wOdList", POINTER(c_uint16))

a = aa()
a.wOdList = (c_uint16 * size)()

wResがwOdListのsizeだったりするのかな?

703 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 23:47:51.33 ID:F6VlqWlP.net]
>>692
参照とidはカップリングの度合いの違い
直接依存する必要がないからという理由で書いたわけではないよ

片方がidだけに依存する形にすれば相互依存を解消できる
AとBの相互依存からAのidをC切り出して
AはBとCに依存、BはCに依存、CはAにもBにも依存しない形にできる

ただこういうのはプログラミング上の小手先のテクニックなのは確か
>>686の話はもっとドメインレベルでの本質的な依存関係を先に突き詰めたほうがいいと思う

704 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 10:29:55.02 ID:M8EEKVG+.net]
>>693
from ctypes import *
class aa(Structure):
_fields_ = [('a', c_uint32), ('b', POINTER(c_uint16))]

a = aa()
a.a # 0
a.b # <__main__.LP_c_ushort object at 0x000002033996A340>
a.__sizeof__() # 104
sizeof(a) # 16
a.b = (c_uint16 * 4)(9,8,7,6)
a.b # <__main__.LP_c_ushort object at 0x000002033996AAC0>
a.__sizeof__() # 104
sizeof(a) # 16

だめやん

705 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 13:07:20.00 ID:tjV7APzm.net]
>>695
そういうもんやで
sizeofの結果も自動的に変わると思ってた?



706 名前:デフォルトの名無しさん [2024/06/21(金) 15:09:56.96 ID:M8EEKVG+.net]
そういう問題じゃなくて
常にPOINTER型の容量分しか無いのは可笑しい

707 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 15:17:35.67 ID:M8EEKVG+.net]
少なくとも >>688 の質問に対して正しい答えは

from ctypes import *

class aa(Structure):
_fields_ = [('a', c_uint32), ('b', POINTER(c_uint16))]

a = aa()
a.b = (c_uint16 * 4)() # これは間違い
sizeof(a) # 16

class bb(Structure):
_fields_ = [('a', c_uint32), ('b', (c_uint16 * 4))]

b = bb()
sizeof(b) # 12

class cc(Structure):
_fields_ = [('a', c_uint32), ('b', (c_uint16 * 8))]

c = cc()
sizeof(c) # 20

708 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 15:45:50.01 ID:K+jIH7ye.net]
>>697
そういう問題が何を指すのか分からんが__sizeof__もctypes.sizeofもそういう仕様なんだって
Cのsizeofも同じやで

>>698
固定長にしろや!ってこと?
まーそれはそれで一つの選択肢だけど質問の答えにはなっとらんわな

709 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 16:03:41.50 ID:K+jIH7ye.net]
単に同じというと誤解を生むかもしれないから言い直しておくと
可変長部分のサイズがsizeofに反映されず自分で計算して別途管理しないといけないのはCも同じ
ということ

710 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 16:04:51.86 ID:pyvrMoIs.net]
pythonでandroidとiOSのアプリ作ってる人いる?
kotlinとswift覚えればいいんだけど、手間がかかるので

711 名前:688 mailto:sage [2024/06/21(金) 19:26:17.13 ID:HIobLuWQ.net]
みなさんありがとうございます
結局固定長で適当に宣言しとけば良いってことですかね
確かにc側でmalloc使ってそうな気がします

712 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 21:53:29.93 ID:xFZSSSbA.net]
ちゃんと配列をやるならbuffer protocolにしたら

713 名前:デフォルトの名無しさん mailto:sage [2024/06/22(土) 03:01:56.40 ID:UT0yRehg.net]
変数に何入ってんのかわかんなくない?
$%@使い分けるperl最強だわ

714 名前:デフォルトの名無しさん mailto:sage [2024/06/22(土) 03:20:24.58 ID:ITxAndmC.net]
時代はタイプアノテーションなんですよ!(´・ω・`)

715 名前:デフォルトの名無しさん [2024/06/22(土) 09:29:12.03 ID:mcK0MSE8.net]
タイプアノテーションで思いだしたが、結局型チェック実装された?
それともそこまで効力は無い?



716 名前:デフォルトの名無しさん [2024/06/22(土) 09:38:48.07 ID:R3uDiOs/.net]
>>704
#&*も忘れてるだろ

717 名前:デフォルトの名無しさん [2024/06/22(土) 11:44:35.80 ID:tVWK2T1P.net]
>>706
Pythonの型チェックは外部ツールに任せるというのがポリシーなので標準実装されることはない
型アノテーションは厳密なチェックをするというよりは文字通り注釈としての役割が主であり、
VSCodeやPyCharmを通じて人間にヒントを与えるという点においてはそれなりに効力はある

718 名前:デフォルトの名無しさん mailto:sage [2024/06/22(土) 13:20:16.98 ID:JlqSUEN6.net]
>>708
vscodeでさ
a.py
__init__
self.b = b.B(subclassX | subclassY)

b.py
__init__
self.subclass = subclass

こうしたとき、b.pyに動的にサブクラス型情報送りたいんだけどどうすればいい?
a.py書いたあとにb.py触りに行ったら、self.subclass以下のツールチップがXかYのものになってほしいんだけど

719 名前:デフォルトの名無しさん mailto:sage [2024/06/22(土) 13:39:16.54 ID:o/eWDsQ7.net]
>>688 への回答として >>693 は全く不適切
判っててわざと間違ってるんだろうが全く別物
初心者に嘘を教えるのは良くない
https://ideone.com/YUADDB

#include <stdio.h>
#include <stdlib.h>
int x;
struct A {
int a;
int b[];
};
struct B {
int a;
int *b;
};
int main(void) {
printf("%zu\n", sizeof(x));
printf("%zu\n", sizeof(struct A));
printf("%zu\n", sizeof(struct B));
struct B b = {0};
b.b = (int *)malloc(4 * sizeof(int));
free(b.b);
/*
struct A a = {0};
a.b = (int *)malloc(4 * sizeof(int)); // compile error
free(a.b); // don't free (may be cause to runtime error)
*/
return 0;
}

720 名前:デフォルトの名無しさん mailto:sage [2024/06/22(土) 16:27:25.33 ID:zTNlWcoj.net]
>>706
最新のpythonでほぼ完全なGenerics表記が実装された
これにMSの静的型チェッカーPyrightを使えば動的言語では初めてまともな型システムが実装されたことになる

721 名前:デフォルトの名無しさん mailto:sage [2024/06/22(土) 16:39:32.42 ID:HiCoQzk6.net]
TypeScriptより優れてるってこと?そうかなあ

722 名前:デフォルトの名無しさん mailto:sage [2024/06/22(土) 16:51:56.48 ID:UT0yRehg.net]
>>705
そうなんだ、、
勉強してくる

723 名前:デフォルトの名無しさん mailto:sage [2024/06/22(土) 18:07:00.66 ID:n3FOHUyg.net]
>>710
flexible array memberの基本的な使い方も知らないのに
無理してレスしなくてもよくない?

C側でメモリ確保したいならこう書くんだよ
struct A *a = malloc(sizeof(struct A) + size * sizeof(int));

>>693のa.wOdList = (c_uint16 * size)()はPython側でメモリ確保する場合の話だよ
CとPythonでやり取りする時はflexible array memberのsizeも当然受け渡しする必要があるよ

こんなんで大丈夫かな?

724 名前:デフォルトの名無しさん mailto:sage [2024/06/22(土) 21:23:10.50 ID:+hHL9oAL.net]
# ダイアログを表示する
import TkEasyGUI as eg

layout = [[eg.Input(width=9, key="pt"), eg.Text("pt", width=6, height=2), eg.Button("コピー", key="pt_copy")],
[eg.Input(width=9, key="kyu"), eg.Text("級(歯)", width=6, height=2), eg.Button("コピー", key="kyu_copy")],
[eg.Input(width=9, key="mm"), eg.Text("mm", width=6, height=2), eg.Button("コピー", key="mm_copy")]]

window = eg.Window("pt-Q-mm", layout, font=(None,14), size=(250,150))

def execute():
in_pt = values["pt"]
window["kyu"].update(in_pt)
window["mm"].update(in_pt)

while True:
event, values = window.read()
if event == "pt":
execute()
if event == "kyu":
execute()
if event == "mm":
execute()
window.close()


key="pt"の入力欄に文字が入力されると、リアルタイムに、
key="kyu"とkey="mm"の入力欄にkey="pt"と同じ文字を表示したいのですが、
def execute():をどう修正すれば良いでしょうか?

今のままだと、key="pt"の入力欄に文字を入力しても、
key="kyu"とkey="mm"の入力欄に何も表示されません…

725 名前:715 mailto:sage [2024/06/22(土) 21:53:43.34 ID:+hHL9oAL.net]
JavaScriptのOnChangeみたいなのをやりたかったのですが、止めました
ChatGPTに教えてもらったコードでも、うまくリアルタイム表示出来なかったので…
「実行」ボタンを押したら、表示されるようにします
ありがとうございました



726 名前:デフォルトの名無しさん [2024/06/23(日) 00:28:02.79 ID:2xccr50A.net]
>>714
>C側でメモリ確保したいならこう書く
>struct A *a = malloc(sizeof(struct A) + size * sizeof(int));
もちろん知ってる

>a.wOdList = (c_uint16 * size)()はPython側でメモリ確保する場合
どこが等価なの

727 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 12:15:44.92 ID:6BLTL9tJ.net]
>>717
>どこが等価なの
誰も等価だなんて話はしとらんのやで

FAMを含む構造体が使われてるCのAPIを
FAMを直接サポートしてないctypesを使ってPythonから利用する話をしとるんやで

構造体のメモリをCで確保/開放する場合もあれば
Pythonで確保/開放する場合もあるんやで
(一旦コピーする場合はそれぞれでやるのもありえるんやで)

FAMの有無も違う上に
メモリ管理の方法もルールも根本的に違うCとPythonで
等価になるわけないんやで

728 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 12:29:27.23 ID:NuUT7kNv.net]
>688
>ctypesで構造体宣言するときに、
>以下のようにc側が不完全型の配列定義であった場合は、
>どのように宣言すればよいでしょうか。

729 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 12:42:53.65 ID:NuUT7kNv.net]
chatGPT の回答を改変した様な解答やね
伝言ゲームでもやってんのかな

730 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 19:40:41.83 ID:GsZtttEh.net]
終了までお早めに
https://i.imgur.com/f7tN1NE.jpg

731 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 20:12:48.30 ID:nLTHI867.net]
>>721
もう既にやっとるよ

732 名前:デフォルトの名無しさん mailto:sage [2024/06/23(日) 20:26:42.71 ID:f4WzOl4U.net]
>>721
グロ

733 名前:デフォルトの名無しさん [2024/06/24(月) 00:41:26.66 ID:sso3G8sO.net]
Pythonの変数、オブジェクトは最初に設定した値でデータ型が決まるから、結局、変数の初期化のような古臭いコーティングルールがないといけない。

データ型がわからなくなったら、データ型を調べるという行き当たりばったりの言語仕様

734 名前:デフォルトの名無しさん [2024/06/24(月) 07:13:54.02 ID:lLj5yZl4.net]
>>724
> Pythonの変数、オブジェクトは最初に設定した値でデータ型が決まるから、

最初ってどういう意味だ。

735 名前:デフォルトの名無しさん mailto:sage [2024/06/24(月) 08:57:31.37 ID:+wQGxx+4.net]
>>721
気軽に稼げそうでいいね



736 名前:デフォルトの名無しさん mailto:sage [2024/06/24(月) 09:38:30.63 ID:ALkJ+vo8.net]
メソッドの引数にdictを渡してアンパックする場合しない場合の使い分けってどういう基準なんやろ(´・ω・`)

737 名前:デフォルトの名無しさん mailto:sage [2024/06/24(月) 10:11:03.74 ID:mBNYuZ1y.net]
>>724
Pythonにおける変数、オブジェクト、値、データ型の認識が
根本的に間違ってるのでチュートリアルからやり直しましょう

738 名前:デフォルトの名無しさん mailto:sage [2024/06/24(月) 11:25:58.61 ID:ldoAoKVT.net]
変数は任意のオブジェクトをアサインできるといっても
実際には複雑化するから最初の型から変えないよね
そこを人間が意識する必要があるってことかな
typingにつながる話

739 名前:デフォルトの名無しさん mailto:sage [2024/06/24(月) 12:01:57.24 ID:QPNUuP4k.net]
動的言語を使えない人のメンタルモデルってこういう感じなんだな

740 名前:デフォルトの名無しさん mailto:sage [2024/06/24(月) 12:02:51.99 ID:uJ7CYiLU.net]
pyinstallerでexe(app)化してたんだけど、長い日本語ファイル名だと失敗するね
pt.pyにしたら成功した

741 名前:デフォルトの名無しさん mailto:sage [2024/06/24(月) 12:25:05.97 ID:/T/eMsO3.net]
>>730
Pythonが動的型なのは単にその方が処理系の実装が簡単だからで、動的型である事自体にメリットなんてないよ
スクリプトの動的なロードだとかNotebookでの試行錯誤云々というのも結局はそういう状況で静的型付けを実装するのが難しいからに過ぎない
静的型では常に型が一つに決まってなきゃいけないというのは誤解で、例えば「DataFrameに格納されうる任意の型」の型を持つ変数を使うんだよ

742 名前:デフォルトの名無しさん mailto:sage [2024/06/24(月) 12:49:15.81 ID:JonISmvT.net]
>>724-725
あえて言えばpythonの変数の型は全てPyObject型だよ

743 名前:デフォルトの名無しさん mailto:sage [2024/06/24(月) 16:19:00.38 ID:Kheo9t7V.net]
>>733
それは実装に使ってるC言語の型システム上での話であって
Pythonの型システム上の話ではないよね

744 名前:デフォルトの名無しさん mailto:sage [2024/06/24(月) 19:26:23.98 ID:aCWMRkK6.net]
未だにどれかの型を返す作りが好きになれない

745 名前:デフォルトの名無しさん [2024/06/25(火) 04:15:11.46 ID:dFDrSth2.net]
>>733
それは最初は性能の低いパソコン用だったせいで、その名前の変数が始めて出てくるとき、その名前の変数に値が設定されるときに決める構文解釈だっただけ

Pythonは作者が構文解析エンジンを作り込むのが面倒だと思っていたせいで、仕様の追加状態も構文解析エンジンをちょっとだけしか変更していない。

そんな行き当たりばったりだったためにヘンテコな仕様になっている。

C言語、BASIC、VB,Perl、シェルスクリプト、Ada言語等の影響を受けているが、手抜きのプログラミング言語のままリリースしてしまった。



746 名前:デフォルトの名無しさん [2024/06/25(火) 04:20:51.69 ID:dFDrSth2.net]
関数の引数がどんな型でも参照渡しとか、アセンブラのサブルーチンよりもひどい設計なんだよなあ

747 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 04:37:03.65 ID:mddxyJup.net]
>>724
だからそれが嫌ならpyright使いなよ

748 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 08:26:43.24 ID:9x+jYxZG.net]
むしろpythonはすべて値渡しでしょ
内部的に変数の値が参照になっているだけで

749 名前:デフォルトの名無しさん [2024/06/25(火) 08:47:33.30 ID:PJlEmYUO.net]
>>737
オブジェクトだからどんな型でも参照渡しなんじゃないのか?
もしかして、「参照渡し」という言葉をオレが誤解している?

750 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 09:35:15.76 ID:ZD6OkC9b.net]
>>740
Pythonは(参照の)値渡し
>>737は間違いで>>739が正しい

def modify(x):
 x = None

x = [1, 2, 3]
modify(x)
print(x) #この結果をNoneにできるのが参照渡し

751 名前:デフォルトの名無しさん [2024/06/25(火) 13:25:16.56 ID:PJlEmYUO.net]
>>741
それは引数の渡し方でなく、x = Noneによって xが新たな Noneオブジェクトを指した結果じゃないかな。

$ cat x.py
def modify(xx, yy):
  print('xx', id(xx), xx)
  print('yy', id(yy), yy)

  xx = None  # 代入により別オブジェクトを指す。
  yy.clear() # 変更結果が返される。

  print('xx', id(xx), xx)
  print('yy', id(yy), yy)
x = [1]
y = [11]
print('x', id(x), x)
print('y', id(y), y)
modify(x, y)
print('x', id(x), x)
print('y', id(y), y)

$ python3 x.py
x 140253632444160 [1]
y 140253627941632 [11]
xx 140253632444160 [1]
yy 140253627941632 [11]
xx 140253637855360 None
yy 140253627941632 []
x 140253632444160 [1]
y 140253627941632 []

752 名前:デフォルトの名無しさん [2024/06/25(火) 13:26:58.66 ID:ZtCD4zFU.net]
>>736
Pythonの造りはtcl/ckに似ている

753 名前:デフォルトの名無しさん [2024/06/25(火) 13:28:25.30 ID:PJlEmYUO.net]
>>741
で、C言語だとこんな感じかと想像するが、
変数 xの値である 1 を渡すことを、値渡し、
変数 xのポインタである 0x7ffed3b1f5ac を渡すことを、参照渡しと呼んでいた。

$ cat x.c
#include <stdio.h>
void modify(int *xx, int *yy) {
 printf("xx %p %d\n", xx, *xx);
 printf("yy %p %d\n", yy, *yy);
 int new_xx = 0;
 xx = &new_xx; /* 代入により別オブジェクトを指すPython風 */
 *yy = 0; /* 変更結果が返される。 */
 printf("xx %p %d\n", xx, *xx);
 printf("yy %p %d\n", yy, *yy);
 return;
}
int main(void) {
 int x = 1;
 int y = 11;
 modify(&x, &y);
 printf("x %p %d\n", &x, x);
 printf("y %p %d\n", &y, y);
 return 0;
}
$ cc x.c && ./a.out
xx 0x7ffed3b1f5ac 1
yy 0x7ffed3b1f5a8 11
xx 0x7ffed3b1f58c 0
yy 0x7ffed3b1f5a8 0
x 0x7ffed3b1f5ac 1
y 0x7ffed3b1f5a8 0

754 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 13:30:09.56 ID:ZtCD4zFU.net]
>>742
>>741 は出来ないから参照私じゃないって言ってるんだと思うが
君は日本人か?

755 名前:デフォルトの名無しさん [2024/06/25(火) 13:31:55.40 ID:ZtCD4zFU.net]
>>744
>変数 xの値である 1 を渡すことを、値渡し、
>変数 xのポインタである 0x7ffed3b1f5ac を渡すことを、参照渡し

そんな事実は無い
「参照私」が出現したのはC++から
Cには値私とポインタ私しかない



756 名前:742 [2024/06/25(火) 14:10:18.90 ID:PJlEmYUO.net]
>>745
同じ渡し方の二つの引数の一方が出来て、他方が出来ないので、渡し方の問題じゃないよね、という話をしたよ。

>>746
Call by Reference の和訳は、ポインタ渡しでも参照渡しでも良いと思うよ。

757 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 14:20:27.21 ID:mddxyJup.net]
Cで実装されてるスクリプト言語の引数の渡し方を論じてなんか意味があるのか?
そういうメモリモデルってだけの話だ
C/C++やFortranみたいにマシンコードと密接に関係してるなら別だが

758 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 14:20:46.33 ID:ZtCD4zFU.net]
明確に参照私と言っていたのはPASCALやね

759 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 14:25:08.71 ID:mddxyJup.net]
こいつが言いたいのは参照渡しってのは明示的にアドレスを渡すのではなく変数を渡すと自動でその参照を渡すようにコンパイルされるような言語ということを言いたいのだろうことは理解できるが
それをスクリプト言語のPythonで論じてもナンセンス

760 名前:デフォルトの名無しさん [2024/06/25(火) 14:37:32.71 ID:PJlEmYUO.net]
>>748,750
> Cで実装されてるスクリプト言語の引数の渡し方を論じてなんか意味があるのか?

どうなんだろう?
この手の話は、C言語の方が見通しやすかろうと思って添えたが。
意味が見出だせなければ無視して。Python例から等価っぽく想像しただけのものなので。

761 名前:デフォルトの名無しさん [2024/06/25(火) 14:49:09.86 ID:PJlEmYUO.net]
>>750
> こいつが言いたいのは参照渡しってのは明示的にアドレスを渡すのではなく変数を渡すと自動でその参照を渡すようにコンパイルされるような言語ということを言いたいのだろうことは理解できるが

俺はその一文を理解できない。
シンプルに、
140253632444160 = id(x) の 140253632444160 に、呼び元呼び先ともにアクセスするので、それは「参照渡し」と言うのだと思っていた。
ということだよ。

762 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 14:56:52.16 ID:mddxyJup.net]
>>752
CS的にはそれは値渡しだよ
ポインタだろうがそれは全て整数をコピーするのだから
CS的な参照渡しというのはFortranの以下のような仕様のことを指すことが多い

単に引数をそのまま渡してるのに結果が呼び元に返ってくる
https://www.nag-j.co.jp/fortran/FI_11.html#Intents

763 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 16:21:34.93 ID:KN/om7mq.net]
>>752
その理解がないのにC/C++の参照渡し語ってて草

764 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 16:53:43.01 ID:9x+jYxZG.net]
a = ["ab","cd"]
def f(b):
 b.clear()
 b = None
f(a)
print(a)

値渡しの場合(pythonはこっち)
変数aの参照先の箱aに、["ab","cd"]への参照を値として入れる
変数bの参照先の箱bに、変数aの値(["ab","cd"]への参照)を入れる
変数bの参照先の箱bにある値(["ab","cd"]への参照)のclear()メソッドを実行する
変数bの参照先の箱bに、Noneへの参照を値として入れる
変数aの参照先の箱aにある値([]への参照)を表示する

参照渡しの場合
変数aの参照先の箱aに、["ab","cd"]への参照を値として入れる
変数bの参照先を、変数aの参照先の箱aにする
変数bの参照先の箱aにある値(["ab","cd"]への参照)のclear()メソッドを実行する
変数bの参照先の箱aに、Noneへの参照を値として入れる
変数aの参照先の箱aにある値(Noneへの参照)を表示する

c言語の場合も、ポインタの値渡しはあっても、参照渡しは無かった記憶

765 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 17:12:56.33 ID:9x+jYxZG.net]
void f(int *b) {
 *b = 2;
 b = NULL;
}
void main() {
 int a = 1;
 f(&a);
 printf("%d\n", a);
}
c言語のポインタの値渡し
変数aの参照先の箱aに、1を値として入れる
変数bの参照先の箱bに、変数aのアドレスを値として入れる
変数bの参照先の箱bにある値(変数aのアドレス)の参照先の箱aに2を入れる
変数bの参照先の箱bに、NULLを値として入れる
変数aの参照先の箱aにある値(2)を表示する

void f(int &b) {
 b = 2;
}
void main() {
 int a = 1;
 f(a);
 printf("%d\n", a);
}
c++言語の参照渡し
変数aの参照先の箱aに、1を値として入れる
変数bの参照先を、変数aの参照先の箱aにする
変数bの参照先の箱aに、2を値として入れる
変数aの参照先の箱aにある値(2)を表示する

長文ごめん



766 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 17:20:06.61 ID:ZtCD4zFU.net]
で?

767 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 17:26:57.66 ID:PNR4S7a4.net]
>>756
参照渡しは実際には変数を指すポインタを値渡ししていて、本質的には等価だよ
ポインタに対するちょっとした構文糖衣に過ぎない
ポインタに比べて制限が強い分だけ最適化されやすかったりする可能性はあるが

768 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 17:31:05.84 ID:7aKndPlG.net]
>>747
yy.clear()のように渡された参照やポインタを通して参照先の値を変更するのと
xx = Noneのように渡された参照やポインタ自体を変更するのは同じではない
後者を行った時に呼び出し元の変数も同じように変更されるものが参照渡し

>>748
メモリモデルではないよ

>>750
引数の渡し方というのはどのプログラミング言語を使う場合にも理解しておくべき基礎
だからスクリプト言語だとナンセンスってことはない
もちろんスクリプト言語でも参照渡しをサポートしてる言語はいくつもある

769 名前:デフォルトの名無しさん [2024/06/25(火) 19:08:21.24 ID:PJlEmYUO.net]
>>753,755,756,759
CS とは何ぞ?
その CS的な参照渡しにおける「参照」とは整数以外の何なの?

ただ、「参照渡し」とは、サブルーチンへの引数の渡し方でなく、サブルーチンからの引数の返り方を以て、

・結果が呼び元に返ってくる
・呼び出し元の変数も同じように変更されるもの

という性質を言うらしいことが、ボヤっと分かった。
で、参照渡しっぽい事がしたけりゃ、Awkのように配列で授受すれと。

俺は、>>737 と同様に、オブジェクト実体へのポインタや実体のIDの授受を参照渡しと呼ぶのだと思っていたよ。

770 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 19:53:07.98 ID:mddxyJup.net]
>>760
参照とはオブジェクトを指し示すもののこと
ここでいうオブジェクトとはメモリ領域のことでありプログラミング言語においては特定の値のことを指す
つまりそれを指し示すようなものであればなんでも良い
VM言語であればスタックフレームからのオフセットに過ぎなかったりする

771 名前:デフォルトの名無しさん [2024/06/25(火) 22:50:01.65 ID:UoDN+2II.net]
>>760
とりあえずC++では参照渡しはちゃんと定義されている用語で、
知ってる限りではC++での使われ方と違う使われ方はしないものなので、C++における参照渡しを勉強してくれ
そしてnullを代入することに意味のある変数を用意して実際に参照渡しのコードを書いてみて
CSとはなんぞという質問が物語っていて、Computer Scienceで共有すべき知識を持っていない状態のように思う

772 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 23:11:20.56 ID:nRVgOfun.net]
>>736
横レスだけど
この書き込みありがとう
perl好きの俺がなんでpython嫌いなのか
わかった気がする

773 名前:デフォルトの名無しさん mailto:sage [2024/06/25(火) 23:38:25.41 ID:WkoTZsDY.net]
>>760
>ただ、「参照渡し」とは、サブルーチンへの引数の渡し方でなく、サブルーチンからの引数の返り方を以て、
>・結果が呼び元に返ってくる
引数も結果も「返る」というのは少し違う
サブルーチン内での引数を変更するとその時点でその変更が直接呼び出し元に反映される

774 名前:デフォルトの名無しさん mailto:sage [2024/06/26(水) 00:11:27.85 ID:kR99xHRb.net]
間違ったこと書いてた張本人は間違いを指摘されても反省するどころか開き直っちゃってるのが解せない

最近そんなやつが多くて萎える

775 名前:デフォルトの名無しさん mailto:sage [2024/06/26(水) 00:20:27.75 ID:/ebqJ/eA.net]
>>765
これな



776 名前:デフォルトの名無しさん mailto:sage [2024/06/26(水) 00:20:45.10 ID:/ebqJ/eA.net]
多分、朝鮮人

777 名前:デフォルトの名無しさん [2024/06/26(水) 01:10:11.09 ID:yv8Z2CuH.net]
>>760
番地なのか、番地にあるものなのかのような違いで、Pythonはコンピューターそのものですらやらない方法をとってしまっている。

大きなデータではなければ、コピーを作って渡すのが、ほとんどのプログラミング言語の仕様。

Pythonの関数はアセンブラだと他のプログラミング言語はサブルーチンの呼び出しと同じだが、Pythonはただのジャンプ命令でプログラムを行ったり来たりしているだけ。

いまのCPU内はレジスタが多いからあまり問題にならないが、Pythonも一定の長い連続領域の場合は、メモリとファイルを使うことになる。

同時実行プロセスが多い高性能サーバーとは相性が悪い。
クラウドという仮想サーバーなら、動的に仮想サーバーが変えるから、Pythonでいい。

もともと忘れ去られていた言語が掘り起こされて使われて、変な仕様だがよく使われるようになっただけ。

Pythonそのものが仮想マシンで動くように変更されたから、CUIで復活したのがいつの間にか、メインプログラミング言語になっている奇妙な現象

ただし、AWS社以外はあまり乗り気でない。
洗練されていない汚い言語は、汚く見せない技術がいる。

778 名前:デフォルトの名無しさん [2024/06/26(水) 01:15:56.13 ID:yv8Z2CuH.net]
>>764
サブルーチンとは呼び出し元の情報をメモリに保存して、呼び出された側の処理が終わったときにメモリから情報を取り出して元に戻ることだ。

Pythonの関数は後付けであるため、関数と言いながらも実態は処理を書き分けただけにすぎない。

サブルーチンではなく、プログラム内を飛んでいるだけ。

スタック領域にプッシュもポップもしていない。

779 名前:デフォルトの名無しさん [2024/06/26(水) 01:18:19.20 ID:yv8Z2CuH.net]
オブジェクトという概念もあとから追加したせいで、わかりにくい分類の型ができてしまった。
コレクションという用語にしなかったのも謎

780 名前:デフォルトの名無しさん [2024/06/26(水) 10:30:09.24 ID:esETAUdE.net]
初心者です、tkinterで作ったGUIの反応が遅い
afterでマシにはなったんだけど
で、マウスクリッ

781 名前:クした時刻(OSでのクリック検知時点のシステム時刻)みたいなの取れる方法ありますか
やりたいことは、
クリック時刻とbindした関数が呼ばれた時刻をログに取ってみたい
Windowsです bindした関数が呼ばれる以前にユーザの作ったプログラムでクリック把握する方法、そんなのあるか!ではなくて、後追いででも確認できないものかと
[]
[ここ壊れてます]

782 名前:デフォルトの名無しさん [2024/06/26(水) 11:16:31.48 ID:esETAUdE.net]
>>771 です
そのごググって下記のページで近いことが出来そうかと
本当は早くする方法が知りたいのだけど、今は何を聞けばいいのかもわからないのでまた後程
https://taida-eng.com/%E9%80%86%E5%BC%95%E3%81%8D%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89/python%E9%80%86%E5%BC%95%E3%81%8D%EF%BC%9A%E3%83%9E%E3%82%A6%E3%82%B9%E6%93%8D%E4%BD%9C%E3%81%AE%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%9F%E3%81%84/

783 名前:デフォルトの名無しさん mailto:sage [2024/06/26(水) 14:03:59.21 ID:H6JHbd75.net]
root.bind('<Button-1>', lambda _: print(datetime.datetime.now())

784 名前:デフォルトの名無しさん [2024/06/26(水) 14:53:45.89 ID:esETAUdE.net]
>>773 ありがとうございます
早速やってみて、時刻がコンソール出力されることを確認しました

やってみると >>772 のリンク先のpynputを使用したほうが早い時刻を取得しており、
体感的にもpynputの時刻がマウス操作時刻と思われます

また、関数が呼ばれた時点の時刻も表示したら、
pynput -> 関数 -> rootにbindのラムダ関数の順に表示されました
わたくし、何か勘違いしてますでしょうか
pynputクリック検知 2024-06-26 14:46:54.026669
関数コール時時刻 2024-06-26 14:46:55.787093
クリック検知時刻 2024-06-26 14:46:56.076000 <- rootにバインドしたラムダ関数



pynputクリック検知 2024-06-26 14:41:35.307322
イベント発生時y 299
chartkobetu呼ばれました
選択中の銘柄 4208 型 <class 'str'>
個別5mの存在順i番目銘柄= 18 存在列 126 銘柄コード 4208 <class 'str'>
個別チャート日足、呼ばれました
j= 1 dfcoloffset= 1 linecolor= #ffff00
j= 2 dfcoloffset= 2 linecolor= #189af9
j= 3 dfcoloffset= 3 linecolor= #e38089
j= 4 dfcoloffset= 5 linecolor= #00ff00
クリック検知時刻 2024-06-26 14:41:38.955128

785 名前:デフォルトの名無しさん [2024/06/26(水) 15:01:12.85 ID:esETAUdE.net]
>>774の最後についているのは今作っているコードの動作状況を確認するためprintで出力しているものです
編集中に送信してしまいましたので、時刻検知とは関係ない内容で、時刻の取得時点の比較ができないデータです、すみません



786 名前:デフォルトの名無しさん mailto:sage [2024/06/26(水) 17:34:00.99 ID:zF60WWs1.net]
>>774
メインスレッドをブロックして何か処理をしてるんでしょ

クリックすると時刻をprintするボタン1つだけ最低限のアプリで
クリックに対する反応がどの程度なのかを確認してみたらいいと思う

787 名前:デフォルトの名無しさん [2024/06/26(水) 19:15:47.84 ID:esETAUdE.net]
>>776 レスありがとうございます
最小限だと同じ時刻になる、これ以上、細かい桁が測れるのかもよく分からないけど十分速いかと
pynputクリック検知 2024-06-26 19:09:50.128802
関数コール時時刻 2024-06-26 19:09:50.128802

Widgetを追加しながら作っていて、
最初にサンプル的なボタンを押してラベル文字書き変えの
プログラムでは応答性は何の問題にもならないレベルだったので、
まあこんなものかと

788 名前:デフォルトの名無しさん [2024/06/26(水) 19:17:32.22 ID:esETAUdE.net]
>>777ですけど

あまりに遅いので、cProfileで動作時間を測ってはいて
一番長い関数で138ms、
一方でpynputクリック検知 から 関数コール時時刻 までは1.76s
(14:46:55.787093 - 14:46:54.026669= 1.7604)
もっと遅くなることもある
2秒近くかかる処理なんか作ってないんだけど、さてどうしたものか

789 名前:デフォルトの名無しさん [2024/06/26(水) 19:23:16.01 ID:esETAUdE.net]
連投すまん

エクセルVBAで作っていたプログラムを練習がてらpython移植してみるんだけど、
VBAでいうDoEventsみたいなものはpython、tkinterには無い、ということでしょうか

ネット検索すると別スレッドで実行しろとか出てくるけど、こっちで考えたほうがいいのかどうか

790 名前:デフォルトの名無しさん [2024/06/26(水) 21:33:53.43 ID:UcQAC2Co.net]
VBAのDoEventsをどう使っているのか良うわからんが、subprocess.runじゃだめけ?

791 名前:デフォルトの名無しさん [2024/06/26(水) 22:20:47.89 ID:esETAUdE.net]
>>780 ありがとうございます

VBAのDoEventsが実行されると、OSのqueueに溜まっているユーザー操作が実行されます
もし1周0.2s程度のループをネストして100回やらせると約20秒間かかりきりで(応答なし)になるところ、
内側のループの最初(でなくてもいいけど)にDoEventsを入れれば約0.2s毎にユーザ操作の処理が入るので応答なしにはならず、
0.2sくら

792 名前:「ならちょっと反応悪いかな、くらいのレスポンスになります(UI処理をやった分だけ、ループの完了は伸びる)

さて、subprocess.runを早速調べてみましたが、OSにやらせたいことをコマンド指定でやらせる、ということでしょうか
OS側で溜まってることがあるのならこのタイミングで済ませてな、なにがあるのかしらんけど、という使い方はできるのでしょうか
もう少し調べてみます
[]
[ここ壊れてます]

793 名前:デフォルトの名無しさん mailto:sage [2024/06/26(水) 22:40:40.89 ID:hSYD6qWQ.net]
>>777
てことは君のコードが書き方が原因なのは確定なので
まずは再現性のある最小限のコードを提示してね
それ以外の話はそれから

794 名前:デフォルトの名無しさん [2024/06/26(水) 23:01:35.15 ID:esETAUdE.net]
>>782
はい、わたしの作ったコードが反応遅いという話をしています
そして最初の質問事項は、マウスクリックした時刻(OSでのクリック検知時点のシステム時刻)みたいなの取れる方法、でした
これはググって解決しました
以降の話はレスをいただいた方への返信と、DoEvents相当のものがあるかという質問です
エクセルはスレチかと思いますのでエクセルの話を続ける気はありません
引き続き自力でも調べてみます

795 名前:デフォルトの名無しさん mailto:sage [2024/06/26(水) 23:06:33.48 ID:p3vHraeo.net]
PythonのGUIアプリなんかどのみち自分用ツールにしかならないんだから、ipywidgets やstreamlitで十分だろう
元々スレッドが分離されてるからビジー状態にしても全く問題ないよ



796 名前:デフォルトの名無しさん mailto:sage [2024/06/26(水) 23:13:46.30 ID:hG8QBVa6.net]
pythonのGILのせいじゃないの?
そこまで反応性が重要ならpythonは向いてない

797 名前:デフォルトの名無しさん mailto:sage [2024/06/27(木) 00:43:31.20 ID:DskBlp2q.net]
別スレッド化したりしてもtkinterに干渉するとランダムな幅の遅れが出る
たとえばプログレスバーをn秒ちょうどで満たすようなコードは書けない(試行毎にバラバラの誤差が生じる)
多分GILとかブロックの問題で、解決できない。これはpythonとtkinterの仕様

798 名前:デフォルトの名無しさん mailto:sage [2024/06/27(木) 10:04:13.91 ID:OTNDZ+yC.net]
どんな酷いコード描いてるのか観たいから笑わないからぜひ晒してくれ

799 名前:デフォルトの名無しさん mailto:sage [2024/06/27(木) 11:44:11.82 ID:THiq2UM5.net]
>>786
どの言語でも試行毎に誤差はでる
その誤差を許容範囲内にするだけ
GILの問題でも解決方法はあるよ

800 名前:デフォルトの名無しさん mailto:sage [2024/06/27(木) 15:00:13.36 ID:oRm7STy0.net]
最新のpythonだとGILオフにできるらしい
そのバージョンでやってみたら?

801 名前:デフォルトの名無しさん [2024/06/27(木) 15:06:22.67 ID:WK2H4wzF.net]
>>783
async使え
懐かしい問題だなw

VB時代とかはbackgroundwokerとか使ってUIスレッドを止めないようにしてたけど今の時代ならasync/awaitでお前さんのループでの処理書けばおk

802 名前:デフォルトの名無しさん mailto:sage [2024/06/27(木) 15:21:15.01 ID:CgIutZfe.net]
こんな人がasyncにするとこんがらかりそう

803 名前:デフォルトの名無しさん mailto:sage [2024/06/27(木) 15:40:57.25 ID:oRm7STy0.net]
pythonのGUIはマルチスレッドで処理を逃してもGILでロックしまくりで遅くなる
かといって重い処理を動かすとブロックする
async使ってもブロックしたら終わりなのは同じ
詰み

804 名前:デフォルトの名無しさん mailto:sage [2024/06/27(木) 17:23:36.34 ID:NmEKUmlO.net]
CPUバウンドな処理はPythonならマルチプロセスにするのが常識
サブインタープリターも使えるようになったけど本格的に使えるのは3.13から

async使うのはI/Oバウンドな処理
これも常識

805 名前:デフォルトの名無しさん mailto:sage [2024/06/27(木) 17:34:34.83 ID:Qbo7b3Vg.net]
であればGUI制御が別プロセスになってるソリューションがあんのかな
それかライブラリを叩く粒度を大きくする工夫があるのか



806 名前:デフォルトの名無しさん mailto:sage [2024/06/27(木) 18:53:48.27 ID:WKYIGf9o.net]
言語やOSに関係なく基本的にどのGUIフレームワークでも
アプリケーションのメインスレッドで
UIイベントのハンドリングやUI操作を行うことが前提になってる

だから別プロセスにするのはGUI制御ではなくてUIに関係ないCPUバウンドの処理
つまり基本的にはGUIフレームワークの守備範囲外

807 名前:デフォルトの名無しさん [2024/06/27(木) 19:04:32.49 ID:F52juMPQ.net]
>>791
超初心者用スレで無双か。

808 名前:デフォルトの名無しさん mailto:sage [2024/06/27(木) 19:09:48.41 ID:oRm7STy0.net]
>>795
C#はその辺シームレスなんだよね

809 名前:デフォルトの名無しさん mailto:sage [2024/06/27(木) 22:23:02.86 ID:/FJYXYiJ.net]
だれも.afterは回答しないのか

810 名前:デフォルトの名無しさん [2024/06/27(木) 22:39:51.02 ID:QXPbo1LF.net]
そんなafter使うような真面目な人間は5chに来ない

811 名前:デフォルトの名無しさん mailto:sage [2024/06/27(木) 23:54:31.61 ID:o3056e9S.net]
>>797
言語と並行プログラミング用ライブラリとGUIフレームワークの役割分担はC#も基本的に同じ
でも同期コンテキストの存在とかTPLの使いやすさとかC#/TPL前提のドキュメントの豊富さとか
シームレスに感じる理由が多々あるのはわかる

>>798
afterは使ってるって最初に書いてたよ

812 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 08:28:53.40 ID:J/XDPL0h.net]
async は失敗だったよな
Pythonでスレッド数の消費が問題になるようなものを運用してる奴なんて極僅かなんだからライブラリがわざわざ対応する訳がない
Javaみたいに世間の流行なんかガン無視してマイクロスレッドに賭けるべきだった

813 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 09:12:53.81 ID:5vFH0KpM.net]
Web系の要望だろうけど
Twistedさん殺しにいかなくてもとは思った

814 名前:デフォルトの名無しさん [2024/06/28(金) 11:24:07.08 ID:joeyrg+E.net]
Twisted懐かしいな
お世話になりました

815 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 14:11:06.71 ID:sa0QpqCC.net]
>>801
GIL外したからマイクロスレッドもありなんだよな
asyncioを駆使して書き直すのも面倒だし



816 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 17:38:58.38 ID:IKZAS17P.net]
グリーンスレッドのことをマイクロスレッドと呼んでる?
であればasyncのTaskがそれだよ

817 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 17:39:52.27 ID:bVzHKq+e.net]
インターネットからのパッケージの入手ができないクローズドな環境で
Pythonを使ってます

Portable運用ができるのでWinPythonを使っているのですが、
同梱されているものがバージョンにより異なり、
PandasやKerasが入っていたりいなかったりするのがちょっと困ってます

自分が必要なものを導入した状態でポータブル化したPython環境、
みたいなものを作る方法はありますでしょうか

818 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 17:44:05.75 ID:sa0QpqCC.net]
>>805
ちゃうよ
ゴルーチンみたいな奴
ちゃんとスレッドは使う

819 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 18:21:18.71 ID:IKZAS17P.net]
>>807
それはグリーンスレッドのスケジューラー/エグゼキューターが
内部でOSスレッドのスレッドプールを使ってるという話でしょ
asyncのTaskをOSのスレッドのスレッドプールで回すのと仕組み的は同じでは?

スケジューリング方法の違いやスタックの有無だったり
スケジューラー/エグゼキューターが言語にビルトインされてて
アプリケーションコードで意識しなくてもいいとか
ゴルーチンとの違いはいろいろあるけど
それはマイクロスレッドの定義とは関係ないんじゃない?

820 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 18:33:47.84 ID:sa0QpqCC.net]
>>808
asyncのTaskは数千、数万も作れないでしょ
ゴルーチンすなわちマイクロスレッドはそれぐらい作れる設計

821 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 18:50:13.66 ID:IKZAS17P.net]
>>809
>asyncのTaskは数千、数万も作れないでしょ
インタープリターだから生成が遅いというだけで
その数は余裕でしょ

822 名前:デフォルトの名無しさん [2024/06/28(金) 20:02:09.92 ID:TzaR5aOj.net]
>806
ありますよ

823 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 21:12:32.85 ID:sa0QpqCC.net]
>>810
asyncはあくまでIOが並列化できるだけ
計算の実態を数万作れるのはゴルーチンだけ
よって本質が全く違う

824 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 21:42:27.28 ID:69xrfFOO.net]
>>812が間違っていて理解も不足している
各言語のasyncタスクは数万タスク動かせる
Pythonでは試していないがおそらく動くのだろう

825 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 22:10:06.47 ID:sa0QpqCC.net]
>>813
だから動かないって
ゴルーチンは「計算の主体」(って意味わかる?)
を数百万個作れる
これはユーザースペースでコンテキストスイッチをしてるため
おまけにスタックサイズも動的な上に小さい
全てマシンコードレベルで行われる
当然ロックなど存在しない
これがマイクロスレッド



826 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 22:15:33.56 ID:69xrfFOO.net]
>>814
君は非同期タスクについて何も知らない無知者だとわかった
まずは勉強して知識をつけなさい
もう君の相手をすることはない

827 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 22:21:09.52 ID:sa0QpqCC.net]
>>815
御託はいいから動かしてみてね
思い処理を数万個でいいから
Goだと並列でちゃんと動くよ

828 名前:デフォルトの名無しさん mailto:sage [2024/06/28(金) 22:35:05.70 ID:b9qgRVqH.net]
asyncのtaskはどの言語でもJavaScriptからRustに至るまで数万個並行で動作するよ
そのために各言語に導入されたんだよ

829 名前:デフォルトの名無しさん mailto:sage [2024/06/29(土) 03:17:28.84 ID:4AUQ0CVf.net]
Elixir は、10万もの小プロセスを起動できる。
メモリが大きいと、5千万小プロセスも。
ただし、小プロセスは、OS のプロセスとは異なるものです

スクエニは、Elixirを使っているらしい

Go の並行処理も、mattn の本に書いてあるけど、
C で、OS の100スレッドを起動したら、
CPU 使用率が高く、12秒も掛かったが、

Goで100 goroutine を起動したら、
6スレッドしか起動せず、9秒で済んだ

Goの方が、CPUコアを効率的に使える

とにかく、スレッドを起動したらダメ!
CPUコアや時間の大半が、スレッドの起動処理に使われるから

830 名前:デフォルトの名無しさん mailto:sage [2024/06/29(土) 08:36:40.26 ID:9/qe2SG9.net]
知ったかぶりして間違ったこと書く
やんわり間違いを指摘される
反省せずに開き直る!

またこの流れ
ググればすぐわかるような間違いなのになんなんだろうな

831 名前:デフォルトの名無しさん mailto:sage [2024/06/29(土) 09:05:37.50 ID:C+0SrrrI.net]
ElixrはCPU使う処理は得意ではないよ
処理は一瞬で終わるが大量の処理を必要とするようなものが得意
それこそpush通知とかね
Goのようにマシンコードレベルでコンテキストスイッチを実装してるわけではないから
重い処理を書くと途端に負荷が上がる

832 名前:デフォルトの名無しさん mailto:sage [2024/06/30(日) 11:06:44.92 ID:L3wyoKVN.net]
Erlang最強

833 名前:デフォルトの名無しさん mailto:sage [2024/07/01(月) 05:47:45.32 ID:ppYg1fh2.net]
AIならね

834 名前:デフォルトの名無しさん mailto:sage [2024/07/07(日) 10:33:44.66 ID:1r2hUTKR.net]
pythonで、windows10か11の多画面環境で特定のウインドウのSS撮りたいんだけど
ウインドウハンドル取得してwinAPI叩いてやってるんだけど
メイン画面以外で縦方向に数百pixの座標ズレが出てしまう

こういう書き方しろ、みたいなのご存知の方どなたか…

835 名前:デフォルトの名無しさん mailto:sage [2024/07/07(日) 22:05:47.86 ID:5EkJktI1.net]
>>823
それのどこがPythonに関係あると思うの?
何らかPythonならではのところに原因がありそうなのであればその辺の詳しい情報を出してくれないことには分かるわけないし、
そうでないならCのサンプルコードを探した方がいいのでは



836 名前:デフォルトの名無しさん [2024/07/07(日) 23:45:08.47 ID:y7P/TwV5.net]
pythonで取得したいのだからpythonの話でしょうよ
どうせSS部分pythonのライブラリ使うんだから
(ビットマップオブジェクトとかまでapi叩くんならアレだけど)

837 名前:デフォルトの名無しさん mailto:sage [2024/07/07(日) 23:57:01.73 ID:5gDGdFIi.net]
自分で書いたコード提示して聞いた方が回答つくと思うが

838 名前:デフォルトの名無しさん mailto:sage [2024/07/08(月) 00:05:50.31 ID:+/07puKi.net]
Windowsのマルチモニタ環境では、各モニタの座標系が異なるため、座標のズレが発生することがあります。この問題を解決するためには、モニタの相対的な位置と解像度を考慮して座標を変換する必要があります

839 名前:デフォルトの名無しさん mailto:sage [2024/07/08(月) 00:06:20.59 ID:+/07puKi.net]
1. 各モニタの情報を取得する
2. 指定したウィンドウがどのモニタにあるかを特定する
3. ウィンドウの座標をそのモニタの座標系に変換する

840 名前:デフォルトの名無しさん [2024/07/08(月) 08:43:58.61 ID:XK4Xq7P1.net]
ういんどうずはクソなので超めんどくせえんだわ
おれはウインドウ内のみ欲しくて、その描画myW, myHが分かってる場合しか書いたことないけど
rectたちから計算できるべ多分

DWMWA_EXTENDED_FRAME_BOUNDS = 9
r_rect = ctypes.wintypes.RECT()
ctypes.windll.dwmapi.DwmGetWindowAttribute(hwnd, DWMWA〜, ctypes.byref(rect), ctypes.sizeof(rect))
_style = win32gui.GetWindowLong(hwnd, win32con.GWL_STYLE)
if _style & win32con.WS_THICKFRAME:
_win_border_size = win32api.GetSystemMetrics(win32con.SM_CYFRAME)
else:
_win_border_size = win32api.GetSystemMetrics(win32con.SM_CYBORDER)
win_border_size *= 2

c_rect = win32gui.GetClientRect(hwnd)
w_rect = win32gui.GetWindowRect(hwnd)

841 名前:デフォルトの名無しさん [2024/07/08(月) 08:45:47.33 ID:XK4Xq7P1.net]
r_height = r_rect.bottom - r_rect.top
c_width = c_rect[2] - c_rect[0]
c_height = c_rect[3] - c_rect[1]
w_width = w_rect[2] - w_rect[0]

src_pos_x = (w_width - c_width) // 2
titlebar_height = r_height - c_height - win_border_size

hwndDC = win32gui.GetWindowDC(hwnd)
mfcDC = win32ui.CreateDCFromHandle(hwndDC)
saveDC = mfcDC.CreateCompatibleDC()
saveBitMap = win32ui.CreateBitmap()
saveBitMap.CreateCompatibleBitmap(mfcDC, myW, myH)
saveDC.SelectObject(saveBitMap)
saveDC.BitBlt((0, 0), (myW, myH), mfcDC, (src_x, titlebar_height), win32con.SRCCOPY)
bmpinfo = saveBitMap.GetInfo()
bmpstr = saveBitMap.GetBitmapBits(True)
im = Image.frombuffer('RGB', (bmpinfo['bmWidth'], bmpinfo['bmHeight']), bmpstr, 'raw', 'BGRX', 0, 1)

win32gui.DeleteObject(saveBitMap.GetHandle())
saveDC.DeleteDC()
mfcDC.DeleteDC()
win32gui.ReleaseDC(hwnd, hwndDC)


高DPI対応でこれ入れてるとずれるからそれは知らん
ctypes.windll.shcore.SetProcessDpiAwareness(1)

842 名前:デフォルトの名無しさん [2024/07/08(月) 08:48:31.66 ID:XK4Xq7P1.net]
訂正
saveDC.BitBlt((0, 0), (myW, myH), mfcDC, (src_pos_x, titlebar_height), win32con.SRCCOPY)

843 名前:デフォルトの名無しさん mailto:sage [2024/07/08(月) 21:09:08.76 ID:s8AzJdEo.net]
>>829-831
マジで助かりました…上手くいきましたが
コードが全然読めないので精進します

844 名前:デフォルトの名無しさん [2024/07/09(火) 01:02:05.27 ID:qs1jvts2.net]
posXの計算式どういう理屈でそれなんだろう…
総当たりで試したのかな

845 名前:デフォルトの名無しさん mailto:sage [2024/07/09(火) 17:53:08.61 ID:ycuYR4Xv.net]
質問失礼します
VersionError: The client version 0.52.3492 is too old. Please update to the latest package on PyPi:
と出てきました、調べたところThis library requires Python 3.8-3.12.と出てきたのですが

自分の使用バージョンはPython 3.10
pipも最新の24に更新済み、他にどこを直せばいいのでしょう



846 名前:デフォルトの名無しさん mailto:sage [2024/07/09(火) 18:57:30.17 ID:JSIA10ur.net]
すみませんVSCodeのシンタックスハイライトについて質問です

シンタックスハイライトをPython仕様にしたいと思うのですがこんな感じで変えられますか?
とりあえず今のままではメソッドなのかクラスなのか変数なのか全くわからないのでどうもできません
https://i.imgur.com/l8UEuMt.png

847 名前:デフォルトの名無しさん mailto:sage [2024/07/09(火) 19:06:47.56 ID:w695tFt+.net]
>>834
PyPiが古いんだろ

848 名前:デフォルトの名無しさん mailto:sage [2024/07/09(火) 19:15:18.18 ID:UDSzeDWm.net]
とりあえずPython勉強してPython3エンジニア基礎試験に合格して、次の実践の勉強してるがつまらん
何か作った方が面白いが作りたいものもない

849 名前:デフォルトの名無しさん mailto:sage [2024/07/09(火) 19:16:34.21 ID:ycuYR4Xv.net]
>>836
pypiとpipって同じじゃないんですか
調べいても違いを説明する結果が出てきません

850 名前:デフォルトの名無しさん mailto:sage [2024/07/09(火) 19:42:17.96 ID:w695tFt+.net]
>>838
モジュールも全部最新なの?
それでも出るなら特定の組み合わせで動かないとかじゃないのか

851 名前:デフォルトの名無しさん [2024/07/09(火) 20:05:31.88 ID:qs1jvts2.net]
>>835
app = App()
app.func()

変数 = クラス
関数

色がないと判断ができない、というのは論外
小文字、大文字、ドットアクセスで見ろ

強いて言えば
foo.bar と書かれているときbarがメソッドかプロパティかわかりません という話ならまぁ…

まあでもシンタックスハイライトってjsonで設定してあって弄れるから好きにやりな

852 名前:デフォルトの名無しさん mailto:sage [2024/07/09(火) 20:15:12.34 ID:ycuYR4Xv.net]
>>839
モジュール?
まだ全然わからないけどモジュールですね!ちょっと調べてみます

853 名前:デフォルトの名無しさん [2024/07/09(火) 20:18:31.83 ID:qs1jvts2.net]
AIとかをやろうとして、言われるがままに色んなものをガンガン入れてしまってる気がする

854 名前:デフォルトの名無しさん mailto:sage [2024/07/09(火) 20:27:31.33 ID:KaCb5RY5.net]
>>837
自力で作れると思われる範囲に制限しなけりゃ作りたいものはあるだろ?
今時プログラミングなんて自分で手を動かす必要ない
AIに夢を語ってりゃそれっぽいものは簡単にできる

855 名前:デフォルトの名無しさん mailto:sage [2024/07/09(火) 23:33:54.51 ID:AsZE7u+u.net]
>>835
Class が緑になってしまうけどこんな感じでいい?
これでいいなら拡張機能の「Python」を入れればできるけども

https://i.imgur.com/yfHsYvK.png

あと VSCode の配色テーマを Dark(Visual Studio) にしていると
拡張機能のシンタックスハイライトが効かなくなるらしい

https://qiita.com/ryutarom128/items/d52ec3db2d11b79599da



856 名前:デフォルトの名無しさん mailto:sage [2024/07/10(水) 00:07:36.42 ID:3j7FzYnK.net]
色々調べた結果python側の問題とわかったので確認
python --version→python3.10
python3 --version→pythonとしかで来なく

python3.10がちゃんとインストールされてるのかpython3.10 --versionを実行した結果、python3.10℃は、内部コマンドまたは 部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていませ ん。と出てきました

とりあえずアンインストール後再インストールしてみますが
1月くらいまで何事もなく使えてたのにインストールされてませんみたいになることってよくあるのですか?

857 名前:デフォルトの名無しさん mailto:sage [2024/07/10(水) 00:54:56.26 ID:B0lLeabB.net]
最新のpythonインストールしたんだろ
それで昔の環境が壊れたとかでおかしくなる

858 名前:デフォルトの名無しさん mailto:sage [2024/07/10(水) 01:07:23.88 ID:EF6Y7HgP.net]
>>845
python3 --versionでPythonと表示されるのはwinの設定→アプリ→アプリ実行エイリアスがオンになってるから。これはMSストア版python用
公式版python3.10をインストールしてもpython3.10という実行ファイルが存在しないのは正常

859 名前:デフォルトの名無しさん mailto:sage [2024/07/10(水) 01:59:30.87 ID:5rHX5/PL.net]
試行錯誤する前に拡張の説明や設定項目を確認しないのなんで

860 名前:デフォルトの名無しさん mailto:sage [2024/07/10(水) 02:34:41.59 ID:3j7FzYnK.net]
みなさんありがとうございます
>>846
ID変わってたのでわかりにくかったのすみません>>834です最新では無いと思います


>>847
ということはpython側の問題ではないのですね再インストールしても無駄……?

>>848
今回はModalのセットアップから初めてるのですがそこで躓いてしまって
恐らくpythonに問題があるのかなと

861 名前:デフォルトの名無しさん [2024/07/10(水) 03:33:20.73 ID:JKR4u2JY.net]
modal要求バージョンより新しいpython入ってるせいで詰まってんじゃないの

862 名前:デフォルトの名無しさん mailto:sage [2024/07/10(水) 08:41:03.90 ID:0/GvnarD.net]
>>850
Modalの要求バージョンは3.8~3.12
私が使っているのは3.10なので大丈夫だとは思うんですがもう一度使おうとしたプログラムのエラーメッセージを確認してきます

863 名前:デフォルトの名無しさん mailto:sage [2024/07/10(水) 15:30:21.08 ID:For1CkV4.net]
だいぶ初心者だと思います
ttk.Treeviewのselection_setに関する質問なんですが

まず、やろうとしている事はビューアで
Treeview1 サイトから取得してきたWebページ一覧 選ぶと情報ダウンロード
Treeview2 ページの情報をダウンロードしたサイト一覧(実態としてはダウンロードフォルダにあるフォルダ一覧)
Treeview3 Treeview2で選んだフォルダ内に保存されている個別のページ情報一覧(実態としてはフォルダ内テキスト一覧)
で「Treeview2でフォルダを選び、Treeview3でファイルを選ぶと、ttk.Textに情報表示」はうまくいってます

この時
Treeview1に<<TreeviewSelect>>をbindし、ダウンロードした後Treeview2の内容を消去&フォルダ一覧再取得&表示する関数などを仕込んでいます(後述)
Treeview2も<<TreeviewSelect>>をbindし、Treeview3の内容を消去&選んだフォルダ(Treeview2)の中身を取得&(Treeview3に)表示する関数を仕込んでいます
(Treeview3も<<TreeviewSelect>>をbindし、ttk.Textの内容を更新する関数を仕込んでいますが、多分今回の質問には関係ないです)

問題はTreeview1から選んだ時で、選んだ時にダウンロードするだけでなく、落としたものを自動的にttk.Textに表示しようとしています
これもttk.Textの表示だけなら問題ないのですが、Treeview2とTreeview3も今ダウンロードした項目が自動的に選ばれた状態にしたいのですが、Treeview3だけうまくいきません
エラーメッセージすら出る事なく、何も選択されません(Treeview2は正常に選択されています)

長いのでレス分けます

864 名前:デフォルトの名無しさん mailto:sage [2024/07/10(水) 15:30:59.95 ID:For1CkV4.net]
>>852続き

原因はおそらくですが、Treeview1にbindした関数内でTreeview2の項目を選択した時、自動的にTreeview2にbindされた関数も呼び出されますが
これの処理がTreeview1にbindした関数の後で実行されるせいで、最後にTreeview3がリフレッシュされているのだと思います
Treeview1の処理中に他のTreeviewを選んだ時「Treeview1の処理中断→Treeview2の処理→Treeview1の処理再開」になると思い込んでコードを書いていたのですが
たぶん実際には「Treeview1の処理完走後、トリガーされたTreeview2の処理」になっているのかなと思っています(テスト用のprintの表示順序などから推測)

最後にTreeview3もちゃんと選択されるようにするには、どうすればいいでしょうか?
Treeview1の処理中、Treeview2を一時的にunbindも試してみましたが、確かにunbindして必要な処理を補完すればちゃんと動くので原因は間違ってなさそうですが
再bindをTreeview1の処理中にしてしまうと、処理後に結局トリガーしてしまって無意味でした

865 名前:デフォルトの名無しさん [2024/07/10(水) 17:05:01.94 ID:iit7nof0.net]
ボタンは1回押したらロックするか
ブロック機構入れないと
連打したり、別のボタン押したりしたときに収拾つかなくなるで

たとえば
bind関数内の最初に、if treeviewselected:returnみたいなの書いて排他動作にするとかさ



866 名前:デフォルトの名無しさん mailto:sage [2024/07/10(水) 18:37:27.41 ID:For1CkV4.net]
>>854
丁度それをやってみて正常に動いたところでした、ありがとうございます
やはりその辺の処理になるんですかね

ロック機構、確かに要りますね
趣味で場当たり的に作ってると、そういう構造的なノウハウとかは中々身につかなさそうですね……

867 名前:デフォルトの名無しさん [2024/07/10(水) 21:14:08.65 ID:8aePid6X.net]
GUIはGUI用のノウハウあるで、書きまくってたら身についていくよ
ロジックと表示系分離するとかもそうだしさ

868 名前:デフォルトの名無しさん mailto:sage [2024/07/11(木) 00:14:02.11 ID:gnKs0VpL.net]
pythonでpyenv pipx poetry使えるレンタルlinuxサーバ知らん??

869 名前:デフォルトの名無しさん mailto:sage [2024/07/12(金) 03:05:52.22 ID:Fv9K4MWW.net]
whisperを使ってみようと思ったんですが、次のコードでどうあがいても
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。

import whisper

with open("./test.txt", 'r', encoding='utf-8') as file:
  content = file.read()
print(content)

uri = "./test.mp3"
model = whisper.load_model("small")
result = model.transcribe(uri, verbose=True, fp16=False, language="ja")

test.txtはちゃんと読み込まれて表示されるのに
resultのところでどうしてもファイルが見つからないと言われます
audio = whisper.load_audio(file=uri)
をresultの前に噛ませたりしても、ここで見つからないと言われます

絶対パスにしてもwavとかoggとか試しても無駄だし、拡張子消してももちろん無駄です
ファイルの位置を変えたり、全然違う場所の全然違う音声ファイルを読み込もうとしても無駄です
pipしなおしてもPC再起動しても無駄です
一体何が悪いのでしょうか

870 名前:デフォルトの名無しさん [2024/07/12(金) 03:18:10.13 ID:6z6Lg9Zs.net]
そもそもresult前に読んだパス認識してんの?
path.existsみたいなのしなはれ

871 名前:デフォルトの名無しさん mailto:sage [2024/07/12(金) 03:55:38.40 ID:Fv9K4MWW.net]
>>859
とりあえずこれを直前に挟んでみましたがTrueでした
print(os.path.exists(uri))
ダミーにめちゃくちゃ入れたらもちろんFalseなので、result以外はちゃんと動いてるようなんですが

872 名前:デフォルトの名無しさん [2024/07/12(金) 04:14:19.09 ID:6z6Lg9Zs.net]
ffmpeg関係は?

873 名前:デフォルトの名無しさん mailto:sage [2024/07/12(金) 05:06:05.29 ID:Fv9K4MWW.net]
>>861
すみません、それでした
解決しました、ありがとう
雑に使おうとして、基本的なところが抜けてました

874 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 21:35:07.90 ID:atiQW+Xs.net]
いまtkinterでGUIをMVCで作ろうとしてるんだけど
これウィジェット自身で完結する変数やメソッドはウィジェット側に書くわけじゃん
するとあるウィジェットに関係する変数やメソッドが、viewとcontrollerに点在することになるけどそれでいいのか?

全部無理矢理controllerに押し込んだら、こんどcontrollerが肥大化するけど、それはそれでどうなんだという気もする

875 名前:デフォルトの名無しさん mailto:sage [2024/07/18(木) 23:22:50.39 ID:61oenaL1.net]
>>863
MVCは死ぬほどバリエーションがあるのでこれといって何が正解かとはかない
しかし成功しているモデルの一つであるiOSでのMVCを説明してみる
まずコントローラはモデルとビューを保持する
コントローラがユーザーからのイベントを受け取り対応するモデルのメソッドを呼ぶ
モデルのメソッドが呼ばれ状態を変更する
完了後にコントローラへ通知する
そしてコントローラは対応するビューを再描画する
正直古臭いがある程度成功しているアーキテクチャだ



876 名前:デフォルトの名無しさん mailto:sage [2024/07/19(金) 05:30:02.76 ID:QNeV9bba.net]
vscodeでtomllib使って値読み込んでもpylanceが上手く型を認識してくれない(anyになる)んだけど
tomlって型付きじゃなかったっけ? おま環かこれ??

877 名前:デフォルトの名無しさん [2024/07/19(金) 05:40:24.28 ID:+oFdaKCd.net]
石丸伸二さん取材の最前線

「取材不足」さんのYouTubeチャンネル
https://youtube.com/@shuzaibusoku

「取材不足」さんのX(ツイッター)
https://x.com/shuzaibusoku7

石丸伸二さんは天才ですね!

878 名前:デフォルトの名無しさん mailto:sage [2024/07/19(金) 06:02:53.03 ID:2drNjBF3.net]
>>865
どんなデータ読むかわからんなら静的解析できない
データの型が想定できるなら自前のエンティティクラスにいったん格納してみては?
健全にやるならバリデーションする

879 名前:デフォルトの名無しさん mailto:sage [2024/07/20(土) 06:12:19.62 ID:rQPoAcvH.net]
Pythonで組んだ自動処理はレンタルサーバー使ってる?

880 名前:デフォルトの名無しさん [2024/07/20(土) 17:56:48.97 ID:pd3T6vIK.net]
>>868
日本語検定何級?

レンタルサーバーを使っているかどうかが先に評価する条件だろ?

881 名前:デフォルトの名無しさん [2024/07/20(土) 17:58:02.44 ID:pd3T6vIK.net]
>>865
バイナリーデータを扱うのに型が自動で決まる方が気持ち悪いだろ

882 名前:デフォルトの名無しさん mailto:sage [2024/07/20(土) 18:30:49.82 ID:rQPoAcvH.net]
>>869
スレタイの通りなんだけど、なんで煽ってるの?

883 名前:デフォルトの名無しさん [2024/07/20(土) 18:44:11.27 ID:pd3T6vIK.net]
レンタルサーバーを使っているかどうかはここで聞かなくてもいいだろうに

初心者だとレンタルサーバーの存在を知らない可能性が高いと思うけどな。

レンタルサーバーならわざわざPythonを使う必要もない。

884 名前:デフォルトの名無しさん mailto:sage [2024/07/20(土) 18:56:40.19 ID:g11axyeV.net]
>>870
でもパーサーは内部的にpython用の型に変換してるんだから、それを静的型チェッカに伝えるだけじゃねーのかなと思わなくはない

885 名前:デフォルトの名無しさん mailto:sage [2024/07/20(土) 19:10:13.69 ID:4S4L7THY.net]
パーサーあるいはバリデータを通して特定の型に適合することがわかったらその型にキャストしてやればいい。



886 名前:デフォルトの名無しさん [2024/07/20(土) 19:39:36.45 ID:pd3T6vIK.net]
それだとデータがおかしくない前提の設計になる

887 名前:デフォルトの名無しさん [2024/07/20(土) 19:43:13.82 ID:JfCCJ2ok.net]
setdefaultencoding()

888 名前:デフォルトの名無しさん [2024/07/20(土) 19:43:43.52 ID:pd3T6vIK.net]
彼は単にTOML形式のファイルが間違っているだけの話をしているのかもしれない。

889 名前:デフォルトの名無しさん mailto:sage [2024/07/20(土) 19:44:44.42 ID:g11axyeV.net]
>>875
データおかしかったらパースエラーでしょ
型チェッカが作動する以前で終わる話やん

890 名前:デフォルトの名無しさん [2024/07/20(土) 19:45:09.15 ID:pd3T6vIK.net]
決められたフォーマットでない設定ファイルを読み込んだときの動作は処理を止めるのが正しい実装。

891 名前:デフォルトの名無しさん [2024/07/20(土) 19:46:17.83 ID:pd3T6vIK.net]
>>878
本人の勘違いだろう
設定が間違っているのをライブラリの問題にしていると思われる

892 名前:デフォルトの名無しさん mailto:sage [2024/07/20(土) 19:49:49.46 ID:g11axyeV.net]
>>880
読解力ゼロ民なん?
質問は、型チェッカーが型情報読めません で
それはそれで合ってる(型チェッカーは認知しないから)が回答で
付随して、パーサーは内部で型確定してるんだから、型チェッカーがそれ読みゃいいのにね って言ってるだけだろ

893 名前:デフォルトの名無しさん mailto:sage [2024/07/20(土) 20:09:38.66 ID:4S4L7THY.net]
>>875
データがおかしくなければ問題なし、おかしければNG。それのどこに問題が?

894 名前:デフォルトの名無しさん [2024/07/20(土) 20:10:26.26 ID:pd3T6vIK.net]
彼は想定どおりのデータ型にならないと言っている

895 名前:デフォルトの名無しさん mailto:sage [2024/07/20(土) 20:56 ]
[ここ壊れてます]



896 名前::22.33 ID:4S4L7THY.net mailto: >>883

だから型チェックしたうえでキャストすればいいと言っているわけだが。
[]
[ここ壊れてます]

897 名前:デフォルトの名無しさん [2024/07/20(土) 23:13:59.91 ID:3JBVPj+L.net]
初心者に何一つ解決法を提示できない、あおる専門職が、また暴れているのか。

898 名前:デフォルトの名無しさん mailto:sage [2024/07/20(土) 23:38:05.16 ID:nWXlJ8rt.net]
>>881
>付随して、パーサーは内部で型確定してるんだから、型チェッカーがそれ読みゃいいのにね って言ってるだけだろ
静的型チェッカーにプログラムを実行して外部TOMLファイルを読み込んでパースしてから型チェックしろと?
頭おかしくね?

899 名前:デフォルトの名無しさん mailto:sage [2024/07/20(土) 23:43:19.64 ID:n5damDMV.net]
初心者です
Windows とmacで全く同じ環境を用意してもvscodeでjupyter が使えるのはmacだけで困っています。

ryeで環境構築していてpythonのバージョンは3.7〜3.12それぞれで試しました
ライブラリはrye add jupyterのみ
Vscodeの拡張機能はpythonとjupyter

Macでは問題ないですが、Windowsでipynbを実行すると”connecting to kernel“から進みません
pyファイルで#%%を用いても同じです
カーネルの指定はしています

今はしょうがないのでwindowsではjupyterlabを起動して使っています
ライブラリのバージョンとwindowsの相性が悪いんですかね…?

900 名前:デフォルトの名無しさん mailto:sage [2024/07/20(土) 23:54:41.64 ID:NXGRRfPo.net]
初心者でryeなんて非標準なツールつかうから切り分けできなくなる

901 名前:デフォルトの名無しさん mailto:sage [2024/07/21(日) 00:10:32.64 ID:H6hpsSWg.net]
>>869
え?これ何?低学歴知的障害朝鮮人?

902 名前:デフォルトの名無しさん mailto:sage [2024/07/21(日) 00:19:47.32 ID:7gp2nlNY.net]
さすがにこの自演は恥ずかしいw

903 名前:デフォルトの名無しさん mailto:sage [2024/07/21(日) 04:12:49.88 ID:6bp7hRiy.net]
>>888
解決しました!分かりやすい解説ありがとうございます!

904 名前:デフォルトの名無しさん mailto:sage [2024/07/21(日) 10:56:10.38 ID:6bp7hRiy.net]
質問しておいて解決しましたとだけ書くのも失礼なので…
pyvenv.cfgの中の指定のpython を変えたら解決しました。
つまり標準のpythonをryeのものにしているのがwindowsのjupyterではよくないようです。
仮想環境でごちゃごちゃやった感じではセキュリティの問題っぽいのでそっちいじればなんとかなりそうですが…
結局macではvscodeを使ってwinではjupyterlab使うことにしました
お騒がせしました

905 名前:デフォルトの名無しさん mailto:sage [2024/07/21(日) 14:59:38.69 ID:AhhCkcZ5.net]
なんかお前一生環境構築してない?



906 名前:デフォルトの名無しさん mailto:sage [2024/07/21(日) 15:04:29.78 ID:AhhCkcZ5.net]
プログラミングできないやつに限って環境だけ作って満足するやつはスゲー多いんだよな
結局何も書けないからやることがないというw

907 名前:デフォルトの名無しさん mailto:sage [2024/07/21(日) 15:13:06.46 ID:6bp7hRiy.net]
>>894
FDTD法やってます!
今は高速化目指してます💪

908 名前:デフォルトの名無しさん mailto:sage [2024/07/21(日) 15:52:43.89 ID:AhhCkcZ5.net]
>>895
そんなんやってる奴が初心者なんだ?

909 名前:デフォルトの名無しさん mailto:sage [2024/07/21(日) 16:38:54.61 ID:XlsTZxiY.net]
>>896
はい!

910 名前:デフォルトの名無しさん mailto:sage [2024/07/21(日) 16:43:16.67 ID:AhhCkcZ5.net]
>>897
フフッ

911 名前:デフォルトの名無しさん [2024/07/21(日) 17:57:12.44 ID:XSmlH7W8.net]
質問にも答えず初心者を煽ってさらには返り討ちに合うスレですか…

912 名前:デフォルトの名無しさん mailto:sage [2024/07/21(日) 18:03:02.20 ID:AhhCkcZ5.net]
>>899
だいぶ効いてるみたいだな

913 名前:デフォルトの名無しさん [2024/07/23(火) 01:22:30.39 ID:Rfg4Mjqa.net]
>>893-894
昔の自称emacs使いにもそういうのがいたで

914 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 07:36:07.88 ID:Uu3M5VDt.net]
今はVSCode使いがそれだな
何でもVSCodeでやろうとして詰んでは暴れまくる
メモ帳でいいんだよPythonなんて

915 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 07:43:39.89 ID:x/ET989s.net]
vscodeの拡張はelispみたく手軽に始められないから秩序は保たれてる印象



916 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 09:37:49.97 ID:HQr1sgjB.net]
>>902
極論それ
環境云々よりまずコードをかけることが大事だからな
環境など後からいくらでも凝ればいい

917 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 09:47:38.48 ID:n9YZQASq.net]
まず書けるようになるためにはデバッガの有無は大きいと思うが

918 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 09:53:14.67 ID:HQr1sgjB.net]
最近はjupyterとか使えば対話的にプログラム書けるしpythonに限って言えば昔ほどデバッガは重要ではないと思うけどな

919 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 10:16:25.92 ID:x/ET989s.net]
Jupyterデバッガ搭載してるけど定義のちがい?

920 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 10:16:33.81 ID:n9YZQASq.net]
環境などどうでも良いのにいきなりjupyterなの?

921 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 10:47:56.05 ID:HQr1sgjB.net]
環境がどうでも良いのとjupyter使うのが便利とは直行する話
環境構築にこだわってドツボにハマるならメモ帳でも良いって意味だよ
文脈ちゃんと理解しような

922 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 11:02:25.16 ID:n9YZQASq.net]
文脈云々言うなら直交ぐらいちゃんと変換しような

923 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 11:52:19.83 ID:aX/s2yiT.net]
デスクトップアプリを作ってexe化して配布しても、FirefoxとChromeで「ウイルスかマルウェア」と断定されて、ダウンロードがブロックされてしまうので、がっかりだよ…
またそのブロック解除の方法が難しくて、まず素人はダウンロードできないし…

Edgeは賢いんだよな
ちゃんと検査してはダウンロードさせてくれる

924 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 12:00:04.69 ID:lokdiXpj.net]
誰が作ったかわからない実行ファイルなんて実行すべきでないから

925 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 12:00:56.55 ID:HQr1sgjB.net]
今時生exeダウンロードして実行しろはない
Macであってもよほど信頼があるもの以外は入れない



926 名前:デフォルトの名無しさん [2024/07/23(火) 15:47:22.98 ID:b7ip8NcQ.net]
>>911
.zipとかに梱包した .exeでなく、赤裸々な .exeで配布したという意味? なぜ?

927 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 15:49:15.49 ID:xnSNk6y3.net]
zipで包まれてても嫌だけどな

928 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 16:25:49.95 ID:x/ET989s.net]
exe単体では嫌だからWebサイトで配布するんじゃないの?
Steamのインストーラもexeだよ
パッケージ化されてても導入するのは結局exeだし

929 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 17:12:12.55 ID:aX/s2yiT.net]
>>914
zipにしてるよ
それがブロックされる

930 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 17:22:15.64 ID:xnSNk6y3.net]
>>916
個人が作ったよくわからないプログラムパッケージをネイティブにインストールなんかしないってことね

931 名前:デフォルトの名無しさん [2024/07/23(火) 17:37:17.95 ID:TPPfHQM2.net]
>>914
ZIP圧縮は暗号化されているものがあるから、ZIP圧縮の方が嫌われるように変化した。

932 名前:デフォルトの名無しさん [2024/07/23(火) 18:14:35.00 ID:b7ip8NcQ.net]
>>917
ここPythonスレなので、exe化したPythonプログラムの話か。今気付いた。
ライブラリを含んでいるからウィルス認定されて当然という話をよく聞く。
別に exe化せんで、スクリプトで配布すりゃいいのでは。

933 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 18:37:50.57 ID:nRtnWzRV.net]
サンドボックスで振る舞いを確かめれば済む話じゃないのか?

934 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 19:18:10.39 ID:TZI+ZhOX.net]
自己解凍書庫の出番か

935 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 19:39:18.76 ID:xnSNk6y3.net]
あれも脆弱性の塊です



936 名前:デフォルトの名無しさん [2024/07/23(火) 19:43:52.63 ID:ZPmy+vgF.net]
UPX

937 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 19:50:49.70 ID:aX/s2yiT.net]
>>920
pythonなんて使えない素人に配布してるので

938 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 22:34:55.62 ID:Q9OV7LqX.net]
コード署名なんて使えない素人が配布してるのでw

939 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 23:08:59.22 ID:r/ZR0qO4.net]
こんだけマルウェアやらランサムウェアが問題になってるのにいまだに何の保証もないexeを実行可能にしているマイクロソフトは反社会勢力と言っても過言ではない
この問題を長年放置してるのは狂ってる

940 名前:デフォルトの名無しさん mailto:sage [2024/07/23(火) 23:12:04.08 ID:RTFcCOtn.net]
Chromeはzipの中身も見てるみたいだけどFirefoxもとなるとGoogle Safe Browsingのダウンロードのブロックリストにドメイン載っちゃってる可能性

941 名前:デフォルトの名無しさん mailto:sage [2024/07/24(水) 03:59:46.12 ID:/7/ZxMEj.net]
>>927
ストアで縛ろうとしたら猛反対
俺のパソコンなのに何しやがるんてなるよ
業務ならポリシーで制限できるから落とし所

942 名前:デフォルトの名無しさん mailto:sage [2024/07/24(水) 11:24:37.52 ID:zc84AtQt.net]
この板で見かけるpythonアプリをexe化して配布しようとしてる人って例外なく技術者としてのレベルが低いんだよね
しかもその自覚がなく他人のせいにするからタチが悪い

943 名前:デフォルトの名無しさん mailto:sage [2024/07/24(水) 11:29:14.65 ID:xsNragSm.net]
超初心者用スレでレベルが低いとか言われても

944 名前:デフォルトの名無しさん mailto:sage [2024/07/24(水) 11:39:51.52 ID:pCtKanLE.net]
>>930
しょうがない面あるよ
現場でのちょっとした業務効率化ツールにいちいち開発予算取れないし
Pythonやライブラリのインストールして回るのは面倒だし
exe一つ配布で済むならそれに越したことはない

945 名前:デフォルトの名無しさん mailto:sage [2024/07/24(水) 11:45:11.42 ID:UohJ1bhL.net]
デスクトップアプリでも指示したファイル以外開けないような権限の厳しい仕組みを作るべきだった



946 名前:デフォルトの名無しさん mailto:sage [2024/07/24(水) 12:02:23.84 ID:BVC0yZgs.net]
やっぱWebアプリが楽
pyscriptの発展に期待

947 名前:デフォルトの名無しさん mailto:sage [2024/07/24(水) 12:42:15.38 ID:oMWZGWxK.net]
>>932
それはアプリの配布ポリシーも配布方法も確立できてないリテラシーが超低い会社に限られた話

>>926が揶揄してるように素人に配布してるのが問題じゃなくて素人がexeを配布しようとしてるのが問題なんだよ

948 名前:デフォルトの名無しさん mailto:sage [2024/07/24(水) 14:17:03.29 ID:y0qkp9N5.net]
>>933
Macは野良の実行ファイル起動できないからな
せめてこれくらいはやれよって思う

949 名前:デフォルトの名無しさん mailto:sage [2024/07/24(水) 14:55:30.46 ID:uBykzA+Z.net]
exeを自由に配布しようとしても、ブロックされてダウンロードされないし売れないしで、素人でも最初からMicrosoft sStore、App Store、android Play Storeで配布する方針でアプリ開発するべきなんだね

950 名前:デフォルトの名無しさん mailto:sage [2024/07/24(水) 15:11:26.53 ID:gQy7oTdL.net]
>>937
python公式が配布してるexeのダウンロードかブロックされたことある?

951 名前:デフォルトの名無しさん mailto:sage [2024/07/24(水) 15:17:26.99 ID:uBykzA+Z.net]
>>938
python本体くらいしか無いけど、ブロックはされなかった

952 名前:デフォルトの名無しさん mailto:sage [2024/07/24(水) 17:01:13.31 ID:KGoIVoV/.net]
>>939
exeを自由に配布しようとしてもブロックされてダウンロードされないという認識が間違ってるってことだよ

953 名前:デフォルトの名無しさん mailto:sage [2024/07/24(水) 17:34:45.81 ID:Qm23Mb5z.net]
いろいろ出来てなんぼのPCであれはだめこれはだめと言っていたら、
なんのためのPCだかわからないことになる

パターナリスティックでおせっかいなシステムはPCにはそぐわないし、
スマホみたいにがんじがらめなのは勘弁してくれ

954 名前:デフォルトの名無しさん mailto:sage [2024/07/24(水) 19:22:40.43 ID:uBykzA+Z.net]
Microsoft Storeで販売してみるわ
日本語と英語で。
500円だけど、何事も挑戦

955 名前:デフォルトの名無しさん mailto:sage [2024/07/24(水) 19:53:24.43 ID:aZhJNMHQ.net]
>>942
いきなり500円で買うやつおらんぞ
まずは機能減らして無料で出せよ



956 名前:デフォルトの名無しさん mailto:sage [2024/07/24(水) 23:33:56.14 ID:uBykzA+Z.net]
>>943
いや、他所ではたまに売れてるんですよ
1週間に数本とか
exeファイルでは無いけどコード
(記事って書いてあるけど文章では無いです)
https://i.imgur.com/9VMM8xV.jpeg

exeファイルを売りたくなったので、Microsoft Storeにしようかと。
他所だとブロックされてしまうので

957 名前:デフォルトの名無しさん [2024/07/25(木) 17:55:43.14 ID:d36Rq1nw.net]
EXEファイルは間違って実行してしまうことがあるから避けられているのになあ

958 名前:デフォルトの名無しさん [2024/07/26(金) 08:22:41.37 ID:3aGNttVJ.net]
>>945

スクリプト・ファイルでも間違えて実行することはあると思うが、
EXEファイル特有の間違いってあるの?

959 名前:デフォルトの名無しさん mailto:sage [2024/07/26(金) 09:07:36.47 ID:GoMxbApo.net]
通常のスクリプトファイルはダブルクリックで実行してしまうことはないだろ

960 名前:デフォルトの名無しさん [2024/07/26(金) 10:16:15.53 ID:3aGNttVJ.net]
>>947
MS-Windows をよく知らんのだけど、
拡張子 .py とかのテキストファイルを、 python something.py などと実行してしまうもんじゃないの?

961 名前:デフォルトの名無しさん mailto:sage [2024/07/26(金) 10:19:30.49 ID:8tpKdrFX.net]
>>947
無知すぎるやろw

962 名前:デフォルトの名無しさん mailto:sage [2024/07/26(金) 10:28:35.30 ID:RKHjG1e0.net]
バッチファイルなら起動するで
あと関連付けされてれば起動する

963 名前:デフォルトの名無しさん mailto:sage [2024/07/26(金) 13:49:56.51 ID:ymUuyp6y.net]
スレタイが何度見てもくすだれにしか見えない

964 名前:デフォルトの名無しさん mailto:sage [2024/07/26(金) 15:36:14.52 ID:OCCNk7Vb.net]
スレイタが何度見てもくだれすにしか見なえい

965 名前:デフォルトの名無しさん [2024/07/26(金) 20:25:41.82 ID:JylNHC7t.net]
>>948
取り返しがつかないことを平気でするから、仕事だったら追放されるぞ。



966 名前:デフォルトの名無しさん [2024/07/26(金) 20:27:18.02 ID:JylNHC7t.net]
>>948 のようにWindowsをMS-Windowsと書くのはジジイ確定

967 名前:デフォルトの名無しさん [2024/07/26(金) 20:58:29.00 ID:3aGNttVJ.net]
>>953
MS-Windows をよく知らんのだけど、
関連付けって、取り返しがつかず、仕事だったら追放されるくらいオオゴトなのか。タイヘンなんだな。MS-Windows を使う仕事でなくて良かったよ。

968 名前:デフォルトの名無しさん [2024/07/26(金) 21:10:48.91 ID:JylNHC7t.net]
> python something.py

↑これを実行すると言っているのは自分だろうに

969 名前:デフォルトの名無しさん [2024/07/26(金) 22:30:59.89 ID:3aGNttVJ.net]
>>956
拡張子 .py とかのテキストファイルを、 python something.py などと実行してしまう、そんな仕組みを、「関連付け」と呼んでいるのと違うの?
よく知らんのだけど。

970 名前:デフォルトの名無しさん [2024/07/26(金) 22:53:18.79 ID:JylNHC7t.net]
>>957
自分がそう書いているんだぜ?

971 名前:デフォルトの名無しさん [2024/07/26(金) 22:54:17.60 ID:JylNHC7t.net]
>>957
946 デフォルトの名無しさん 2024/07/26(金) 08:22:41.37 ID:3aGNttVJ
>>945

スクリプト・ファイルでも間違えて実行することはあると思うが、
EXEファイル特有の間違いってあるの?

972 名前:デフォルトの名無しさん [2024/07/26(金) 22:55:33.33 ID:JylNHC7t.net]
どんなOSだろうと実行してから「実行しますか?」なんて聞いてくるコマンドが普通なのか?

言っていることの意味がわからない。

973 名前:デフォルトの名無しさん mailto:sage [2024/07/26(金) 23:03:13.17 ID:GM2OWqhD.net]
無知な>>947が暴れてますな
ジジイのほうがまだまとも

974 名前:デフォルトの名無しさん [2024/07/27(土) 02:00:40.08 ID:Frk3MPuk.net]
>>958,960
何を言っているのか全然解らん。
系統立てて話してくれないだろうか。

975 名前:デフォルトの名無しさん mailto:sage [2024/07/27(土) 11:13:05.30 ID:qPRWWcgY.net]
def a(arg1)のarg1は'normal,'auto','single'が選択肢としてありって、呼び出し元で引数の選択肢にインテリセンスが効くようにする方法ってありますか?



976 名前:デフォルトの名無しさん mailto:sage [2024/07/27(土) 11:18:09.30 ID:zo9+JWCR.net]
そんな質問はchatgptに聞け

977 名前:デフォルトの名無しさん mailto:sage [2024/07/27(土) 11:30:57.89 ID:MJBjTLYo.net]
Windows環境でPythonをインストールすると.pyなどの各種ファイルは
Python Launcher(py.exe)に関連付けされてダブルクリックでプログラムが実行されるようになってるよ

.batや.cmdのように標準で実行されるものもあれば.ps1のように標準ではブロックされるものもある
ただ.batや.cmdは.exeと違って一般ユーザーは使わないから設定でブロックしやすい
.exeもいろんな条件でブロックすることは可能だけど利便性がかなり落ちるのでバランスが難しい

978 名前:デフォルトの名無しさん mailto:sage [2024/07/27(土) 11:35:07.21 ID:VipTCpXk.net]
>>963
enum

979 名前:デフォルトの名無しさん mailto:sage [2024/07/27(土) 12:02:44.95 ID:VipTCpXk.net]
Literalがあったわ

980 名前:デフォルトの名無しさん mailto:sage [2024/07/27(土) 20:42:42.63 ID:cmTVxjYb.net]
>>965
Anacondaから入れてるから初耳
勿論、勝手に実行はされない

981 名前:デフォルトの名無しさん mailto:sage [2024/07/28(日) 15:34:57.49 ID:v6kdbv5j.net]
.pyダブルクリックでテキストエディタが起動してソース編集の方が有難い
.py実行したいときはコマンドプロンプトやエディタの方から実行出来れば充分

982 名前:デフォルトの名無しさん [2024/07/28(日) 20:18:24.27 ID:AOLFr8T9.net]
>>969
そんなのは設定だろ
python界隈はこういう馬鹿が増えた

983 名前:デフォルトの名無しさん [2024/07/28(日) 20:24:40.17 ID:nQJ65Sob.net]
個々人の嗜好の話題ではない。

984 名前:デフォルトの名無しさん [2024/07/30(火) 17:32:38.17 ID:PmWSmSbC.net]
1 gchar 2001/03/27(火) 13:30
どうしょうもなく、くだらなくて恐縮ですが、
ギコ猫アプレットを作りたいと思います。

gikocat.20m.com/

まあ、感想なぞ書いて下さい。

985 名前:デフォルトの名無しさん mailto:sage [2024/07/30(火) 19:00:55.75 ID:xxzULaUh.net]
>>972
多分ウイルスサイト



986 名前:デフォルトの名無しさん mailto:sage [2024/08/11(日) 00:05:49.00 ID:rz8PuyH+.net]
しかし2001年アプレットとはまた…

987 名前:デフォルトの名無しさん [2024/08/22(木) 10:19:36.95 ID:IKT838Oo.net]
死壊死壊

988 名前:デフォルトの名無しさん mailto:sage [2024/08/23(金) 05:46:44.19 ID:rXpsCAVX.net]
asyncによる非同期処理を実装する場合、非同期にしたい呼び出される関数はasync defとawaitに書かなければならない認識であっていますか?
既存コードにCで書かれた通信処理dllへのラッパー関数があるので、dll呼び出し部まで書き直すか追加するのが手間なので良い手法があればと思いました。

989 名前:デフォルトの名無しさん [2024/08/23(金) 14:35:19.98 ID:TJ+3Kp9a.net]
wrapperのwrapperを描こう

990 名前:デフォルトの名無しさん mailto:sage [2024/08/23(金) 17:32:10.11 ID:2MxBs/jY.net]
Yo~!

991 名前:デフォルトの名無しさん [2024/08/26(月) 13:05:01.33 ID:+6LxARHT.net]
宣伝じゃないですが
尼で損する→/dp/4297142856
書評は良いと思った
>なぜコードが間違っていないのにレビューで重箱の隅のような指摘を受けるのかが理解できるようになります。

992 名前:デフォルトの名無しさん mailto:sage [2024/08/26(月) 15:22:01.32 ID:xgRNJuaz.net]
サプーか

993 名前:デフォルトの名無しさん [2024/08/26(月) 19:53:41.84 ID:FhzwHLyM.net]
レビューで重箱の隅のような指摘を受けたことがあるんだろうね

994 名前:デフォルトの名無しさん mailto:sage [2024/08/26(月) 20:38:35.96 ID:TfC/Wz7r.net]
横からだけど
おまえは完璧なコードを書きすぎる
と言われた事がある・・・
難しい部分を任されたことが無いってのもあるけど

その部分の動画もあるのかな

995 名前:デフォルトの名無しさん mailto:sage [2024/08/26(月) 20:59:37.19 ID:694qjtkr.net]
レビューがめっちゃ桜臭いな
星3以下だと一気に評判落ちるので発売直後の星5が大事



996 名前:デフォルトの名無しさん [2024/08/27(火) 00:42:37.95 ID:jPnUMQmz.net]
設計通りに実装していないやつが多すぎる

997 名前:デフォルトの名無しさん [2024/08/27(火) 14:12:58.86 ID:oHcafaf7.net]
これ教えてくらはい
解く過程もお願いします
https://i.imgur.com/AUcy6QG.jpeg

998 名前:デフォルトの名無しさん [2024/08/27(火) 14:13:20.99 ID:oHcafaf7.net]
(S)でshortだからSの上のRは無いのと一緒
6Ωと3Ωの並列の合成抵抗は2Ω
12Vかかってるから6A

999 名前:デフォルトの名無しさん [2024/08/27(火) 14:13:37.32 ID:oHcafaf7.net]
答えは燃えるだよ
0A

1000 名前:デフォルトの名無しさん [2024/08/27(火) 14:14:03.15 ID:oHcafaf7.net]
どっちが正しい?

1001 名前:デフォルトの名無しさん mailto:sage [2024/08/30(金) 20:00:23.54 ID:/S3k+zaQ.net]
SQLAlchemy気に入った
おかげでpythonから離れそうにない

1002 名前:勉強スレ誤爆より質問スレに移動 mailto:sage [2024/08/31(土) 13:26:42.65 ID:fwQH707u.net]
関数やクラスにインデックスの指す中身の値でなく“インデックス指定”を渡したいのですがうまく出来ません
こんな場合どういうような考え方があるのでしょう(タプルでインデックス数字を渡す?)

# [[0,0,0,0,0],[[0,0,0,0,0]]
alist = [[0]*5]*2

# 値ではなく箱の位置を意図してるが…
hako = alist[0][3]

def change(b):
b = 3
return

change(hako)

print(alist) # 全部0のまま

change(alist[0][4])

print(alist) # こちらも全部0


実際にはrpgゲームの様々のステートやフラグやそのセーブを管理するクラスに
alist[6][15](王さまと喋ったとか)を1にするといった仕事をさせたいと試行錯誤しています
喋る関数、戦う関数やクラスのとこから発生しだいリストを直で操作すればいいのだけど
State.change(インデックス, 1)みたく一元的にやりたいとクラスを作ってきています
目的で位置の固定されたフラグなのでメニューを開いているかState.menu(1)、State.kingtalked(1)などとしその先のクラスの関数で位置を決め撃ちするのが良いのかななどと困って考えています

1003 名前:勉強スレ誤爆より質問スレに移動 mailto:sage [2024/08/31(土) 14:58:41.77 ID:fwQH707u.net]
設計からおかしいと思ったので質問は取り下げます

ロールプレイングゲームでゲーム状態(シナリオ進捗やパーティーのステータス状態やカーソル位置まで状態の復元可能)の情報は
どう作り、ゲーム中に持つのか、どこからリードやライトするのかについて混乱しています
ステータスマネージャーのようなクラスにこれ記録しといてと各所から投げればいいのかなと考えてるのが今で
逆に難しくなってしまってる、参考に出来そうなpython製ののrpgを見つけられていません

1004 名前:デフォルトの名無しさん mailto:sage [2024/08/31(土) 15:42:25.61 ID:Q7p5BAl/.net]
ゲームプログラムの構造自体に悩んでるように見える
個々のパラメータはカテゴリごとにクラス化して
それらを保持するゲームカーネルクラスを考えてみては?
セーブ・ロードの時は所属クラスを識別可能なラベルを付けて
カーネルが各クラスに分配・収集する
もちろんカーネルは分散構造でもいい

1005 名前:デフォルトの名無しさん mailto:sage [2024/08/31(土) 16:31:20.69 ID:fwQH707u.net]
ありがとう
クラス使い始めてみたばかりで継承など使ってないレベルなので意図の読み取りがあれですが
書いてくれた雰囲気はなんとなく理解しました
例えばシナリオ進捗や済みイベントのフラグ、世界が滅亡するまでの残り時間などの進捗データを保持させるカテゴリーなクラス
アイテムやそのソート順選択状態や現在カーソル位置などを保持させるアイテムGUIデータなカテゴリーのクラス
それらから収集しまとめて保持していてセーブで書きだし、ロード時に各所へセットしてから再開する統合クラス
ラベルで管理とは、辞書型だったりあるいは投げ込むクラス内のステータスごとに対応する関数で配置場所を固定して分けたらいいのかなと…頭が限界ですゆっくり考えてみます



1006 名前:デフォルトの名無しさん mailto:sage [2024/08/31(土) 17:12:20.07 ID:Q7p5BAl/.net]
画面や入力は別のクラスにして
入力クラス→カーネルへのAPI
カーネル→画面クラスへのAPI
に分離した方が見通しよくなると思う

1007 名前:デフォルトの名無しさん [2024/08/31(土) 19:54:44.30 ID:E1cdB3xT.net]
>>990
>>777
>alist = [[0]*5]*2
これやると詰む

1008 名前:デフォルトの名無しさん mailto:sage [2024/08/31(土) 20:12:52.72 ID:fwQH707u.net]
>>995
しばらくなぜだろうと考え込んだ(もう1つのスレの方の指摘とあわせ)
…思い出した、要素のidが同じになって連動しまうんだっけたしかに挙動に困ったことある
もう一回この手の宣言について調べなおし学習しますどうも

1009 名前:デフォルトの名無しさん mailto:sage [2024/09/01(日) 14:38:13.87 ID:MnUgJTxK.net]
元レスの主張をそのままリスペクトすると
ctypes の POINTER が超お薦め

1010 名前:デフォルトの名無しさん mailto:sage [2024/09/01(日) 15:14:54.96 ID:MnUgJTxK.net]
>>990
https://paiza.io/projects/-YhvJ2Iepe9GDgWHdZQ_wQ

import ctypes

def a(p):
p.contents.value = 3

x = [[ctypes.c_uint32(j * 3 + i + 1) for i in range(3)] for j in range(3)]
print(x)
a(ctypes.pointer(x[1][1]))
print(x)

# [[c_uint(1), c_uint(2), c_uint(3)], [c_uint(4), c_uint(5), c_uint(6)], [c_uint(7), c_uint(8), c_uint(9)]]
# [[c_uint(1), c_uint(2), c_uint(3)], [c_uint(4), c_uint(3), c_uint(6)], [c_uint(7), c_uint(8), c_uint(9)]]

1011 名前:デフォルトの名無しさん mailto:sage [2024/09/01(日) 19:02:55.77 ID:tGCM6k6e.net]
>>997
ありがとう
最終的には教えてもらった辞書型でうまく意図した役割をつなぐことに成功しました
「Pythonでゲーム作りますが何か?」というハテナのblogを参考にクラスというもの主体の作り方に触れ
そこのgithubのpython3ソースを見たりしながらタイルチップrpgでないadv寄りな自分のものにあてはめているところでした
ある程度のとこで連載は終わっていて残念、実践的ですごく参考になりました

1012 名前:デフォルトの名無しさん mailto:sage [2024/09/01(日) 20:02:05.87 ID:tGCM6k6e.net]
次スレ
【まず1嫁】くだすれPython(超初心者用) その60
https://mevius.5ch.net/test/read.cgi/tech/1725188284/

スレ立てがNGRockにかかるためテンプレの一部変えました

1013 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 416日 1時間 13分 25秒

1014 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<276KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef