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

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
垢版 |
2023/07/13(木) 18:48:41.56ID:INS7SIu4
当スレに★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(超初心者用) その58
https://mevius.5ch.net/test/read.cgi/tech/1662514433/

次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
2023/07/13(木) 19:23:06.59ID:WmHCeekq
>>1
まず1乙
2023/07/14(金) 12:11:43.42ID:8YyBZiGG
>>1
O2
2023/07/17(月) 18:37:08.11ID:RkwKE2ib
うまいプログラムの構造がさっぱりわかりません…

入門書を終えて早速何か作ってみようと思い、画像を拡張子を変換するソフトを書いています
リーダブルコードにはシンプルであれとか単一責任うんぬんと書いて納得したつもりでしたが、いざ実践しようとするとわからんわからん

「画像を読み込む関数」、「画像を変換する関数」、「画像を保存する関数」
と作成してきましたが、pillowいじくって1、2行なので車輪の再発明どころか傷つけてる感じです
1つの関数にすべて集約してconvertと名付けたら良くないのでしょうか…
5デフォルトの名無しさん
垢版 |
2023/07/17(月) 20:35:13.91ID:G9UN+W0k
>>4
標準ライブラリを見るとわかると思うけど、1, 2行だけの関数は別に悪いことではないし、珍しい事でもない
その関数のテストを書いたり、メンテしたりしてると実感できる
他の人の書いたコードとか特にそうだと思う

ていうか、色々詰め込んだ関数作ってしまってから、リファクタリングというものを知って悩むことも多いよね
最初から書き直した方が早いんじゃねみたいな
2023/07/17(月) 20:36:34.03ID:0uTi8g2P
良いです
2023/07/17(月) 20:49:31.09ID:66zneY7T
convert関数でそれぞれの関数を呼び出せるようにした方が楽になりそう
8デフォルトの名無しさん
垢版 |
2023/07/17(月) 20:52:17.81ID:G9UN+W0k
忘れてたり知らない関数を触ろうとするとき、ドキュメントとかコメントも頼るけど実際たどるのはコードだから一つの関数に盛沢山だったら結構大変
2023/07/17(月) 21:52:54.20ID:0bPr8N4/
極端な話、外からの役割がconvertなら内部はどうなっててもいい
最初から良質なコードは書けなくて当然
いつでもリファクタできる体制でいることが大事かな
10デフォルトの名無しさん
垢版 |
2023/07/18(火) 16:13:32.68ID:fggT64M6
画像処理の勉強してるんなら
pillow(PIL)使ったら負け
11デフォルトの名無しさん
垢版 |
2023/07/18(火) 20:03:13.98ID:C4fQDhf3
病∞∞∞∞!
漠∞∞∞∞∞!
向∞∞∞∞∞∞!
大∞∞∞∞∞∞∞!
度∞∞∞∞∞∞∞∞!
蔵∞∞∞∞∞∞∞∞∞!
2023/07/18(火) 23:01:13.81ID:OPFTyCeA
ご意見ありがとうございます
元画像を消去するかとか保存先はどうするかとか考えてたら複雑になってきたのでクラスを設けました
パスの扱いと画像の操作で2つ役割があるけどもう面倒なのでこのまま突き進みます
未来の修正は未来の自分に託す、ということで…
2023/07/18(火) 23:04:24.96ID:/0siiIN2
今の自分が把握できないコードを
記憶が曖昧になった未来の自分がどうにかできると思うのか…
2023/07/19(水) 11:43:21.48ID:x9es5cRL
成長した場合「だれだこんなバカなコード描いたのは」

成長してない場合「何描いてたか判んね」
2023/07/19(水) 15:09:29.58ID:o1ug+L9a
【まず1嫁】くだすれPython(超初心者用) その58
https://mevius.5ch.net/test/read.cgi/tech/1662514433/
まず前スレ消化を
16デフォルトの名無しさん
垢版 |
2023/07/21(金) 08:51:32.52ID:eg4croCb
pythonは関数が全部外から見られてしまうから
プライベートメソッドにする代わりに関数内関数にして隠すってやり方もある
なお速度は犠牲になる
2023/07/21(金) 09:17:50.55ID:K8DDsRHC
見えるからって使うほうがどうかしてる
リフレクション系がお手軽だからこんだけ周辺ツール充実してんだし
18デフォルトの名無しさん
垢版 |
2023/07/21(金) 09:48:08.75ID:nT1sUe2+
>>16
setter getterでそんなに速度落ちるの……
2023/07/21(金) 14:10:39.48ID:73tgjVOL
>>16
class の中の関数というかプライベートは
hoge() #public
_hoge() #protected
__hoge() #private
みたいなイメージ
2023/07/21(金) 14:11:27.20ID:73tgjVOL
プライベートにしてても観えるって言うのは嬉しい
21デフォルトの名無しさん
垢版 |
2023/07/23(日) 06:27:28.03ID:AFBOcw0H
>>4
そのconvert関数のアイデアは、ファサードパターンとしてよく知られるデザインパターンのひとつ。
まあファサードはわざわざ勉強しなくてもすぐに気がつく小ネタ程度のパターンだけど、他には知っておくと役に立つものがいっぱいある。
22デフォルトの名無しさん
垢版 |
2023/07/24(月) 08:59:12.66ID:hxZ6wCW4
f文字列はpython3.6だから7年前の新機能だぞ
もうなんのことわりも無しに使っていいだろ
2023/07/24(月) 09:28:19.51ID:b4teMFwb
>古いPythonでは動かないから

"{}".format() だってもっと古いPythonだと動かないんじゃね
2023/07/24(月) 16:29:20.89ID:l1YnwZV8
Gストリングが動いた!
2023/07/24(月) 17:49:45.93ID:vRnyNwob
format使ってないわ
26デフォルトの名無しさん
垢版 |
2023/07/26(水) 11:04:30.02ID:62leoIOO
tkinterでウィンドウサイズを取得したいのですがうまくいきません
https://techiedelight.com/compiler/?a1ad

root.geometry("500x300")を実行して、実際に表示されるウィンドウサイズもそのくらいの大きさなのですが
ラベルに表示される内容は"1x1+0+0"となってしまいます
"500x300+<実際の表示位置>"にならないのは何故ですか
2023/07/26(水) 13:02:45.63ID://q3wVd7
>>26
それだとroot.mainloop()に入ってからウィンドウが表示されるから
windowSize = root.geometry() の前に root.update() するか何らかのイベント駆動にすればいい
28デフォルトの名無しさん
垢版 |
2023/07/26(水) 13:29:20.90ID:62leoIOO
>>27
あーそういうことだったんですね!
ありがとうございます!
29デフォルトの名無しさん
垢版 |
2023/07/29(土) 02:15:32.83ID:hQSx1H1s
>>> p=0xf
>>> y=0x8
>>> t=0x1
>>> print(int(p),int(y),int(t))
15 8 1

0xfは16進数なのになぜ16ではないのでしょうか
ということはこの8や1も機械らしく0から数えたものを指している?
int('0xf') + int('0xf')のようなものに32を期待しているのにこれでは30ではないかと困っています
え、そうだったのかという初心者なりの困惑もあります
困らないものなんでしょうか
2023/07/29(土) 02:22:42.13ID:zrA9yudI
>>29
エエエ
そこから?
10進数の一桁の最高値が10でなく9なのを見れば
16進数の1桁の最高値が15なのも納得できるはずだが
31デフォルトの名無しさん
垢版 |
2023/07/29(土) 02:36:31.67ID:hQSx1H1s
半泣きになりながらどこか承服しかねる気持ち😣
for文のiなどはたしかに0から始まることを意識して扱ったりしますが
こういうのは取り扱いやすく思ったままの値をくれるものだとばかり

>>> u=hex(16)
>>> print(type(u))
<class 'str'>
>>> print(u)
0x10

あっ!😡遁走
2023/07/29(土) 02:57:52.60ID:hQSx1H1s
0xf最後の表記なfは16なんだとなぜか思い込んでた
0---9abc----fで桁上がりが16か、まさにそこから?って質問でした失礼しました
2023/07/29(土) 06:50:18.68ID:vYlMcu9f
10進法では10のことを10と書くからね
2023/07/29(土) 11:41:01.32ID:VU0UW7fl
Pythonとは関係ない話だけど
「午前11時45分」
「午後12時45分」
「午後1時45分」
時刻のこれだけは理解に苦しむ
2023/07/29(土) 12:03:10.60ID:voLhTcGw
「午後12時45分」は0時45分表記が自然だけど
「午前11時45分」「午後1時45分」は普通じゃね?こんなのが理解に苦しむ理由が分からんw
2023/07/29(土) 12:20:49.11ID:d4/f4P3b
まさにその二つに挟まれる違和感を言いたかったのであろう。
分かりにくいけどw
2023/07/29(土) 12:25:33.47ID:k4ALHt1m
>>32 >>33
なるほどね、その違和感を補正するには16進数という表記が10進数で書かれてるから対応が分かりづらくなると
じゃあ16進数で書けばいいな
16進数(10進数表現)
⇔ 10進数(16進数表現)

ということで数列(0,1,2,…)をベースに拡張するなら何進数であっても
N進数(10進数表現)
⇔ 10進数(N進数表現)
なのでした
38デフォルトの名無しさん
垢版 |
2023/07/29(土) 12:59:40.05ID:TDos2+q3
>>34-35
0時表記を用いるのは日本だけらしいよ。
調べてみると結構面白い。
https://ja.wikipedia.org/wiki/%E5%8D%88%E5%89%8D%E3%81%A8%E5%8D%88%E5%BE%8C#%E6%99%82%E5%88%BB%E8%A1%A8%E7%8F%BE
39デフォルトの名無しさん
垢版 |
2023/07/29(土) 13:03:23.42ID:wiWA5e07
12時はあっても0時はないって事かな
文字盤的に
2023/07/29(土) 13:29:30.21ID:oiIFGOV1
https://i.imgur.com/ZfBFIAn.png
Googleカレンダー
2023/07/29(土) 14:24:22.66ID:QYz+mhHg
1~12の数字のカテゴリ分けと午前午後のカテゴリ分けが
連動してないってことだろ
2023/07/29(土) 15:08:58.12ID:D+udayEV
>>38 超抜粋
> 日本における現行法令の上で「午前0時」、「午後12時」という2つの言い方が認められている。
> 「午後0時」という言い方は、日本における現行法令に基づく限り、「定義上は存在しない」ということになる。

午前は、0時から12時の13進数
午後は、1時から12時の12進数
ということか
2023/07/29(土) 16:41:06.68ID:zrA9yudI
>>32
ドンマイ
自分は1mが60cmだとずっと思ってて恥をかいたことあり
人間は恥をかいて成長する
44デフォルトの名無しさん
垢版 |
2023/07/30(日) 09:40:35.26ID:azQXcNDB
>>32
逝ってヨシ
2023/07/30(日) 09:42:35.20ID:azQXcNDB
>>39
あいつらインド人を見下してたからな
46デフォルトの名無しさん
垢版 |
2023/07/30(日) 09:45:59.38ID:azQXcNDB
>>42
午前11時59分の1分後は午前12時00分ではなくて午後12時00分だろ
午後11時59分の1分後は午後12時00分ではなくて午前0時00分だろ

午前は、0時から11時の12進数
午後は、12時から11時の12進数
何も間違っていない
47デフォルトの名無しさん
垢版 |
2023/07/30(日) 10:55:47.99ID:xSgp5A2Q
話はもう>>32で終わってるのでもういいです
2023/07/30(日) 12:26:13.13ID:WLopXdVL
>>46
>>38 抜粋
> 子刻(正子)については、午前の欄の最初に「(午前)零時即午後十二字(子刻)」、つまり「午前0時=午後12時」と明記されている。

これだけ混乱させることが出来る日本の時刻表記は最高だぜ
2023/07/31(月) 10:13:39.98ID:8wbRk2dY
午前零時=深夜24時
午後十二時=深夜24時
間違ってないぞ
50デフォルトの名無しさん
垢版 |
2023/08/01(火) 03:09:21.22ID:8wU+ches
あほしかいないねこのしれ
2023/08/01(火) 09:39:07.75ID:3Oe4XjgR
for/whileのelseが罠過ぎる
breakせずにループを抜けた時だけ実行されるって誰が使うんよこんなの
でも認定試験に出るから覚えないといけないんだよなー
52デフォルトの名無しさん
垢版 |
2023/08/01(火) 09:57:49.86ID:NhWjWTcR
if/elseと考え方は同じ気がする
whileの条件がFalseになった一回だけelse内を実行するって事だよね?
53デフォルトの名無しさん
垢版 |
2023/08/01(火) 09:58:26.84ID:wCGQ0oT2
for else 便利よ
54デフォルトの名無しさん
垢版 |
2023/08/01(火) 10:20:49.26ID:wCGQ0oT2
具体的に言うとbreakしたのか最後まで回ったのかがすぐ判る
elseが無いと自分で別にフラグ用意するだろ?その手間が省ける
2023/08/01(火) 12:08:54.90ID:7v326M+p
やっぱ資格のための勉強って身につかんよな
わかるわかる
ばーーー
2023/08/01(火) 14:44:05.71ID://eJ4zUf
do .. while がない方が痛い
余計なifが汚い
2023/08/01(火) 16:01:01.75ID:xsOuXr3u
while True:
なんかする
最後 if True: break
これでええやん
2023/08/01(火) 18:33:15.93ID:9KETYfCe
同等でも構造が明示的でないのが悪
シンタックスシュガーの存在をかんがえてみて
59デフォルトの名無しさん
垢版 |
2023/08/01(火) 21:46:51.73ID:0U4GDggW
for文でイテレーターはnextで次々に呼び出してるのは分かったんだけどlistもindexの最後まで同じような感じで呼び出してるの?
list型の変数をdir()で調べてもそれらしいものが分からなくて気になった。
c言語のfor(i=0;i<100;i++){}みたいなのがないか内部で行われてると思っていい?

ちなみにpythonもcも初心者です。
2023/08/01(火) 23:02:51.36ID:9KETYfCe
>>59
https://docs.python.org/ja/3/library/stdtypes.html?highlight=list#iterator-types
>>> '__iter__' in dir([])
True
2023/08/01(火) 23:30:53.11ID:QWA4KSJy
>>59
pythonのリストは
ja.wikipedia.org/wiki/連結リスト
の片方向リスト
[12,99,37]の内部表現は

[12| ]→[99| ]→[37| ]→[×]

のようになる
リストイテレータが最初にそのリストをを参照してた場合
nextを呼ぶと最初の要素12を返しイテレータ自身はリンクを一つたどって

[99| ]→[37| ]→[×]

を参照するように変わる
次にnextを呼ぶと99を返して[37| ]→[×]を参照するように変わる
イテレータが[×]を参照しているときにnextを呼ぶとStopIteration例外になる
2023/08/02(水) 00:30:09.05ID:aCdkrkAQ
それって言語仕様で規定されてるの?
CPythonがそういう実装なのかな?
2023/08/02(水) 01:00:57.94ID:HBDZrUwb
CPythonの実装はポインタの配列
連結リストとは違うよ
64デフォルトの名無しさん
垢版 |
2023/08/02(水) 09:06:22.08ID:4pI1Wfnv
>>59
Py_OBJECT でぐぐれ
65デフォルトの名無しさん
垢版 |
2023/08/02(水) 22:10:41.51ID:sw1byEhk
>>59
質問した者です。
みなさん、ありがとうございます。
2023/08/04(金) 14:07:19.89ID:XLfSEGlw
質問です
https://sorabatake.jp/12047/
これをやってみたのですが 404 です
死んでますか?
2023/08/06(日) 00:24:31.88ID:A4BaWyM2
tkinterのText()を扱うクラスを作ろうとしたんですが次がわかりません
def __init__(self)内でtext = Text()とすると、別のメンバ関数でtextが見えずエラー
なので、クラス変数(?)として宣言したいのですが・・・どうすれば?
2023/08/06(日) 00:56:31.50ID:RGOCzOZD
self.text = Text()
2023/08/06(日) 03:46:54.50ID:GdBlafvI
初めてリンター入れてみたらこれでもかってくらい指摘入って面食らいました
「そこまで言う意味ある?」って気持ちは湧きつつも、自分は文句言うほどレベル高くないし大人しく従ってますが
ググるとPEP8に従わないやつは糞だとか原理主義なこと言う輩が多いのが気になりました
こういう輩は無視してOKですかね?
2023/08/06(日) 09:00:08.26ID:3Gfiav7J
>>69
村のルールに従わない住人が村八分にされるのと同じで
PyhtonはPEPを信条に運営されているから
PEPに従わないヤツを排除する動きがあるのは当然
それを踏まえてどう行動するかは君次第
2023/08/06(日) 09:14:38.42ID:8NkqV1kX
一緒に仕事したくないという評価になるね
72デフォルトの名無しさん
垢版 |
2023/08/06(日) 09:28:21.16ID:ES7Kp55N
>>67
まずクラス変数とインスタンス変数とローカル変数とグローバル変数の
スコープの区別ついてないんじゃないか?
2023/08/06(日) 09:33:35.30ID:xJ7XeiL9
ああだからRustには原理主義者が多いのか
2023/08/06(日) 10:22:46.43ID:Z6X8w1Qb
ルールがないと混沌化するしイザコザが発生するから
たしかに原理主義的だけど公式で推すのが平和的でスマート
2023/08/06(日) 12:09:14.32ID:FBMr5AjE
>>73
Rustは自由だよ
例えばある企業があるいはあるプロジェクトが各々の独自のスタイルガイドを定めて用いてもよいとなっている

一方でスタイルガイドについて定めのない一般的な場合はRust公式のrustfmtの整形出力フォーマットに従う
標準のスタイルガイドが定まっているプログラミング言語は無用な論争や混乱もなく優れているよ
2023/08/06(日) 12:51:31.59ID:h1JbhEdM
クソみたいなルールを押しつけてくるようになるまでは役に立つよね
2023/08/06(日) 14:22:46.13ID:Aw/BJwB+
自由とかギークを何よりも重視する従来のOSS的価値観から見れば異端
プログラミングそのものが好きなのか、プログラミングはただの道具なのか
価値観の違い
2023/08/06(日) 16:31:41.34ID:UCqPwJaW
条件文とかのコロン無くしてくれ
2023/08/06(日) 20:24:40.81ID:A4BaWyM2
>>68
サンクス
動いたw
2023/08/08(火) 22:18:44.51ID:7qf12Zez
pythonの仮想環境って何で仮想環境って名前にしたの?
単にパス通したりして工夫してるだけで既存システムはそのまま使ってるだけなのに
仮想化って大げさだと思うけど
このネーミングに反対する意見って出なかったの?
81デフォルトの名無しさん
垢版 |
2023/08/09(水) 08:07:56.12ID:aG7casYO
>>80
それは、virtualなんちゃらの歴史を知らなすぎかなあ。
hardware virtualizationだけがvirtualなんちゃらを名乗っていいわけじゃないから。
2023/08/09(水) 09:22:03.38ID:GQHrrnYT
>>80
一つのマシンで複数の環境を切り替えて使える場合、各々の環境は仮想的であると言える
何もおかしなところはない
83デフォルトの名無しさん
垢版 |
2023/08/09(水) 11:48:11.84ID:msOTygD8
単に実環境を切り替えてるだけなら仮想的ではないわな
一部は共有してるけどあたかも独立した環境であるかのように扱える仕組みでも有れば仮想的と言える(Python自体は共有してるけど独立した環境であるかのようには扱えない)

まぁ文句言っても仕方ないのでよくあるPython独特の用語の一つだと思って受け入れるしかない
84デフォルトの名無しさん
垢版 |
2023/08/09(水) 16:19:24.60ID:coMLMuQp
>>80
jail とか vm とか色々なアプローチがあるな
2023/08/09(水) 17:38:23.32ID:ZMLVZrF/
環境変数によって環境を変えて動作を変えることは
単なる環境であって仮想環境たる要素が何もない話と同じかな
2023/08/09(水) 18:33:59.91ID:3n0Peewm
詭弁に近いけどPythonのみの隔離環境とみると
venvもchrootもDockerも同種にみえん?
元になったvirtualenvのサイトには
virtualenv is a tool to create isolated Python environments.
と書いてるし軽いノリで付けた言葉が残ってるだけにもみえる
87デフォルトの名無しさん
垢版 |
2023/08/09(水) 23:14:32.90ID:aG7casYO
仮想メモリとかだって一種の隔離環境なわけだしね。具体的にどんな要件を満たしてたら仮想で、満たしてなかったら仮想じゃないってものじゃない気がするけどな。
他の言語だって仮想環境って言ったりするでしょ。
2023/08/09(水) 23:34:07.10ID:ZMLVZrF/
例えば
実メモリアドレスに対して仮想メモリアドレス
実ディレクトリパスに対して仮想ディレクトリパス

そういう実と仮想がないならば
今回の場合は仮想環境ではなく単なる環境切り替えが正解かも
89デフォルトの名無しさん
垢版 |
2023/08/09(水) 23:38:38.24ID:hnMBPj/l
単に「気分はバーチャル」だっただけみたいだな
2023/08/09(水) 23:40:22.87ID:RCE4XY7X
あなたの拘りはわかったので自分の中で勝手に呼び分けといてください
2023/08/09(水) 23:52:21.35ID:6hLmMtvT
白旗を上げたようだな
2023/08/10(木) 00:24:40.89ID:hoZ6pXSU
好きなあの娘とvirtualenv
93デフォルトの名無しさん
垢版 |
2023/08/10(木) 04:01:48.37ID:GpbD/XFE
context switching
94デフォルトの名無しさん
垢版 |
2023/08/10(木) 07:30:05.04ID:laGIFgwC
virtualイコール仮想的って不十分なんだよね
実質的にはみたいな意味もあって、公式には離婚してないけど実質離婚状態みたいな場合でもvirtual使ったり
他には実質的には内紛みたいな場合だと、virtual civil warみたいに表現するし、virtual civil war訳すときに仮想的な紛争とか訳したら誤訳になる

tPythonのvenvは実行環境ぐらいに捉えてる
95デフォルトの名無しさん
垢版 |
2023/08/10(木) 07:31:31.17ID:laGIFgwC
tは無視して
topコマンドのvirtの話入れようとした痕跡
2023/08/10(木) 08:13:37.00ID:QCsZIB3p
メモ帳に書いてろ
2023/08/11(金) 13:00:27.60ID:oLYpGYcF
virtual insanity(´・ω・`)
98デフォルトの名無しさん
垢版 |
2023/08/11(金) 16:29:22.45ID:RdYRFZwQ
>>94
>tPythonのvenvは実行環境ぐらいに捉えてる
「実質的には」はどこに行ったの?
名目的にもvenvはただの実行環境だからvirtualはそぐわないよね?
2023/08/11(金) 16:36:59.39ID:aKkvsRw0
>>98
ボーグに同化される人生だとよかったね
2023/08/12(土) 03:53:49.69ID:k0rCrKbL
まずvenvが対象にしているのはライブラリ依存関係の環境(==pip)である。
何がvirtualでないenvかを考えるとシステムにインストールしたPythonに紐づくpipかな。
様々な用途の開発で同じグローバルなpipを使うのは問題があるし、Linuxの場合はOSが使ってるから不用意にシステムPythonのpipを使わないほうが良かったりする。

プロジェクトごとに分離した依存関係管理ができるツールの1つとしてvenvがある

独立環境とか分離環境とかがより適切な命名だったのかもしれないけど、業界の慣習的な命名に後からとやかく言ってもしょうがないかもね
101デフォルトの名無しさん
垢版 |
2023/08/12(土) 09:49:08.27ID:sI+BUdl8
>>100
>業界の慣習的な命名に後からとやかく言ってもしょうがないかもね
python業界だけの特殊な慣習だぞ
102デフォルトの名無しさん
垢版 |
2023/08/12(土) 09:53:18.81ID:8hMMeSIO
グローバルのパッケージマネージャ使っても本来何の問題もない
それこそ業界の慣習

依存関係管理の単位がどのパッケージマネージャの実体を使うかに依存してるほうがおかしい
103デフォルトの名無しさん
垢版 |
2023/08/12(土) 10:43:20.85ID:Wv+E7qVe
パッケージマネージャーの機能不足を別のツールで補ってるだけだからな
他の言語で言うところのプロジェクトと目的は同じ
2023/08/12(土) 18:57:50.81ID:ghRTbMM+
venvってpython本体やライブラリをまるっとダウンロードして格納してるって知ってびっくりした。
一見ものすごい無駄に思えるけど、こういう単純なやり方が結局ベストってことだよね?
そういうのに耐えられるくらい仕様がシンプルかつスリムだというのも地味にpythonの強みなのかな。
他の言語で同じことやろうとしても簡単にはいかないよね。
105デフォルトの名無しさん
垢版 |
2023/08/12(土) 21:40:06.74ID:xBmGN9uj
>>104
本体や標準ライブラリはダウンロードしないぞ
どこ見てんだ?
106デフォルトの名無しさん
垢版 |
2023/08/12(土) 22:16:39.21ID:OOUfgbQz
「悪しき命名は悪しき設計の表れ」だと再認識させてくれる良い事例
2023/08/12(土) 22:17:29.25ID:ghRTbMM+
>>105
venvのScriptsにpython.exe含め色々な実行体があるけど、これって本体じゃないのか。
たしかにdll類がどこにも見当たらない。dllは本体インストール先のやつを使うのかな?
てことはこのpython.exeは多田野ラッパー?
2023/08/12(土) 22:18:04.31ID:ghRTbMM+
×多田野
◯ただの
2023/08/12(土) 22:31:53.13ID:Y4lXTv//
エイヨー 多田野・ザ・ラッパー イン ザ ハウス
110デフォルトの名無しさん
垢版 |
2023/08/12(土) 22:39:35.25ID:du+ixfhU
>>107
python.exeはラッパーじゃなくてランチャーだよ
111デフォルトの名無しさん
垢版 |
2023/08/12(土) 23:17:45.90ID:TCuliBLR
TDN
2023/08/12(土) 23:33:34.31ID:0foAJdD0
普段どこに書いてるんだよ(白目
2023/08/12(土) 23:58:48.55ID:ghRTbMM+
あーなんか実験したらわかってきました。
ライブラリはパッケージマネージャ(pipやpoetryなど)のキャッシュを探しに行き
見つかればそれをコピー、なければダウンロードするわけですね。
賢いっすね。てか当たり前か。
ありがとうございました
2023/08/13(日) 00:16:53.24ID:JPaUrSh0
>>113
> 見つかればそれをコピー、なければダウンロードするわけですね。

コピーもダウンロードもしない。
モジュール検索パス(sys.path)から見つかれば実行されてなければエラーになるだけ
2023/08/13(日) 00:59:32.91ID:zhWOv+6v
2023/08/13(日) 06:17:20.53ID:asUkEDOo
あヤバイ眠い
2023/08/13(日) 09:56:42.40ID:Ie1UHHws
コンテナ化が進めばvenvはなくなっていくのかな(´・ω・`)
2023/08/13(日) 11:51:50.00ID:mxfdwtiA
>>102
これ
119デフォルトの名無しさん
垢版 |
2023/08/13(日) 21:55:22.03ID:R7jJ+sOg
>>117
なくならない
Dockerに限らずだけど、コンテナ環境って結構複雑だし
2023/08/14(月) 02:18:17.14ID:N8bNxgMD
日本人が作った、多言語バージョンマネージャーのanyenv なら、20言語ぐらい使える。
同様のツールに、asdf もある

Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, jlenv, luaenv
nodenv, phpenv, plenv, pyenv, rbenv
sbtenv, scalaenv, swiftenv, tfenv

echo $(anyenv root)
/home/ユーザー名/.anyenv

echo $(rbenv root)
echo "$RBENV_ROOT"
/home/ユーザー名/.anyenv/envs/rbenv

echo $(nodenv root)
echo "$NODENV_ROOT"
/home/ユーザー名/.anyenv/envs/nodenv
121デフォルトの名無しさん
垢版 |
2023/08/14(月) 17:27:05.76ID:l1J1W0zj
site = '''\
外務省ホームページ
G7広島首脳コミュニケ
地域情勢
53.\
'''

uri = "htt" + "ps://www.mofa.go.jp/mofaj/files/100507034.pdf#page=35"

print( site.replace("\n", " > "), uri, sep="\n" )
122デフォルトの名無しさん
垢版 |
2023/08/15(火) 15:43:58.31ID:j64iNkIY
>>117
わざわざvenvで済むものをコンテナにするのはないかなー。
必要なディスク容量も違うし、コンテナ環境のメンテの方がvenvのメンテより面倒だし。
libなんちゃらのライブラリの依存がとんでもない場合(CUDA使って機械学習とか)以外はあまり使おうという気にならないかな。
2023/08/15(火) 18:53:58.98ID:cVYdgkhy
(メ▼(エ)▼)y─┛~~
124デフォルトの名無しさん
垢版 |
2023/08/20(日) 18:14:15.02ID:wlL4UoLb
lambdaの方がdefで定義するより爆速じゃね
そうするとdef func()じゃなくてfunc = lambdaって書くデメリット何?
2023/08/20(日) 19:20:36.30ID:qlg/Xyh9
defもlambdaも毎回評価しないし速度差あったとして気になる?
どちらかというと中途半端なlambdaは撲滅してほしい
表現力低いのに無理やり書いてるコードみると泣ける
2023/08/20(日) 20:43:30.19ID:5jzp3rX7
うわrichのトレースバック(エラー表示)めちゃ便利じゃんなんで教えてくれなかった
必死にすべての使った変数を表示する方法とか調べたりこういうところで聞いたりして諦め
確認用のprint設置を乱発してた(debug書式のは可読性的に邪魔でやめた)
たどり着いたのは詳細なエラー表示でflake8で「まあこれでいいか…解決には半歩も助けにならなかったな」とかやってたが
今なんとなくrichの前見かけた気になってたこれを設定したら舘ひろしもびっくり見えちゃうんですじゃん
https://rich.readthedocs.io/en/latest/traceback.html
https://rich.readthedocs.io/en/latest/reference/traceback.html#rich.traceback.install


似たような初心者のために書いておきます!
他にもこういったTUI環境でも使える必携補助装置があれば、ぜひ教えてください
127デフォルトの名無しさん
垢版 |
2023/08/23(水) 11:48:24.69ID:89z/H8g7
さてはさぷーの閲覧者か
2023/08/27(日) 05:45:31.37ID:pq1ziXgi
matplotlibのArtistAnimationだけど、なぜか一番最初に全グラフを合成したものが表示されてしまう
これって仕様ですかね?

Python 3.10
matplotlib 3.7.2
2023/08/27(日) 10:07:09.77ID:/9UKR3Fh
Pythonでコラボタートルの勉強をしてるのてすがこの図形を描くのにはどうすれぱいいのでしょうか?まったく分からないです…


https://i.imgur.com/xBVeKkU.jpg
2023/08/27(日) 11:31:37.21ID:NL8Wxbbf
中心と外周に接する小さい多角形がある
2023/08/27(日) 13:46:30.52ID:20Uxh6fU
うわーまったくわからねえと思ったが
タートルってあれだよな学習用のとか考えてて思い付いたのは
図面1も2も亀さんを片側に曲がりながら円になって戻ってくるようにすりゃいいイメージだよな
指定した角形数で360度まわってくればいいから360割るいくつかでその角度ずつ曲がらせればよいのでは!
起点に戻ったら角度ずらしてまたやるんだろうけどそのずらしはちょっとわかんない!
2023/08/27(日) 13:57:32.74ID:20Uxh6fU
ずらしは中心から伸びてる線の分割数10の角度だな(たぶん)…
算数レベルもあぶない自分の考えを書き出してみました識者の意見求む
勉強してるなら自分で考えなさいと言いたい、これが出来る前フリとかした状態だろうしちょっと考えればって状況のはず
133デフォルトの名無しさん
垢版 |
2023/08/27(日) 15:15:00.55ID:Pba1j/J0
依存性の注入というのがいまだにわからんのだけど
なんの本買ったらいいの?
2023/08/29(火) 00:18:23.07ID:BTF5pWeT
依存性の注入は、Ruby では出てこない

だって、Duck Typing だから。
メソッド名が同じだけで良いから

例えば、enumerable に対応するには、each メソッドがあれば良いだけ。
インスタンスにeachがあれば、enumerableのすべてのメソッドが使える

依存性の注入って言ってる香具師は、C# だけでしょ。
動的言語にあるとは思えない
2023/08/29(火) 00:24:18.34ID:QCf3nQNA
注入ってなんだよダサい
2023/08/29(火) 00:29:36.10ID:vNr56RL1
外から入れてるだけやん
137デフォルトの名無しさん
垢版 |
2023/08/29(火) 00:52:12.38ID:Bbad6Hde
LOVE注入~❤
2023/08/29(火) 00:57:13.57ID:ohKP7npH
Rubyは読みにくいPerlほどじゃないけど
2023/08/29(火) 02:38:46.62ID:Ye/j7w6x
あれ? Pythonのスレだよね?
140デフォルトの名無しさん
垢版 |
2023/08/29(火) 16:28:40.02ID:ud/hz0aH
プログラム技術の板ですが?
2023/08/29(火) 17:12:15.08ID:M8dDnwfH
>>133
DIって話には出るが
ろくな解説書ないな
Androidのdaggerとかhiltとか探してみたが
DI自体についてはすでに知ってる前提の奴ばっかりだった
2023/08/29(火) 18:56:07.99ID:90IKlLvh
詳しいのはmark seemannの本
日本語では出てないかもしれない
2023/08/30(水) 01:06:43.85ID:B7CG/4xg
Rubyでは~
ここはどこだよ
2023/08/30(水) 12:44:52.95ID:B/z3JA/V
DIって車と車の部品の関係でよく例えられるけど、これだけならオブジェクト指向プログラミングでは普通なこと気がするんやが、なんか特別に勉強する必要があるんかな(´・ω・`)
145デフォルトの名無しさん
垢版 |
2023/08/30(水) 14:46:05.92ID:PiV0QNDQ
超絶初心者です、Python出来る人でもネットに転がってるコードとかコピペして
ちょちょっと編集したりする事あるんですか?
2023/08/30(水) 14:48:35.55ID:s6yXhO48
それがメインの仕事だよ
147デフォルトの名無しさん
垢版 |
2023/08/30(水) 15:00:35.78ID:PiV0QNDQ
>>146
回答頂きありがとうございます。
そうなんですね〜
2023/08/30(水) 15:24:17.79ID:zHni/Vbc
慣れて覚えてれば空で描けるが
以前に描いた自分のコードからコピペることが多いな
2023/08/30(水) 16:01:29.20ID:6Nf/ac+O
指先から紡ぎ出すようになるのに何年くらいかかりますか
150デフォルトの名無しさん
垢版 |
2023/08/30(水) 18:16:08.49ID:ZaG6EIxJ
何年やってもできない人はずっとコピペだよ
逆にできる人は1年目から空で書ける
2023/08/30(水) 18:37:48.49ID:UqoqsUW1
aiに書いてもらって確認修正して終わり
2023/08/31(木) 01:31:57.23ID:X47G4wt5
>>144
楽に逸脱行為できる仕組みを提供してくれてるんだけど
リフレクションが透けてキモいし一般化する必要はなかったよね
そこまでメタなものじゃなくて目的に直結した便利機能があれば十分
2023/08/31(木) 09:54:17.47ID:DND1fd+0
リフレクションは関係ない
154デフォルトの名無しさん
垢版 |
2023/09/01(金) 12:58:49.16ID:cc3ovi53
フロントエンドエンジニアのフリーランス平均年収867万円!98%がリモート可案件!
業界別ではSIer 950万円、SaaS 921万円|SOKUDAN調査レポート
一般的な平均年収599万円よりも、+268万円高い。全案件の56%が年収800万円超

フリーランス・複業・副業の求人マッチングサービス『SOKUDAN(ソクダン)』を運営する、
CAMELORS株式会社は、フリーランスWebディレクターの平均年収・時給について調査した
フリーランスフロントエンドエンジニアの56%が年収800万円超
・一般的な平均年収599万円よりも、フリーランスの方が867万円と+268万円高い
・週3日以下の案件が約62%、リモート可能な案件は98%
・案件が多い業界は、SaaS、Web制作、システムインテグレータ
・求められるスキルはJavaScript、React.js・Next.js、Vue.js・Nuxt.js、Typescript
・平均年収867万円、平均時給4,303円
・中央値年収819万円、中央値時給4,063円
・年収800万円以上が56%を占める
・年収1,000万円以上が22%を占める
・年収600万円以下よりも年収1,200万円以上の方が多い
一般的なフロントエンドエンジニアの平均年収 「599万円(求人ボックス・給料ナビ)」
2023/09/01(金) 14:17:16.98ID:8Q6o7DlX
!omikuji の日でござる
2023/09/04(月) 01:06:34.09ID:HnNo1tWR
以下の様なスクリプトがあります

class Student:
 def __init__(self, id, name):
  self.id = id
  self.name = name

def main():
 s1 = Student(1, "Mike")
 print(s1.name)
 return 0

if __name__ == '__main__':
 exit(main())

ここで、Studentクラスの__init__内に以下のような処理を入れて、
自インスタンス名がs1ならself.nameを"John Doe"に
変更させたいと思ってます

  if 自インスタンス名 == "s1":
   self.name = "John Doe"

インスタンス側で、自インスタンス名を取得する方法がありますでしょうか

クラス変数にinstancenameみたいなものを追加しようかと思いましたが
わざわざインスタンス名と同じ値を設定しなければならないというのもイマイチに思ってます
2023/09/04(月) 01:20:29.31ID:svBXgOiP
>>156
無理
s1 = Student(1, "Mike")の行は右辺から評価されるわけでinitが実行されるタイミングでその処理結果を代入する先のインスタンス変数名を把握しようがない
2023/09/04(月) 01:34:16.67ID:HnNo1tWR
>>157
評価の順番で無理ですか
分かりやすい説明ありがとうございました

__init__ではなく、別のタイミングで呼ばれるクラスメソッドでは方法はあるのでしょうか
たとえばクラスに
  def check():
   if 自インスタンス名 == "s1":
    self.name = "John Doe"
といったメソッドを追加して、メイン側では
 s1 = Student(1, "Mike")
 s1.check()
みたいにする等して、インスタンス作成後であれば取得することは可能なのでしょうか
2023/09/04(月) 01:34:28.71ID:DzJnyl6r
あってるけどアサイン後ならわかるのかとミスリードせん?
コンテキスト側からは追えないこともないけども
2023/09/04(月) 01:35:47.98ID:DzJnyl6r
>>158
煩雑なだけだからできないと考えた方がいい
2023/09/04(月) 01:39:30.34ID:DzJnyl6r
s3 = s2 = s1 = Student(1, "Mike")
としたときどうすんのって話もある
2023/09/04(月) 02:05:01.07ID:HnNo1tWR
>>160
なるほど
いろいろ回答ありがとうございました

処理全体を見直そうと思います
2023/09/04(月) 21:22:59.99ID:nWTc2hmH
pip searchってもう使えなくてpypi.org見れって言ってくるんだけど、これってふざけてませんか?
CUI主義の人はこれだと困るじゃないですか
なんでこんな仕様変更したんだろう
164デフォルトの名無しさん
垢版 |
2023/09/04(月) 21:34:36.33ID:eS6UNx4I
>>163
負荷に耐えられないから
https://status.python.org/incidents/grk0k7sz6zkp
2023/09/05(火) 20:08:47.70ID:rogYYWHX
同じ名前なのにこいつはglobalでこいつはlocalですよ
そんなつもりじゃないですよね?って教えてくれる
terminalとvimでの環境でも使えるなにかってありますか
エラー報告器というのか、ハイライトというのか
なんだなんだどこかの仕掛けが反映されてないぞ、二つの別のリストがあるのではという状況になってます
2023/09/05(火) 20:20:30.09ID:xROyc3eI
vim-lspで好きなランゲージサーバと連携したらつよつよにはなるけど
globalつかうコードを避ける、使うのはアクセサだけにするなど自制するのがシンプル
2023/09/05(火) 20:55:48.31ID:rogYYWHX
vim-lspやランゲージサーバーを知らなかったので調べてみますありがとう
なかなかシンプルには頭の中からしてまとまらなくて…頑張ってみますw
2023/09/06(水) 13:26:44.71ID:ROxN7tKN
vscodeとpycharmがただで使えるのにvimで頑張るのか(´・ω・`)
2023/09/06(水) 14:02:07.39ID:pyg074gJ
>>168
スマホのtermux上で遊んでるだけなので、楽しんでたプログラムが思いがけず大きくなりました
linuxディストリビューションを入れることも可能なのでvscodeも試してみたことはあります
スマホ画面ではそう使いやすくは無く、初心者なのでなおさら苦悩が増えました
といった理由でterminalでvimとなってます

さっきpluginとしてvim-lspとPlug 'mattn/vim-lsp-settings'を入れてみました
黄色や赤でスペースがなってない!などと自分のコードをド派手に隠します…
printと書くとポップアップで自分には参考にならないpython docsと似た仕様をあらわす英文がでます
いまのところ使いこなせそうにありませんw
170デフォルトの名無しさん
垢版 |
2023/09/07(木) 12:33:06.77ID:iG8XE85c
yahooの再設定で生年月日わからんから生年月日を検索するツールを作りたいん
プログラム知識ないからAIで作らせたいん
どうすればいいんですか?
2023/09/07(木) 12:46:06.68ID:KtKJhS7/
AIの知識があるなら
プログラムもAIで作ればいいんじゃないかな
172デフォルトの名無しさん
垢版 |
2023/09/07(木) 13:00:46.71ID:yf0XBZB8
馬鹿には無理
2023/09/07(木) 13:07:12.08ID:CDCme1Du
総当たりじゃ解けないようになってるはず
サポートに問い合わせろ
174デフォルトの名無しさん
垢版 |
2023/09/07(木) 13:14:06.06ID:iG8XE85c
問い合わせても「お答えできない」としか返ってこないから意味ないん
2023/09/08(金) 17:42:37.49ID:NjDvTDdV
宿題にはお答え出来ません
宿題と判らないように質問してください
176デフォルトの名無しさん
垢版 |
2023/09/10(日) 07:30:31.81ID:hps7g+0s
30代Pythonバカチョン男は強姦魔の犯罪者です!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
177デフォルトの名無しさん
垢版 |
2023/09/10(日) 07:34:36.02ID:hps7g+0s
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
178デフォルトの名無しさん
垢版 |
2023/09/10(日) 07:34:51.97ID:hps7g+0s
30代Pythonバカチョン男は強姦魔の犯罪者です!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
2023/09/11(月) 03:48:59.40ID:WUmnzUS8
スレタイにふさわしい質問ですがryeってのどうですか?
Pythonバージョンの切り替えとかほぼしないしpoetryで不満ないんですが
この手のツールはあんまりフラフラ変えないほうがいいですよね?
180デフォルトの名無しさん
垢版 |
2023/09/11(月) 09:49:56.20ID:lXcI/Ajd
なにそれおいしいの
2023/09/11(月) 12:23:17.90ID:Uj3i56F3
Rustで作られた
Pythonの環境管理・installなどのツールか
venvなどよりryeおすすめって記事をよく見る
2023/09/11(月) 23:35:23.83ID:VwcUnZnc
日本人が作った、多言語バージョンマネージャーのanyenv がある。
同様のツールに、asdf もある。
他には、Docker もある

Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, jlenv, luaenv
nodenv, phpenv, plenv, pyenv, rbenv
sbtenv, scalaenv, swiftenv, tfenv
183デフォルトの名無しさん
垢版 |
2023/09/12(火) 15:27:42.12ID:RGjhGQKs
30代Pythonバカチョン男は強姦魔の犯罪者です!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
そしてスレ主がその極悪非道の強姦魔バカチョンです!
Python使う奴はチョンが多いです。
しかも北朝鮮人ですから犯罪なんでもやります。
必ず家族の戸籍を確認しましょう!
2023/09/13(水) 06:46:42.57ID:5G1pYC4E
>>183
恥ずかしくない?
185デフォルトの名無しさん
垢版 |
2023/09/13(水) 14:22:45.91ID:JmOEsGWT
漏れの読み
>>183 == >>184
2023/09/13(水) 14:24:03.36ID:7K6lTl9W
pythonは俺が作った最強の系が多すぎて困る
豪語するのはデファクトになってからにしてくれ
2023/09/13(水) 15:56:15.75ID:JmOEsGWT
Rustのことですねわかります
2023/09/13(水) 16:01:01.97ID:GC1GSAPg
デファクト
2023/09/16(土) 16:53:10.39ID:EeYw60jk
vscodeのプラグイン分割されたせいか動きがおかしいしやつがいくつがあるな(´・ω・`)
2023/09/16(土) 17:12:10.72ID:OSqYfQ8W
分割ってなに
2023/09/23(土) 09:00:04.64ID:FVqyQUn9
aleにエラー警告など出してもらうことにしてみたらすっきりして満足なのですが
警告内容がステータスラインとコード中のふたつ表示され邪魔で
コードのなかには赤とか青のハイライトだけでステータスに表示されてればよいなと思いました
どのように設定すればよいですか

自分の.vimrcのlspに関係する部分

call plug#begin('~/.vim/plugged')
Plug 'prabirshrestha/vim-lsp' Plug 'mattn/vim-lsp-settings'
Plug 'w0rp/ale' call plug#end()
if executable('pyls') au User lsp_setup call lsp#register_server({
\ 'name': 'pyls', \ 'cmd': {server_info->['pyls']}, \ 'whitelist': ['python'], \ }) endif
" vim-lsp left signcolmn off
setlocal signcolumn=no let g:lsp_diagnostics_enabled = 0 " 警告やエラーの表示はALEに任
せるのでOFFにする

" my ale setting let g:ale_linters = { \ 'python': ['flake8', 'mypy'], \}
2023/09/23(土) 09:02:37.55ID:FVqyQUn9
あ、めちゃくちゃになったすみません(直せない)
193デフォルトの名無しさん
垢版 |
2023/09/28(木) 12:15:19.06ID:jwkusxvg
pywebview から webview2 で表示させた中身は、どうやったらスクレイピングできますか?
2023/09/28(木) 13:47:29.57ID:emnRgXWb
window.get_elementsでいけそう
https://pywebview.flowrl.com/examples/get_elements.html
2023/09/29(金) 15:15:41.90ID:+VVm/6J4
pythonは門外漢なのですがコードを読めずに困ってます
dp=[[0,0] for _ in range(N)]
dp[0]=[1,1]
これは何を表していますか?
dp[i][0]%=MODとか出てくるからdp[i][j]は数値だと思うのです
2023/09/29(金) 15:20:33.59ID:K+K2fBee
dp=[]
for _ in range(N):
dp.append([0,0])
dp[0]=[1,1]
2023/09/29(金) 15:27:47.40ID:Dt5xSUqE
全ての要素が [0,0] である N-1 個のリスト dp を作成
dp の最初の要素に [1,1] を代入
2023/09/29(金) 15:32:53.86ID:K+K2fBee
ChatGPTに聞いたらいい感じに答えてくれた
2023/09/29(金) 15:57:49.40ID:DCwFF8Wu
for文の変数が_ってこの変数自体を指定することはありませんよってポーズ?
2023/09/29(金) 18:51:51.98ID:UcDRzO48
ふつうは言語機構つかって
[[0,0]] * N
と書くけど知らないと魔法にみえるからありなのか
2023/09/29(金) 19:02:04.86ID:NAigsGqx
[[0,0]] * Nはだめだよ
2023/09/29(金) 19:54:46.54ID:DCwFF8Wu
>>201
[0,0]のリストが同じIDでN個入ったリストができんだよね……
2023/09/29(金) 20:35:11.07ID:UcDRzO48
たしかに
dp[0]=[1,1]
でしか操作しないならタプルにしてるだろうし撤回するわ
2023/09/29(金) 20:51:40.89ID:w4soHy15
同じ実体を指してるリストが欲しいケースってそんなにあるんだろうか
簡便な記法をレアな用途に当ててしまってる気が
205デフォルトの名無しさん
垢版 |
2023/09/30(土) 10:48:48.49ID:+WV6fTrG
>>195
N=3だとすると
dp=[[1,1], [0,0], [0,0]]
にしている
206195
垢版 |
2023/09/30(土) 13:38:46.89ID:rp4pJ3sH
ありがとうございます。理解できました
2023/10/04(水) 17:52:26.06ID:+BdHLUL4
webアプリを作ろうと思って、ローカルの環境でsqlite3を使って作ったDBとflaskとを組み合わせて開発しました。

しかし、webに公開することを考えると、mysqliteのような簡易なDBではなくちゃんとmysqlを勉強してそちらを使うように作り変えるべきでしょうか?
2023/10/04(水) 17:54:35.82ID:ilZ5d6ID
はいそうなります
2023/10/04(水) 18:42:00.03ID:sTQvT6wD
アクセス数が少ないなら何の問題もない
210デフォルトの名無しさん
垢版 |
2023/10/05(木) 17:06:48.85ID:WXXGTjkD
>>209
同意だけどアクセス権とかどうすんのかな
2023/10/05(木) 17:57:28.56ID:EEXxhJ5S
読みだけならアクセス数がそれなりに多くても平気
不特定多数が同時に書き込んだり
書き込み時に読み込みがブロックされると困る仕組みならサーバー型のデータベース使う
212デフォルトの名無しさん
垢版 |
2023/10/06(金) 23:25:50.21ID:tE7CLicd
何度質問してもOKだってさ
おまいら良かったな
https://www.youtube.com/watch?v=l-qk1FX1Hw0
213あぼーん
垢版 |
NGNG
あぼーん
2023/10/16(月) 16:21:27.52ID:spRcfSPO
>>213
とりあえずやる価値はありそう
2023/10/16(月) 19:47:27.54ID:X2HEt2zW
>>213
グロ
216デフォルトの名無しさん
垢版 |
2023/10/19(木) 06:24:23.38ID:tPsc79zm
# >>121
title = "第124回『「韓国徴用工問題」動かぬ証拠で一気に終結』【「日本製」普及Ch】"

uri = "htt" + "ps://www.youtube.com/watch?v=iu4jdRIKxUU&list=PLm1mQfWiRy2LycHWplMELJtgLje8YaeHL"

print( title, uri, sep="\n" )
2023/10/23(月) 15:26:08.05ID:Xp0vEwce
def wrapper_func(*args, **kwargs):
__#何かの処理
__return func(*args, **kwargs)

def func(aaa, bbb=None, ccc='CCC'):
__pass

例えばですが、上記のようなラッパー関数を作ったとき、元の関数へ引数をそのまま渡すために *args, **kwargs とか使うと思いますが、
この書き方だとVSCodeとかでwrap_funcを使用するコードを書くときのポップアップの引数表示とか補完で元の引数名が出てきません。
docstringとか書けば説明欄は表示させられますが、*args, **kwargsを使いながらも、元の関数の引数名を補完や表示させることってできないでしょうか?
ちなみに、デコレータとしては使いません。
2023/10/23(月) 15:26:19.52ID:Xp0vEwce
def wrapper_func(*args, **kwargs):
__#何かの処理
__return func(*args, **kwargs)

def func(aaa, bbb=None, ccc='CCC'):
__pass

例えばですが、上記のようなラッパー関数を作ったとき、元の関数へ引数をそのまま渡すために *args, **kwargs とか使うと思いますが、
この書き方だとVSCodeとかでwrap_funcを使用するコードを書くときのポップアップの引数表示とか補完で元の引数名が出てきません。
docstringとか書けば説明欄は表示させられますが、*args, **kwargsを使いながらも、元の関数の引数名を補完や表示させることってできないでしょうか?
ちなみに、デコレータとしては使いません。
2023/10/23(月) 16:57:56.53ID:IbZgkAts
その例だと何もしなくても普通にwrapした関数の引数が表示される
2023/10/23(月) 19:08:52.64ID:xU3WfdkE
http://imgur.com/woxUIFm.png
http://imgur.com/fGFQYAZ.png
うーん、ヒントでは *args **kwargs としか表示されないですね…
何か別の拡張機能が必要ですか?
2023/10/23(月) 19:24:37.41ID:CJYAK+hs
ぜんぜんためしてないけど
wrapper_funcの引数がreturn func以外で使用していないところまで分かるってことか
なかなかやね
222デフォルトの名無しさん
垢版 |
2023/10/25(水) 11:33:57.19ID:9oOV85NF
さすがに無理では
2023/10/27(金) 12:37:21.43ID:Zw05fGjv
スクレイピングしたデータをエクセルブックに保存しようとしたら失敗した上、エクセルブックのサイズが0になり開けなくなりました。
また以前のデータも消去されてしまいました。
復元する方法はありませんか?
2023/10/27(金) 15:12:16.53ID:IOqSzuPQ
https://i.imgur.com/kAj54cT.jpg
2023/10/27(金) 15:20:37.20ID:tyc9gzgR
データ直接いじるならバックアップは基本だろ
2023/10/28(土) 14:10:34.16ID:1iiYkiVL
果たして本当に保存に失敗したのだろうか
同じ名前で空のワークブックを造ってしまって
そのまま保存しちゃったんじゃね
2023/10/30(月) 01:51:52.74ID:o+4A2fED
mode=wとかで開いて上書きしちゃうのはあるあるミスだろうね
2023/10/30(月) 02:10:56.85ID:ciWypUeS
スクレイピングって要は他人が一生懸命作ったWebコンテンツをごっそりデータとして盗む泥棒行為だろ?
Pythonをそんな用途に使うんじゃない
229デフォルトの名無しさん
垢版 |
2023/10/30(月) 14:29:49.94ID:3NOS0Vec
chatGPTとかの学習ネタはWEBスクレイピングだね
画像も転がってるし、使える。
2023/10/31(火) 09:01:51.83ID:vhpvFizQ
Googleとかのクローラーもスクレイピングの一種だよね
231デフォルトの名無しさん
垢版 |
2023/11/09(木) 04:33:46.02ID:/NCaVTst
# >>216
# 反日教育は嘘ですよ〜〜2023年9月13日 フリージャーナリストの朴さんの経験。|채널fujichan
"".join("h_ttp_s://_www_.you_tube.co_m/wat_ch?_v=v_M1v_YrsA3_Ko".split("_"))
232デフォルトの名無しさん
垢版 |
2023/11/11(土) 22:01:06.26ID:VAcD6vEV
vscodeで.htmlファイルの中に書くpythonのコードを、.pyファイルの中に書かれたpythonのコードと同じ規則で色付けしてもらうにはどうすればいいですか?
できれば<py-script></py-script>で囲われた部分だけを色付けしたいです。
2023/11/12(日) 00:39:55.84ID:hUOoaneU
Ruby では、埋め込みRuby・ERB で、HTML ファイルを書く。
<% 〜 %>, <%= 〜 %> を使って、HTML内にRubyの構文を書く

<% price = 2500 * 1.05 %>
<p>
本の値段は<%= price %>円です。
</p>

ERBの実装にもよるが、< > & " など、
HTMLの特殊文字がエスケープされるものと、されないものがある

<%= price %> これだけでエスケープされるものと、
<%=h price %> エスケープするのに、h が必要なものがある

ファイル名は、a.html.erb の形式で、
VSCode に、ERBに対応する様々な拡張機能がある
234デフォルトの名無しさん
垢版 |
2023/11/17(金) 23:10:50.43ID:AvZ1Z1pY
~フルパス~\python.exe ~.py
だときちんと動くのに
c:\windows\py.exe ~.py
だと
No suitable Python runtime found
ってエラーになるのはなんで?
2023/11/17(金) 23:49:28.27ID:i6SiN6NQ
>>234
py とだけ打ち込んだらなんて表示される?
2023/11/20(月) 11:08:50.44ID:AlmeLY1B
Python 3.11.6ではエラーにならない
2023/11/20(月) 16:54:24.00ID:dslXur7U
javascriptのオブジェクトの分割代入の表記って今後Pythonにも実装される可能性ってあるの?
obj={aaa, bbb, ccc, ddd}
{aaa, bbb} = obj (必要なキーだけ代入)

あと変数名とオブジェクトのキー名が同じ場合にキー名を省略できるのとか。

両方さわってると、「あーこの書き方できないのかー」って思うことが多く。
2023/11/20(月) 19:02:06.24ID:e16PnsSi
Pythonの辞書のキーは文字列に特化してなくて
JSONみたいに引用符は省略できないから飛躍が大きい気がする
リフレクションでいろいろ丸見えなので実現するのは容易
239デフォルトの名無しさん
垢版 |
2023/11/23(木) 10:27:41.94ID:mHKDjsht
pythonの黒魔術覚えろ
2023/11/27(月) 04:49:00.51ID:tnBtjkwo
どちらの方がいいでしょうか?

https://i.imgur.com/7Eg1hsH.png
2023/11/27(月) 07:08:59.26ID:dgaEQ1dv
密結合・疎結合の話なら右
2023/11/27(月) 07:13:59.21ID:4HQtKID3
どう考えても右
左は関数の仕様変更に他の関数が引っ張られてスパゲッティになる
2023/11/27(月) 10:26:14.60ID:1pI4Xk/b
矢印の種類と意味が左と右で違うのが気になるがどちらの構造がいいかは状況次第だから処理内容を考慮せずに判断すべきではないよ
2023/11/27(月) 12:48:17.49ID:R9It0cfW
処理内容次第の判断基準をざっくり言えば
関数A,B,Cがメイン関数で実行する抽象度として揃ってるなら右
抽象度が関数A > B > Cなら左
2023/11/27(月) 17:51:48.30ID:tnBtjkwo
ありがとうございます
246デフォルトの名無しさん
垢版 |
2023/11/27(月) 17:52:20.22ID:ADnr9f8E
>>244
もうちょっと易しくかいてぅれてもいいよ
2023/11/27(月) 19:37:34.58ID:UlzV0bXg
初心者だしBでやってるけどAってどんなやつなんだBASICのような感じなのかな?
2023/11/27(月) 22:20:18.48ID:tnBtjkwo
こんなん 各2ヶ月かかった
ttps://dpaste.com/2EZ82ME9V
ttps://dpaste.com/2P2SFYGYL
2023/11/28(火) 00:48:46.12ID:tbHgY5Ye
コードはすまん読んでないけど
関数から呼ばれる関数は基本的に汎用的な関数として定義されているものであるべきと思う

例えばパスから画像を呼んでバイナリ化して返す関数を
引数にバイナリを指定し、画像加工する関数群(画像加工の種類ごとに関数を用意)からそれぞれの冒頭で呼び出す

とかなら自然かなと
汎用的ではない関数を、別の関数から呼ぶ…とかだと
渡したい引数を一旦メイン処理に戻してそっちから渡すBのやり方で書きたいなと思う
2023/11/28(火) 04:07:22.70ID://fSvaZM
圧倒的に右
251デフォルトの名無しさん
垢版 |
2023/11/28(火) 08:32:22.00ID:t7+ip2Xg
右だとしても
class X 造ってその中に A, B, C 定義して
main からは x = X() してから x.A() x.B() x.C() が良いと思う
2023/11/28(火) 10:10:52.21ID:khx6Zkgl
>>251
そのためだけにクラス作るのは馬鹿らしい
複数の関数を一つに閉じ込めたかったら関数内関数でいいじゃん
253デフォルトの名無しさん
垢版 |
2023/11/28(火) 10:14:34.91ID:t7+ip2Xg
globalでもlocalでも引数で同じ情報を持ち回るのが馬鹿らしい
254デフォルトの名無しさん
垢版 |
2023/11/29(水) 04:29:33.80ID:Z6GycUPt
勉強のためにとあるWebページのRPA用のフレームワークを自作しようとしてるんですが
ページを操作するクラスをStateパターンの見よう見まねで実装しようとしたところ
画面を遷移させる部分で循環インポートになってしまいます
できればmain.pyからの使い方は変えずに実装したいのですがどうすればよいですか?

操作内容は画面の状態によって異なるのでオーバーライドは無理な状況です
メソッド内でimportすれば解決するような情報もありますが
できればimportはソースコードの最上部で済ませたいです
コードは以下の通りです

main.py
https://techiedelight.com/compiler/?83b5

rpa.py
https://techiedelight.com/compiler/?577e

presentation/__init__.py
https://techiedelight.com/compiler/?eacd

presentation/presentation_base.py
https://techiedelight.com/compiler/?b70f

presentation/a_presentation.py
https://techiedelight.com/compiler/?272e

presentation/b_presentation.py
https://techiedelight.com/compiler/?08a0
2023/11/29(水) 13:46:04.06ID:Z6GycUPt
>>254
すみません
a_presentation.pyとb_presentation.pyのelseの中で
self._set_new_p(p)のあとにbreakが必要でした
2023/12/01(金) 06:10:11.53ID:+Sulqil7
>>254,255
自己解決しました
Mediatorパターンが参考になりました
遷移先のPresentationクラスの生成をCreatorクラスにまかせて、
PresentationクラスはそのインターフェースCreatorBaseのインスタンスを持つようにしました
CreatorクラスのインスタンスはRPAクラスのメンバーにしてPresentationに__init__()の引数として渡しました
すべてのPresentationクラスの実装のインポートをCreator内に集約することでPresentation間での循環インポートを解消できました
2023/12/01(金) 22:39:32.22ID:dcWZLwtR
循環インポートを避けるには
from .a_presentation import APresentationじゃなくて
import presentation.a_presentation as A とかにして
A.APresentationの形で使うだけでも大丈夫
2023/12/01(金) 22:43:35.51ID:dcWZLwtR
それにしても随分とパターン熱に冒されてるねー
StateパターンになってないしStateパターンを使うべきケースでもないと思うんだけどな
259デフォルトの名無しさん
垢版 |
2023/12/01(金) 23:03:50.71ID:3nL4Jfiv
pip installでインストールできるようにパッケージ化してみたらいいと思う
2023/12/02(土) 00:49:51.55ID:IL/rFcuk
>>257,258
ご回答ありがとうございます
右も左も分からない初心者なもので見苦しくてすみません
調べている中で257の方法も試してみたのですが、
それだとmain.pyでAの方のif文は実行されたのですがBの方は実行されませんでした
なぜでしょうか?
あと画面の状態と操作を扱うクラスなのでStateかと思ったのですが違ったのでしょうか?
2023/12/02(土) 01:22:32.17ID:IL/rFcuk
>>260
度々すみません
Bが実行されないのはset_new_pしたあとnew_pを参照していないからでした
2023/12/02(土) 11:24:03.67ID:W00DnSBP
>>260
>あと画面の状態と操作を扱うクラスなのでStateかと思ったのですが違ったのでしょうか?

ある画面が状態Aでも状態Bでも状態Cでも
画面を操作するクライアント側のコード(今回で言えば主にmain)はどの状態であるかを意識ぜずに同じメソッドを呼び出す
呼び出された側が状態に応じた振る舞いや状態遷移を行うんだけどその際呼び出された側がif文で条件分岐するのではなく各状態ごとにクラス等を用意してポリモーフィズムで分岐させるのがStateパターン
2023/12/02(土) 12:28:53.41ID:+bysY8AL
>>262
ありがとうございます
具象クラスのメソッドを直接操作してるので何かが違うんだけどとは考えてました
すると今回のように呼び出し側が画面に合わせた操作をする必要がある場合はどういう設計がベターでしょうか?

循環インポートの解消に関しては
from . import a_presentation as A
でも問題なく動きました
これはAPresentationの定義の読み込みが呼び出し時までされないということでいいですか?
2023/12/02(土) 14:02:31.64ID:0tC7Yjqi
だめ絶対
2023/12/03(日) 18:54:22.91ID:l1Ri8dMm
手始めにPython3エンジニア基礎試験合格したんだけど、次何したらいいの?
2023/12/03(日) 20:34:04.98ID:B7yqPTfY
>>265
趣味ならそこがゴール
あとは作りたいアプリを存分に作りまくってくれ
2023/12/04(月) 07:29:49.93ID:ZEr6pdQQ
>>266
特にない。何ができるのかよくわからん。
株価のデータをウェブから持ってこようと思って始めたが、それはできた。
それ以外はない。
当面、基礎試験はの次の実践試験の方やってみながら作りたいもの探すか
2023/12/04(月) 11:28:39.23ID:7xJZTz8z
何もないならやる必要はない
時間の無駄
2023/12/04(月) 12:42:51.69ID:LMh9z4VO
>>267
作りたいものはないけど情報工学技術に興味があるということかな
それなら専門学校か大学に行くとよいのでは
題材は向こうが勝手に用意してくれる
独学で専門技術を身に着けたいというのは無理ではないけどモチベが続かないだろう
2023/12/04(月) 13:45:27.90ID:C1dIH7Kj
>>267
株価とか出来高とか板とか見て自動で売買するアプリ作ってはどうでしょうか?

儲かりたいなら優待を
271デフォルトの名無しさん
垢版 |
2023/12/06(水) 07:20:37.12ID:TGpYlcbb
AIペイントすごいなGUIもこれで良いよな
プロンプトを絵コンテみたいに書いちゃえばほぼ完成になりそう
2023/12/06(水) 20:32:16.84ID:7Cu2FhSW
児童取引は怖い
2023/12/07(木) 05:46:48.95ID:0LP6dGg+
Python では転職できない。
だから、学校へ行っても仕方ない

YouTube で有名な雑食系エンジニア・KENTA が、既に言ってる。
初心者のキャリアパスは、Ruby on Rails → Go のみ

PHP, Scala はオワコン認定した

Pythonで必要な人は大学院数学科か、AWS 機械学習資格。
文系は無理。勉強のほとんどがプログラミングじゃないから。
だから、一発逆転狙いの文系のアホには、Railsがチート職業と言われるわけ

ただし、YouTuber のかよちんみたいに、
Railsをやっている人は、Django へ転職できる

全てのバックエンドは、Rails, AWS Solution Architect が基本だから。
この2つが米国年収で2千万円!

まず転職で聞かれるのが、RailsではなくPythonを選んだ理由。
ここで皆が脱落する。
大学院数学科じゃないと、まず無理
274デフォルトの名無しさん
垢版 |
2023/12/07(木) 11:41:26.60ID:gpmkJ2Ny
>>273
Pythonは巨大桁数を扱うのに便利。

Windows電卓:9999桁(10^3桁)
LM217:2147483647桁(10^9桁)
Python3(Decimal):999999999999999999桁(10^17桁)
Pypy2.7.13(Decimal):(10^10^5桁)
Python+Mpmath1.3.0:10^18446744073709551615桁(10^10^19桁)

あなたの宣伝するRuby on Railsは桁数をいくつまで手軽に扱えるの?
2023/12/07(木) 11:54:23.24ID:Y5Tf+LqT
https://docs.ruby-lang.org/ja/latest/method/BigDecimal/s/limit.html
しらんけど無制限らしいから計算機リソースのみに依存すんでない?
処理系の縛りがあるかは書いてないからわからん
276デフォルトの名無しさん
垢版 |
2023/12/07(木) 12:27:43.29ID:gpmkJ2Ny
require 'bigdecimal'
n = 0 # デフォルト値
mf = BigDecimal::limit(n)
a = BigDecimal("10")
b = BigDecimal("7", 40)
mf = a ** a ** a ** b

このくらいでエラーになるぞ。
https://paiza.io/projects/9WG_gULsMWWWrrBnY9H8nA
bを6にするとエラーにならないからこの程度が限界か?
277デフォルトの名無しさん
垢版 |
2023/12/07(木) 12:49:23.47ID:gpmkJ2Ny
Rubyは説明が少なくて面倒くさいな。ideoneも対応していないし。
https://docs.ruby-lang.org/ja/latest/library/bigdecimal.html
サンプルのカンマで区切った2つ目の40という数値の意味の説明もないし。
有効桁数か?でもサンプルから考えると40なのはおかしくないか?
278デフォルトの名無しさん
垢版 |
2023/12/07(木) 13:17:06.58ID:gpmkJ2Ny
Rubyのbigdecimalは解答を独自のフォーマットで返してくる。
https://paiza.io/projects/RKARq4tN_-ec8Nam_zImxA
普通は
2.003529930406846464979072351560255...7777506072339445587895905719156736e19728
の整数1桁と小数点以下とeの値で返すはず。
279デフォルトの名無しさん
垢版 |
2023/12/07(木) 14:19:10.74ID:wNl2TimY
PythonスレでRubyの話してるのはアホなんか
2023/12/07(木) 15:32:59.56ID:6vUn2cKn
>>273
ケンタは「文系学部出てpython出来ても職はない」と言っている

まあ首都圏にはあったりするが

また「文系学部出てAIの仕事をしたいといっても仕事はない」とも言っている
pythonはAIで良く使われているので
AIの仕事の無い地方には仕事がない、
という事になる

だがkenta氏がこんな発言をしたのってもう4年以上前だなあ
今の情勢に合わせてChatGPTをローカルに置いてちょっとカスタマイズしたい、なんて仕事も出てくると
ソースコードを壊さないように弄る必要も出る

その程度で「数学科出身じゃないからやらせない」「情報工学出身じゃないからダメ」というのは
無駄の極み
281デフォルトの名無しさん
垢版 |
2023/12/07(木) 16:00:11.34ID:wNl2TimY
KENTAが文系学部出てpython出来ても職はない
KENTAが文系学部出てAIの仕事をしたいといっても仕事はない

ということだろ
2023/12/07(木) 17:27:42.18ID:XDYBiR0b
>>274
瞬殺されててワロタww
2023/12/19(火) 21:51:20.71ID:WeipM8cv
モジュールによっちゃ日本語の情報が少なくて外国のページ見て学ぶなりコピペしてくるなりしないといけないんだが
みんなそれくらいの英語は余裕でできるの?
2023/12/20(水) 00:47:47.59ID:bsiqnAom
サードパーティのモジュールはほぼ英語でしか説明ないけど
平易な表現しか使ってないから翻訳併用すれば中学英語レベルで十分理解できる
紹介記事は極論作者のメモ書きにすぎないからね
2023/12/22(金) 23:53:50.57ID:CDCAm2n1
リンク先のように書くと
https://dpaste.com/2LJ2MSMSX
piyoはNoneの既知のメンバーではありませんと怒られますが
回避するにはcastになるのですか?
他の言語みたいにNoneで無いことが分かっているなら!みたいに短く書く方法はないのでしょうか
2023/12/22(金) 23:57:32.60ID:CDCAm2n1
ifでチェックしたら回避できるのは知ってます。
2023/12/23(土) 00:06:34.21ID:nuv23jz/
結論から言えば無い
ifでチェックする

機能追加の提案もあるけど実装される見込みは今のところ無し
https://discuss.python.org/t/introducing-a-safe-navigation-operator-in-python/35480
288デフォルトの名無しさん
垢版 |
2023/12/30(土) 07:45:04.24ID:W5+FG6fR
pythonで変数スコープをどうにかしたいのですが定石とか何かありますか?

変数宣言せずに使えるのでスコープ外れてるのに値を入れたりして名前が同じ別スコープの変数が新たに出来てバグ子温床と発見に手間が掛かります

正直言って変数宣言にvarを導入して欲しい感じなのですが型チェックがオプション的に使える様に何か方法は無いでしょうか?
2023/12/30(土) 09:08:17.02ID:9xbp05/Y
>>288
スコープが外れるってどういうシチュ?
関数内での代入は全てローカル扱い
これを心得てさえいれば何も困らんと思うのだが
2023/12/30(土) 16:01:53.58ID:FgzdgIdy
>>288
参照可能な別の変数を上書き定義してるようなケースはpylintとかでチェックすれば警告が出る

変数がスコープ内にあると勘違いして既存変数に代入したつもりが
新しい変数を定義して初期化しただけというケースはテストを書かずにチェックするのは実質無理
普通はそんなことにならないと思うけどテストを書くか変数定義にキーワードを要求する言語に乗り換えるかの二択
2023/12/30(土) 17:42:20.56ID:uPN73jPm
Copilot使いだしてからないけどself付け忘れはある
292デフォルトの名無しさん
垢版 |
2024/01/06(土) 11:42:23.38ID:Zs30euLJ
人間に独立した人格が有るように、チンポにも独立したチン格が有る
これは親クラスと子クラスの継承関係である
チン格とはつまり「愚息」であり、自分にも他人にも成り得る
これがオブジェクトの多態性と表現される
オシッコするときのチンポは随意筋、勃起するときのチンポは不随意筋
このように時と場合によって真逆の性質を併せ持つことができる

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

自然言語処理において語の意味は文脈によって変わるので、Pythonのような多重継承が不可欠ね!
2024/01/08(月) 08:28:08.05ID:UVvi3vWm
FANZAでエロ動画の価格をスクレイピングしようとしてるんですが
label for="4k"配下のdtタグのtextを出力したいんですが、for属性をfindするとエラーが出ます
print(soup.find("label",for_="4k").find("dt",class_="col2").text)
別のやり方じゃないとダメでしょうか?

https://www.techiedelight.com/compiler/?eb71
2024/01/08(月) 11:43:15.07ID:4FNw9MEQ
>>293
予約語回避のためのショートカットはclass_だけなのでattrsで書く
soup.find("label",attrs={"for":"4k"})
2024/01/08(月) 12:20:33.92ID:EIrMtl3n
>>293
独自記法が必要なfind/find_allは捨てて
標準的なCSSセレクターが使えるselect_one/selectを覚えたほうがいいよ
ブラウザからコピペしたりブラウザコンソールでそのまま確認できるので

soup.select_one('label[for="4k"]').select_one('dt.col2').text
2024/01/08(月) 13:31:11.16ID:qmm9XobD
>>294-295
ありがとうございます
出来ました
selectが見やすいのでselect使います
https://www.techiedelight.com/compiler/?eb71
2024/01/08(月) 13:33:49.83ID:qmm9XobD
リンク間違えました
https://techiedelight.com/compiler/ja/?f3d4
2024/01/08(月) 18:03:30.19ID:TiBm1ihV
今既存のRPA用のフレームワークを改良しています
オリジナルはこのようなコードになっています
Controllerは操作のためにDriverのアンダースコアつきメンバーに触ってるんですが
設計上しょうがないですか? ruffで警告が出るので気になります。
それともプロパティを公開して
フレームワーク利用者側からは呼ばないようにドキュメントを書く方がいいでしょうか?
Controllerは状況に合わせた専用のメソッドを持つ子クラスを都度使い分ける想定です。
https://techiedelight.com/compiler/?ce6c99
2024/01/08(月) 20:59:21.07ID:3KJvz+ds
>>297
スクレイピングから夜のおかずまで
幅広く手掛けるpython
2024/01/09(火) 11:51:37.25ID:mYyJOFIO
>>298
モジュールレベルの可視性とクラスレベルの可視性を使い分ける

クラスの外部からアクセスする前提のプロパティやメソッドならアンダースコアは付けない
利用者側コードでDriverを生成させる必然性はなさそうなのでフレームワーク側でDriverを生成してControllerをinitして返すAPIを用意する
__init__.pyでモジュールのユーザーに公開すべき内部モジュールを選別する
公開モジュールで非公開モジュールをインポートするときはアンダースコアを付ける
2024/01/10(水) 22:36:13.32ID:Ggzl3EdZ
>>300
ありがとうございます。利用者はControllerを直接受け取るということでいいですか?
最初に貼ったコードはちょっと省略しすぎました
実際には以下のようにDriverはwith文で使えるようになっているのですが
この場合もControllerを直接渡した方がよいのでしょうか?
たとえば手動操作とRPAからの操作を切り替えるような状況だと
Driverは最初に起動しておいてRPAが必要なときだけ都度Controllerを生成しています

https://techiedelight.com/compiler/?dc5c
2024/01/13(土) 15:42:46.23ID:W9CIMidi
エ○画像とそれ以外の画像を振り分けるプログラムなんですが
実行するとmodel.fitでエラーが出ます
解決策がさっぱりわからないので助けてください
[ソースコード]
https://techiedelight.com/compiler/?c301
[エラー内容]
https://i.imgur.com/BIkFIiE.jpg
2024/01/13(土) 20:43:02.34ID:Wk38PunC
>>302
もうプログラミングはAIに聞く時代だぞ
ChatGPTのプロンプトに
「Pythonの下記のコードで~というエラーメッセージが出る原因を教えて」とタイプしてShift + ENTER押して
コードをCtrl + Vで貼り付けてENTERすれば何かしらアドバイスしてくれる
2024/01/14(日) 12:29:02.68ID:0ohzHf92
ネタが新鮮だとChatGPTでは無理
https://github.com/tensorflow/tensorflow/issues/61215
2024/01/14(日) 17:49:42.52ID:NKNETmpB
無料版のChatGPTだからダメなのであって有料版のChatGPTなら新鮮なデータも答えられるでしょ
金払いたくなければBingやBardのでもいい
2024/01/14(日) 18:05:50.80ID:JQrCg+JK
>>305
Plusでも無理
やってみれば分かること
2024/01/14(日) 18:08:31.60ID:MIyVZkUg
バカとハサミは使いよう
何でもChatGPTに聞くのはバカ
2024/01/14(日) 18:12:22.27ID:mFqEsi68
プロンプト:Exception has occurred: AttributeErrorが起きます
以下ソースコード添付
===================
あなたのPythonスクリプトでAttributeErrorが発生しているようですね。
これは通常、オブジェクトが指定された属性やメソッドを持たない場合に発生します。
スクリプトを確認して、問題の原因を特定しましょう。

まず、kerasのインポートに関して、
tensorflow.python.kerasを直接参照するのではなく、
tensorflow.kerasを使用することをお勧めします。
これはTensorFlow 2.xでの推奨される使用方法です。

また、predict_classesメソッドは古いバージョンのKerasで使われていましたが、
新しいバージョンでは削除されています。
代わりにpredictメソッドを使用し、
予測結果から最大値のインデックスを取得する方法に変更する必要があります。

以下の変更を提案します:

import kerasをfrom tensorflow import kerasに変更します。
from tensorflow.python.keras.utils import np_utilsを
from tensorflow.keras.utils import to_categoricalに変更し、
np_utils.to_categoricalの使用をto_categoricalに変更します。

from tensorflow.python.keras.models import Sequentialを
from tensorflow.keras.models import Sequentialに変更します。

同様に、他のtensorflow.python.keras.layersのインポートもtensorflow.keras.layersに変更します。
model.predict_classesの代わりに、np.argmax(model.predict(Z), axis=-1)を使用して予測されたクラスを取得します。

これらの変更を行っても問題が解決しない場合、または他のエラーが発生した場合は、具体的なエラーメッセージを教えてください。
それに基づいて、さらにアドバイスを提供できます。
2024/01/14(日) 18:28:17.93ID:mFqEsi68
AttributeError が発生する場合、
これは通常、オブジェクトが期待されている属性を持っていないことを意味します。
エラーメッセージが具体的にどの属性が見つからないか示しているはずですが、
提供されたコードからは特定のエラー原因を特定するのは難しいです。

しかし、コードを見ると、いくつかの潜在的な問題点が見られます。以下にいくつかのポイントを挙げてみます:

Kerasのインポート方法: import keras と from tensorflow.python.keras を混在させています。
一般的には、from tensorflow import keras のように TensorFlow 2.x と一緒に Keras を使用することが推奨されています。

predict_classes の使用: TensorFlow 2.x 以降、predict_classes 関数は削除されました。
代わりに model.predict を使用し、最大の出力値を持つクラスを選択します。

ファイルリストの作成: file_list がどこにも定義されていないようです。
これは score = list(zip(TEST, file_list)) で使用されていますが、この変数の定義が見当たりません。

========
エラーメッセージをプロンプトに入れろと言われたが入力するのめんどくさいのでやってない
2024/01/15(月) 07:21:20.78ID:qqS0iVUV
>>308
やっぱすげーわAI
こんなの瞬時に提案できる人間なんてこの世にいないだろう
もう開発スキルを磨く必要はなくて、AIをいかに使いこなすかを勉強した方がいい
2024/01/15(月) 10:53:04.65ID:2WJTjfkc
つまりプロンプトエンジニアが重要になると
2024/01/15(月) 11:01:16.44ID:KiCBWffV
上のはChatGPT4の場合
=====
ChatGPT3.5の場合

このコードの実行中にAttributeErrorが発生しているようです。
AttributeErrorは通常、属性(Attribute)に関するエラーを示します。
コード内のどの部分でこのエラーが発生しているかを特定するために、
エラーの詳細メッセージと行数を提供してもらえますか?

エラーの詳細メッセージや行数を提供いただければ、
より具体的なアドバイスを提供できるかと思います。
2024/01/15(月) 11:25:47.89ID:VXSrH9W1
何か掠ってたら、あの占い師はよく当たると思っちゃう人って滑稽だよね?
2024/01/16(火) 23:57:22.51ID:DyADOzn9
30代のPython男は反日のチョンです。
職場から追放しましょう!
315デフォルトの名無しさん
垢版 |
2024/01/18(木) 05:14:20.29ID:ozbgYzyy
くそどうでもいい質問ですみません
pythonanywhereに登録した後に自動送信される
Hi there, are you getting on OK with the site?
というタイトルのメールの


This message is just to let you know there is a real, live human here (well, a developer actually; not sure if that counts).

の”a real, live human”と言う部分が太字なのですが、これは何のつもりなのですか?何が言いたいのですか?
2024/01/18(木) 08:14:17.00ID:qC0ThaED
>>315
ChatGPT3.5に聞いた結果
これからはAIに聞く時代。人に聞くのは時間の無駄
--------------------
PythonAnywhereが自動送信するメールの中で、"a real, live human" の部分が太字になっている理由は、おそらくユーモアや親しみを込めた表現として使われています。この表現は、人間とコンピュータの違いを強調し、サポートが人間によって提供されていることを強調するために使用されている可能性があります。

通常、自動応答メッセージやウェルカムメールにおいて、太字やカジュアルな表現が使われることがあります。これは、ユーザーに友好的であると感じさせ、サービス提供者とのコミュニケーションが人間対人間であることを強調するためです。太字は通常、強調や注目を引くために使用されます。

このフレーズはあくまで軽い冗談や親しみを込めたもので、ユーザーに対して友好的な印象を与えることが意図されていると考えられます。
317デフォルトの名無しさん
垢版 |
2024/01/19(金) 17:01:36.09ID:/agcSumM
ちなみに1万円札もでてきたけど、肝心の探しものは見つからなかった
2024/01/19(金) 21:41:13.26ID:CZFLW0PQ
技術的な難易度の低い課題にpythonで取り組むと手が止まらないな
ググりながら、リファクタリングしながら、一日で追加のコードを300行も書いたら手首がちょっと痛くなった
プログラマーは手首をヤると一発で引退だから怖い
319デフォルトの名無しさん
垢版 |
2024/01/21(日) 00:26:47.65ID:jaz1unMy
pyinstallerでスタンドアローンで動くはずの電卓アプリのEXEを作ったら、勝手にインターネット通信しているのか知らないが、
DefenderでTrojan:Win32/Wacatac.B!mlにされた。
これってpyinstallerでEXEを作ると常に出るの?
2024/01/21(日) 01:01:49.79ID:po0/ndNG
https://stackoverflow.com/a/52054580
321デフォルトの名無しさん
垢版 |
2024/01/21(日) 10:26:29.85ID:IvCL+sTy
1 センチメートルは 10 ミリメートルに変換されます。
変換する長さ n センチメートルが与えられるので何ミリメートルかを出力して下さい。
宿題がわからへん。
2024/01/21(日) 10:41:39.44ID:CZIH4U50
プログラムとして書けないのかプログラムじゃなくても答えられないのか
プログラムとして書けないだけならデータ入力がどのようにされるかがわからないのか計算式の書き方がわからないのか表示の仕方がわからないのか
それぞれ問題を切り分けて把握したら先生にその内容を聞けばいい
2024/01/21(日) 16:13:36.22ID:PdyqbFJh
>>321
何がわからないのかわからん
ちゃんと推敲してくれ
2024/01/21(日) 16:29:55.78ID:JCqDmCwj
>>321
たとえば5センチメートルが何ミリメートルかはわかりますか
325デフォルトの名無しさん
垢版 |
2024/01/27(土) 11:52:44.87ID:0NhbJ8Wy
モザイクを検出して、透過に塗りつぶして、別の画像に貼り付けるプログラムを
作ったので良かったら遊びにきて下さい

wikiwiki
同人誌同人ゲーム無修正化差し替え備忘録まとめ Wiki*
https://wikiwiki.jp/mozanashi/
左のメニューのところにプログラムを貼り付けてあります
326デフォルトの名無しさん
垢版 |
2024/01/27(土) 12:12:30.45ID:R9CYWTqC
システムのPythonが3.0版だとして、最新3.11版を使うにはどんな方法が?
・システムPythonは更改しない前提
・Dockerコンテナは使いにくいのでその他手段を
2024/01/27(土) 12:27:20.61ID:7oImGRPe
>>326
pyenv
328デフォルトの名無しさん
垢版 |
2024/01/27(土) 13:06:20.63ID:idsDIbYE
>>326
自分でビルド
2024/01/27(土) 14:03:55.97ID:UmjQ6ogE
改変したいなら自前ビルドもわかるが
そうじゃないなら切り替えも楽なpyenvでいい
330デフォルトの名無しさん
垢版 |
2024/01/27(土) 16:46:55.78ID:6KdYFEam
>>328
自前でビルドするかどうかは全く関係ないやろ
2024/01/27(土) 17:12:17.55ID:OFvOzhfh
embeddable pythonという方法もある
332デフォルトの名無しさん
垢版 |
2024/01/27(土) 18:00:42.31ID:XRhGTNLI
>>330
自分でシステムのPythonとは別に好きな場所、好きなバージョンのPython入れるのに自分でビルドするのも方法の一つでしょ
Windowsみたいにインストールパッケージ用意されたないならだけど
>>326はそういう質問じゃないんか?
333デフォルトの名無しさん
垢版 |
2024/01/27(土) 18:15:20.55ID:XRhGTNLI
pyenvもたしかソースからビルドしてなかったっけ
334326
垢版 |
2024/01/27(土) 18:29:33.08ID:o5v2l6LT
>>332
自分でビルドしたPython がシステムPythonのライブラリを参照して不具合が起きると困る。自分でビルドするにしろ、出来合いの物を使うにしろ、そうならない方法を訊いた。
335デフォルトの名無しさん
垢版 |
2024/01/27(土) 18:49:08.88ID:NKobULuJ
は?
336デフォルトの名無しさん
垢版 |
2024/01/27(土) 19:05:28.29ID:bXNtt3x6
>>332
CPythonを自前でビルドするかそれともビルド済みバイナリを持ってくるかという話と
システムデフォルトのPythonをキープしたままそれとは異なるバージョンのPythonも同時に使えるようにするという話は直交した話やで

そんでもって質問は後者についてやろ
337デフォルトの名無しさん
垢版 |
2024/01/27(土) 20:45:05.22ID:o5v2l6LT
>>336
うーん、よく分からないが、
システムPythonを必要とするシステムコマンドを叩くと、何らかの方法で導入したPython 3.11 を起動するようだと困る。
そうならないよう Python 3.11 を使える、そんな方法を訊いた。

自分でビルドして、上記を満たせるなら、自分でビルドする事で構わない。
338デフォルトの名無しさん
垢版 |
2024/01/27(土) 22:44:25.65ID:brX24hU9
ビルドしてもしなくてもシステムPythonとは別の場所にバイナリを配置してそこへのpathを指定して使うことになる

pyenvじゃなくても公式からダウンロードしてもいいしanacondaを使ってもいいしhomebrewやaptを使ってもいい

macosやlinux系だとシステムPythonに依存する場合は基本的に/usr/bin/pythonを指定してるのでこれが指すバージョンを変えずに自分の使いたいバージョンへのpathを通すことになる
339デフォルトの名無しさん
垢版 |
2024/01/27(土) 22:47:32.91ID:t7pPpNfJ
どれを使うかという指定もなければ、パスという概念もないんだろうな。
340デフォルトの名無しさん
垢版 |
2024/01/27(土) 22:58:51.17ID:NKobULuJ
>>334
>自分でビルドしたPython がシステムPythonのライブラリを参照して
これがわからん
仮に自分でビルドして/opt/python3に入れたPythonがあるとして、それがシステムのPythonにライブラリに依存するっていうこと?
どういう環境?
341デフォルトの名無しさん
垢版 |
2024/01/27(土) 23:05:09.68ID:t7pPpNfJ
ただの初心者なんだろうな
2024/01/27(土) 23:58:06.71ID:X0LvN4tY
Ruby ではDocker を使う。
多言語バージョンマネージャーでは、日本人が作ったanyenv もある。
同様のツールに、asdf もある。
コンパイルするから、20分ぐらい掛かる

Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, jlenv, luaenv
nodenv, phpenv, plenv, pyenv, rbenv
sbtenv, scalaenv, swiftenv, tfenv

echo $(anyenv root)
ただし、$ANYENV_ROOT は定義されていない
/home/ユーザー名/.anyenv

echo $(rbenv root)
echo "$RBENV_ROOT"
/home/ユーザー名/.anyenv/envs/rbenv

echo $(nodenv root)
echo "$NODENV_ROOT"
/home/ユーザー名/.anyenv/envs/nodenv
343デフォルトの名無しさん
垢版 |
2024/01/28(日) 01:49:25.71ID:P/o+j6FX
Dockerなどをいきなり勧めてくるやつは前提がおかしい
2024/01/28(日) 01:53:38.75ID:VCSACfjI
いやいや、Dockerの前にもっとおかしいのがあるでしょ
この人マジで頭おかしいけどいつまでこの芸風続けるんだろ
345デフォルトの名無しさん
垢版 |
2024/01/28(日) 05:41:05.55ID:P/o+j6FX
Rubyでしょ?
こいつはキチガイだけど、それ以外におかしいことを書くから、それも指摘しないと真面目に読むやつがあらわれる。
2024/01/28(日) 06:42:16.36ID:PWkEGs2d
英会話教室に通って「フランス語では云々」と講釈たれる奴みたいだよなw
347326
垢版 |
2024/01/28(日) 07:28:43.27ID:JZ5LlHQA
>>340
あり得ない事ならウェルカムだが、例えば、

/opt/python3/bin/python が
/opt/python3/lib/libpython.so を_参照せず、$LDPATH にしたがって
/usr/lib/libpython.so を見に行くことないの? とか、

或いは、
/usr/bin/python が
/usr/lib/libpython.so というリンクを参照したのだけど、その実体が実は
/opt/python3/lib/libpython.so だったとか。

>>327 で挙げられた pyenv というのは、何かしらそれに類した不具合を解消するのだろうと想像している。
348342
垢版 |
2024/01/28(日) 09:12:54.94ID:4GEBUrLg
>>342
に、もちろん、pyenv も入っている

多言語バージョンマネージャー、anyenv・asdf には、
rbenv, nodenv, goenv など、たいがいの言語は入っている

ただ最近は、Docker も多い
2024/01/28(日) 11:10:02.02ID:DsZuLMRu
>>347
固有のパスに導入した一般的なプログラムならそうはならん
lddしたらわかるけどフルパス指定になってる
pyenvは全自動でビルドするツールなんだけど導入先はホーム以下で同様
独自のシェル拡張使わないなら副作用ないし影響範囲もシェルの中だけ
2024/01/28(日) 20:13:41.36ID:zZgVSQ5K
Python Arcadeが流行らないのって
名前が悪いからですよね?
Pycadeとかに変えてほしい
351342
垢版 |
2024/01/28(日) 21:35:30.33ID:rJLsGKs7
PyDeca だと流行りそう。

>>349
> フルパス
のくだりがよく解らないが、取り敢えずpyenv を検討してみる。どうもありがとう。
2024/01/28(日) 21:56:26.44ID:vItLFMA9
お勉強スレにもポストしちゃったんですが
バージョンよって剰余演算子の挙動が違う?
-1%3とか
2024/01/29(月) 00:08:46.88ID:G6ToERat
くたばれPython

に見えた
354342
垢版 |
2024/01/29(月) 00:10:12.64ID:eueHhgdA
>>342
のanyenv root/rbenv root/nodenv root を見れば明らか

/home/ユーザー名/.anyenv 以下しか使わない。
個人の環境しか使わない

だから多言語バージョンマネージャー、anyenv・asdf を使えばよい
2024/01/29(月) 11:59:52.72ID:fIBxeYXl
ArcadeよりPyxel派

>>350
なぜPyをつけたがるのかだよね
2024/01/29(月) 13:09:20.70ID:+byldzPi
Pythonでゲーム学習するならPyxelなんですかね
2024/01/29(月) 13:23:00.81ID:fIBxeYXl
>>356
オールインワンでツクール寄りだからゲーム部分を主に書きたいならそう
自分でプログラム制御や表示まわりも書きたいならPygame(SDL)とかもっと低層なやつ
2024/01/29(月) 18:01:51.03ID:+byldzPi
>>357
ありがとう
Pyxel、記述少ないし、エディタ付きだから
これだけで完結するのがいいね
しばらく触ってみるわ
2024/02/04(日) 18:26:19.16ID:IyXxpV05
Pythonは初心者向けの文法というけど
難しくてサッパリわからん
なんでコレクションをイテレータにしなきゃいかんの? ジェネレータって何の役にたつんよ
クロージャってどう使うんだか
せめてウェブやろうとしたら入門書がいきなりフレームワークばかりってどうなの?
PHPみたいにさあもっとこうさっくりとさあ

ぜんぜん初心者向け文法じゃないわ
2024/02/04(日) 21:07:46.94ID:lK7N0HuK
>>359
Pythonの文法が初心者向けなんて聞いたことないから君騙されてるよ
PHPできるんならそれで困ることないんだから満足しとけばいいじゃん
361デフォルトの名無しさん
垢版 |
2024/02/04(日) 22:53:10.28ID:PEeZU4gY
文法はめちゃくちゃ初心者向けだろ
362デフォルトの名無しさん
垢版 |
2024/02/04(日) 23:04:08.64ID:VBtkyZXg
文法が分からないんじゃなくてイテレータやジェネレータやクロージャというプログラミングの概念が分かってないんやな

Python特有のものではなく一般的なものでPHPでも全部サポートされてるからそっちでまず勉強してみたらいいんでないか?
2024/02/05(月) 02:56:37.96ID:UJ2m14qd
>>359
コレクション全部に対して何かしたいときに使うのがイテレータ
例えばコレクションの中を探すとか

イテレータで書くとコードがごちゃごちゃするのですっきりかけるのがジェネレータ

クロージャを使うと中でどう動いているか気にすることなくプログラムが書ける

まあ、ググればすぐ出てくる情報だけど
2024/02/05(月) 04:24:58.35ID:9+bn0/St
入門の講座がよくわからんかったから大混乱したよ講師が変だったのかもしらんが

まずアナコンダを入れないとパイソンというのものはまともに動かないって言われた
そんでvenvとかpipについて説明された
後で知ったが本当ならアナコンダナビゲータで環境つくるらしい

アナコンダのせいでSSDに大量のライブラリが入ったがまったく使わんかった
だったらなんでインストールさせた?
変数は整数型と倍精度浮動小数点数がどうのっていって変数型が少ないからJAVAより計算が苦手なんですって
はて???じゃあなんで機械学習とか流行ってん
後で知ったが多倍長整数だし、浮動小数点数はゴミだけど標準ライブラリに固定小数点あるって、むしろ数値演算はどの言語より得意なんだと

パイソン大流行だけどちょっとかじってすぐ初心者講座の講師やるってのは
やめてほしいな
なんか技能検定試験とかないもんかねえ
365デフォルトの名無しさん
垢版 |
2024/02/05(月) 11:14:00.83ID:5G1mpbCF
>>363
君もググったほうがいいぞ
2024/02/05(月) 11:54:56.85ID:DvqIPT3c
>>364
アナルに入れるとパイパンがー
まで読んだ
2024/02/05(月) 13:59:42.51ID:TA7auAWf
パイソンをケツの穴に突っ込んだらどうなりますか?
経験者のかた教えて下さい
2024/02/05(月) 16:37:45.68ID:hliEPH6s
死んじゃうんじゃない?
2024/02/05(月) 16:48:21.19ID:B/pJSj68
公式のチュートリアルであらかた網羅できるのに
なぜ他から手をつけるのか
プログラムが初めてだと時間はかかるけども
2024/02/05(月) 16:57:38.46ID:RaPfxtxC
基本的なことは覚えたら済む話なんだが
いろいろなライブラリがあるからわっかんねぇ
371デフォルトの名無しさん
垢版 |
2024/02/05(月) 19:18:21.11ID:TKxKoCl8
一応ここ質問すれなんで
2024/02/05(月) 21:18:11.87ID:UJ2m14qd
機械学習にアナコンダが必須だった時代があった
pythonには必須ではない

python 自体は長い桁が扱えるかもしれないけど
インタープリターなのでもともとが遅い
機械学習に使われているのは
ライブラリがCかC++で書かれているため
2024/02/05(月) 21:57:24.93ID:B/pJSj68
それならPythonである必要はないよな
Jupyter、numpy/scipyの土壌があったから
そのまま使い続けているだけ
2024/02/06(火) 07:25:06.16ID:C4pk/cEW
jupiternotebookってのはどうしたら空白やタブ記号を表示できますか
パイソンやるのには空白やタブ記号が見えないと困るのです
2024/02/08(木) 06:13:31.80ID:hTf75Vln
パイソンはインタプリタでパイソンプログラムはマルチプラットフォームとききました
ところがPYNUMはC言語だといいます
つまり機種依存があるはずです
そうするとパイソンも機種依存していまいPYNUMをインポートしたプログラムはWindowsとマックでは動かないのではないのでしょうか
私だんだん混乱してきました
2024/02/08(木) 07:41:46.39ID:xta5h9K/
>>375
そういう面倒ごとがあるから、俺はことあるごとに言ってるんだよ
外部ライブラリは使わずPythonの組込み関数と標準ライブラリのみで書けと
ライブラリに振り回されて貴重な人生を無駄にしないようにな
377デフォルトの名無しさん
垢版 |
2024/02/08(木) 07:57:21.03ID:isMXgTpD
https://pypi.org/project/pynum/
これ?
378デフォルトの名無しさん
垢版 |
2024/02/08(木) 07:59:14.95ID:isMXgTpD
>>359>>364同じ人?
2024/02/08(木) 08:35:52.53ID:OewvCXAt
>>374
空白を可視化してるフォントを使うとか
で、何も見えなかったらタブと見なす
2024/02/08(木) 11:05:24.59ID:arovnfBA
全部anacondaで作って.condarcにconda-forgeのライブラリからのインストールも可能にしておくように設定

だが変わったものを取ってくると重くなりがち
biocondaとかもインストール元にしとくか
変わったものをインストールする度に別環境作ったり

pythonの環境設定は結構な初心者泣かせだな
そもそもPCのユーザー名がマルチバイトだったり半角スペースあったりしたらもうアウトだったり

anacondaは公式pythonと同居させられなくて問題になるが
ryeを推してるところもあるが、私的ドキュメントが心許ない
381デフォルトの名無しさん
垢版 |
2024/02/08(木) 11:11:05.34ID:isMXgTpD
anacondaを使うメリットが科学計算用ライブラリが一括で入るぐらいしかない

>>374
そもそもタブを使うことがないし、全角スペースならだいたいのプログラミング用フォントなら分かりやすくしてある
2024/02/08(木) 12:21:39.61ID:6CZwMK9a
conda系はオールインワンで楽なのはわかるけど
そこは一歩進んでコンテナ込みで勧めてほしい
魔法が多くて把握できなくなる弊害まで考えが及んでない
2024/02/08(木) 12:37:21.60ID:LLz4mv+z
>>377
numpyのことじゃね?

>>375
C言語で開発されてるライブラリはインストール時(pip install等)に実行するプラットフォーム用にコンパイルされたバイナリが含まれたパッケージをダウンロードしてくるかソースをからコンパイルしてる
ライブラリをインポートしたPythonのコードが特定のプラットフォーム用のコードを書いてなければWindowsでもMacでも動く
2024/02/08(木) 13:13:39.69ID:LLz4mv+z
>>374
jupyterlabならHighlight white spacesという設定でタブもスペースも可視化できるよ
2024/02/08(木) 14:21:16.75ID:MMHd3icf
基本、C# 以外の全言語は、Linux 用。
だから、Windows 10 でも、WSL2 でLinuxを使う。
Mac ではVirtual Box でLinux

初心者はLinuxが難しいから、Windows上のMSYS2 を使う。
例えば、Ruby Installer がそう

MSYS2なら、1GB ほどのWindows用の巨大なコンパイル環境もインストールする。
これで、Linux用のソースコードを、Windows用の機械語にコンパイルする

ただ、全言語はLinux用に書いているから、
Windows用にコンパイルすると、うまく動かない場合もある

利点は、仮想マシンでLinuxを起動していないから、あまりメモリを使わない。
欠点はLinuxじゃないから、Docker を使えない事。
データベースなどの外部プログラムも全て、Windows用で揃えないといけない

そうすると、中にはバグるプログラムも出てくる。
全てのプログラムがLinux用に作ってあるから
386デフォルトの名無しさん
垢版 |
2024/02/08(木) 18:58:16.38ID:T36ggrXR
>>375
50代のスレに書き込んでいるおっさんだろ?
387デフォルトの名無しさん
垢版 |
2024/02/08(木) 18:59:24.55ID:T36ggrXR
>>385
なかなかのキチガイだなw
388デフォルトの名無しさん
垢版 |
2024/02/08(木) 20:35:36.46ID:PMTWmDyI
>>385
Rubyに関わるのはこんなキチガイばっかりです
2024/02/09(金) 08:55:46.64ID:JpXObIpk
河上幸恵ちゃんの名曲
心の中のルビーというやつだな

皆さんありがとう
また一歩自分の成長を感じました
C言語のライブラリはそれぞれのパソコン用がインストールされる高度な仕組みであること
ジュピターで空白タブを表示する方法
皆さんはわたしの成長ホルモンです
390デフォルトの名無しさん
垢版 |
2024/02/14(水) 15:26:02.91ID:uypU95In
os.path.isfileの様なやり方でループなど使用せずに、
拡張子を除いた部分のファイル名が存在するか確認する方法ってありますか?

例えばファイル名”test01.txt”,”test01.png”のどちらがディレクトリに存在していても、”test01”だけでファイルの有無を確認したいです。
391390
垢版 |
2024/02/14(水) 15:45:38.27ID:uypU95In
自己レスです。
とりあえず、glob.glob(‘/hoge/test*’)としてやってみました。
こんな方法もあるよというのがあれば教えてください。
2024/02/21(水) 10:41:22.80ID:tURWv7oT
os.path.exists
2024/02/21(水) 22:24:18.46ID:XpCZiALh
globでいいと思うけど一応
https://docs.python.org/ja/3/library/pathlib.html#pathlib.PurePath.stem
2024/02/25(日) 04:23:40.84ID:oObtEil6
Pythonのandroidでの実行環境って何を入れたらいいですか?
開発環境はとりあえず必要ないので
あくまでスクリプト・インタープリターとしての最低限の実行環境がほしいのです
CPythonみたいなリファレンス実装があればいいのですけど
2024/02/25(日) 20:23:29.26ID:hMq2Qtw2
termuxかpydroidかなあ?
2024/02/25(日) 20:32:04.31ID:hMq2Qtw2
python以外もつかうならtermux、uiが使いたいならpydroidかな?
2024/02/25(日) 21:17:43.23ID:oObtEil6
>>395,396
レスありがとう
どちらかというと開発環境みたいな感じなんですね
ほかにQPythonとかQPython 3Lとかはどうですか
よりシンプルな実行環境という観点からするとどれになるのでしょうか
2024/02/26(月) 23:37:11.68ID:GBHslgGd
レビュー見る限りその2つはあまり良くなさそうだね
2024/03/05(火) 16:51:36.85ID:90GfYifC
凄い基本的な質問なんだけどライブラリのことを考えるとPythonはanacondaとPythonそのままどちらのほうがお勧めですか
または他にお勧めのツール?的なのある?
2024/03/05(火) 17:04:30.62ID:90GfYifC
ライブラリじゃなくてモジュールでした
2024/03/05(火) 18:49:14.75ID:xnDaPNvs
とりあえず、公式実装のCPythonでいいのでは?
やりたいことが明確になってから必要に応じてanaconda環境を構築すればいいと思う
2024/03/06(水) 15:55:05.95ID:fNmftXEr
何かライブラリなどをインストールしようとするたびにエラーがでて説明通りにできない
こんなもん?
2024/03/06(水) 16:59:36.65ID:0Fz1GTqO
説明が悪いんでは
前提としてる環境が違っててそこまでは書かれてないとか
2024/03/06(水) 18:30:41.18ID:vezaZ1iv
>>402
その説明では分からない
405デフォルトの名無しさん
垢版 |
2024/03/07(木) 20:32:37.26ID:aIlNu4oQ
自分はPycharmのflaskでウインドウズでは環境構築できなくて諦めました
同じことやってるのに、Macでは動いてウインドウズではエラー
Pythonって学ぶスタート地点に立てない人少なくないかも?
2024/03/07(木) 20:50:36.75ID:Xi0SwO4p
>>364
マジで誰でもできるよ
Pythonに限らずだけど経験一年以上とかで求人出てるし
俺は学歴で落とされたがね
そもそもanaconda使いながらpipとか使うと環境壊れるよ
2024/03/07(木) 20:53:48.81ID:Xi0SwO4p
>>359
まぁ人によって印象違うんだろうな
俺はPHPはもう一生触らないと決めたけど

そしてイテレータやらクロージャやらやんなくていいから
そういうのは出てきた時に意味が分かれば十分
2024/03/08(金) 00:09:38.55ID:xxGRRb0E
基本、全言語はLinux 用。
Windows 用は、C# だけ

だから、Windows 10 から、WSL2・仮想マシンでLinuxを起動できるし、
Docker Desktop も使える

だから、Windows/Mac ネイティブ機械語は動かない。
Linux用のソースコードを、Windows/Mac用コンパイラで機械語にするのは邪道

でも、MacはUNIX のBSD だから、Linuxと似ているので、まずまず動くけど、
仮想マシンでLinuxを起動する方が確実

Windowsで、MSYS2, Visual Studio でコンパイルすれば、Winodows用の機械語になる。
しかし各モジュールの作者は、面倒くさいからLinuxにしか対応しないので、
Windows/Macでは動かない
409408
垢版 |
2024/03/08(金) 00:21:23.96ID:zqy1N+OL
なぜ、Windows/Mac用のネイティブ機械語にしたいのかと言うと、
仮想マシンでLinuxを起動したくないから。
2つのOS が動くから

その代償に動かなくなる。
Linuxじゃないから、Docker Desktop も使えないし

例えば、自分がC/C++ のモジュールを書く時、Linuxにしか対応しないよな。
Windows/Mac用のファイルシステムや、プロセス/スレッドに対応しないはず。
3つのOS で動くようには書かないはず。
面倒くさい
410デフォルトの名無しさん
垢版 |
2024/03/08(金) 00:50:54.05ID:FJDucPJF
>>408
またこの馬鹿の書き込みか
ruby馬鹿よりはマシだけど
2024/03/08(金) 04:38:04.66ID:xViuWNSj
クロージャとデコレータが極悪に難しい
ドキュメントや本を何冊も読んだが何のためにどうやって使う機能なのかさっぱりわからず自己嫌悪に陥る
この世は無知な方が幸せなんだよな…
2024/03/08(金) 15:18:49.79ID:b4tlhFyW
python齧ったけどわけわからん
やっぱCOBOLがわかりやすいわ
2024/03/08(金) 16:10:05.35ID:JEcqFwbk
Pythonで何作れたら中級者くらいって言えるかな?ゲームとか?
2024/03/08(金) 16:11:57.72ID:uXHmVfiG
VS Code使ってたせいだか何だかわからんけど、気分変えて作業フォルダを変更したらimport命令で自作モジュール読み込みするとエラーに。
メインpyファイルと同じフォルダの別pyファイルがimportできない

ぐぐりまくってsys.path.append("ここに任意パス")で上記フォルダの絶対パスを指定したらいけたが、
じゃあそもそも元のパスはなぜ指定もせずにimport出来てたのかっていう疑問が残った。なんか怖い
2024/03/08(金) 16:15:01.89ID:uXHmVfiG
ちなみにこういうエラーね
ModuleNotFoundError: No module named 'My_Mod'
416デフォルトの名無しさん
垢版 |
2024/03/08(金) 16:40:50.56ID:T/tXaIRT
>>414
そうですね。
怖いですね。
2024/03/08(金) 17:18:26.85ID:YKaVE2hY
>>414
もしかして:Pythonのバージョンも違う
418デフォルトの名無しさん
垢版 |
2024/03/08(金) 18:34:14.21ID:1bn2hcNH
>>414
https://docs.python.org/ja/3/tutorial/modules.html#the-module-search-path
には、
「入力されたスクリプトのあるディレクトリ (あるいはファイルが指定されなかったときはカレントディレクトリ)。」がsys.pathに含まれてるって書かれてるのに変だよね
絶対パスを書く他にも、
os.path.abspath(__file__)とかする方法もあるよ
pathlibでPath(__file__)と書いても良いけれど(自分は実はこっちばかりだけど)
2024/03/08(金) 22:04:15.13ID:Olq6J6jV
>>402
pip環境が壊れちゃったのかなあ
2024/03/09(土) 02:10:53.23ID:V+9wfNne
外部ライブラリはPythonの強みであり同時に弱みでもあるね
ライブラリがらみのトラブルで世界中でどれだけの人生が無駄に消費されているだろうか
2024/03/09(土) 02:23:23.87ID:RQZY5Guv
Ruby のrequire が使うロードパスには、
current working directory(cwd) は含まれていないから、

require 'abc' はエラーになるけど、
相対パスのrequire './abc' はOK

一方、require_relative 'abc',
require_relative './abc' は、どちらもOK

相対パスも、その起点がどこからかという問題もある。
ファイルからの相対なのか、cwd からの相対なのか

cwd を変えて、実行してみればよい
2024/03/09(土) 05:27:46.59ID:b/ATK8wU
結局開発環境だと.venv/bin/activateの中にPYTHONPATH書くのが早いんだな
423デフォルトの名無しさん
垢版 |
2024/03/09(土) 12:09:06.37ID:innwL8du
開発環境でもpip installしたほうが
424デフォルトの名無しさん
垢版 |
2024/03/09(土) 12:15:40.44ID:innwL8du
配布先とか別環境でも同じ使い方できるから楽
なんとかtoml最小限書くだけでできるよね?
レス別れちゃってごめんね
2024/03/09(土) 12:47:03.50ID:hNim5q60
venvで細かく分けて保存
何かインストール難しそうなものがあったら
新たな環境作ってそこにpip install
それで壊れたらその環境捨てる

という訳で気付いたら環境が15個とか出来てる

anacondaでconda-forgeから取れるようにすると少し楽だが、いずれにしても管理の習慣が無い人ほどしくじり易い
「どうせ上手く行くから大丈夫じゃねーの?」と舐めプして
基本環境にpip失敗してpython丸ごと再インストールとなる

一般に「アップデートして最新にしましょう」というのがOSや市販アプリなら常識だが
pythonでは他ライブラリとの相性もあり、何でもかんでもupdateすると怖い
conda update condaはさすがにまあ安全だが
426デフォルトの名無しさん
垢版 |
2024/03/09(土) 17:35:27.63ID:KPeEXLi+
>>425
>基本環境にpip失敗してpython丸ごと再インストールとなる
ここがちょっとわかんない
2024/03/09(土) 18:34:45.65ID:bB58iYl/
管理者権限でpip実行してんじゃね?
2024/03/09(土) 19:30:49.00ID:b/ATK8wU
AIないと何もブログラミング出来ないんだけどこれでいいのだろうか
2024/03/09(土) 21:56:34.21ID:Dg4V+RZb
>>428
いいんだよ
プログラミングなんて本来人間のやる作業じゃない
コンピュータのことはコンピュータに任せりゃいい
人間にしかできない仕事をやればいい
430デフォルトの名無しさん
垢版 |
2024/03/10(日) 04:36:05.69ID:YuaEvpE6
>>429
こういう馬鹿ばっか
431デフォルトの名無しさん
垢版 |
2024/03/10(日) 05:30:03.67ID:DGzgjbzK
使えるものは使いこなして効率や生産性をあげないと
使いこなす人に出し抜かれる
有能なアシスタント雇ったと思えばいいじゃないかな
2024/03/10(日) 08:41:17.31ID:GTFEZR4A
>>430
ChatGPT使って書いてみなよ
今までプログラミング技術の習得に費やしてきた時間が全て無駄だったとわかる
433デフォルトの名無しさん
垢版 |
2024/03/10(日) 11:04:27.88ID:xltcl5gU
>>432
全くそうは思わないな
matplotlibみたいな使うのにリファレンス読む時間がめちゃくちゃ長いのは勉強しなくてよくなった感じがするけど
ChatGPTに短い日本語で指示すれば書けるようなプログラムしか書けるようになってないだけだと思うよ
超初心者スレでいうのもあれだけど
434デフォルトの名無しさん
垢版 |
2024/03/10(日) 12:28:14.94ID:2l3n+JcC
Excelのマクロ記録というものも知らなそう
435デフォルトの名無しさん
垢版 |
2024/03/10(日) 17:18:49.80ID:NwXd028v
漁獲を Excelで管理するということ?
2024/03/10(日) 22:53:10.30ID:+HoghBJd
サバの管理も必要
437デフォルトの名無しさん
垢版 |
2024/03/12(火) 18:56:30.23ID:ArnB6rOr
関数間を1行空けると、Vimの Pymodeに、
1 error| expected 2 blank lines after class or function definition, found 1
と怒られ、3行空けると
1 error| too many blank lines (3)
と怒られ、余計なお世話に憤激した。

https://peps.python.org/pep-0008/#blank-lines
> Surround top-level function and class definitions with two blank lines.
などと書かれてあるが、お前等、きっちり2行空けているのかね。
438デフォルトの名無しさん
垢版 |
2024/03/12(火) 22:47:34.41ID:BkSU/P3i
>>437
空けてる
だってflakeに怒られるんだもん
どうでもいいような書き捨てコード書くときはそもそもJupyterとかで書いておしまいだから
PEP8とか気にしないけど、IDEで書いてる時点でメンテナンス性を意識しているから、
PEP8のようなルールに従っておこうという気持ちになっている
439デフォルトの名無しさん
垢版 |
2024/03/12(火) 22:47:41.26ID:vXSbeabq
__ <- このアンダーバーをインデントと仮定する

for x in xs:
__for y in ys:
____for z in zs:

このようにxyzの多重ループで
zからyの所に抜けたい場合とzからxに抜けたい場合に
書き分けられる構文 python3にある?

perl5 で書くとこんなラベル構文がある
https://ideone.com/rIV69S
2024/03/12(火) 22:53:07.42ID:uGnBKOkv
https://github.com/PyCQA/pycodestyle/issues/400
シンプルなようで厳格化するのはたいへんでおもしろい
2024/03/12(火) 23:00:25.97ID:uGnBKOkv
>>439
インデントが空白4文字な世界だと
その場で3重の入れ子なんて書かないから
関数かなんらかのブリッジが介在するはず
だから例外や返り値でいくらでも制御できる
デコレータつかうのといいかも
442デフォルトの名無しさん
垢版 |
2024/03/12(火) 23:05:19.86ID:n3W+Fun6
>>439
gotoパッケージを入れて、goto文を使ってもいいが、そんなループをしないといけないのか?
443デフォルトの名無しさん
垢版 |
2024/03/12(火) 23:10:52.05ID:n3W+Fun6
>>439
ループする条件とbreak文の組み合わせでもいいのに
ネタなの?
2024/03/12(火) 23:22:29.84ID:oG8PduKS
>>437

きっちりつか、autopep8かけるだけ。
445デフォルトの名無しさん
垢版 |
2024/03/13(水) 00:57:33.03ID:TCqO/DNK
Pythonはかなり古めかしい考え方のプログラミング言語だからな
2024/03/13(水) 02:43:27.57ID:ptopN5lQ
Ruby で、多重ループから一気に抜け出すのは、
ラベル付きのKernel.#throw/#catch を使う
2024/03/13(水) 05:11:03.78ID:NVpOWzEq
Rubyはcallccあるんじゃない?なんでもできるでしょ
Pythonもコルーチンあるから今のVMで実装はできそうだけど
あえて提供してないんだろうな
2024/03/13(水) 08:24:43.29ID:fKc7/92t
あれ、breakやcontinueの後に脱出先のラベル名を指定できたはずだが
別の言語だったかな?
2024/03/13(水) 08:38:24.40ID:6IE1D2aF
javaだな
450デフォルトの名無しさん
垢版 |
2024/03/13(水) 12:46:02.87ID:q50ahorY
>>441
インデントが空白4文字であることと入れ子を3重にしないことの因果関係が不明
関数やブリッジを介在した方がわかりにくいコードになることもあるぞ
そもそもCでも空白4文字インデントを使うことが多いが、
普通に3重ループは出てくるでしょ
例えばここ
https://github.com/numpy/numpy/blob/9de8a809efa4c8193a168af9191a0c69290db3e4/numpy/_core/src/umath/ufunc_type_resolution.c#L1517

波括弧がないからlambdaでreturnを持つ複数の文を1つの式で扱えないとかだったらわかるけど、
インデントは関係ないでしょ

綺麗なコードを設計しよう、書こうとしてさまざまななテクニックを知ろうとする意識は大事だと思うけど、
実践なしに本とかに書かれてた「このテクニックはこういうときに使う」を鵜呑みにして、
テクニックを使わない方が見通しが良くなるような簡単な場合にも無理に使おうとするのは
よくないと思うけどなあ。デザインパターンの濫用みたいな感じ。
戻り値で判定はあり得ても例外はあり得ないわ。
誤用としか言いようがない。
2024/03/13(水) 13:02:27.40ID:q3MDl01V
for~else ってなんか直感的じゃない気がするんだけど、なんで「else」なの?

completed
breaked, aborted
finally
みたいな単語なら分かりやすいのに。
2024/03/13(水) 13:27:55.78ID:baZhL1uT
すげえ大昔からあるんだな
https://stackoverflow.com/questions/682185/which-version-of-python-added-the-else-clause-for-for-loops
2024/03/13(水) 15:16:21.22ID:NVpOWzEq
>>450
妄想がはげしい
5chで5行超えたら一旦立ち止まろう
後半句点も復活しているw
2024/03/13(水) 15:54:43.36ID:m9o7WxBh
>>439
それ用の構文は無い
大域脱出の代替手段はいくつかあるけど基本的には早期リターンで対応する
その例だと内側の2重ループを関数化してbreak, continue, return(もしくはyield)で対処可

>>451
for-elseはBad Partsなので使わない
Effective Pythonにも使うなと書いてある
よくある”not found”みたいな処理はfor文の一部としてではなく
一つ上位でハンドリングすべき処理なので役割分担が間違ってる
455デフォルトの名無しさん
垢版 |
2024/03/14(木) 03:42:52.99ID:/Z8fZW3i
>>453
どの辺が妄想なの?
すぐ5行以上とかのレスに長文乙って返してくる人どの板にもいるけど根拠が示されて若干長くなった文章読めないの?短文でマウントとるだけのレスほどくだらないものはないと思うけどね
句読点があったりなかったりすると何が問題なわけ?
447では意味ありそうなレスしてるのに一方で煽るとは不思議な人だね
2024/03/14(木) 19:42:58.77ID:4bFX29zW
pythonをサーバーでプロジェクトルートを認識させられない

NoModuleNamed"プロジェクトのフォルダー名"になる

herokuなんだけど
457デフォルトの名無しさん
垢版 |
2024/03/14(木) 21:13:08.36ID:xE50NtDY
>>450
日本だと4つが一番多いが、外国だと8つも多く、16すらある。
2024/03/15(金) 13:14:40.59ID:6p0ry24q
pygameのlineを使い時計の秒針のようか円を描こうとしたんですがうまく行かない
どこが悪いの???
2024/03/15(金) 13:15:14.89ID:6p0ry24q
import sys
import math
import numpy as np
import time
import pygame

pygame.init()
WHITE = (255,255,255)
WIDTH, HEIGHT = 400, 300
SURFACE = pygame.display.set_mode((WIDTH, HEIGHT))
FSPCLOCK = pygame.time.Clock()

center_x = WIDTH // 2
center_y = HEIGHT // 2
def main():
while True:
for event in pygame.event.get():
if event == pygame.QUIT:
pygame.quit()
sys.exit()
2024/03/15(金) 13:15:36.25ID:6p0ry24q
for theta in range(0, 360, 20):
rad = math.radians(theta)
R = np.array([[math.cos(rad), -math.sin(rad)],
[math.sin(rad), math.cos(rad)]])

point = np.array([center_x, center_y])
rotated_point = np.dot(R, point)

x = rotated_point[0]
y = rotated_point[1]

pygame.draw.line(SURFACE, WHITE, (center_x, center_y), (int(x), int(y)))

time.sleep(1)
pygame.display.update()
FSPCLOCK.tick(100)

pygame.quit()
sys.exit()

if __name__ == '__main__':
main()
2024/03/15(金) 14:06:44.19ID:6p0ry24q
うまく行かない→画面外にlineの先端が飛び出す です
2024/03/15(金) 15:38:52.20ID:NWS7XA3x
>>461
これを試してみてくれ
point = np.array([0, -center_y])

x = rotated_point[0] + center_x
y = rotated_point[1] + center_y
2024/03/15(金) 15:59:41.53ID:6p0ry24q
>>462
ありがとう
円になりました
464デフォルトの名無しさん
垢版 |
2024/03/15(金) 17:26:12.14ID:8JWNUOHY
>>456
なんで?
2024/03/15(金) 17:38:05.39ID:NWS7XA3x
>>463
座標回転は原点からのベクトルにしてから回転して
後で始点座標を加算する
後、縦横の長さが違う時は短い方に合わせないと飛び出す
必要なら1/2、1/4などして長さを調節する
画面サイズを元にスケーリングして長さを求めるのは画面サイズに依存しないやり方
2024/03/15(金) 17:46:21.03ID:F3qtk1ON
>>464
project_xっていうような名前のプロジェクト名だったけどherokuを覗いてみるとそんなフォルダーはなくて/app/って名前になってた

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

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

色々とherokuは使いやすくない
これならawsでも学べばよかった
2024/03/15(金) 17:47:08.11ID:F3qtk1ON
あとgitのdevelopブランチをpushしてたけどherokuはmasterしか見ないらしくそれもハマった
468デフォルトの名無しさん
垢版 |
2024/03/15(金) 21:48:19.54ID:8JWNUOHY
>>466
>だから相対パスや絶対パスを消して全部プロジェクトルートからのimportにした(ここらへんよく分かってない)
https://devcenter.heroku.com/articles/getting-started-with-python?singlepage=true
https://devcenter.heroku.com/articles/python-pip
この辺みたらpipでインストールできるようにしてたらコード書き換える必要なさそう

herokuに限らずデプロイするのにコード書き換える必要がでてきてしまったのはパッケージの構成がよくなさそう
何にしろ別環境にデプロイする以上、pipでインストールできるような構成にした方が楽だよ
469デフォルトの名無しさん
垢版 |
2024/03/15(金) 23:44:29.33ID:gLD47Opc
>>451
条件式がTrueのときループして、条件式がFalseのときelseになる
forもwhileもループ目的でつかうので、条件式がFalseのときというのは自然と終了時になる
たとえば下記のようなループしないコードだとfalseとだけ表示される

while True == False:
____print("true")
else:
____print("false")
470デフォルトの名無しさん
垢版 |
2024/03/16(土) 00:23:50.73ID:tIIuw8RV
いやいや
471デフォルトの名無しさん
垢版 |
2024/03/16(土) 00:34:26.59ID:IFaiGfVE
キーワードを節約のために同じ単語を使ってるけど
if-elseのelseと
try-except-else-finallyのelseと
for-else/while-elseのelseと
みんな意味が違う

ループのelseは”if not break”
2024/03/16(土) 00:41:49.95ID:ENgm2ZqF
意味を与えたら異なってくるけど
内部処理は同一にみえん?
2024/03/16(土) 03:10:31.74ID:KKwFKDp9
全部gotoやろなあ
2024/03/16(土) 05:06:55.01ID:aWIocRO6
herokuにアップしたらドメインとフォルダーの間のスラッシュが何故か2つになって恐らくそのせいで404とcors error出る
ローカルではちゃんと動くし有り得そうなところは全部見たんだが

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

elastic beanstalk に変えてデプロイし直すか.....
475デフォルトの名無しさん
垢版 |
2024/03/16(土) 10:02:19.46ID:eI+Kyosu
なんか、ドキュメントとかログとか読まなそうな人だな
476デフォルトの名無しさん
垢版 |
2024/03/16(土) 10:47:04.93ID:h3KSZFE8
>>473
ジョークにマジレスしちゃうけどgotoする条件の違いが重要

goto if false
goto if no exception
goto if no break
2024/03/16(土) 12:00:46.66ID:KKwFKDp9
>>476
(なので同一には見えないの意味でした. 補足ありがとう
2024/03/16(土) 13:00:21.70ID:BNVm3LV8
たぶん予約語を増やしたくないからelseを流用したんだろうね
この辺は言語設計のさじ加減だから仕方ない
2024/03/16(土) 13:18:07.52ID:gBCe/Ijm
try-exceptのelseってtryに全部書きたくない人が使うの…?
2024/03/16(土) 14:41:32.39ID:fX07kGnW
こんな混乱が起こる構文なので
使わない方がベター
実装されてる機能が全ていいとは限らない
2024/03/16(土) 15:25:29.24ID:S+aPEpZd
例外が発生するかもしれないけど上のexceptに混ぜたくない処理を書きたい場合とか?
482デフォルトの名無しさん
垢版 |
2024/03/16(土) 23:03:57.53ID:1SZ3hjNN
forのelseというのは
forに対するelseではなく
forのループの条件式に対するelse

だから意味は違っても内部処理は同一となる
なのでif-elseをループさせてやるとfor-elseと同じ処理を再現できる
https://ideone.com/2MULxa
483デフォルトの名無しさん
垢版 |
2024/03/16(土) 23:25:35.65ID:HgWB99Ut
>>482
なるほどね
言わんとしてることは良くわかったわ
2024/03/18(月) 19:10:03.43ID:mMZjYpOD
ωってPyPyに似てるよね
2024/03/18(月) 22:57:43.88ID:k+0BFsOa
おいなりさんだろ
2024/03/20(水) 21:07:42.45ID:g3UAOGQ4
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を受け取れるようにするにはどうすれば?
487デフォルトの名無しさん
垢版 |
2024/03/20(水) 21:12:04.19ID:GeI9OXvQ
two(*one())
2024/03/20(水) 21:27:30.26ID:g3UAOGQ4
>>487
サンクス
できました
2024/03/25(月) 21:04:47.80ID:ybmcJkp8
def myfunc():
__myfunc.initialized = True

こういうのってあり?
1年くらいpython勉強してきて、先日初めて見かけたんだけど
ちょっとおどろいてしまって
2024/03/25(月) 22:22:30.06ID:JhT+JdiB
functionもオブジェクトで__call__が生えてるだけと思えるならあり
ただどんな用法でも見通しが悪ければなし
491デフォルトの名無しさん
垢版 |
2024/03/26(火) 01:38:33.45ID:CAcXk4Yx
おどろいてしまうようなやり方はじっくりコードを見ないとわからない振る舞いをするから基本なし
2024/03/26(火) 02:04:23.26ID:s3c2P37L
便利ではあるけどわりと悪用寄りじゃねーかなあ
493デフォルトの名無しさん
垢版 |
2024/03/26(火) 04:38:00.60ID:vQ76deH4
"initialized" て何?
494デフォルトの名無しさん
垢版 |
2024/03/26(火) 09:15:41.63ID:we9m9tD+
>>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
>>>
495デフォルトの名無しさん
垢版 |
2024/03/26(火) 09:32:42.21ID:VDce1kQ4
アンスコはインデントのことやろ
2024/03/26(火) 10:24:26.34ID:1hPeYZqd
www
2024/03/26(火) 10:40:59.11ID:oEfu3HhX
2024/03/26(火) 10:56:16.21ID:SqtaP4pc
便利なことある?
100%無しだと思うが
2024/03/26(火) 11:22:52.88ID:cN9vnyja
気持ちはわかるが………
https://i.imgur.com/osueu8f.jpg
2024/03/26(火) 11:30:55.84ID:XEFglfYx
クラス定義より軽量、外の名前空間を汚さない
ジェネレータもあるしこれでしか書けないってのは思いつかない
501デフォルトの名無しさん
垢版 |
2024/03/26(火) 12:34:45.39ID:rLv5Wa1V
template metaprogramming に匹敵する犯罪
2024/03/26(火) 12:38:21.94ID:HGM8+XQV
>>499
それはクロージャかクラスを使うべきケース
状態を外から更新したいならクラスを
更新されたくないならクロージャを使う

副作用じゃなく値を返すのがメインならジェネレータも選択肢の一つ
503デフォルトの名無しさん
垢版 |
2024/03/26(火) 13:03:56.77ID:/DMrazJH
これGUI書きのクセっていうか、イベント・バインドの高階関数とかで見るな
簡単なGUI書いてて、クラス化まではしてないときかつ状態が2値のみのとき
ウィジェットまわりに全部押し込んだほうが目線動かなくてメンテしやすいんよ
それより表現が複雑だったら変数はrootに置いたり、クラスに持たせたりするんだけど、これはウィジェット(たとえばボタン)に持たせてるような感じ
initializedとか、btn.locked / del lockedとかだしょ
2024/03/26(火) 15:17:24.89ID:/6tigVoe
pylanceって何?
505デフォルトの名無しさん
垢版 |
2024/03/30(土) 09:21:28.53ID:FABGEyhJ
うちの pipが、

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

だとして、python3.1/site-packagesを pip listしたい。どうしたら?
506デフォルトの名無しさん
垢版 |
2024/03/30(土) 11:49:14.06ID:lTb8Ggax
python3.1 -m pipでやってみたら
要は使いたいpythonからモジュールでpipを起動する
507505
垢版 |
2024/03/31(日) 06:27:21.58ID:r7c9jkcO
>>506
python3.1 はもう無い。
2024/03/31(日) 12:09:50.75ID:sPPO74qw
$ pip list ―path python3.1/site-packages
509505
垢版 |
2024/03/31(日) 17:11:49.91ID:wZMZSRnS
>>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
------- -------
510デフォルトの名無しさん
垢版 |
2024/03/31(日) 20:01:34.78ID:k+SRq7RN
モダンなGUI作れるっていうからflet触ってるんだけど
もしかしてこれGUIに対するドロップ受け付け機能ない感じ?
2024/04/02(火) 21:32:23.08ID:tcE9WrX3
身体がflutterを受け付けない
pythonでflutterアプリが作れるとか
なんで、なんでそんなことを
512デフォルトの名無しさん
垢版 |
2024/04/03(水) 09:07:29.94ID:gYUDipyH
fletはflutterで根本的にwebアプリ用だから外部からの入力はdropzoneないと無理じゃないか
513デフォルトの名無しさん
垢版 |
2024/04/09(火) 09:59:41.23ID:vz2W6XdT
>>511
自分はDartを覚えず使わずflutterアプリ作れるってのが良いんじゃね
知らんけどw
2024/04/25(木) 18:36:04.67ID:et3aNg4p
>>510
それないのネックだよなー
2024/04/26(金) 04:15:50.28ID:irc/xjdb
このスレにあった質問かどうか自信がないんだけど・・・
投資系のライブラリ"talib"てあるじゃないですか
これに含まれるCCIの使い方がわからんのです
2024/04/26(金) 06:53:25.16ID:ZBCRkORu
>>515
ChatGPTに聞いてみなよ
もうプログラミングは人に聞いたりドキュメントを読む時代じゃない
2024/04/26(金) 07:20:49.79ID:oC+HoZzz
やってみたらわかるけどマイナーなライブラリの使い方聞いてもデタラメ答えるだけ
2024/04/26(金) 08:47:57.09ID:irc/xjdb
>>516
無料版3.5で聞いてみた
突然英語で喋りだして、思ってたのと違うコードを紹介してきたので諦めたw
2024/04/26(金) 08:50:24.75ID:GzSmFxiN
ChatGPTの野郎は知ったか振りばかりして「知らない」と言うことを知らないからな
2024/04/26(金) 08:59:13.25ID:svyb6xY8
>>516 みたいにプログラミングやってるくせにChatGPTの実力や使いどころを知らないのまじ無能
521デフォルトの名無しさん
垢版 |
2024/04/26(金) 18:16:07.03ID:AmdOltG1
いけず石の説明させたら架空の鉱物の説明しだすからな
2024/04/26(金) 20:01:21.45ID:sEQNDfGh
>>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を計算しています。実際の取引データを使用する際には、それに応じてデータを入力してください。
2024/04/26(金) 20:15:58.39ID:SscvQYbj
ドキュメント読めよ
524デフォルトの名無しさん
垢版 |
2024/04/28(日) 21:51:15.65ID:zlR73q8o
スレ立てあらしスクリプト対抗age
525デフォルトの名無しさん
垢版 |
2024/04/29(月) 05:58:27.57ID:sMTBjD6w
ちゃす
質問す

プログラミングのロジックを考える時に使える考え方ありますかね
入力と出力を考えるといいますが、関数の引数が入力、返り値が出力といいますか?
2024/04/29(月) 07:27:54.81ID:xgq67JZI
考えることはうんこを食って食べ物を尻から出すようなことだが
重要なのはコンピューターにとってばうんこも食べ物も変わらないという事だな
2024/04/29(月) 07:55:32.14ID:Irrt06Ch
そうやね
いかに物事を抽象化してシンプルにモデル化するか
528デフォルトの名無しさん
垢版 |
2024/04/29(月) 07:57:38.43ID:sMTBjD6w
複雑に考えすぎなんすかね
関数増えてくとわけが分からなくなります
529デフォルトの名無しさん
垢版 |
2024/04/29(月) 12:40:37.42ID:sMTBjD6w
材料→材料の処理→結果、というのがプログラムの基本なんすかね
530デフォルトの名無しさん
垢版 |
2024/04/29(月) 12:43:56.77ID:1Ba7WF72
何でもそうだけど真似というか模倣から始めるのはどうよ
ギターでもHIDEがカッコいいとか布袋みたいにとか真似するでしょ

デザインパターン本だとか有名なオープンソースのコード見てると何となく癖というか法則みたいなのが分かってくる
2024/04/29(月) 15:01:05.04ID:36J4bmfl
アルフィーの高見沢さんの髪がまだ短めで黒かった頃、メイキングのムービーで作曲する姿が写っていたが、
少し書いては弾いて違うと書き直すのを繰り返す姿を見て、これってオブジェクト指向に通じるんじゃないかと思った。
2024/04/29(月) 15:24:26.44ID:3QF86HD9
途中までスクリプトかと思った
短いときなんてあったのかぁ
2024/04/29(月) 15:43:29.23ID:yZBAGAQ6
>>525
一度に一つのことしかしないように考えるかな
あと一般的なことは考えず今必要なことだけをやる仕様にする
2024/04/29(月) 16:30:19.78ID:7kmh2Muz
>>525
>関数の引数が入力、返り値が出力といいますか?
話の文脈によるんだけど「関数の入出力」が引数と返り値だけを指してる場合もあれば
それ以外の外部状態からの入力や出力なんかを含む場合もある
プログラム設計時に関数の入出力を考える場合は
引数や返り値以外も考えないといけないので広い意味も頭に入れておいたほうがいい

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

指示―> 処理 ―>処理結果 
材料―>    ―>加工した材料
535デフォルトの名無しさん
垢版 |
2024/04/30(火) 05:58:23.71ID:7kO3MDXp
ありがとう(*´ω`*)、、
536デフォルトの名無しさん
垢版 |
2024/04/30(火) 11:47:25.31ID:7kO3MDXp
比較について質問なのですが、数値ペア同士の比較というのはプログラミングでは出来ないのでしょうか?
例えばvector2なら、xとyの値を取り出してそれぞれ比較しますね
537デフォルトの名無しさん
垢版 |
2024/04/30(火) 11:58:01.28ID:7kO3MDXp
プログラミング得意な人は頭の中がどんなイメージになっているのだろう
すべて図解になっているんだろうか
2024/04/30(火) 12:17:12.46ID:e06sRc0C
>>536
普通にできるでしょ
(0, 1) > (0, 2) => False
(1, 1) > (0, 2) => True

Tupleの場合は内部的にそれぞれの要素を取り出して比較されてるけどね
539デフォルトの名無しさん
垢版 |
2024/04/30(火) 17:47:36.57ID:bXsIEdjD
>>537
境界知能みたいな知能が低い人には無理だよ
2024/04/30(火) 18:05:05.21ID:l8IWanaC
>>537
単に経験豊富なだけだよ
色々やればイメージができるようになる
541デフォルトの名無しさん
垢版 |
2024/04/30(火) 18:08:16.92ID:7kO3MDXp
>>538
>>540
どうもっす
2024/04/30(火) 19:36:23.61ID:yMZhKZIP
経験を活かせるかどうかが能力なので
539にもアンカつけてあげて
まじで向いてない人いるから
2024/05/01(水) 00:28:40.04ID:+iRkaWFb
>>537
プログラムの構造を考えるのは文章の構成を考えるのと同じ頭の使い方をする
文章の構成を考えるときに図でイメージしてる人もいればそうでない人もいるように
プログラミングに習熟した人でもプログラムを図でイメージしてるとは限らないしできるとも限らない
544デフォルトの名無しさん
垢版 |
2024/05/01(水) 01:16:14.81ID:Zve8z/ER
小学生でもバブルソートは書けるので、知能にデコボコがあっても、どの方向が劣っているのかによるのでは。
2024/05/01(水) 10:19:05.69ID:HGDms0B9
小学生でもプログラミング得意なやつはいるけどバブルソートを書くというのはお手本を模写できたり辞書を引いて目的の項目を調べられたりする程度の話だからプログラミングが出来るかどうかの指標にはならないよ
546デフォルトの名無しさん
垢版 |
2024/05/01(水) 13:34:16.61ID:OSMPRnYB
実際のプログラムだとソートする関数は用意されてるから自ら実装する事は無い

ソートはあくまでもアルゴリズムを学ぶ上での教材的な感じ
2024/05/01(水) 14:26:55.02ID:G90j3Kau
??アスペにもわかるように書いてほしい
2024/05/03(金) 00:19:22.63ID:In48C7dA
ゲーム制作板で何年も倉庫番完成させられてない人じゃん
親切な人がいっぱい釣れたね
549デフォルトの名無しさん
垢版 |
2024/05/03(金) 01:30:55.10ID:ZXRxoWBs
C#スレにもいたあの馬鹿か?
2024/05/04(土) 12:25:55.56ID:+MvlSNsp
あれ人じゃなくてチャットbotだからスルー推奨だよ。
551デフォルトの名無しさん
垢版 |
2024/05/12(日) 12:51:00.18ID:Z6PeNQRU
そういや、ぷよぷよかなにかのヤツどこ行った?
同一人物?
2024/05/15(水) 16:15:32.43ID:Ui7vW0sT
pythonを使って、既存のMicrosoft officeのファイル(.docファイルとか)の中身を調べたり取り出したりする事ってできますか?
553デフォルトの名無しさん
垢版 |
2024/05/15(水) 16:58:28.85ID:OtQbYBA6
ああその通りだ
554552
垢版 |
2024/05/15(水) 17:55:42.92ID:Ui7vW0sT
出来るみたいです
555 警備員[Lv.6][新初]
垢版 |
2024/05/15(水) 21:59:57.58ID:QNLWEWL4
>>551
脳みそコネコネ、コンパイル。
556デフォルトの名無しさん
垢版 |
2024/05/16(木) 20:50:07.99ID:+TVk7IrH
Pythonで処理した画像を連続してwebUIに送って動画にしたいんですけど、ローカルサーバーをスレッドで分けても全然動かないんです。
上手いやり方はあるんでしょうか?
2024/05/16(木) 22:01:41.29ID:s6fDlAb8
まあPythonじゃ無理じゃないかと
君の知る似たようなサービスでPython使ってるの見たことあるかね
558デフォルトの名無しさん
垢版 |
2024/05/17(金) 09:13:18.34ID:n7lyb5r2
>>557
そうなの? 単にファイルを httpdにアップロードするのとちゃうの?
2024/05/18(土) 02:42:21.17ID:Y3svyv5q
Image Magick, libvips などで、
連続画像を動画や、gif アニメに変換できないの?
2024/05/18(土) 05:29:10.65ID:+oV5woho
静的にファイル変換じゃなく
リアルタイム配信したいんとちゃう
561デフォルトの名無しさん
垢版 |
2024/05/18(土) 15:28:18.14ID:Nno4tBsF
Pythonじゃ無理ってことはないけど、Javascriptで画像を動画のように表示する方法がわからないとPython側をどう実装したらいいかもわからないのでは
2024/05/18(土) 15:48:07.52ID:cxC1UrsB
webUIってお絵かきAIのUIの事を言ってる気がする
563デフォルトの名無しさん
垢版 |
2024/05/19(日) 17:51:21.58ID:MUvRAHvn
JavaScriptが嫌でPythonに逃げたのに
Webやるなら結局JavaScriptから逃れられない
2024/05/19(日) 18:18:51.96ID:b9wC29CZ
>>563
Webやらなきゃいいじゃん
覚えることが大杉て向かない人にはとことん向かない
565デフォルトの名無しさん
垢版 |
2024/05/19(日) 18:29:56.96ID:R0BEkzb0
>>563
こういう馬鹿な人っているよね
結局、何がどうなっているのかわからん人なのだろう
566デフォルトの名無しさん
垢版 |
2024/05/19(日) 18:52:17.68ID:EZ0vB2tL
>>563
たまたまホットな言語になっているのでpython腐るのはとうぶん先
気合でJavaScriptしてこい
2024/05/19(日) 19:18:30.80ID:1dVUvEdV
javascriptの何が難しいのかわからん
568 警備員[Lv.29]
垢版 |
2024/05/19(日) 20:04:35.82ID:j/RUVR5T
>>558
順番を制御する必要がある。
569 警備員[Lv.29]
垢版 |
2024/05/19(日) 20:07:09.84ID:j/RUVR5T
Pythonは構文解析エンジンの作りが下手だったせいで、コンテナなどは変な構文で対処するはめになった。

作った本人は当時のパソコンの性能では難しかったと言い訳するだろうが。
2024/05/19(日) 21:12:03.22ID:b9wC29CZ
>>567
Pythonは簡単に覚えられたけどJavaScriptはダメだった
何の特徴もないので頭に入らない
2024/05/19(日) 21:25:11.71ID:ThBHY2c/
JavaScriptはブラウザ内で多数のイベントが非同期に発生しつつ並行して動く必要があるための仕様とランタイムを備えた言語だからね
そのような実用環境ではPythonだと色々と無理があるんよ
JavaScriptを習得したほうが良いでしょう
2024/05/19(日) 21:43:45.99ID:n4puDrtS
生のJSじゃなくてもtypescriptとかもあるけど?
2024/05/19(日) 21:51:27.11ID:1dVUvEdV
>>570
特徴がないとは?
Webフロントで100%使われてるんだが
つまり理解できていないだけだろ
2024/05/19(日) 22:58:44.91ID:dpzcJCd+
>>571
> 非同期に発生
あれ、非同期だっけ?
2024/05/19(日) 23:22:52.01ID:FYT65XYX
Webのイベントの非同期ってのは言語仕様とほとんど関係ないと思うがな
2024/05/20(月) 00:04:59.52ID:XCNT6iUc
非同期・並行に動くのがJavaScriptの特徴だよ
2024/05/20(月) 00:07:58.83ID:XCNT6iUc
JSは継続渡しによって記述コードは継続できるけど
制御は一旦ランタイムに移って別のコードの処理が並行して動く
2024/05/20(月) 00:08:40.12ID:XCNT6iUc
そして再び非同期に元の継続コードに制御が戻ってくるんだよ
579デフォルトの名無しさん
垢版 |
2024/05/20(月) 04:36:21.10ID:IVctLQWM
JSの難しさというかゴチャゴチャは複数人で開発すると顕著化する
580デフォルトの名無しさん
垢版 |
2024/05/20(月) 04:37:36.57ID:IVctLQWM
>>576
違うぞ
勘違いしてる様だけど並行では無い
2024/05/20(月) 04:57:24.87ID:XCNT6iUc
>>580
(workerを使わない昔からの)JavaScriptはシングルスレッドで並行(concurrent)に動作します
ちなみに(後に導入された)workerを用いるとマルチスレッドで並列(parallel)にも動作します
2024/05/20(月) 07:48:45.56ID:lmso/U+6
async/await が導入されてからは並行処理と言えるかもしれんが python にも導入されてるから
JS の特徴というほどのものでもないな。
2024/05/20(月) 08:56:05.71ID:oBw42F9L
PythonはOSがプラットフォームだけど
JSはブラウザとnodejsでだいぶ違うし
varとconst/let混ざったコードなんかに遭遇すると頭おかしくなる
2024/05/20(月) 09:16:38.85ID:Rnmyv+xl
メインスレッドを止めても、worker側でイベント受け取れる?
2024/05/26(日) 00:09:03.41ID:J6Dn8duN
誘導されてきました

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

これで文字列"23"が返ってくるんだが"234"にならない理由ががわからん
インデックスが0から始まってるからインデックス2番目からインデックス4番目までの文字を表示するんじゃないの?
2024/05/26(日) 00:45:27.61ID:EuHdBjWc
>>585
https://docs.python.org/ja/3/tutorial/introduction.html#lists
ここに載ってる
理解できなくてもいいからまずチュートリアルは一通り読んでほしい
587デフォルトの名無しさん
垢版 |
2024/05/26(日) 00:48:13.48ID:jZlLPC0/
>>585
2<=i<4だと考えるといいよ
そうした方がいい理屈は以下の通り
リストlをiで分けるとき、以下が成り立っていると見た目でスッキリして嬉しい
l[:i] + l[i:] == l
まあ思想の問題なんで上記のものがスッキリと感じるか感じないかは人による
2024/05/26(日) 00:48:19.96ID:EuHdBjWc
すまん
アンカーまちがえてるけど同じページのすこし手前に書いてる
2024/05/26(日) 05:11:49.24ID:5Cxfl8yi
Google colabでクロムドライバーをどこに置けばいいんですか?
2024/05/27(月) 06:00:49.16ID:qvFqCc+v
漏れ独自のやり方で良ければ、

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

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

環境変数・path は、Powershell で以下で確認できる。
$env:Path.split( ";" )
2024/05/27(月) 20:12:43.14ID:Hlp/8xqP
>>590
有難うございます、試してみます
2024/05/29(水) 21:20:05.17ID:SBPtCrlE
ある程度自由にデザインできて作りやすいGUIのライブラリって何がありますか?CustomTKinter?
でもこれでもちょっとわかりにくいけど、我慢してコードの書き方を覚えるしかない?
2024/05/29(水) 21:22:50.04ID:SBPtCrlE
あ、でもそんなに難しく無いですね
Custom TKinterくらいがちょうど良い
これでいきます
2024/05/29(水) 23:25:41.17ID:SBPtCrlE
やっぱりPySimpeGUIにした
わかりやすいので
2024/05/31(金) 08:16:19.69ID:zAziLKIc
>>586
読みましたわかんないです
596デフォルトの名無しさん
垢版 |
2024/05/31(金) 08:19:43.69ID:5P0I5zKD
abcde
という文字の一部を選択するときに
0a1b2c3d4e5
というように0から数える言語じゃなかったか?python3
597デフォルトの名無しさん
垢版 |
2024/05/31(金) 09:16:40.63ID:Rfc8mm4q
>>596
唐突になに?
598デフォルトの名無しさん
垢版 |
2024/05/31(金) 10:27:03.30ID:9rLTVgTT
とうぜん585の答えの理由だよ
いいかげんに判れよ
数え方が間違っているんだよ
2024/05/31(金) 10:57:52.41ID:TyV+wAs5
>>585の話ならmylist[start: stop]のstopで指定した箇所が
スライスに含まれるのか含まれないかの話だから
0から数えるかどうかは関係ない

だから>>597の感想も頷ける
2024/05/31(金) 11:17:11.06ID:xqNBz4cX
決めの話でもあるけど半開区間のが書くコードが素直になる
601デフォルトの名無しさん
垢版 |
2024/05/31(金) 12:39:47.52ID:9rLTVgTT
スタートオフセットと終了オフセットね
list[x]のxと異なる
2024/05/31(金) 13:52:28.81ID:ixAaAqDb
そうそう、>>596の言うように、スライスで指定する値は各要素そのものの位置ではなくて、要素と要素の間の位置なんだよね。
0●1●2●3… (●は要素)

これが理解できると、マイナス指定で逆から取り出したりとかもすぐに分かるようになるかと。
2024/05/31(金) 15:02:02.41ID:z4TXzonv
ぶっちゃけそれは違う

そういう説明じゃないと理解できない人向けの説明としては意味があると思うけどいつまでも引きずるものじゃない
2024/05/31(金) 15:08:57.01ID:MpCbGIxa
べつに問題ないと思うがなあ。
グラフィックスで言うピクセル座標に対するグリッド座標系の話と同形。
2024/05/31(金) 15:32:41.83ID:xqNBz4cX
ここで別の概念を導入しないと習得できないくらいじゃ先が思いやられるってだけで
問題の有無はこれからどこまで取り組むかによる
2024/05/31(金) 16:00:35.87ID:E++g7v66
要素の数はわかりやすいよな
引き算するだけでいいし
2024/06/01(土) 16:32:50.72ID:2v+0cLbq
デザインパターンでオブジェクト指向を理解し始めたら、オブジェクト指向が廃れてしまった(´・ω・`)
2024/06/01(土) 17:32:13.74ID:C+czcv7n
GUI作成ツールって無いの?
グラフィックアプリみたいにウィジェットを配置したら、コードを書き出してくれるツール
2024/06/01(土) 17:33:08.15ID:wmmovTy+
Qt
2024/06/01(土) 19:46:57.51ID:etHHxabq
wx
2024/06/01(土) 20:25:37.00ID:Zt7v+i4d
Qt Quickもぽとぺたできるけど人少なすぎてな…
2024/06/03(月) 20:22:29.52ID:MnZ0MIrt
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はインストールされています。
しかし、このエラーが出ます。

どうすればいいでしょうか?
2024/06/03(月) 21:50:52.22ID:3hY3UrlC
>>612
馬鹿は何で勝手にエラーを無視するの?
馬鹿だから?
2024/06/03(月) 23:56:17.44ID:zK4G03Sv
>パッケージの抽出に失敗しました

エラーなのに、何でそこで処理を止めないの?
615デフォルトの名無しさん
垢版 |
2024/06/04(火) 01:31:12.37ID:nKdfCONb
>>614
そりゃ止めるべきですが、そこでインストールが終わってしまいます
その後どうするんでしょうか
2024/06/04(火) 01:47:07.24ID:gWxOd/CS
エラーの原因を調べて対処する

or

「Failed to extract packages」みたいな原因も対処方法も分からない
クソみたいなエラーメッセージしか出せないソフトウェアは今すぐ捨てる
2024/06/04(火) 03:02:29.50ID:hII/eoCO
>>615
原因はいくつかあるけど、これをクリアしてもお前みたいな奴は結局無理だよ
618デフォルトの名無しさん
垢版 |
2024/06/04(火) 03:21:34.42ID:hR2Ko9Dv
あ、人を轢いちゃった
でも時間に間に合わないからこのまま行こうっと
何か車の調子が変だな?がちゃがちゃ
あ、また轢いちゃった
まあいいや、このまま行かないと間に合わない
あっ、信号が赤だけど停まれないからえいっ
あー、ぶつけられた

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


こんな感じか?
619デフォルトの名無しさん
垢版 |
2024/06/04(火) 08:17:16.38ID:f1zDzjkS
きよし「二人寝てますよ」
やすし「轢いとるやないか!」
620デフォルトの名無しさん
垢版 |
2024/06/04(火) 11:44:28.70ID:nKdfCONb
>>612
こちらどうでしょうか?知っている人教えて下さい
2024/06/04(火) 11:56:23.33ID:C1T0aGVu
>>620
>>616
622デフォルトの名無しさん
垢版 |
2024/06/04(火) 12:15:01.67ID:f1zDzjkS
>>620
類似事象があるようなので、「いいね」の付けられたレスの解法を試行するのはどうだろう。
https://community.anaconda.cloud/t/cant-install-failed-to-extract-packages-error/62687
2024/06/04(火) 12:57:59.77ID:v1hWPJDU
>>612
Win7に対応してるのは2019-10まで
https://docs.anaconda.com/free/anaconda/install/old-os/

pythonだけでいいならpython.org公式の3.8.10まで
624デフォルトの名無しさん
垢版 |
2024/06/04(火) 16:49:21.73ID:tR+BuZi1
ここは超初心者用ではあるけど、境界知能者用のスレではないよ
625デフォルトの名無しさん
垢版 |
2024/06/04(火) 23:07:28.09ID:k5yNkVnV
プログラマー板がまともだったことはない
626デフォルトの名無しさん
垢版 |
2024/06/05(水) 23:47:06.04ID:ESv2AI1d
>>622-623
ありがとうございます
>>624
>>973
役に立たん荒らしのゴミが相手にされなかったから発狂してて草w死んどけよカスw
2024/06/05(水) 23:48:44.31ID:SEG9AGVJ
pkg install python した方がよっぽど簡単なんじゃねw
2024/06/06(木) 10:38:37.99ID:1RUNBtFi
anaconda、バージョン違いの小さな差異は本体だけでpyでバージョンごとに
個別管理できるようになったし有償化した(割に機能が見合っていない)ので
使い続ける意味あんまなくなったな。
ウチの会社でももう使わないように通達されてる。
2024/06/06(木) 10:49:12.08ID:qz5pj6nB
またanacondaの話になるならanaconda専用スレ立てれば良い
2024/06/06(木) 17:55:27.15ID:+f7ZeVqk
pipxが安全なのはわかるが使いにくいな
pipxは見ずにpoetryだけ使えばいいのか
2024/06/07(金) 01:52:33.37ID:TKo/YskT
>>612
こいつの本性が笑える

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

ID:ESv2AI1d0
2024/06/07(金) 06:04:01.45ID:+I6YMw89
あれだけ煽っておいてよく同じ質問を同じ板でしたなw
2024/06/07(金) 12:09:55.41ID:dEUVRqD7
pythonのパッケージマネージャーはいくつ出れば気が済むのか(´・ω・`)
634デフォルトの名無しさん
垢版 |
2024/06/07(金) 12:34:41.54ID:q6BY+Kco
幾つのパッケージマネージャが出れば、君は Pythonをまともな言語と呼ぶのか。
友よ、その答は風に吹かれている。
2024/06/07(金) 12:49:10.90ID:XsPkgKWU
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のキーでも同様なことをしたいです

なにかよい対応方法はありますか
636デフォルトの名無しさん
垢版 |
2024/06/07(金) 14:49:41.59ID:SXd2mcAV
groupA: image: sampleA0.jpg
groupA: section: - section2: image: sampleA2.jpg
groupB: section: - section2: image: sampleB2.jpg
にならない理由は?
2024/06/07(金) 15:25:32.07ID:U/LNotLd
いっぱいあるXPath相当がつかえるモジュールでもつかえば?
YAML用じゃなくてもDict向けのでもいい
2024/06/07(金) 16:31:15.75ID:Z4LBLF5E
Python はvenv、Ruby はrbenv、Node.js はnvm など、
各言語で異なるバージョンマネージャーを使う香具師は素人。
すべて使い方が異なるだろ

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

Linux のローカル開発なら、Docker を使うのが簡単だが、
日本人が作った、多言語バージョンマネージャーのanyenv で、rbenv, nodenv も使える。
pyenv も同様。
asdf でも、多言語の好みのバージョンを入れられる
2024/06/07(金) 17:35:37.77ID:wW+zlW8A
>>635
pyyamlとboltonsのresearchを使う
後者は再帰的な処理を自作してもいい(dictとlistで場合分け)
2024/06/08(土) 00:52:57.64ID:TvmcjMCs
>>633
pythonの破綻が見えてきてると俺は思う
perlもcpanが腐って終わった
2024/06/08(土) 00:54:05.76ID:TvmcjMCs
dockerは無駄多すぎだろ
さすがに
2024/06/08(土) 12:49:56.73ID:JJO/Gn8n
dockerがベスト
vscodeのdevcontainerこそ人類がたどり着いた最高地点
2024/06/08(土) 14:04:39.39ID:pZ+rs27B
俺もvscode devcontainerの組み合わせが良い気がする(´・ω・`)
2024/06/08(土) 14:22:11.33ID:3whGHUAW
みんなそんなdockerつかうのね
2024/06/08(土) 14:41:09.17ID:E87q1Rk2
デプロイまで考えるとコンテナにしとくのがシンプル
646デフォルトの名無しさん
垢版 |
2024/06/08(土) 14:46:38.50ID:dTYjDoY8
逆にDocker使ってない人見ると何で?って思うぐらいだよね
647デフォルトの名無しさん
垢版 |
2024/06/08(土) 15:29:59.02ID:Dxs/ulLi
自分でコード書いてる時間が一番幸せなんじゃ
2024/06/08(土) 17:55:04.64ID:Hlb2wDxo
>>644
といいかまともな開発してたらもう使うわないと環境が破綻する
649デフォルトの名無しさん
垢版 |
2024/06/08(土) 21:01:34.24ID:D2c2x+th
そんなもんデプロイ先の環境によるだろ
2024/06/08(土) 23:58:06.46ID:gE4A0CAK
くだ質ですまんが教えてください

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

是正させるためには
round(3 * 0.3 *10) / 10
をすればいいのはわかってるんですが、出来るだけコードを簡略化させたいのと、そもそも何故こんな結果になってしまうのかを出来れば知りたい、です
2024/06/08(土) 23:59:19.96ID:gE4A0CAK
ごめん計算結果のとこは0.899999...の間違いです
652デフォルトの名無しさん
垢版 |
2024/06/09(日) 00:42:23.58ID:DuD3W8cN
ttps://docs.python.org/ja/3/tutorial/floatingpoint.html
653デフォルトの名無しさん
垢版 |
2024/06/09(日) 01:03:55.23ID:KXbUABQj
デデキントの切断という話でなくて単純に整数n,mによる
n/mをサポートする型がデフォルトではないから
そういう有理数正確に扱える↓を使え
fractions -> Rational numbers
654デフォルトの名無しさん
垢版 |
2024/06/09(日) 01:19:56.30ID:KXbUABQj
不動点少数は高速でメモリ消費が少ないのでpythonのデフォルト型には似合ってるよ
でももし、こうした計算が頻回あるいは重要に行なわれるなら
デフォルトで有理数をサポートした言語 common_lisp,R,wolfram等が良いだろう
また無理数も正確に扱いたいならwolframを薦めとく。これはsin(2pi)=0を返す珍しい言語だ
2024/06/09(日) 06:20:23.00ID:zJwQQmGc
サンクス
言語仕様なら仕方ないか
仮想通貨の自動売買用にpythonを始めたんだけど、今のところ他の言語に切り替える考えはないっす
あと調べたらdecimalってモジュールもあって、これを使ってもスッキリ書けそうね
2024/06/09(日) 09:38:02.01ID:XLDZv0sl
浮動小数点数は言語仕様というと違和感があるな
どの言語でもほぼ同じ問題出るだろうし
657デフォルトの名無しさん
垢版 |
2024/06/09(日) 09:39:22.17ID:XLDZv0sl
>是正させるためには
>round(3 * 0.3 *10) / 10
>をすればいいのはわかってるんですが

こんなことしたらダメでしょ
2024/06/09(日) 10:37:28.45ID:0/tKVw6D
Decimalは使いづらいんだよね
Decimal('3') * Decimal('0.3')とかいちいちやってられん
2024/06/09(日) 11:41:31.33ID:lrgfA1Gl
継承と合成どちらを使うべきかと基準がよくわからんなぁ(´・ω・`)
2024/06/09(日) 17:04:58.68ID:Fa41Tv3c
>>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')
661デフォルトの名無しさん
垢版 |
2024/06/10(月) 15:55:09.93ID:YXHAsqQy
>>> Decimal(3) * Decimal(3/10)
Decimal('0.8999999999999999666933092612')
だっさ
662デフォルトの名無しさん
垢版 |
2024/06/10(月) 16:09:43.37ID:17x/k5Bx
まじか decimal だらしねーな
お手本
[1]> (* 3 (/ 3 10))
9/10
2024/06/10(月) 17:41:53.13ID:8JGo2SkV
>>> Decimal(3/10)
Decimal('0.299999999999999988897769753748434595763683319091796875')
>>> Decimal(3/10).quantize(Decimal('0.0'))
Decimal('0.3')
エスパーしない方針だから
2024/06/10(月) 21:30:34.55ID:RgnmhcQ5
>>661
クソだっさwww
2024/06/11(火) 10:00:28.46ID:ufFRRQKE
↓俺の考えた最強のスマートな書式を語れ
2024/06/11(火) 11:06:34.00ID:GrH0S5VC
>>> Decimal('3.0')
だっさpgr
667デフォルトの名無しさん
垢版 |
2024/06/11(火) 11:19:18.72ID:GtLbEh/G
perlの2番煎じにはなるが import XXX で オーバーライドしてくれればいいね
2024/06/11(火) 20:03:54.96ID:NWbfM0Iu
C++プログラマーだが、
エディタは何使えばええの?

Visual Studioは一応動くが…
2024/06/11(火) 20:27:59.97ID:OZZ7Wa3f
汎用でつかえるのはPyCharmかVSCodeかな
用途とマッチするならJupyter/Colabもいける
670668
垢版 |
2024/06/12(水) 08:58:44.17ID:j9iMATnj
>>669
一番高機能なのはVS Codeかね?
Colabが本格開発に無理なので、探してたところ。
2024/06/13(木) 07:44:44.26ID:W4hE6ovf
環境を整え無くてもいいPyCharmが楽だな
2024/06/13(木) 13:05:54.68ID:vNUeXKFR
会社の糞PCだとPyCharmが重いんだわ
2024/06/13(木) 13:21:14.57ID:Uc7cK+cC
パイチャ!
2024/06/17(月) 12:06:22.09ID:2+GH8Qi6
モジュールAのMainクラスがモジュールBに書いたSubクラスのインスタンスを生成する
型ヒントのためにAはBの、BはAの参照するから相互参照になっちゃうんだけど
typing typechecking使えば回避できるとして

これって根本的にどう作って相互参照回避すべきなんだ?
2024/06/17(月) 12:17:35.59ID:a7DQgjMw
シチュエーションが謎で理解できてないけど
インターフェースとして上位クラスをつくる
676デフォルトの名無しさん
垢版 |
2024/06/17(月) 12:44:35.82ID:laKFnUpc
循環しちゃうのは速度落ちてメモリ消費してしまうけど記憶しといたのと照し合わせる手法がある
2024/06/17(月) 12:50:19.30ID:Me30jdtI
>>674
その状況だとBはAをインポートする必要いやろ

よくあるのはtyping用のスタブモジュールを作る方法
2024/06/17(月) 14:24:03.32ID:KAevd3qc
>>677
A.py App()
B.py Win()

winがコンストラクタでsuper().__init__(app.root)するとき
App渡せないとroot見えないって言われてしまう
2024/06/17(月) 15:22:40.07ID:Me30jdtI
>>678
その例だとWinが依存すべきなのはAppそのものじゃなく
Appが継承してる型だったり実装してるインターフェースの型
tkを例にすればWinが依存するのはAppそのものじゃなくtk.Tkやtk.Widget

AとBの相互依存から共通で依存する抽象度の高いCを切り出すことで
AはBとCに依存、BはCに依存、CはAにもBにも依存しない形になる
2024/06/18(火) 23:47:26.99ID:l8Y5coIJ
>>679
仕様上サブがメインのいくつかに依存するから丸ごと渡してたけど
rootと、必要な位存箇所だけ渡すようにすればいいのね
681デフォルトの名無しさん
垢版 |
2024/06/19(水) 07:39:14.75ID:Ml7xOhwE
__init__.py 描けば良いのに
682デフォルトの名無しさん
垢版 |
2024/06/19(水) 08:41:26.42ID:oNcSZ2Oe
C言語系は数年やっていてpythonのお勉強してるので質問させてくれ

@propertyを使用してgetter/setterを作れるのが分かりました
このプロパティをprotectedにするにはどうしたらいいですか?
2024/06/19(水) 09:10:58.03ID:Of90IDaN
>>682
この辺の話かな?
ttps://note.com/yucco72/n/nfc5ba5321567
684デフォルトの名無しさん
垢版 |
2024/06/19(水) 10:07:39.70ID:Ml7xOhwE
>>683
そいつ馬鹿やな
痒い所に手が届いてる好例なのに
2024/06/19(水) 10:48:00.65ID:EzJYrWWw
>>680
サブがメインに依存するという仕様がよろしくないんだよ
依存性の方向を一方通行にするというのがモジュール設計の大原則
686デフォルトの名無しさん
垢版 |
2024/06/19(水) 11:37:31.50ID:ANMSl1mg
>>685
そうはいってもどんな場合でも回避できるわけじゃないでしょ
うまく切り出せば回避できるかもしれないけど、見通しが悪く不自然になる場合があると思う
今自分が困ってるのは先生と生徒の関係で、先生は生徒を何人か選ぶのだけど、先生の事情もあるし、生徒のスケジュールもあるしで、
先生が生徒を選んだ後に、選ばれた生徒に先生のスケジュールはこなせるか?を確認してもらってるんだけど
かなり先生と生徒が密結合なのが避けられなくてインタフェースに切り出すと見通しが悪くなりそうなんだよね
こういう場合はどうすればいいのかな
2024/06/19(水) 19:41:52.46ID:E1qEKZbV
>>685
元の質問者だけど
今回はメインGUIとサブGUIでそれぞれ独立させて、メインGUIからサブGUIを見るだけ に作り直しました

ところで__init__.pyを書くとはなんですか?
2024/06/19(水) 22:24:53.92ID:jr8KvPbD
ctypesで構造体宣言するときに、以下のようにc側が不完全型の配列定義であった場合は、どのように宣言すればよいでしょうか。

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


class aa(Structure):
_fields_ = [("eListType",c_uint32),
("wRes",c_uint16),
("wOdList",???)
]
2024/06/19(水) 22:42:47.22ID:0e7E5JVP
>>686
>先生が生徒を選んだ後に、選ばれた生徒に先生のスケジュールはこなせるか?を確認してもらってる
これもapp.rootのやつと同じで生徒が先生に直接依存する必要なくない?
先生、生徒、コース/クラス、受講、のよくあるモデル
参照じゃなくidで受け渡すことも考えるといいよ
690デフォルトの名無しさん
垢版 |
2024/06/20(木) 08:09:05.13ID:hChVJ2JT
>>687
それってpipでインストールできる?
691デフォルトの名無しさん
垢版 |
2024/06/20(木) 17:09:09.89ID:F8Q2DGBi
>>688
C の方が malloc(sizeof(struct aa) + N) みたいにやってるだろうから
とりあえず N の最大値くらい確保
692デフォルトの名無しさん
垢版 |
2024/06/20(木) 17:55:30.81ID:ZSpymqjs
>>689
直接依存する必要がないので、idを持っておけばよいということ?
確かにidから引けるdictを持っておけばよいのはそうだけど、実質的にはそれは依存関係にあって、プログラミング言語での表現の制約を回避する策にすぎないような気がするのだけど勘違い?
2024/06/20(木) 18:12:29.06ID:pudWG0gF
>>688
("wOdList", POINTER(c_uint16))

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

wResがwOdListのsizeだったりするのかな?
2024/06/20(木) 23:47:51.33ID:F6VlqWlP
>>692
参照とidはカップリングの度合いの違い
直接依存する必要がないからという理由で書いたわけではないよ

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

ただこういうのはプログラミング上の小手先のテクニックなのは確か
>>686の話はもっとドメインレベルでの本質的な依存関係を先に突き詰めたほうがいいと思う
2024/06/21(金) 10:29:55.02ID:M8EEKVG+
>>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

だめやん
2024/06/21(金) 13:07:20.00ID:tjV7APzm
>>695
そういうもんやで
sizeofの結果も自動的に変わると思ってた?
697デフォルトの名無しさん
垢版 |
2024/06/21(金) 15:09:56.96ID:M8EEKVG+
そういう問題じゃなくて
常にPOINTER型の容量分しか無いのは可笑しい
2024/06/21(金) 15:17:35.67ID:M8EEKVG+
少なくとも >>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
2024/06/21(金) 15:45:50.01ID:K+jIH7ye
>>697
そういう問題が何を指すのか分からんが__sizeof__もctypes.sizeofもそういう仕様なんだって
Cのsizeofも同じやで

>>698
固定長にしろや!ってこと?
まーそれはそれで一つの選択肢だけど質問の答えにはなっとらんわな
2024/06/21(金) 16:03:41.50ID:K+jIH7ye
単に同じというと誤解を生むかもしれないから言い直しておくと
可変長部分のサイズがsizeofに反映されず自分で計算して別途管理しないといけないのはCも同じ
ということ
2024/06/21(金) 16:04:51.86ID:pyvrMoIs
pythonでandroidとiOSのアプリ作ってる人いる?
kotlinとswift覚えればいいんだけど、手間がかかるので
702688
垢版 |
2024/06/21(金) 19:26:17.13ID:HIobLuWQ
みなさんありがとうございます
結局固定長で適当に宣言しとけば良いってことですかね
確かにc側でmalloc使ってそうな気がします
2024/06/21(金) 21:53:29.93ID:xFZSSSbA
ちゃんと配列をやるならbuffer protocolにしたら
2024/06/22(土) 03:01:56.40ID:UT0yRehg
変数に何入ってんのかわかんなくない?
$%@使い分けるperl最強だわ
2024/06/22(土) 03:20:24.58ID:ITxAndmC
時代はタイプアノテーションなんですよ!(´・ω・`)
706デフォルトの名無しさん
垢版 |
2024/06/22(土) 09:29:12.03ID:mcK0MSE8
タイプアノテーションで思いだしたが、結局型チェック実装された?
それともそこまで効力は無い?
707デフォルトの名無しさん
垢版 |
2024/06/22(土) 09:38:48.07ID:R3uDiOs/
>>704
#&*も忘れてるだろ
708デフォルトの名無しさん
垢版 |
2024/06/22(土) 11:44:35.80ID:tVWK2T1P
>>706
Pythonの型チェックは外部ツールに任せるというのがポリシーなので標準実装されることはない
型アノテーションは厳密なチェックをするというよりは文字通り注釈としての役割が主であり、
VSCodeやPyCharmを通じて人間にヒントを与えるという点においてはそれなりに効力はある
2024/06/22(土) 13:20:16.98ID:JlqSUEN6
>>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のものになってほしいんだけど
2024/06/22(土) 13:39:16.54ID:o/eWDsQ7
>>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;
}
2024/06/22(土) 16:27:25.33ID:zTNlWcoj
>>706
最新のpythonでほぼ完全なGenerics表記が実装された
これにMSの静的型チェッカーPyrightを使えば動的言語では初めてまともな型システムが実装されたことになる
2024/06/22(土) 16:39:32.42ID:HiCoQzk6
TypeScriptより優れてるってこと?そうかなあ
2024/06/22(土) 16:51:56.48ID:UT0yRehg
>>705
そうなんだ、、
勉強してくる
2024/06/22(土) 18:07:00.66ID:n3FOHUyg
>>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も当然受け渡しする必要があるよ

こんなんで大丈夫かな?
2024/06/22(土) 21:23:10.50ID:+hHL9oAL
# ダイアログを表示する
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"の入力欄に何も表示されません…
716715
垢版 |
2024/06/22(土) 21:53:43.34ID:+hHL9oAL
JavaScriptのOnChangeみたいなのをやりたかったのですが、止めました
ChatGPTに教えてもらったコードでも、うまくリアルタイム表示出来なかったので…
「実行」ボタンを押したら、表示されるようにします
ありがとうございました
717デフォルトの名無しさん
垢版 |
2024/06/23(日) 00:28:02.79ID:2xccr50A
>>714
>C側でメモリ確保したいならこう書く
>struct A *a = malloc(sizeof(struct A) + size * sizeof(int));
もちろん知ってる

>a.wOdList = (c_uint16 * size)()はPython側でメモリ確保する場合
どこが等価なの
2024/06/23(日) 12:15:44.92ID:6BLTL9tJ
>>717
>どこが等価なの
誰も等価だなんて話はしとらんのやで

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

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

FAMの有無も違う上に
メモリ管理の方法もルールも根本的に違うCとPythonで
等価になるわけないんやで
2024/06/23(日) 12:29:27.23ID:NuUT7kNv
>688
>ctypesで構造体宣言するときに、
>以下のようにc側が不完全型の配列定義であった場合は、
>どのように宣言すればよいでしょうか。
2024/06/23(日) 12:42:53.65ID:NuUT7kNv
chatGPT の回答を改変した様な解答やね
伝言ゲームでもやってんのかな
2024/06/23(日) 19:40:41.83ID:GsZtttEh
終了までお早めに
https://i.imgur.com/f7tN1NE.jpg
2024/06/23(日) 20:12:48.30ID:nLTHI867
>>721
もう既にやっとるよ
2024/06/23(日) 20:26:42.71ID:f4WzOl4U
>>721
グロ
724デフォルトの名無しさん
垢版 |
2024/06/24(月) 00:41:26.66ID:sso3G8sO
Pythonの変数、オブジェクトは最初に設定した値でデータ型が決まるから、結局、変数の初期化のような古臭いコーティングルールがないといけない。

データ型がわからなくなったら、データ型を調べるという行き当たりばったりの言語仕様
725デフォルトの名無しさん
垢版 |
2024/06/24(月) 07:13:54.02ID:lLj5yZl4
>>724
> Pythonの変数、オブジェクトは最初に設定した値でデータ型が決まるから、

最初ってどういう意味だ。
2024/06/24(月) 08:57:31.37ID:+wQGxx+4
>>721
気軽に稼げそうでいいね
2024/06/24(月) 09:38:30.63ID:ALkJ+vo8
メソッドの引数にdictを渡してアンパックする場合しない場合の使い分けってどういう基準なんやろ(´・ω・`)
2024/06/24(月) 10:11:03.74ID:mBNYuZ1y
>>724
Pythonにおける変数、オブジェクト、値、データ型の認識が
根本的に間違ってるのでチュートリアルからやり直しましょう
2024/06/24(月) 11:25:58.61ID:ldoAoKVT
変数は任意のオブジェクトをアサインできるといっても
実際には複雑化するから最初の型から変えないよね
そこを人間が意識する必要があるってことかな
typingにつながる話
2024/06/24(月) 12:01:57.24ID:QPNUuP4k
動的言語を使えない人のメンタルモデルってこういう感じなんだな
2024/06/24(月) 12:02:51.99ID:uJ7CYiLU
pyinstallerでexe(app)化してたんだけど、長い日本語ファイル名だと失敗するね
pt.pyにしたら成功した
2024/06/24(月) 12:25:05.97ID:/T/eMsO3
>>730
Pythonが動的型なのは単にその方が処理系の実装が簡単だからで、動的型である事自体にメリットなんてないよ
スクリプトの動的なロードだとかNotebookでの試行錯誤云々というのも結局はそういう状況で静的型付けを実装するのが難しいからに過ぎない
静的型では常に型が一つに決まってなきゃいけないというのは誤解で、例えば「DataFrameに格納されうる任意の型」の型を持つ変数を使うんだよ
2024/06/24(月) 12:49:15.81ID:JonISmvT
>>724-725
あえて言えばpythonの変数の型は全てPyObject型だよ
2024/06/24(月) 16:19:00.38ID:Kheo9t7V
>>733
それは実装に使ってるC言語の型システム上での話であって
Pythonの型システム上の話ではないよね
2024/06/24(月) 19:26:23.98ID:aCWMRkK6
未だにどれかの型を返す作りが好きになれない
736デフォルトの名無しさん
垢版 |
2024/06/25(火) 04:15:11.46ID:dFDrSth2
>>733
それは最初は性能の低いパソコン用だったせいで、その名前の変数が始めて出てくるとき、その名前の変数に値が設定されるときに決める構文解釈だっただけ

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

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

C言語、BASIC、VB,Perl、シェルスクリプト、Ada言語等の影響を受けているが、手抜きのプログラミング言語のままリリースしてしまった。
737デフォルトの名無しさん
垢版 |
2024/06/25(火) 04:20:51.69ID:dFDrSth2
関数の引数がどんな型でも参照渡しとか、アセンブラのサブルーチンよりもひどい設計なんだよなあ
2024/06/25(火) 04:37:03.65ID:mddxyJup
>>724
だからそれが嫌ならpyright使いなよ
2024/06/25(火) 08:26:43.24ID:9x+jYxZG
むしろpythonはすべて値渡しでしょ
内部的に変数の値が参照になっているだけで
740デフォルトの名無しさん
垢版 |
2024/06/25(火) 08:47:33.30ID:PJlEmYUO
>>737
オブジェクトだからどんな型でも参照渡しなんじゃないのか?
もしかして、「参照渡し」という言葉をオレが誤解している?
2024/06/25(火) 09:35:15.76ID:ZD6OkC9b
>>740
Pythonは(参照の)値渡し
>>737は間違いで>>739が正しい

def modify(x):
 x = None

x = [1, 2, 3]
modify(x)
print(x) #この結果をNoneにできるのが参照渡し
742デフォルトの名無しさん
垢版 |
2024/06/25(火) 13:25:16.56ID:PJlEmYUO
>>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 []
743デフォルトの名無しさん
垢版 |
2024/06/25(火) 13:26:58.66ID:ZtCD4zFU
>>736
Pythonの造りはtcl/ckに似ている
744デフォルトの名無しさん
垢版 |
2024/06/25(火) 13:28:25.30ID:PJlEmYUO
>>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
2024/06/25(火) 13:30:09.56ID:ZtCD4zFU
>>742
>>741 は出来ないから参照私じゃないって言ってるんだと思うが
君は日本人か?
746デフォルトの名無しさん
垢版 |
2024/06/25(火) 13:31:55.40ID:ZtCD4zFU
>>744
>変数 xの値である 1 を渡すことを、値渡し、
>変数 xのポインタである 0x7ffed3b1f5ac を渡すことを、参照渡し

そんな事実は無い
「参照私」が出現したのはC++から
Cには値私とポインタ私しかない
747742
垢版 |
2024/06/25(火) 14:10:18.90ID:PJlEmYUO
>>745
同じ渡し方の二つの引数の一方が出来て、他方が出来ないので、渡し方の問題じゃないよね、という話をしたよ。

>>746
Call by Reference の和訳は、ポインタ渡しでも参照渡しでも良いと思うよ。
2024/06/25(火) 14:20:27.21ID:mddxyJup
Cで実装されてるスクリプト言語の引数の渡し方を論じてなんか意味があるのか?
そういうメモリモデルってだけの話だ
C/C++やFortranみたいにマシンコードと密接に関係してるなら別だが
2024/06/25(火) 14:20:46.33ID:ZtCD4zFU
明確に参照私と言っていたのはPASCALやね
2024/06/25(火) 14:25:08.71ID:mddxyJup
こいつが言いたいのは参照渡しってのは明示的にアドレスを渡すのではなく変数を渡すと自動でその参照を渡すようにコンパイルされるような言語ということを言いたいのだろうことは理解できるが
それをスクリプト言語のPythonで論じてもナンセンス
751デフォルトの名無しさん
垢版 |
2024/06/25(火) 14:37:32.71ID:PJlEmYUO
>>748,750
> Cで実装されてるスクリプト言語の引数の渡し方を論じてなんか意味があるのか?

どうなんだろう?
この手の話は、C言語の方が見通しやすかろうと思って添えたが。
意味が見出だせなければ無視して。Python例から等価っぽく想像しただけのものなので。
752デフォルトの名無しさん
垢版 |
2024/06/25(火) 14:49:09.86ID:PJlEmYUO
>>750
> こいつが言いたいのは参照渡しってのは明示的にアドレスを渡すのではなく変数を渡すと自動でその参照を渡すようにコンパイルされるような言語ということを言いたいのだろうことは理解できるが

俺はその一文を理解できない。
シンプルに、
140253632444160 = id(x) の 140253632444160 に、呼び元呼び先ともにアクセスするので、それは「参照渡し」と言うのだと思っていた。
ということだよ。
2024/06/25(火) 14:56:52.16ID:mddxyJup
>>752
CS的にはそれは値渡しだよ
ポインタだろうがそれは全て整数をコピーするのだから
CS的な参照渡しというのはFortranの以下のような仕様のことを指すことが多い

単に引数をそのまま渡してるのに結果が呼び元に返ってくる
https://www.nag-j.co.jp/fortran/FI_11.html#Intents
2024/06/25(火) 16:21:34.93ID:KN/om7mq
>>752
その理解がないのにC/C++の参照渡し語ってて草
2024/06/25(火) 16:53:43.01ID:9x+jYxZG
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言語の場合も、ポインタの値渡しはあっても、参照渡しは無かった記憶
2024/06/25(火) 17:12:56.33ID:9x+jYxZG
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)を表示する

長文ごめん
2024/06/25(火) 17:20:06.61ID:ZtCD4zFU
で?
2024/06/25(火) 17:26:57.66ID:PNR4S7a4
>>756
参照渡しは実際には変数を指すポインタを値渡ししていて、本質的には等価だよ
ポインタに対するちょっとした構文糖衣に過ぎない
ポインタに比べて制限が強い分だけ最適化されやすかったりする可能性はあるが
2024/06/25(火) 17:31:05.84ID:7aKndPlG
>>747
yy.clear()のように渡された参照やポインタを通して参照先の値を変更するのと
xx = Noneのように渡された参照やポインタ自体を変更するのは同じではない
後者を行った時に呼び出し元の変数も同じように変更されるものが参照渡し

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

>>750
引数の渡し方というのはどのプログラミング言語を使う場合にも理解しておくべき基礎
だからスクリプト言語だとナンセンスってことはない
もちろんスクリプト言語でも参照渡しをサポートしてる言語はいくつもある
760デフォルトの名無しさん
垢版 |
2024/06/25(火) 19:08:21.24ID:PJlEmYUO
>>753,755,756,759
CS とは何ぞ?
その CS的な参照渡しにおける「参照」とは整数以外の何なの?

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

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

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

俺は、>>737 と同様に、オブジェクト実体へのポインタや実体のIDの授受を参照渡しと呼ぶのだと思っていたよ。
2024/06/25(火) 19:53:07.98ID:mddxyJup
>>760
参照とはオブジェクトを指し示すもののこと
ここでいうオブジェクトとはメモリ領域のことでありプログラミング言語においては特定の値のことを指す
つまりそれを指し示すようなものであればなんでも良い
VM言語であればスタックフレームからのオフセットに過ぎなかったりする
762デフォルトの名無しさん
垢版 |
2024/06/25(火) 22:50:01.65ID:UoDN+2II
>>760
とりあえずC++では参照渡しはちゃんと定義されている用語で、
知ってる限りではC++での使われ方と違う使われ方はしないものなので、C++における参照渡しを勉強してくれ
そしてnullを代入することに意味のある変数を用意して実際に参照渡しのコードを書いてみて
CSとはなんぞという質問が物語っていて、Computer Scienceで共有すべき知識を持っていない状態のように思う
2024/06/25(火) 23:11:20.56ID:nRVgOfun
>>736
横レスだけど
この書き込みありがとう
perl好きの俺がなんでpython嫌いなのか
わかった気がする
2024/06/25(火) 23:38:25.41ID:WkoTZsDY
>>760
>ただ、「参照渡し」とは、サブルーチンへの引数の渡し方でなく、サブルーチンからの引数の返り方を以て、
>・結果が呼び元に返ってくる
引数も結果も「返る」というのは少し違う
サブルーチン内での引数を変更するとその時点でその変更が直接呼び出し元に反映される
2024/06/26(水) 00:11:27.85ID:kR99xHRb
間違ったこと書いてた張本人は間違いを指摘されても反省するどころか開き直っちゃってるのが解せない

最近そんなやつが多くて萎える
2024/06/26(水) 00:20:27.75ID:/ebqJ/eA
>>765
これな
2024/06/26(水) 00:20:45.10ID:/ebqJ/eA
多分、朝鮮人
768デフォルトの名無しさん
垢版 |
2024/06/26(水) 01:10:11.09ID:yv8Z2CuH
>>760
番地なのか、番地にあるものなのかのような違いで、Pythonはコンピューターそのものですらやらない方法をとってしまっている。

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

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

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

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

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

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

ただし、AWS社以外はあまり乗り気でない。
洗練されていない汚い言語は、汚く見せない技術がいる。
769デフォルトの名無しさん
垢版 |
2024/06/26(水) 01:15:56.13ID:yv8Z2CuH
>>764
サブルーチンとは呼び出し元の情報をメモリに保存して、呼び出された側の処理が終わったときにメモリから情報を取り出して元に戻ることだ。

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

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

スタック領域にプッシュもポップもしていない。
770デフォルトの名無しさん
垢版 |
2024/06/26(水) 01:18:19.20ID:yv8Z2CuH
オブジェクトという概念もあとから追加したせいで、わかりにくい分類の型ができてしまった。
コレクションという用語にしなかったのも謎
771デフォルトの名無しさん
垢版 |
2024/06/26(水) 10:30:09.24ID:esETAUdE
初心者です、tkinterで作ったGUIの反応が遅い
afterでマシにはなったんだけど
で、マウスクリックした時刻(OSでのクリック検知時点のシステム時刻)みたいなの取れる方法ありますか
やりたいことは、
クリック時刻とbindした関数が呼ばれた時刻をログに取ってみたい
Windowsです bindした関数が呼ばれる以前にユーザの作ったプログラムでクリック把握する方法、そんなのあるか!ではなくて、後追いででも確認できないものかと
772デフォルトの名無しさん
垢版 |
2024/06/26(水) 11:16:31.48ID:esETAUdE
>>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/
2024/06/26(水) 14:03:59.21ID:H6JHbd75
root.bind('<Button-1>', lambda _: print(datetime.datetime.now())
774デフォルトの名無しさん
垢版 |
2024/06/26(水) 14:53:45.89ID:esETAUdE
>>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
775デフォルトの名無しさん
垢版 |
2024/06/26(水) 15:01:12.85ID:esETAUdE
>>774の最後についているのは今作っているコードの動作状況を確認するためprintで出力しているものです
編集中に送信してしまいましたので、時刻検知とは関係ない内容で、時刻の取得時点の比較ができないデータです、すみません
2024/06/26(水) 17:34:00.99ID:zF60WWs1
>>774
メインスレッドをブロックして何か処理をしてるんでしょ

クリックすると時刻をprintするボタン1つだけ最低限のアプリで
クリックに対する反応がどの程度なのかを確認してみたらいいと思う
777デフォルトの名無しさん
垢版 |
2024/06/26(水) 19:15:47.84ID:esETAUdE
>>776 レスありがとうございます
最小限だと同じ時刻になる、これ以上、細かい桁が測れるのかもよく分からないけど十分速いかと
pynputクリック検知 2024-06-26 19:09:50.128802
関数コール時時刻 2024-06-26 19:09:50.128802

Widgetを追加しながら作っていて、
最初にサンプル的なボタンを押してラベル文字書き変えの
プログラムでは応答性は何の問題にもならないレベルだったので、
まあこんなものかと
778デフォルトの名無しさん
垢版 |
2024/06/26(水) 19:17:32.22ID:esETAUdE
>>777ですけど

あまりに遅いので、cProfileで動作時間を測ってはいて
一番長い関数で138ms、
一方でpynputクリック検知 から 関数コール時時刻 までは1.76s
(14:46:55.787093 - 14:46:54.026669= 1.7604)
もっと遅くなることもある
2秒近くかかる処理なんか作ってないんだけど、さてどうしたものか
779デフォルトの名無しさん
垢版 |
2024/06/26(水) 19:23:16.01ID:esETAUdE
連投すまん

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

ネット検索すると別スレッドで実行しろとか出てくるけど、こっちで考えたほうがいいのかどうか
780デフォルトの名無しさん
垢版 |
2024/06/26(水) 21:33:53.43ID:UcQAC2Co
VBAのDoEventsをどう使っているのか良うわからんが、subprocess.runじゃだめけ?
781デフォルトの名無しさん
垢版 |
2024/06/26(水) 22:20:47.89ID:esETAUdE
>>780 ありがとうございます

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

さて、subprocess.runを早速調べてみましたが、OSにやらせたいことをコマンド指定でやらせる、ということでしょうか
OS側で溜まってることがあるのならこのタイミングで済ませてな、なにがあるのかしらんけど、という使い方はできるのでしょうか
もう少し調べてみます
2024/06/26(水) 22:40:40.89ID:hSYD6qWQ
>>777
てことは君のコードが書き方が原因なのは確定なので
まずは再現性のある最小限のコードを提示してね
それ以外の話はそれから
783デフォルトの名無しさん
垢版 |
2024/06/26(水) 23:01:35.15ID:esETAUdE
>>782
はい、わたしの作ったコードが反応遅いという話をしています
そして最初の質問事項は、マウスクリックした時刻(OSでのクリック検知時点のシステム時刻)みたいなの取れる方法、でした
これはググって解決しました
以降の話はレスをいただいた方への返信と、DoEvents相当のものがあるかという質問です
エクセルはスレチかと思いますのでエクセルの話を続ける気はありません
引き続き自力でも調べてみます
2024/06/26(水) 23:06:33.48ID:p3vHraeo
PythonのGUIアプリなんかどのみち自分用ツールにしかならないんだから、ipywidgets やstreamlitで十分だろう
元々スレッドが分離されてるからビジー状態にしても全く問題ないよ
2024/06/26(水) 23:13:46.30ID:hG8QBVa6
pythonのGILのせいじゃないの?
そこまで反応性が重要ならpythonは向いてない
2024/06/27(木) 00:43:31.20ID:DskBlp2q
別スレッド化したりしてもtkinterに干渉するとランダムな幅の遅れが出る
たとえばプログレスバーをn秒ちょうどで満たすようなコードは書けない(試行毎にバラバラの誤差が生じる)
多分GILとかブロックの問題で、解決できない。これはpythonとtkinterの仕様
2024/06/27(木) 10:04:13.91ID:OTNDZ+yC
どんな酷いコード描いてるのか観たいから笑わないからぜひ晒してくれ
2024/06/27(木) 11:44:11.82ID:THiq2UM5
>>786
どの言語でも試行毎に誤差はでる
その誤差を許容範囲内にするだけ
GILの問題でも解決方法はあるよ
2024/06/27(木) 15:00:13.36ID:oRm7STy0
最新のpythonだとGILオフにできるらしい
そのバージョンでやってみたら?
790デフォルトの名無しさん
垢版 |
2024/06/27(木) 15:06:22.67ID:WK2H4wzF
>>783
async使え
懐かしい問題だなw

VB時代とかはbackgroundwokerとか使ってUIスレッドを止めないようにしてたけど今の時代ならasync/awaitでお前さんのループでの処理書けばおk
2024/06/27(木) 15:21:15.01ID:CgIutZfe
こんな人がasyncにするとこんがらかりそう
2024/06/27(木) 15:40:57.25ID:oRm7STy0
pythonのGUIはマルチスレッドで処理を逃してもGILでロックしまくりで遅くなる
かといって重い処理を動かすとブロックする
async使ってもブロックしたら終わりなのは同じ
詰み
2024/06/27(木) 17:23:36.34ID:NmEKUmlO
CPUバウンドな処理はPythonならマルチプロセスにするのが常識
サブインタープリターも使えるようになったけど本格的に使えるのは3.13から

async使うのはI/Oバウンドな処理
これも常識
2024/06/27(木) 17:34:34.83ID:Qbo7b3Vg
であればGUI制御が別プロセスになってるソリューションがあんのかな
それかライブラリを叩く粒度を大きくする工夫があるのか
2024/06/27(木) 18:53:48.27ID:WKYIGf9o
言語やOSに関係なく基本的にどのGUIフレームワークでも
アプリケーションのメインスレッドで
UIイベントのハンドリングやUI操作を行うことが前提になってる

だから別プロセスにするのはGUI制御ではなくてUIに関係ないCPUバウンドの処理
つまり基本的にはGUIフレームワークの守備範囲外
796デフォルトの名無しさん
垢版 |
2024/06/27(木) 19:04:32.49ID:F52juMPQ
>>791
超初心者用スレで無双か。
2024/06/27(木) 19:09:48.41ID:oRm7STy0
>>795
C#はその辺シームレスなんだよね
2024/06/27(木) 22:23:02.86ID:/FJYXYiJ
だれも.afterは回答しないのか
799デフォルトの名無しさん
垢版 |
2024/06/27(木) 22:39:51.02ID:QXPbo1LF
そんなafter使うような真面目な人間は5chに来ない
2024/06/27(木) 23:54:31.61ID:o3056e9S
>>797
言語と並行プログラミング用ライブラリとGUIフレームワークの役割分担はC#も基本的に同じ
でも同期コンテキストの存在とかTPLの使いやすさとかC#/TPL前提のドキュメントの豊富さとか
シームレスに感じる理由が多々あるのはわかる

>>798
afterは使ってるって最初に書いてたよ
2024/06/28(金) 08:28:53.40ID:J/XDPL0h
async は失敗だったよな
Pythonでスレッド数の消費が問題になるようなものを運用してる奴なんて極僅かなんだからライブラリがわざわざ対応する訳がない
Javaみたいに世間の流行なんかガン無視してマイクロスレッドに賭けるべきだった
2024/06/28(金) 09:12:53.81ID:5vFH0KpM
Web系の要望だろうけど
Twistedさん殺しにいかなくてもとは思った
803デフォルトの名無しさん
垢版 |
2024/06/28(金) 11:24:07.08ID:joeyrg+E
Twisted懐かしいな
お世話になりました
2024/06/28(金) 14:11:06.71ID:sa0QpqCC
>>801
GIL外したからマイクロスレッドもありなんだよな
asyncioを駆使して書き直すのも面倒だし
2024/06/28(金) 17:38:58.38ID:IKZAS17P
グリーンスレッドのことをマイクロスレッドと呼んでる?
であればasyncのTaskがそれだよ
2024/06/28(金) 17:39:52.27ID:bVzHKq+e
インターネットからのパッケージの入手ができないクローズドな環境で
Pythonを使ってます

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

自分が必要なものを導入した状態でポータブル化したPython環境、
みたいなものを作る方法はありますでしょうか
2024/06/28(金) 17:44:05.75ID:sa0QpqCC
>>805
ちゃうよ
ゴルーチンみたいな奴
ちゃんとスレッドは使う
2024/06/28(金) 18:21:18.71ID:IKZAS17P
>>807
それはグリーンスレッドのスケジューラー/エグゼキューターが
内部でOSスレッドのスレッドプールを使ってるという話でしょ
asyncのTaskをOSのスレッドのスレッドプールで回すのと仕組み的は同じでは?

スケジューリング方法の違いやスタックの有無だったり
スケジューラー/エグゼキューターが言語にビルトインされてて
アプリケーションコードで意識しなくてもいいとか
ゴルーチンとの違いはいろいろあるけど
それはマイクロスレッドの定義とは関係ないんじゃない?
2024/06/28(金) 18:33:47.84ID:sa0QpqCC
>>808
asyncのTaskは数千、数万も作れないでしょ
ゴルーチンすなわちマイクロスレッドはそれぐらい作れる設計
2024/06/28(金) 18:50:13.66ID:IKZAS17P
>>809
>asyncのTaskは数千、数万も作れないでしょ
インタープリターだから生成が遅いというだけで
その数は余裕でしょ
811デフォルトの名無しさん
垢版 |
2024/06/28(金) 20:02:09.92ID:TzaR5aOj
>806
ありますよ
2024/06/28(金) 21:12:32.85ID:sa0QpqCC
>>810
asyncはあくまでIOが並列化できるだけ
計算の実態を数万作れるのはゴルーチンだけ
よって本質が全く違う
2024/06/28(金) 21:42:27.28ID:69xrfFOO
>>812が間違っていて理解も不足している
各言語のasyncタスクは数万タスク動かせる
Pythonでは試していないがおそらく動くのだろう
2024/06/28(金) 22:10:06.47ID:sa0QpqCC
>>813
だから動かないって
ゴルーチンは「計算の主体」(って意味わかる?)
を数百万個作れる
これはユーザースペースでコンテキストスイッチをしてるため
おまけにスタックサイズも動的な上に小さい
全てマシンコードレベルで行われる
当然ロックなど存在しない
これがマイクロスレッド
2024/06/28(金) 22:15:33.56ID:69xrfFOO
>>814
君は非同期タスクについて何も知らない無知者だとわかった
まずは勉強して知識をつけなさい
もう君の相手をすることはない
2024/06/28(金) 22:21:09.52ID:sa0QpqCC
>>815
御託はいいから動かしてみてね
思い処理を数万個でいいから
Goだと並列でちゃんと動くよ
2024/06/28(金) 22:35:05.70ID:b9qgRVqH
asyncのtaskはどの言語でもJavaScriptからRustに至るまで数万個並行で動作するよ
そのために各言語に導入されたんだよ
2024/06/29(土) 03:17:28.84ID:4AUQ0CVf
Elixir は、10万もの小プロセスを起動できる。
メモリが大きいと、5千万小プロセスも。
ただし、小プロセスは、OS のプロセスとは異なるものです

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

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

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

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

とにかく、スレッドを起動したらダメ!
CPUコアや時間の大半が、スレッドの起動処理に使われるから
2024/06/29(土) 08:36:40.26ID:9/qe2SG9
知ったかぶりして間違ったこと書く
やんわり間違いを指摘される
反省せずに開き直る!

またこの流れ
ググればすぐわかるような間違いなのになんなんだろうな
2024/06/29(土) 09:05:37.50ID:C+0SrrrI
ElixrはCPU使う処理は得意ではないよ
処理は一瞬で終わるが大量の処理を必要とするようなものが得意
それこそpush通知とかね
Goのようにマシンコードレベルでコンテキストスイッチを実装してるわけではないから
重い処理を書くと途端に負荷が上がる
2024/06/30(日) 11:06:44.92ID:L3wyoKVN
Erlang最強
2024/07/01(月) 05:47:45.32ID:ppYg1fh2
AIならね
2024/07/07(日) 10:33:44.66ID:1r2hUTKR
pythonで、windows10か11の多画面環境で特定のウインドウのSS撮りたいんだけど
ウインドウハンドル取得してwinAPI叩いてやってるんだけど
メイン画面以外で縦方向に数百pixの座標ズレが出てしまう

こういう書き方しろ、みたいなのご存知の方どなたか…
2024/07/07(日) 22:05:47.86ID:5EkJktI1
>>823
それのどこがPythonに関係あると思うの?
何らかPythonならではのところに原因がありそうなのであればその辺の詳しい情報を出してくれないことには分かるわけないし、
そうでないならCのサンプルコードを探した方がいいのでは
825デフォルトの名無しさん
垢版 |
2024/07/07(日) 23:45:08.47ID:y7P/TwV5
pythonで取得したいのだからpythonの話でしょうよ
どうせSS部分pythonのライブラリ使うんだから
(ビットマップオブジェクトとかまでapi叩くんならアレだけど)
2024/07/07(日) 23:57:01.73ID:5gDGdFIi
自分で書いたコード提示して聞いた方が回答つくと思うが
2024/07/08(月) 00:05:50.31ID:+/07puKi
Windowsのマルチモニタ環境では、各モニタの座標系が異なるため、座標のズレが発生することがあります。この問題を解決するためには、モニタの相対的な位置と解像度を考慮して座標を変換する必要があります
2024/07/08(月) 00:06:20.59ID:+/07puKi
1. 各モニタの情報を取得する
2. 指定したウィンドウがどのモニタにあるかを特定する
3. ウィンドウの座標をそのモニタの座標系に変換する
829デフォルトの名無しさん
垢版 |
2024/07/08(月) 08:43:58.61ID:XK4Xq7P1
ういんどうずはクソなので超めんどくせえんだわ
おれはウインドウ内のみ欲しくて、その描画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)
830デフォルトの名無しさん
垢版 |
2024/07/08(月) 08:45:47.33ID:XK4Xq7P1
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)
831デフォルトの名無しさん
垢版 |
2024/07/08(月) 08:48:31.66ID:XK4Xq7P1
訂正
saveDC.BitBlt((0, 0), (myW, myH), mfcDC, (src_pos_x, titlebar_height), win32con.SRCCOPY)
2024/07/08(月) 21:09:08.76ID:s8AzJdEo
>>829-831
マジで助かりました…上手くいきましたが
コードが全然読めないので精進します
833デフォルトの名無しさん
垢版 |
2024/07/09(火) 01:02:05.27ID:qs1jvts2
posXの計算式どういう理屈でそれなんだろう…
総当たりで試したのかな
2024/07/09(火) 17:53:08.61ID:ycuYR4Xv
質問失礼します
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に更新済み、他にどこを直せばいいのでしょう
2024/07/09(火) 18:57:30.17ID:JSIA10ur
すみませんVSCodeのシンタックスハイライトについて質問です

シンタックスハイライトをPython仕様にしたいと思うのですがこんな感じで変えられますか?
とりあえず今のままではメソッドなのかクラスなのか変数なのか全くわからないのでどうもできません
https://i.imgur.com/l8UEuMt.png
2024/07/09(火) 19:06:47.56ID:w695tFt+
>>834
PyPiが古いんだろ
2024/07/09(火) 19:15:18.18ID:UDSzeDWm
とりあえずPython勉強してPython3エンジニア基礎試験に合格して、次の実践の勉強してるがつまらん
何か作った方が面白いが作りたいものもない
2024/07/09(火) 19:16:34.21ID:ycuYR4Xv
>>836
pypiとpipって同じじゃないんですか
調べいても違いを説明する結果が出てきません
2024/07/09(火) 19:42:17.96ID:w695tFt+
>>838
モジュールも全部最新なの?
それでも出るなら特定の組み合わせで動かないとかじゃないのか
840デフォルトの名無しさん
垢版 |
2024/07/09(火) 20:05:31.88ID:qs1jvts2
>>835
app = App()
app.func()

変数 = クラス
関数

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

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

まあでもシンタックスハイライトってjsonで設定してあって弄れるから好きにやりな
2024/07/09(火) 20:15:12.34ID:ycuYR4Xv
>>839
モジュール?
まだ全然わからないけどモジュールですね!ちょっと調べてみます
842デフォルトの名無しさん
垢版 |
2024/07/09(火) 20:18:31.83ID:qs1jvts2
AIとかをやろうとして、言われるがままに色んなものをガンガン入れてしまってる気がする
2024/07/09(火) 20:27:31.33ID:KaCb5RY5
>>837
自力で作れると思われる範囲に制限しなけりゃ作りたいものはあるだろ?
今時プログラミングなんて自分で手を動かす必要ない
AIに夢を語ってりゃそれっぽいものは簡単にできる
2024/07/09(火) 23:33:54.51ID:AsZE7u+u
>>835
Class が緑になってしまうけどこんな感じでいい?
これでいいなら拡張機能の「Python」を入れればできるけども

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

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

https://qiita.com/ryutarom128/items/d52ec3db2d11b79599da
2024/07/10(水) 00:07:36.42ID:3j7FzYnK
色々調べた結果python側の問題とわかったので確認
python --version→python3.10
python3 --version→pythonとしかで来なく

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

とりあえずアンインストール後再インストールしてみますが
1月くらいまで何事もなく使えてたのにインストールされてませんみたいになることってよくあるのですか?
2024/07/10(水) 00:54:56.26ID:B0lLeabB
最新のpythonインストールしたんだろ
それで昔の環境が壊れたとかでおかしくなる
2024/07/10(水) 01:07:23.88ID:EF6Y7HgP
>>845
python3 --versionでPythonと表示されるのはwinの設定→アプリ→アプリ実行エイリアスがオンになってるから。これはMSストア版python用
公式版python3.10をインストールしてもpython3.10という実行ファイルが存在しないのは正常
2024/07/10(水) 01:59:30.87ID:5rHX5/PL
試行錯誤する前に拡張の説明や設定項目を確認しないのなんで
2024/07/10(水) 02:34:41.59ID:3j7FzYnK
みなさんありがとうございます
>>846
ID変わってたのでわかりにくかったのすみません>>834です最新では無いと思います


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

>>848
今回はModalのセットアップから初めてるのですがそこで躓いてしまって
恐らくpythonに問題があるのかなと
850デフォルトの名無しさん
垢版 |
2024/07/10(水) 03:33:20.73ID:JKR4u2JY
modal要求バージョンより新しいpython入ってるせいで詰まってんじゃないの
2024/07/10(水) 08:41:03.90ID:0/GvnarD
>>850
Modalの要求バージョンは3.8~3.12
私が使っているのは3.10なので大丈夫だとは思うんですがもう一度使おうとしたプログラムのエラーメッセージを確認してきます
2024/07/10(水) 15:30:21.08ID:For1CkV4
だいぶ初心者だと思います
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は正常に選択されています)

長いのでレス分けます
2024/07/10(水) 15:30:59.95ID:For1CkV4
>>852続き

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

最後にTreeview3もちゃんと選択されるようにするには、どうすればいいでしょうか?
Treeview1の処理中、Treeview2を一時的にunbindも試してみましたが、確かにunbindして必要な処理を補完すればちゃんと動くので原因は間違ってなさそうですが
再bindをTreeview1の処理中にしてしまうと、処理後に結局トリガーしてしまって無意味でした
854デフォルトの名無しさん
垢版 |
2024/07/10(水) 17:05:01.94ID:iit7nof0
ボタンは1回押したらロックするか
ブロック機構入れないと
連打したり、別のボタン押したりしたときに収拾つかなくなるで

たとえば
bind関数内の最初に、if treeviewselected:returnみたいなの書いて排他動作にするとかさ
2024/07/10(水) 18:37:27.41ID:For1CkV4
>>854
丁度それをやってみて正常に動いたところでした、ありがとうございます
やはりその辺の処理になるんですかね

ロック機構、確かに要りますね
趣味で場当たり的に作ってると、そういう構造的なノウハウとかは中々身につかなさそうですね……
856デフォルトの名無しさん
垢版 |
2024/07/10(水) 21:14:08.65ID:8aePid6X
GUIはGUI用のノウハウあるで、書きまくってたら身についていくよ
ロジックと表示系分離するとかもそうだしさ
2024/07/11(木) 00:14:02.11ID:gnKs0VpL
pythonでpyenv pipx poetry使えるレンタルlinuxサーバ知らん??
2024/07/12(金) 03:05:52.22ID:Fv9K4MWW
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再起動しても無駄です
一体何が悪いのでしょうか
859デフォルトの名無しさん
垢版 |
2024/07/12(金) 03:18:10.13ID:6z6Lg9Zs
そもそもresult前に読んだパス認識してんの?
path.existsみたいなのしなはれ
2024/07/12(金) 03:55:38.40ID:Fv9K4MWW
>>859
とりあえずこれを直前に挟んでみましたがTrueでした
print(os.path.exists(uri))
ダミーにめちゃくちゃ入れたらもちろんFalseなので、result以外はちゃんと動いてるようなんですが
861デフォルトの名無しさん
垢版 |
2024/07/12(金) 04:14:19.09ID:6z6Lg9Zs
ffmpeg関係は?
2024/07/12(金) 05:06:05.29ID:Fv9K4MWW
>>861
すみません、それでした
解決しました、ありがとう
雑に使おうとして、基本的なところが抜けてました
2024/07/18(木) 21:35:07.90ID:atiQW+Xs
いまtkinterでGUIをMVCで作ろうとしてるんだけど
これウィジェット自身で完結する変数やメソッドはウィジェット側に書くわけじゃん
するとあるウィジェットに関係する変数やメソッドが、viewとcontrollerに点在することになるけどそれでいいのか?

全部無理矢理controllerに押し込んだら、こんどcontrollerが肥大化するけど、それはそれでどうなんだという気もする
2024/07/18(木) 23:22:50.39ID:61oenaL1
>>863
MVCは死ぬほどバリエーションがあるのでこれといって何が正解かとはかない
しかし成功しているモデルの一つであるiOSでのMVCを説明してみる
まずコントローラはモデルとビューを保持する
コントローラがユーザーからのイベントを受け取り対応するモデルのメソッドを呼ぶ
モデルのメソッドが呼ばれ状態を変更する
完了後にコントローラへ通知する
そしてコントローラは対応するビューを再描画する
正直古臭いがある程度成功しているアーキテクチャだ
2024/07/19(金) 05:30:02.76ID:QNeV9bba
vscodeでtomllib使って値読み込んでもpylanceが上手く型を認識してくれない(anyになる)んだけど
tomlって型付きじゃなかったっけ? おま環かこれ??
866デフォルトの名無しさん
垢版 |
2024/07/19(金) 05:40:24.28ID:+oFdaKCd
石丸伸二さん取材の最前線

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

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

石丸伸二さんは天才ですね!
2024/07/19(金) 06:02:53.03ID:2drNjBF3
>>865
どんなデータ読むかわからんなら静的解析できない
データの型が想定できるなら自前のエンティティクラスにいったん格納してみては?
健全にやるならバリデーションする
2024/07/20(土) 06:12:19.62ID:rQPoAcvH
Pythonで組んだ自動処理はレンタルサーバー使ってる?
869デフォルトの名無しさん
垢版 |
2024/07/20(土) 17:56:48.97ID:pd3T6vIK
>>868
日本語検定何級?

レンタルサーバーを使っているかどうかが先に評価する条件だろ?
870デフォルトの名無しさん
垢版 |
2024/07/20(土) 17:58:02.44ID:pd3T6vIK
>>865
バイナリーデータを扱うのに型が自動で決まる方が気持ち悪いだろ
2024/07/20(土) 18:30:49.82ID:rQPoAcvH
>>869
スレタイの通りなんだけど、なんで煽ってるの?
872デフォルトの名無しさん
垢版 |
2024/07/20(土) 18:44:11.27ID:pd3T6vIK
レンタルサーバーを使っているかどうかはここで聞かなくてもいいだろうに

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

レンタルサーバーならわざわざPythonを使う必要もない。
2024/07/20(土) 18:56:40.19ID:g11axyeV
>>870
でもパーサーは内部的にpython用の型に変換してるんだから、それを静的型チェッカに伝えるだけじゃねーのかなと思わなくはない
2024/07/20(土) 19:10:13.69ID:4S4L7THY
パーサーあるいはバリデータを通して特定の型に適合することがわかったらその型にキャストしてやればいい。
875デフォルトの名無しさん
垢版 |
2024/07/20(土) 19:39:36.45ID:pd3T6vIK
それだとデータがおかしくない前提の設計になる
876デフォルトの名無しさん
垢版 |
2024/07/20(土) 19:43:13.82ID:JfCCJ2ok
setdefaultencoding()
877デフォルトの名無しさん
垢版 |
2024/07/20(土) 19:43:43.52ID:pd3T6vIK
彼は単にTOML形式のファイルが間違っているだけの話をしているのかもしれない。
2024/07/20(土) 19:44:44.42ID:g11axyeV
>>875
データおかしかったらパースエラーでしょ
型チェッカが作動する以前で終わる話やん
879デフォルトの名無しさん
垢版 |
2024/07/20(土) 19:45:09.15ID:pd3T6vIK
決められたフォーマットでない設定ファイルを読み込んだときの動作は処理を止めるのが正しい実装。
880デフォルトの名無しさん
垢版 |
2024/07/20(土) 19:46:17.83ID:pd3T6vIK
>>878
本人の勘違いだろう
設定が間違っているのをライブラリの問題にしていると思われる
2024/07/20(土) 19:49:49.46ID:g11axyeV
>>880
読解力ゼロ民なん?
質問は、型チェッカーが型情報読めません で
それはそれで合ってる(型チェッカーは認知しないから)が回答で
付随して、パーサーは内部で型確定してるんだから、型チェッカーがそれ読みゃいいのにね って言ってるだけだろ
2024/07/20(土) 20:09:38.66ID:4S4L7THY
>>875
データがおかしくなければ問題なし、おかしければNG。それのどこに問題が?
883デフォルトの名無しさん
垢版 |
2024/07/20(土) 20:10:26.26ID:pd3T6vIK
彼は想定どおりのデータ型にならないと言っている
2024/07/20(土) 20:56:22.33ID:4S4L7THY
>>883

だから型チェックしたうえでキャストすればいいと言っているわけだが。
885デフォルトの名無しさん
垢版 |
2024/07/20(土) 23:13:59.91ID:3JBVPj+L
初心者に何一つ解決法を提示できない、あおる専門職が、また暴れているのか。
2024/07/20(土) 23:38:05.16ID:nWXlJ8rt
>>881
>付随して、パーサーは内部で型確定してるんだから、型チェッカーがそれ読みゃいいのにね って言ってるだけだろ
静的型チェッカーにプログラムを実行して外部TOMLファイルを読み込んでパースしてから型チェックしろと?
頭おかしくね?
2024/07/20(土) 23:43:19.64ID:n5damDMV
初心者です
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の相性が悪いんですかね…?
2024/07/20(土) 23:54:41.64ID:NXGRRfPo
初心者でryeなんて非標準なツールつかうから切り分けできなくなる
2024/07/21(日) 00:10:32.64ID:H6hpsSWg
>>869
え?これ何?低学歴知的障害朝鮮人?
2024/07/21(日) 00:19:47.32ID:7gp2nlNY
さすがにこの自演は恥ずかしいw
2024/07/21(日) 04:12:49.88ID:6bp7hRiy
>>888
解決しました!分かりやすい解説ありがとうございます!
2024/07/21(日) 10:56:10.38ID:6bp7hRiy
質問しておいて解決しましたとだけ書くのも失礼なので…
pyvenv.cfgの中の指定のpython を変えたら解決しました。
つまり標準のpythonをryeのものにしているのがwindowsのjupyterではよくないようです。
仮想環境でごちゃごちゃやった感じではセキュリティの問題っぽいのでそっちいじればなんとかなりそうですが…
結局macではvscodeを使ってwinではjupyterlab使うことにしました
お騒がせしました
2024/07/21(日) 14:59:38.69ID:AhhCkcZ5
なんかお前一生環境構築してない?
2024/07/21(日) 15:04:29.78ID:AhhCkcZ5
プログラミングできないやつに限って環境だけ作って満足するやつはスゲー多いんだよな
結局何も書けないからやることがないというw
2024/07/21(日) 15:13:06.46ID:6bp7hRiy
>>894
FDTD法やってます!
今は高速化目指してます💪
2024/07/21(日) 15:52:43.89ID:AhhCkcZ5
>>895
そんなんやってる奴が初心者なんだ?
2024/07/21(日) 16:38:54.61ID:XlsTZxiY
>>896
はい!
2024/07/21(日) 16:43:16.67ID:AhhCkcZ5
>>897
フフッ
899デフォルトの名無しさん
垢版 |
2024/07/21(日) 17:57:12.44ID:XSmlH7W8
質問にも答えず初心者を煽ってさらには返り討ちに合うスレですか…
2024/07/21(日) 18:03:02.20ID:AhhCkcZ5
>>899
だいぶ効いてるみたいだな
901デフォルトの名無しさん
垢版 |
2024/07/23(火) 01:22:30.39ID:Rfg4Mjqa
>>893-894
昔の自称emacs使いにもそういうのがいたで
2024/07/23(火) 07:36:07.88ID:Uu3M5VDt
今はVSCode使いがそれだな
何でもVSCodeでやろうとして詰んでは暴れまくる
メモ帳でいいんだよPythonなんて
2024/07/23(火) 07:43:39.89ID:x/ET989s
vscodeの拡張はelispみたく手軽に始められないから秩序は保たれてる印象
2024/07/23(火) 09:37:49.97ID:HQr1sgjB
>>902
極論それ
環境云々よりまずコードをかけることが大事だからな
環境など後からいくらでも凝ればいい
2024/07/23(火) 09:47:38.48ID:n9YZQASq
まず書けるようになるためにはデバッガの有無は大きいと思うが
2024/07/23(火) 09:53:14.67ID:HQr1sgjB
最近はjupyterとか使えば対話的にプログラム書けるしpythonに限って言えば昔ほどデバッガは重要ではないと思うけどな
2024/07/23(火) 10:16:25.92ID:x/ET989s
Jupyterデバッガ搭載してるけど定義のちがい?
2024/07/23(火) 10:16:33.81ID:n9YZQASq
環境などどうでも良いのにいきなりjupyterなの?
2024/07/23(火) 10:47:56.05ID:HQr1sgjB
環境がどうでも良いのとjupyter使うのが便利とは直行する話
環境構築にこだわってドツボにハマるならメモ帳でも良いって意味だよ
文脈ちゃんと理解しような
2024/07/23(火) 11:02:25.16ID:n9YZQASq
文脈云々言うなら直交ぐらいちゃんと変換しような
2024/07/23(火) 11:52:19.83ID:aX/s2yiT
デスクトップアプリを作ってexe化して配布しても、FirefoxとChromeで「ウイルスかマルウェア」と断定されて、ダウンロードがブロックされてしまうので、がっかりだよ…
またそのブロック解除の方法が難しくて、まず素人はダウンロードできないし…

Edgeは賢いんだよな
ちゃんと検査してはダウンロードさせてくれる
2024/07/23(火) 12:00:04.69ID:lokdiXpj
誰が作ったかわからない実行ファイルなんて実行すべきでないから
2024/07/23(火) 12:00:56.55ID:HQr1sgjB
今時生exeダウンロードして実行しろはない
Macであってもよほど信頼があるもの以外は入れない
914デフォルトの名無しさん
垢版 |
2024/07/23(火) 15:47:22.98ID:b7ip8NcQ
>>911
.zipとかに梱包した .exeでなく、赤裸々な .exeで配布したという意味? なぜ?
2024/07/23(火) 15:49:15.49ID:xnSNk6y3
zipで包まれてても嫌だけどな
2024/07/23(火) 16:25:49.95ID:x/ET989s
exe単体では嫌だからWebサイトで配布するんじゃないの?
Steamのインストーラもexeだよ
パッケージ化されてても導入するのは結局exeだし
2024/07/23(火) 17:12:12.55ID:aX/s2yiT
>>914
zipにしてるよ
それがブロックされる
2024/07/23(火) 17:22:15.64ID:xnSNk6y3
>>916
個人が作ったよくわからないプログラムパッケージをネイティブにインストールなんかしないってことね
919デフォルトの名無しさん
垢版 |
2024/07/23(火) 17:37:17.95ID:TPPfHQM2
>>914
ZIP圧縮は暗号化されているものがあるから、ZIP圧縮の方が嫌われるように変化した。
920デフォルトの名無しさん
垢版 |
2024/07/23(火) 18:14:35.00ID:b7ip8NcQ
>>917
ここPythonスレなので、exe化したPythonプログラムの話か。今気付いた。
ライブラリを含んでいるからウィルス認定されて当然という話をよく聞く。
別に exe化せんで、スクリプトで配布すりゃいいのでは。
2024/07/23(火) 18:37:50.57ID:nRtnWzRV
サンドボックスで振る舞いを確かめれば済む話じゃないのか?
2024/07/23(火) 19:18:10.39ID:TZI+ZhOX
自己解凍書庫の出番か
2024/07/23(火) 19:39:18.76ID:xnSNk6y3
あれも脆弱性の塊です
924デフォルトの名無しさん
垢版 |
2024/07/23(火) 19:43:52.63ID:ZPmy+vgF
UPX
2024/07/23(火) 19:50:49.70ID:aX/s2yiT
>>920
pythonなんて使えない素人に配布してるので
2024/07/23(火) 22:34:55.62ID:Q9OV7LqX
コード署名なんて使えない素人が配布してるのでw
2024/07/23(火) 23:08:59.22ID:r/ZR0qO4
こんだけマルウェアやらランサムウェアが問題になってるのにいまだに何の保証もないexeを実行可能にしているマイクロソフトは反社会勢力と言っても過言ではない
この問題を長年放置してるのは狂ってる
2024/07/23(火) 23:12:04.08ID:RTFcCOtn
Chromeはzipの中身も見てるみたいだけどFirefoxもとなるとGoogle Safe Browsingのダウンロードのブロックリストにドメイン載っちゃってる可能性
2024/07/24(水) 03:59:46.12ID:/7/ZxMEj
>>927
ストアで縛ろうとしたら猛反対
俺のパソコンなのに何しやがるんてなるよ
業務ならポリシーで制限できるから落とし所
2024/07/24(水) 11:24:37.52ID:zc84AtQt
この板で見かけるpythonアプリをexe化して配布しようとしてる人って例外なく技術者としてのレベルが低いんだよね
しかもその自覚がなく他人のせいにするからタチが悪い
2024/07/24(水) 11:29:14.65ID:xsNragSm
超初心者用スレでレベルが低いとか言われても
2024/07/24(水) 11:39:51.52ID:pCtKanLE
>>930
しょうがない面あるよ
現場でのちょっとした業務効率化ツールにいちいち開発予算取れないし
Pythonやライブラリのインストールして回るのは面倒だし
exe一つ配布で済むならそれに越したことはない
2024/07/24(水) 11:45:11.42ID:UohJ1bhL
デスクトップアプリでも指示したファイル以外開けないような権限の厳しい仕組みを作るべきだった
2024/07/24(水) 12:02:23.84ID:BVC0yZgs
やっぱWebアプリが楽
pyscriptの発展に期待
2024/07/24(水) 12:42:15.38ID:oMWZGWxK
>>932
それはアプリの配布ポリシーも配布方法も確立できてないリテラシーが超低い会社に限られた話

>>926が揶揄してるように素人に配布してるのが問題じゃなくて素人がexeを配布しようとしてるのが問題なんだよ
2024/07/24(水) 14:17:03.29ID:y0qkp9N5
>>933
Macは野良の実行ファイル起動できないからな
せめてこれくらいはやれよって思う
2024/07/24(水) 14:55:30.46ID:uBykzA+Z
exeを自由に配布しようとしても、ブロックされてダウンロードされないし売れないしで、素人でも最初からMicrosoft sStore、App Store、android Play Storeで配布する方針でアプリ開発するべきなんだね
2024/07/24(水) 15:11:26.53ID:gQy7oTdL
>>937
python公式が配布してるexeのダウンロードかブロックされたことある?
2024/07/24(水) 15:17:26.99ID:uBykzA+Z
>>938
python本体くらいしか無いけど、ブロックはされなかった
2024/07/24(水) 17:01:13.31ID:KGoIVoV/
>>939
exeを自由に配布しようとしてもブロックされてダウンロードされないという認識が間違ってるってことだよ
2024/07/24(水) 17:34:45.81ID:Qm23Mb5z
いろいろ出来てなんぼのPCであれはだめこれはだめと言っていたら、
なんのためのPCだかわからないことになる

パターナリスティックでおせっかいなシステムはPCにはそぐわないし、
スマホみたいにがんじがらめなのは勘弁してくれ
2024/07/24(水) 19:22:40.43ID:uBykzA+Z
Microsoft Storeで販売してみるわ
日本語と英語で。
500円だけど、何事も挑戦
2024/07/24(水) 19:53:24.43ID:aZhJNMHQ
>>942
いきなり500円で買うやつおらんぞ
まずは機能減らして無料で出せよ
2024/07/24(水) 23:33:56.14ID:uBykzA+Z
>>943
いや、他所ではたまに売れてるんですよ
1週間に数本とか
exeファイルでは無いけどコード
(記事って書いてあるけど文章では無いです)
https://i.imgur.com/9VMM8xV.jpeg

exeファイルを売りたくなったので、Microsoft Storeにしようかと。
他所だとブロックされてしまうので
945デフォルトの名無しさん
垢版 |
2024/07/25(木) 17:55:43.14ID:d36Rq1nw
EXEファイルは間違って実行してしまうことがあるから避けられているのになあ
946デフォルトの名無しさん
垢版 |
2024/07/26(金) 08:22:41.37ID:3aGNttVJ
>>945

スクリプト・ファイルでも間違えて実行することはあると思うが、
EXEファイル特有の間違いってあるの?
2024/07/26(金) 09:07:36.47ID:GoMxbApo
通常のスクリプトファイルはダブルクリックで実行してしまうことはないだろ
948デフォルトの名無しさん
垢版 |
2024/07/26(金) 10:16:15.53ID:3aGNttVJ
>>947
MS-Windows をよく知らんのだけど、
拡張子 .py とかのテキストファイルを、 python something.py などと実行してしまうもんじゃないの?
2024/07/26(金) 10:19:30.49ID:8tpKdrFX
>>947
無知すぎるやろw
2024/07/26(金) 10:28:35.30ID:RKHjG1e0
バッチファイルなら起動するで
あと関連付けされてれば起動する
2024/07/26(金) 13:49:56.51ID:ymUuyp6y
スレタイが何度見てもくすだれにしか見えない
2024/07/26(金) 15:36:14.52ID:OCCNk7Vb
スレイタが何度見てもくだれすにしか見なえい
953デフォルトの名無しさん
垢版 |
2024/07/26(金) 20:25:41.82ID:JylNHC7t
>>948
取り返しがつかないことを平気でするから、仕事だったら追放されるぞ。
954デフォルトの名無しさん
垢版 |
2024/07/26(金) 20:27:18.02ID:JylNHC7t
>>948 のようにWindowsをMS-Windowsと書くのはジジイ確定
955デフォルトの名無しさん
垢版 |
2024/07/26(金) 20:58:29.00ID:3aGNttVJ
>>953
MS-Windows をよく知らんのだけど、
関連付けって、取り返しがつかず、仕事だったら追放されるくらいオオゴトなのか。タイヘンなんだな。MS-Windows を使う仕事でなくて良かったよ。
956デフォルトの名無しさん
垢版 |
2024/07/26(金) 21:10:48.91ID:JylNHC7t
> python something.py

↑これを実行すると言っているのは自分だろうに
957デフォルトの名無しさん
垢版 |
2024/07/26(金) 22:30:59.89ID:3aGNttVJ
>>956
拡張子 .py とかのテキストファイルを、 python something.py などと実行してしまう、そんな仕組みを、「関連付け」と呼んでいるのと違うの?
よく知らんのだけど。
958デフォルトの名無しさん
垢版 |
2024/07/26(金) 22:53:18.79ID:JylNHC7t
>>957
自分がそう書いているんだぜ?
959デフォルトの名無しさん
垢版 |
2024/07/26(金) 22:54:17.60ID:JylNHC7t
>>957
946 デフォルトの名無しさん 2024/07/26(金) 08:22:41.37 ID:3aGNttVJ
>>945

スクリプト・ファイルでも間違えて実行することはあると思うが、
EXEファイル特有の間違いってあるの?
960デフォルトの名無しさん
垢版 |
2024/07/26(金) 22:55:33.33ID:JylNHC7t
どんなOSだろうと実行してから「実行しますか?」なんて聞いてくるコマンドが普通なのか?

言っていることの意味がわからない。
2024/07/26(金) 23:03:13.17ID:GM2OWqhD
無知な>>947が暴れてますな
ジジイのほうがまだまとも
962デフォルトの名無しさん
垢版 |
2024/07/27(土) 02:00:40.08ID:Frk3MPuk
>>958,960
何を言っているのか全然解らん。
系統立てて話してくれないだろうか。
2024/07/27(土) 11:13:05.30ID:qPRWWcgY
def a(arg1)のarg1は'normal,'auto','single'が選択肢としてありって、呼び出し元で引数の選択肢にインテリセンスが効くようにする方法ってありますか?
2024/07/27(土) 11:18:09.30ID:zo9+JWCR
そんな質問はchatgptに聞け
2024/07/27(土) 11:30:57.89ID:MJBjTLYo
Windows環境でPythonをインストールすると.pyなどの各種ファイルは
Python Launcher(py.exe)に関連付けされてダブルクリックでプログラムが実行されるようになってるよ

.batや.cmdのように標準で実行されるものもあれば.ps1のように標準ではブロックされるものもある
ただ.batや.cmdは.exeと違って一般ユーザーは使わないから設定でブロックしやすい
.exeもいろんな条件でブロックすることは可能だけど利便性がかなり落ちるのでバランスが難しい
2024/07/27(土) 11:35:07.21ID:VipTCpXk
>>963
enum
2024/07/27(土) 12:02:44.95ID:VipTCpXk
Literalがあったわ
2024/07/27(土) 20:42:42.63ID:cmTVxjYb
>>965
Anacondaから入れてるから初耳
勿論、勝手に実行はされない
2024/07/28(日) 15:34:57.49ID:v6kdbv5j
.pyダブルクリックでテキストエディタが起動してソース編集の方が有難い
.py実行したいときはコマンドプロンプトやエディタの方から実行出来れば充分
970デフォルトの名無しさん
垢版 |
2024/07/28(日) 20:18:24.27ID:AOLFr8T9
>>969
そんなのは設定だろ
python界隈はこういう馬鹿が増えた
971デフォルトの名無しさん
垢版 |
2024/07/28(日) 20:24:40.17ID:nQJ65Sob
個々人の嗜好の話題ではない。
972デフォルトの名無しさん
垢版 |
2024/07/30(火) 17:32:38.17ID:PmWSmSbC
1 gchar 2001/03/27(火) 13:30
どうしょうもなく、くだらなくて恐縮ですが、
ギコ猫アプレットを作りたいと思います。

http://gikocat.20m.com/

まあ、感想なぞ書いて下さい。
2024/07/30(火) 19:00:55.75ID:xxzULaUh
>>972
多分ウイルスサイト
2024/08/11(日) 00:05:49.00ID:rz8PuyH+
しかし2001年アプレットとはまた…
975デフォルトの名無しさん
垢版 |
2024/08/22(木) 10:19:36.95ID:IKT838Oo
死壊死壊
2024/08/23(金) 05:46:44.19ID:rXpsCAVX
asyncによる非同期処理を実装する場合、非同期にしたい呼び出される関数はasync defとawaitに書かなければならない認識であっていますか?
既存コードにCで書かれた通信処理dllへのラッパー関数があるので、dll呼び出し部まで書き直すか追加するのが手間なので良い手法があればと思いました。
977デフォルトの名無しさん
垢版 |
2024/08/23(金) 14:35:19.98ID:TJ+3Kp9a
wrapperのwrapperを描こう
2024/08/23(金) 17:32:10.11ID:2MxBs/jY
Yo~!
979デフォルトの名無しさん
垢版 |
2024/08/26(月) 13:05:01.33ID:+6LxARHT
宣伝じゃないですが
尼で損する→/dp/4297142856
書評は良いと思った
>なぜコードが間違っていないのにレビューで重箱の隅のような指摘を受けるのかが理解できるようになります。
2024/08/26(月) 15:22:01.32ID:xgRNJuaz
サプーか
981デフォルトの名無しさん
垢版 |
2024/08/26(月) 19:53:41.84ID:FhzwHLyM
レビューで重箱の隅のような指摘を受けたことがあるんだろうね
2024/08/26(月) 20:38:35.96ID:TfC/Wz7r
横からだけど
おまえは完璧なコードを書きすぎる
と言われた事がある・・・
難しい部分を任されたことが無いってのもあるけど

その部分の動画もあるのかな
2024/08/26(月) 20:59:37.19ID:694qjtkr
レビューがめっちゃ桜臭いな
星3以下だと一気に評判落ちるので発売直後の星5が大事
984デフォルトの名無しさん
垢版 |
2024/08/27(火) 00:42:37.95ID:jPnUMQmz
設計通りに実装していないやつが多すぎる
985デフォルトの名無しさん
垢版 |
2024/08/27(火) 14:12:58.86ID:oHcafaf7
これ教えてくらはい
解く過程もお願いします
https://i.imgur.com/AUcy6QG.jpeg
986デフォルトの名無しさん
垢版 |
2024/08/27(火) 14:13:20.99ID:oHcafaf7
(S)でshortだからSの上のRは無いのと一緒
6Ωと3Ωの並列の合成抵抗は2Ω
12Vかかってるから6A
987デフォルトの名無しさん
垢版 |
2024/08/27(火) 14:13:37.32ID:oHcafaf7
答えは燃えるだよ
0A
988デフォルトの名無しさん
垢版 |
2024/08/27(火) 14:14:03.15ID:oHcafaf7
どっちが正しい?
2024/08/30(金) 20:00:23.54ID:/S3k+zaQ
SQLAlchemy気に入った
おかげでpythonから離れそうにない
2024/08/31(土) 13:26:42.65ID:fwQH707u
関数やクラスにインデックスの指す中身の値でなく“インデックス指定”を渡したいのですがうまく出来ません
こんな場合どういうような考え方があるのでしょう(タプルでインデックス数字を渡す?)

# [[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)などとしその先のクラスの関数で位置を決め撃ちするのが良いのかななどと困って考えています
2024/08/31(土) 14:58:41.77ID:fwQH707u
設計からおかしいと思ったので質問は取り下げます

ロールプレイングゲームでゲーム状態(シナリオ進捗やパーティーのステータス状態やカーソル位置まで状態の復元可能)の情報は
どう作り、ゲーム中に持つのか、どこからリードやライトするのかについて混乱しています
ステータスマネージャーのようなクラスにこれ記録しといてと各所から投げればいいのかなと考えてるのが今で
逆に難しくなってしまってる、参考に出来そうなpython製ののrpgを見つけられていません
2024/08/31(土) 15:42:25.61ID:Q7p5BAl/
ゲームプログラムの構造自体に悩んでるように見える
個々のパラメータはカテゴリごとにクラス化して
それらを保持するゲームカーネルクラスを考えてみては?
セーブ・ロードの時は所属クラスを識別可能なラベルを付けて
カーネルが各クラスに分配・収集する
もちろんカーネルは分散構造でもいい
2024/08/31(土) 16:31:20.69ID:fwQH707u
ありがとう
クラス使い始めてみたばかりで継承など使ってないレベルなので意図の読み取りがあれですが
書いてくれた雰囲気はなんとなく理解しました
例えばシナリオ進捗や済みイベントのフラグ、世界が滅亡するまでの残り時間などの進捗データを保持させるカテゴリーなクラス
アイテムやそのソート順選択状態や現在カーソル位置などを保持させるアイテムGUIデータなカテゴリーのクラス
それらから収集しまとめて保持していてセーブで書きだし、ロード時に各所へセットしてから再開する統合クラス
ラベルで管理とは、辞書型だったりあるいは投げ込むクラス内のステータスごとに対応する関数で配置場所を固定して分けたらいいのかなと…頭が限界ですゆっくり考えてみます
2024/08/31(土) 17:12:20.07ID:Q7p5BAl/
画面や入力は別のクラスにして
入力クラス→カーネルへのAPI
カーネル→画面クラスへのAPI
に分離した方が見通しよくなると思う
995デフォルトの名無しさん
垢版 |
2024/08/31(土) 19:54:44.30ID:E1cdB3xT
>>990
>>777
>alist = [[0]*5]*2
これやると詰む
2024/08/31(土) 20:12:52.72ID:fwQH707u
>>995
しばらくなぜだろうと考え込んだ(もう1つのスレの方の指摘とあわせ)
…思い出した、要素のidが同じになって連動しまうんだっけたしかに挙動に困ったことある
もう一回この手の宣言について調べなおし学習しますどうも
2024/09/01(日) 14:38:13.87ID:MnUgJTxK
元レスの主張をそのままリスペクトすると
ctypes の POINTER が超お薦め
2024/09/01(日) 15:14:54.96ID:MnUgJTxK
>>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)]]
2024/09/01(日) 19:02:55.77ID:tGCM6k6e
>>997
ありがとう
最終的には教えてもらった辞書型でうまく意図した役割をつなぐことに成功しました
「Pythonでゲーム作りますが何か?」というハテナのblogを参考にクラスというもの主体の作り方に触れ
そこのgithubのpython3ソースを見たりしながらタイルチップrpgでないadv寄りな自分のものにあてはめているところでした
ある程度のとこで連載は終わっていて残念、実践的ですごく参考になりました
2024/09/01(日) 20:02:05.87ID:tGCM6k6e
次スレ
【まず1嫁】くだすれPython(超初心者用) その60
https://mevius.5ch.net/test/read.cgi/tech/1725188284/

スレ立てがNGRockにかかるためテンプレの一部変えました
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 416日 1時間 13分 25秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

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

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