23/07/13 19:23:06.59 WmHCeekq.net
>>1
まず1乙
3:デフォルトの名無しさん
23/07/14 12:11:43.42 8YyBZiGG.net
>>1
O2
4:デフォルトの名無しさん
23/07/17 18:37:08.11 RkwKE2ib.net
うまいプログラムの構造がさっぱりわかりません…
入門書を終えて早速何か作ってみようと思い、画像を拡張子を変換するソフトを書いています
リーダブルコードにはシンプルであれとか単一責任うんぬんと書いて納得したつもりでしたが、いざ実践しようとするとわからんわからん
「画像を読み込む関数」、「画像を変換する関数」、「画像を保存する関数」
と作成してきましたが、pillowいじくって1、2行なので車輪の再発明どころか傷つけてる感じです
1つの関数にすべて集約してconvertと名付けたら良くないのでしょうか…
5:デフォルトの名無しさん
23/07/17 20:35:13.91 G9UN+W0k.net
>>4
標準ライブラリを見るとわかると思うけど、1, 2行だけの関数は別に悪いことではないし、珍しい事でもない
その関数のテストを書いたり、メンテしたりしてると実感できる
他の人の書いたコードとか特にそうだと思う
ていうか、色々詰め込んだ関数作ってしまってから、リファクタリングというものを知って悩むことも多いよね
最初から書き直した方が早いんじゃねみたいな
6:デフォルトの名無しさん
23/07/17 20:36:34.03 0uTi8g2P.net
良いです
7:デフォルトの名無しさん
23/07/17 20:49:31.09 66zneY7T.net
convert関数でそれぞれの関数を呼び出せるようにした方が楽になりそう
8:デフォルトの名無しさん
23/07/17 20:52:17.81 G9UN+W0k.net
忘れてたり知らない関数を触ろうとするとき、ドキュメントとかコメントも頼るけど実際たどるのはコードだから一つの関数に盛沢山だったら結構大変
9:デフォルトの名無しさん
23/07/17 21:52:54.20 0bPr8N4/.net
極端な話、外からの役割がconvertなら内部はどうなっててもいい
最初から良質なコードは書けなくて当然
いつでもリファクタできる体制でいることが大事かな
10:デフォルトの名無しさん
23/07/18 16:13:32.68 fggT64M6.net
画像処理の勉強してるんなら
pillow(PIL)使ったら負け
11:デフォルトの名無しさん
23/07/18 20:03:13.98 C4fQDhf3.net
病∞∞∞∞!
漠∞∞∞∞∞!
向∞∞∞∞∞∞!
大∞∞∞∞∞∞∞!
度∞∞∞∞∞∞∞∞!
蔵∞∞∞∞∞∞∞∞∞!
12:デフォルトの名無しさん
23/07/18 23:01:13.81 OPFTyCeA.net
ご意見ありがとうございます
元画像を消去するかとか保存先はどうするかとか考えてたら複雑になってきたのでクラスを設けました
パスの扱いと画像の操作で2つ役割があるけどもう面倒なのでこのまま突き進みます
未来の修正は未来の自分に託す、ということで…
13:デフォルトの名無しさん
23/07/18 23:04:24.96 /0siiIN2.net
今の自分が把握できないコードを
記憶が曖昧になった未来の自分がどうにかできると思うのか…
14:デフォルトの名無しさん
23/07/19 11:43:21.48 x9es5cRL.net
成長した場合「だれだこんなバカなコード描いたのは」
成長してない場合「何描いてたか判んね」
15:デフォルトの名無しさん
23/07/19 15:09:29.58 o1ug+L9a.net
【まず1嫁】くだすれPython(超初心者用) その58
スレリンク(tech板)
まず前スレ消化を
16:デフォルトの名無しさん
23/07/21 08:51:32.52 eg4croCb.net
pythonは関数が全部外から見られてしまうから
プライベートメソッドにする代わりに関数内関数にして隠すってやり方もある
なお速度は犠牲になる
17:デフォルトの名無しさん
23/07/21 09:17:50.55 K8DDsRHC.net
見えるからって使うほうがどうかしてる
リフレクション系がお手軽だからこんだけ周辺ツール充実してんだし
18:デフォルトの名無しさん
23/07/21 09:48:08.75 nT1sUe2+.net
>>16
setter getterでそんなに速度落ちるの……
19:デフォルトの名無しさん
23/07/21 14:10:39.48 73tgjVOL.net
>>16
class の中の関数というかプライベートは
hoge() #public
_hoge() #protected
__hoge() #private
みたいなイメージ
20:デフォルトの名無しさん
23/07/21 14:11:27.20 73tgjVOL.net
プライベートにしてても観えるって言うのは嬉しい
21:デフォルトの名無しさん
23/07/23 06:27:28.03 AFBOcw0H.net
>>4
そのconvert関数のアイデアは、ファサードパターンとしてよく知られるデザインパターンのひとつ。
まあファサードはわざわざ勉強しなくてもすぐに気がつく小ネタ程度のパターンだけど、他には知っておくと役に立つものがいっぱいある。
22:デフォルトの名無しさん
23/07/24 08:59:12.66 hxZ6wCW4.net
f文字列はpython3.6だから7年前の新機能だぞ
もうなんのことわりも無しに使っていいだろ
23:デフォルトの名無しさん
23/07/24 09:28:19.51 b4teMFwb.net
>古いPythonでは動かないから
"{}".format() だってもっと古いPythonだと動かないんじゃね
24:デフォルトの名無しさん
23/07/24 16:29:20.89 l1YnwZV8.net
Gストリングが動いた!
25:デフォルトの名無しさん
23/07/24 17:49:45.93 vRnyNwob.net
format使ってないわ
26:デフォルトの名無しさん
23/07/26 11:04:30.02 62leoIOO.net
tkinterでウィンドウサイズを取得したいのですがうまくいきません
URLリンク(techiedelight.com)
root.geometry("500x300")を実行して、実際に表示されるウィンドウサイズもそのくらいの大きさなのですが
ラベルに表示される内容は"1x1+0+0"となってしまいます
"500x300+<実際の表示位置>"にならないのは何故ですか
27:デフォルトの名無しさん
23/07/26 13:02:45.63 //q3wVd7.net
>>26
それだとroot.mainloop()に入ってからウィンドウが表示されるから
windowSize = root.geometry() の前に root.update() するか何らかのイベント駆動にすればいい
28:デフォルトの名無しさん
23/07/26 13:29:20.90 62leoIOO.net
>>27
あーそういうことだったんですね!
ありがとうございます!
29:デフォルトの名無しさん
23/07/29 02:15:32.83 hQSx1H1s.net
>>> 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ではないかと困っています
え、そうだったのかという初心者なりの困惑もあります
困らないものなんでしょうか
30:デフォルトの名無しさん
23/07/29 02:22:42.13 zrA9yudI.net
>>29
エエエ
そこから?
10進数の一桁の最高値が10でなく9なのを見れば
16進数の1桁の最高値が15なのも納得できるはずだが
31:デフォルトの名無しさん
23/07/29 02:36:31.67 hQSx1H1s.net
半泣きになりながらどこか承服しかねる気持ち😣
for文のiなどはたしかに0から始まることを意識して扱ったりしますが
こういうのは取り扱いやすく思ったままの値をくれるものだとばかり
>>> u=hex(16)
>>> print(type(u))
<class 'str'>
>>> print(u)
0x10
あっ!😡遁走
32:デフォルトの名無しさん
23/07/29 02:57:52.60 hQSx1H1s.net
0xf最後の表記なfは16なんだとなぜか思い込んでた
0---9abc----fで桁上がりが16か、まさにそこから?って質問でした失礼しました
33:デフォルトの名無しさん
23/07/29 06:50:18.68 vYlMcu9f.net
10進法では10のことを10と書くからね
34:デフォルトの名無しさん
23/07/29 11:41:01.32 VU0UW7fl.net
Pythonとは関係ない話だけど
「午前11時45分」
「午後12時45分」
「午後1時45分」
時刻のこれだけは理解に苦しむ
35:デフォルトの名無しさん
23/07/29 12:03:10.60 voLhTcGw.net
「午後12時45分」は0時45分表記が自然だけど
「午前11時45分」「午後1時45分」は普通じゃね?こんなのが理解に苦しむ理由が分からんw
36:デフォルトの名無しさん
23/07/29 12:20:49.11 d4/f4P3b.net
まさにその二つに挟まれる違和感を言いたかったのであろう。
分かりにくいけどw
37:デフォルトの名無しさん
23/07/29 12:25:33.47 k4ALHt1m.net
>>32 >>33
なるほどね、その違和感を補正するには16進数という表記が10進数で書かれてるから対応が分かりづらくなると
じゃあ16進数で書けばいいな
16進数(10進数表現)
⇔ 10進数(16進数表現)
ということで数列(0,1,2,…)をベースに拡張するなら何進数であっても
N進数(10進数表現)
⇔ 10進数(N進数表現)
なのでした
38:デフォルトの名無しさん
23/07/29 12:59:40.05 TDos2+q3.net
>>34-35
0時表記を用いるのは日本だけらしいよ。
調べてみると結構面白い。
URLリンク(ja.wikipedia.org)
39:デフォルトの名無しさん
23/07/29 13:03:23.42 wiWA5e07.net
12時はあっても0時はないって事かな
文字盤的に
40:デフォルトの名無しさん
23/07/29 13:29:30.21 oiIFGOV1.net
URLリンク(i.imgur.com)
Googleカレンダー
41:デフォルトの名無しさん
23/07/29 14:24:22.66 QYz+mhHg.net
1~12の数字のカテゴリ分けと午前午後のカテゴリ分けが
連動してないってことだろ
42:デフォルトの名無しさん
23/07/29 15:08:58.12 D+udayEV.net
>>38 超抜粋
> 日本における現行法令の上で「午前0時」、「午後12時」という2つの言い方が認められている。
> 「午後0時」という言い方は、日本における現行法令に基づく限り、「定義上は存在しない」ということになる。
午前は、0時から12時の13進数
午後は、1時から12時の12進数
ということか
43:デフォルトの名無しさん
23/07/29 16:41:06.68 zrA9yudI.net
>>32
ドンマイ
自分は1mが60cmだとずっと思ってて恥をかいたことあり
人間は恥をかいて成長する
44:デフォルトの名無しさん
23/07/30 09:40:35.26 azQXcNDB.net
>>32
逝ってヨシ
45:デフォルトの名無しさん
23/07/30 09:42:35.20 azQXcNDB.net
>>39
あいつらインド人を見下してたからな
46:デフォルトの名無しさん
23/07/30 09:45:59.38 azQXcNDB.net
>>42
午前11時59分の1分後は午前12時00分ではなくて午後12時00分だろ
午後11時59分の1分後は午後12時00分ではなくて午前0時00分だろ
午前は、0時から11時の12進数
午後は、12時から11時の12進数
何も間違っていない
47:デフォルトの名無しさん
23/07/30 10:55:47.99 xSgp5A2Q.net
話はもう>>32で終わってるのでもういいです
48:デフォルトの名無しさん
23/07/30 12:26:13.13 WLopXdVL.net
>>46
>>38 抜粋
> 子刻(正子)については、午前の欄の最初に「(午前)零時即午後十二字(子刻)」、つまり「午前0時=午後12時」と明記されている。
これだけ混乱させることが出来る日本の時刻表記は最高だぜ
49:デフォルトの名無しさん
23/07/31 10:13:39.98 8wbRk2dY.net
午前零時=深夜24時
午後十二時=深夜24時
間違ってないぞ
50:デフォルトの名無しさん
23/08/01 03:09:21.22 8wU+ches.net
あほしかいないねこのしれ
51:デフォルトの名無しさん
23/08/01 09:39:07.75 3Oe4XjgR.net
for/whileのelseが罠過ぎる
breakせずにループを抜けた時だけ実行されるって誰が使うんよこんなの
でも認定試験に出るから覚えないといけないんだよなー
52:デフォルトの名無しさん
23/08/01 09:57:49.86 NhWjWTcR.net
if/elseと考え方は同じ気がする
whileの条件がFalseになった一回だけelse内を実行するって事だよね?
53:デフォルトの名無しさん
23/08/01 09:58:26.84 wCGQ0oT2.net
for else 便利よ
54:デフォルトの名無しさん
23/08/01 10:20:49.26 wCGQ0oT2.net
具体的に言うとbreakしたのか最後まで回ったのかがすぐ判る
elseが無いと自分で別にフラグ用意するだろ?その手間が省ける
55:デフォルトの名無しさん
23/08/01 12:08:54.90 7v326M+p.net
やっぱ資格のための勉強って身につかんよな
わかるわかる
ばーーー
56:デフォルトの名無しさん
23/08/01 14:44:05.71 //eJ4zUf.net
do .. while がない方が痛い
余計なifが汚い
57:デフォルトの名無しさん
23/08/01 16:01:01.75 xsOuXr3u.net
while True:
なんかする
最後 if True: break
これでええやん
58:デフォルトの名無しさん
23/08/01 18:33:15.93 9KETYfCe.net
同等でも構造が明示的でないのが悪
シンタックスシュガーの存在をかんがえてみて
59:デフォルトの名無しさん
23/08/01 21:46:51.73 0U4GDggW.net
for文でイテレーターはnextで次々に呼び出してるのは分かったんだけどlistもindexの最後まで同じような感じで呼び出してるの?
list型の変数をdir()で調べてもそれらしいものが分からなくて気になった。
c言語のfor(i=0;i<100;i++){}みたいなのがないか内部で行われてると思っていい?
ちなみにpythonもcも初心者です。
60:デフォルトの名無しさん
23/08/01 23:02:51.36 9KETYfCe.net
>>59
URLリンク(docs.python.org)
>>> '__iter__' in dir([])
True
61:デフォルトの名無しさん
23/08/01 23:30:53.11 QWA4KSJy.net
>>59
pythonのリストは
ja.wikipedia.org/wiki/連結リスト
の片方向リスト
[12,99,37]の内部表現は
[12| ]→[99| ]→[37| ]→[×]
のようになる
リストイテレータが最初にそのリストをを参照してた場合
nextを呼ぶと最初の要素12を返しイテレータ自身はリンクを一つたどって
[99| ]→[37| ]→[×]
を参照するように変わる
次にnextを呼ぶと99を返して[37| ]→[×]を参照するように変わる
イテレータが[×]を参照しているときにnextを呼ぶとStopIteration例外になる
62:デフォルトの名無しさん
23/08/02 00:30:09.05 aCdkrkAQ.net
それって言語仕様で規定されてるの?
CPythonがそういう実装なのかな?
63:デフォルトの名無しさん
23/08/02 01:00:57.94 HBDZrUwb.net
CPythonの実装はポインタの配列
連結リストとは違うよ
64:デフォルトの名無しさん
23/08/02 09:06:22.08 4pI1Wfnv.net
>>59
Py_OBJECT でぐぐれ
65:デフォルトの名無しさん
23/08/02 22:10:41.51 sw1byEhk.net
>>59
質問した者です。
みなさん、ありがとうございます。
66:デフォルトの名無しさん
23/08/04 14:07:19.89 XLfSEGlw.net
質問です
URLリンク(sorabatake.jp)
これをやってみたのですが 404 です
死んでますか?
67:デフォルトの名無しさん
23/08/06 00:24:31.88 A4BaWyM2.net
tkinterのText()を扱うクラスを作ろうとしたんですが次がわかりません
def __init__(self)内でtext = Text()とすると、別のメンバ関数でtextが見えずエラー
なので、クラス変数(?)として宣言したいのですが・・・どうすれば?
68:デフォルトの名無しさん
23/08/06 00:56:31.50 RGOCzOZD.net
self.text = Text()
69:デフォルトの名無しさん
23/08/06 03:46:54.50 GdBlafvI.net
初めてリンター入れてみたらこれでもかってくらい指摘入って面食らいました
「そこまで言う意味ある?」って気持ちは湧きつつも、自分は文句言うほどレベル高くないし大人しく従ってますが
ググるとPEP8に従わないやつは糞だとか原理主義なこと言う輩が多いのが気になりました
こういう輩は無視してOKですかね?
70:デフォルトの名無しさん
23/08/06 09:00:08.26 3Gfiav7J.net
>>69
村のルールに従わない住人が村八分にされるのと同じで
PyhtonはPEPを信条に運営されているから
PEPに従わないヤツを排除する動きがあるのは当然
それを踏まえてどう行動するかは君次第
71:デフォルトの名無しさん
23/08/06 09:14:38.42 8NkqV1kX.net
一緒に仕事したくないという評価になるね
72:デフォルトの名無しさん
23/08/06 09:28:21.16 ES7Kp55N.net
>>67
まずクラス変数とインスタンス変数とローカル変数とグローバル変数の
スコープの区別ついてないんじゃないか?
73:デフォルトの名無しさん
23/08/06 09:33:35.30 xJ7XeiL9.net
ああだからRustには原理主義者が多いのか
74:デフォルトの名無しさん
23/08/06 10:22:46.43 Z6X8w1Qb.net
ルールがないと混沌化するしイザコザが発生するから
たしかに原理主義的だけど公式で�
75:рキのが平和的でスマート
76:デフォルトの名無しさん
23/08/06 12:09:14.32 FBMr5AjE.net
>>73
Rustは自由だよ
例えばある企業があるいはあるプロジェクトが各々の独自のスタイルガイドを定めて用いてもよいとなっている
一方でスタイルガイドについて定めのない一般的な場合はRust公式のrustfmtの整形出力フォーマットに従う
標準のスタイルガイドが定まっているプログラミング言語は無用な論争や混乱もなく優れているよ
77:デフォルトの名無しさん
23/08/06 12:51:31.59 h1JbhEdM.net
クソみたいなルールを押しつけてくるようになるまでは役に立つよね
78:デフォルトの名無しさん
23/08/06 14:22:46.13 Aw/BJwB+.net
自由とかギークを何よりも重視する従来のOSS的価値観から見れば異端
プログラミングそのものが好きなのか、プログラミングはただの道具なのか
価値観の違い
79:デフォルトの名無しさん
23/08/06 16:31:41.34 UCqPwJaW.net
条件文とかのコロン無くしてくれ
80:デフォルトの名無しさん
23/08/06 20:24:40.81 A4BaWyM2.net
>>68
サンクス
動いたw
81:デフォルトの名無しさん
23/08/08 22:18:44.51 7qf12Zez.net
pythonの仮想環境って何で仮想環境って名前にしたの?
単にパス通したりして工夫してるだけで既存システムはそのまま使ってるだけなのに
仮想化って大げさだと思うけど
このネーミングに反対する意見って出なかったの?
82:デフォルトの名無しさん
23/08/09 08:07:56.12 aG7casYO.net
>>80
それは、virtualなんちゃらの歴史を知らなすぎかなあ。
hardware virtualizationだけがvirtualなんちゃらを名乗っていいわけじゃないから。
83:デフォルトの名無しさん
23/08/09 09:22:03.38 GQHrrnYT.net
>>80
一つのマシンで複数の環境を切り替えて使える場合、各々の環境は仮想的であると言える
何もおかしなところはない
84:デフォルトの名無しさん
23/08/09 11:48:11.84 msOTygD8.net
単に実環境を切り替えてるだけなら仮想的ではないわな
一部は共有してるけどあたかも独立した環境であるかのように扱える仕組みでも有れば仮想的と言える(Python自体は共有してるけど独立した環境であるかのようには扱えない)
まぁ文句言っても仕方ないのでよくあるPython独特の用語の一つだと思って受け入れるしかない
85:デフォルトの名無しさん
23/08/09 16:19:24.60 coMLMuQp.net
>>80
jail とか vm とか色々なアプローチがあるな
86:デフォルトの名無しさん
23/08/09 17:38:23.32 ZMLVZrF/.net
環境変数によって環境を変えて動作を変えることは
単なる環境であって仮想環境たる要素が何もない話と同じかな
87:デフォルトの名無しさん
23/08/09 18:33:59.91 3n0Peewm.net
詭弁に近いけどPythonのみの隔離環境とみると
venvもchrootもDockerも同種にみえん?
元になったvirtualenvのサイトには
virtualenv is a tool to create isolated Python environments.
と書いてるし軽いノリで付けた言葉が残ってるだけにもみえる
88:デフォルトの名無しさん
23/08/09 23:14:32.90 aG7casYO.net
仮想メモリとかだって一種の隔離環境なわけだしね。具体的にどんな要件を満たしてたら仮想で、満たしてなかったら仮想じゃないってものじゃない気がするけどな。
他の言語だって仮想環境って言ったりするでしょ。
89:デフォルトの名無しさん
23/08/09 23:34:07.10 ZMLVZrF/.net
例えば
実メモリアドレスに対して仮想メモリアドレス
実ディレクトリパスに対して仮想ディレクトリパス
そういう実と仮想がないならば
今回の場合は仮想環境ではなく単なる環境切り替えが正解かも
90:デフォルトの名無しさん
23/08/09 23:38:38.24 hnMBPj/l.net
単に「気分はバーチャル」だっただけみたいだな
91:デフォルトの名無しさん
23/08/09 23:40:22.87 RCE4XY7X.net
あなたの拘りはわかったので自分の中で勝手に呼び分けといてください
92:デフォルトの名無しさん
23/08/09 23:52:21.35 6hLmMtvT.net
白旗を上げたようだな
93:デフォルトの名無しさん
23/08/10 00:24:40.89 hoZ6pXSU.net
好きなあの娘とvirtualenv
94:デフォルトの名無しさん
23/08/10 04:01:48.37 GpbD/XFE.net
context switching
95:デフォルトの名無しさん
23/08/10 07:30:05.04 laGIFgwC.net
virtualイコール仮想的って不十分なんだよね
実質的にはみたいな意味もあって、公式には離婚してないけど実質離婚状態みたいな場合でもvirtual使ったり
他には実質的には内紛みたいな場合だと、virtual civil warみたいに表現するし、virtual civil war訳すときに仮想的な紛争とか訳したら誤訳になる
tPythonのvenvは実行環境ぐらいに捉えてる
96:デフォルトの名無しさん
23/08/10 07:31:31.17 laGIFgwC.net
tは無視して
topコマンドのvirtの話入れようとした痕跡
97:デフォルトの名無しさん
23/08/10 08:13:37.00 QCsZIB3p.net
メモ帳に書いてろ
98:デフォルトの名無しさん
23/08/11 13:00:27.60 oLYpGYcF.net
virtual insanity(´・ω・`)
99:デフォルトの名無しさん
23/08/11 16:29:22.45 RdYRFZwQ.net
>>94
>tPythonのvenvは実行環境ぐらいに捉えてる
「実質的には」はどこに行ったの?
名目的にもvenvはただの実行環境だからvirtualはそぐわないよね?
100:デフォルトの名無しさん
23/08/11 16:36:59.39 aKkvsRw0.net
>>98
ボーグに同化される人生だとよかったね
101:デフォルトの名無しさん
23/08/12 03:53:49.69 k0rCrKbL.net
まずvenvが対象にしているのはライブラリ依存関係の環境(==pip)である。
何がvirtualでないenvかを考えるとシステムにインストールしたPythonに紐づくpipかな。
様々な用途の開発で同じグローバルなpipを使うのは問題があるし、Linuxの場合はOSが使ってるから不用意にシステムPythonのpipを使わないほうが良かったりする。
プロジェクトごとに分離した依存関係管理ができるツールの1つとしてvenvがある
独立環境とか分離環境とかがより適切な命名だったのかもしれないけど、業界の慣習的な命名に後からとやかく言ってもしょうがないかもね
102:デフォルトの名無しさん
23/08/12 09:49:08.27 sI+BUdl8.net
>>100
>業界の慣習的な命名に後からとやかく言ってもしょうがないかもね
python業界だけの特殊な慣習だぞ
103:デフォルトの名無しさん
23/08/12 09:53:18.81 8hMMeSIO.net
グローバルのパッケージマネージャ使っても本来何の問題もない
それこそ業界の慣習
依存関係管理の単位がどのパッケージマネージャの実体を使うかに依存してるほうがおかしい
104:デフォルトの名無しさん
23/08/12 10:43:20.85 Wv+E7qVe.net
パッケージマネージャーの機能不足を別のツールで補ってるだけだからな
他の言語で言うところのプロジェクトと目的は同じ
105:デフォルトの名無しさん
23/08/12 18:57:50.81 ghRTbMM+.net
venvってpython本体やライブラリをまるっとダウンロードして格納してるって知ってびっくりした。
一見ものすごい無駄に思えるけど、こういう単純なやり方が結局ベストってことだよね?
そういうのに耐えられるくらい仕様がシンプルかつスリムだというのも地味にpythonの強みなのかな。
他の言語で同じことやろうとしても簡単にはいかないよね。
106:デフォルトの名無しさん
23/08/12 21:40:06.74 xBmGN9uj.net
>>104
本体や標準ライブラリはダウンロードしないぞ
どこ見てんだ?
107:デフォルトの名無しさん
23/08/12 22:16:39.21 OOUfgbQz.net
「悪しき命名は悪しき設計の表れ」だと再認識させてくれる良い事例
108:デフォルトの名無しさん
23/08/12 22:17:29.25 ghRTbMM+.net
>>105
venvのScriptsにpython.exe含め色々な実行体があるけど、これって本体じゃないのか。
たしかにdll類がどこにも見当たらない。dllは本体インストール先のやつを使うのかな?
てことはこのpython.exeは多田野ラッパー?
109:デフォルトの名無しさん
23/08/12 22:18:04.31 ghRTbMM+.net
×多田野
◯ただの
110:デフォルトの名無しさん
23/08/12 22:31:53.13 Y4lXTv//.net
エイヨー 多田野・ザ・ラッパー イン ザ ハウス
111:デフォルトの名無しさん
23/08/12 22:39:35.25 du+ixfhU.net
>>107
python.exeはラッパーじゃなくてランチャーだよ
112:デフォルトの名無しさん
23/08/12 23:17:45.90 TCuliBLR.net
TDN
113:デフォルトの名無しさん
23/08/12 23:33:34.31 0foAJdD0.net
普段どこに書いてるんだよ(白目
114:デフォルトの名無しさん
23/08/12 23:58:48.55 ghRTbMM+.net
あーなんか実験したらわかってきました。
ライブラリはパッケージマネージャ(pipやpoetryなど)のキャッシュを探しに行き
見つかればそれをコピー、なければダウンロードするわけですね。
賢いっすね。てか当たり前か。
ありがとうございました
115:デフォルトの名無しさん
23/08/13 00:16:53.24 JPaUrSh0.net
>>113
> 見つかればそれをコピー、なければダウンロードするわけですね。
コピーもダウンロードもしない。
モジュール検索パス(sys.path)から見つかれば実行されてなければエラーになるだけ
116:デフォルトの名無しさん
23/08/13 00:59:32.91 zhWOv+6v.net
?
117:デフォルトの名無しさん
23/08/13 06:17:20.53 asUkEDOo.net
あヤバイ眠い
118:デフォルトの名無しさん
23/08/13 09:56:42.40 Ie1UHHws.net
コンテナ化が進めばvenvはなくなっていくのかな(´・ω・`)
119:デフォルトの名無しさん
23/08/13 11:51:50.00 mxfdwtiA.net
>>102
これ
120:デフォルトの名無しさん
23/08/13 21:55:22.03 R7jJ+sOg.net
>>117
なくならない
Dockerに限らずだけど、コンテナ環境って結構複雑だし
121:デフォルトの名無しさん
23/08/14 02:18:17.14 N8bNxgMD.net
日本人が作った、多言語バージョンマネージャーの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
122:デフォルトの名無しさん
23/08/14 17:27:05.76 l1J1W0zj.net
site = '''\
外務省ホームページ
G7広島首脳コミュニケ
地域情勢
53.\
'''
uri = "htt" + "ps://www.mofa.go.jp/mofaj/files/100507034.pdf#page=35"
print( site.replace("\n", " > "), uri, sep="\n" )
123:デフォルトの名無しさん
23/08/15 15:43:58.31 j64iNkIY.net
>>117
わざわざvenvで済むものをコンテナにするのはないかなー。
必要なディスク容量も違うし、コンテナ環境のメンテの方がvenvのメンテより面倒だし。
libなんちゃらのライブラリの依存がとんでもない場合(CUDA使って機械学習とか)以外はあまり使おうという気にならないかな。
124:デフォルトの名無しさん
23/08/15 18:53:58.98 cVYdgkhy.net
(メ▼(エ)▼)y─┛~~
125:デフォルトの名無しさん
23/08/20 18:14:15.02 wlL4UoLb.net
lambdaの方がdefで定義するより爆速じゃね
そうするとdef func()じゃなくてfunc = lambdaって書くデメリット何?
126:デフォルトの名無しさん
23/08/20 19:20:36.30 qlg/Xyh9.net
defもlambdaも毎回評価しないし速度差あったとして気になる?
どちらかというと中途半端なlambdaは撲滅してほしい
表現力低いのに無理やり書いてるコードみると泣ける
127:デフォルトの名無しさん
23/08/20 20:43:30.19 5jzp3rX7.net
うわrichのトレースバック(エラー表示)めちゃ便利じゃんなんで教えてくれなかった
必死にすべての使った変数を表示する方法とか調べたりこういうところで聞いたりして諦め
確認用のprint設置を乱発してた(debug書式のは可読性的に邪魔でやめた)
たどり着いたのは詳細なエラー表示でflake8で「まあこれでいいか…解決には半歩も助けにならなかったな」とかやってたが
今なんとなくrichの前見かけた気になってたこれを設定したら舘ひろしもびっくり見えちゃうんですじゃん
URLリンク(rich.readthedocs.io)
URLリンク(rich.readthedocs.io)
似たような初心者のために書いておきます!
他にもこういったTUI環境でも使える必携補助装置があれば、ぜひ教えてください
128:デフォルトの名無しさん
23/08/23 11:48:24.69 89z/H8g7.net
さてはさぷーの閲覧者か
129:デフォルトの名無しさん
23/08/27 05:45:31.37 pq1ziXgi.net
matplotlibのArtistAnimationだけど、なぜか一番最初に全グラフを合成したものが表示されてしまう
これって仕様ですかね?
Python 3.10
matplotlib 3.7.2
130:デフォルトの名無しさん
23/08/27 10:07:09.77 /9UKR3Fh.net
Pythonでコラボタートルの勉強をしてるのてすがこの図形を描くのにはどうすれぱいいのでしょうか?まったく分からないです…
URLリンク(i.imgur.com)
131:デフォルトの名無しさん
23/08/27 11:31:37.21 NL8Wxbbf.net
中心と外周に接する小さい多角形がある
132:デフォルトの名無しさん
23/08/27 13:46:30.52 20Uxh6fU.net
うわーまったくわからねえと思ったが
タートルってあれだよな学習用のとか考えてて思い付いたのは
図面1も2も亀さんを片側に曲がりながら円になって戻ってくるようにすりゃいいイメージだよな
指定した角形数で360度まわってくればいいから360割るいくつかでその角度ずつ曲がらせればよいのでは!
起点に戻ったら角度ずらしてまたやるんだろうけどそのずらしはちょっとわかんない!
133:デフォルトの名無しさん
23/08/27 13:57:32.74 20Uxh6fU.net
ずらしは中心から伸びてる線の分割数10の角度だな(たぶん)…
算数レベルもあぶない自分の考えを書き出してみました識者の意見求む
勉強してるなら自分で考えなさいと言いたい、これが出来る前フリとかした状態だろうしちょっと考えればって状況のはず
134:デフォルトの名無しさん
23/08/27 15:15:00.55 Pba1j/J0.net
依存性の注入というのがいまだにわからんのだけど
なんの本買ったらいいの?
135:デフォルトの名無しさん
23/08/29 00:18:23.07 BTF5pWeT.net
依存性の注入は、Ruby では出てこない
だって、Duck Typing だから。
メソッド名が同じだけで良いから
例えば、enumerable に対応するには、each メソッドがあれば良いだけ。
インスタンスにeachがあれば、enumerableのすべてのメソッドが使える
依存性の注入って言ってる香具師
136:は、C# だけでしょ。 動的言語にあるとは思えない
137:デフォルトの名無しさん
23/08/29 00:24:18.34 QCf3nQNA.net
注入ってなんだよダサい
138:デフォルトの名無しさん
23/08/29 00:29:36.10 vNr56RL1.net
外から入れてるだけやん
139:デフォルトの名無しさん
23/08/29 00:52:12.38 Bbad6Hde.net
LOVE注入~❤
140:デフォルトの名無しさん
23/08/29 00:57:13.57 ohKP7npH.net
Rubyは読みにくいPerlほどじゃないけど
141:デフォルトの名無しさん
23/08/29 02:38:46.62 Ye/j7w6x.net
あれ? Pythonのスレだよね?
142:デフォルトの名無しさん
23/08/29 16:28:40.02 ud/hz0aH.net
プログラム技術の板ですが?
143:デフォルトの名無しさん
23/08/29 17:12:15.08 M8dDnwfH.net
>>133
DIって話には出るが
ろくな解説書ないな
Androidのdaggerとかhiltとか探してみたが
DI自体についてはすでに知ってる前提の奴ばっかりだった
144:デフォルトの名無しさん
23/08/29 18:56:07.99 90IKlLvh.net
詳しいのはmark seemannの本
日本語では出てないかもしれない
145:デフォルトの名無しさん
23/08/30 01:06:43.85 B7CG/4xg.net
Rubyでは~
ここはどこだよ
146:デフォルトの名無しさん
23/08/30 12:44:52.95 B/z3JA/V.net
DIって車と車の部品の関係でよく例えられるけど、これだけならオブジェクト指向プログラミングでは普通なこと気がするんやが、なんか特別に勉強する必要があるんかな(´・ω・`)
147:デフォルトの名無しさん
23/08/30 14:46:05.92 PiV0QNDQ.net
超絶初心者です、Python出来る人でもネットに転がってるコードとかコピペして
ちょちょっと編集したりする事あるんですか?
148:デフォルトの名無しさん
23/08/30 14:48:35.55 s6yXhO48.net
それがメインの仕事だよ
149:デフォルトの名無しさん
23/08/30 15:00:35.78 PiV0QNDQ.net
>>146
回答頂きありがとうございます。
そうなんですね~
150:デフォルトの名無しさん
23/08/30 15:24:17.79 zHni/Vbc.net
慣れて覚えてれば空で描けるが
以前に描いた自分のコードからコピペることが多いな
151:デフォルトの名無しさん
23/08/30 16:01:29.20 6Nf/ac+O.net
指先から紡ぎ出すようになるのに何年くらいかかりますか
152:デフォルトの名無しさん
23/08/30 18:16:08.49 ZaG6EIxJ.net
何年やってもできない人はずっとコピペだよ
逆にできる人は1年目から空で書ける
153:デフォルトの名無しさん
23/08/30 18:37:48.49 UqoqsUW1.net
aiに書いてもらって確認修正して終わり
154:デフォルトの名無しさん
23/08/31 01:31:57.23 X47G4wt5.net
>>144
楽に逸脱行為できる仕組みを提供してくれてるんだけど
リフレクションが透けてキモいし一般化する必要はなかったよね
そこまでメタなものじゃなくて目的に直結した便利機能があれば十分
155:デフォルトの名無しさん
23/08/31 09:54:17.47 DND1fd+0.net
リフレクションは関係ない
156:デフォルトの名無しさん
23/09/01 12:58:49.16 cc3ovi53.net
フロントエンドエンジニアのフリーランス平均年収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万円(求人ボックス・給料ナビ)」
157: 【大吉】
23/09/01 14:17:16.98 8Q6o7DlX.net
!omikuji の日でござる
158:デフォルトの名無しさん
23/09/04 01:06:34.09 HnNo1tWR.net
以下の様なスクリプトがあります
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みたいなものを追加しようかと思いましたが
わざわざインスタンス名と同じ値を設定しなければならないというのもイマイチに思ってます
159:デフォルトの名無しさん
23/09/04 01:20:29.31 svBXgOiP.net
>>156
無理
s1 = Student(1, "Mike")の行は右辺から評価されるわけでinitが実行されるタイミングでその処理結果を代入する先のインスタンス変数名を把握しようがない
160:デフォルトの名無しさん
23/09/04 01:34:16.67 HnNo1tWR.net
>>157
評価の順番で無理ですか
分かりやすい説明ありがとうございました
__init__ではなく、別のタイミングで呼ばれるクラスメソッドでは方法はあるのでしょうか
たとえばクラスに
def check():
if 自インスタンス名 == "s1":
self.name = "John Doe"
といったメソッドを追加して、メイン側では
s1 = Student(1, "Mike")
s1.check()
みたいにする等して、インスタンス作成後であれば取得することは可能なのでしょうか
161:デフォルトの名無しさん
23/09/04 01:34:28.71 DzJnyl6r.net
あってるけどアサイン後ならわかるのかとミスリードせん?
コンテキスト側からは追えないこともないけども
162:デフォルトの名無しさん
23/09/04 01:35:47.98 DzJnyl6r.net
>>158
煩雑なだけだからできないと考えた方がいい
163:デフォルトの名無しさん
23/09/04 01:39:30.34 DzJnyl6r.net
s3 = s2 = s1 = Student(1, "Mike")
としたときどうすんのって話もある
164:デフォルトの名無しさん
23/09/04 02:05:01.07 HnNo1tWR.net
>>160
なるほど
いろいろ回答ありがとうございました
処理全体を見直そうと思います
165:デフォルトの名無しさん
23/09/04 21:22:59.99 nWTc2hmH.net
pip searchってもう使えなくてpypi.org見れって言ってくるんだけど、これってふざけてませんか?
CUI主義の人はこれだと困るじゃないですか
なんでこんな仕様変更したんだろう
166:デフォルトの名無しさん
23/09/04 21:34:36.33 eS6UNx4I.net
>>163
負荷に耐えられないから
URLリンク(status.python.org)
167:デフォルトの名無しさん
23/09/05 20:08:47.70 rogYYWHX.net
同じ名前なのにこいつはglobalでこいつはlocalですよ
そんなつもりじゃないですよね?って教えてくれる
terminalとvimでの環境でも使えるなにかってありますか
エラー報告器というのか、ハイライトというのか
なんだなんだどこかの仕掛けが反映されてないぞ、二つの別のリストがあるのではという状況になってます
168:デフォルトの名無しさん
23/09/05 20:20:30.09 xROyc3eI.net
vim-lspで好きなランゲージサーバと連携したらつよつよにはなるけど
globalつかうコードを避ける、使うのはアクセサだけにするなど自制するのがシンプル
169:デフォルトの名無しさん
23/09/05 20:55:48.31 rogYYWHX.net
vim-lspやランゲージサーバーを知らなかったので調べてみますありがとう
なかなかシンプルには頭の中からしてまとまらなくて…頑張ってみますw
170:デフォルトの名無しさん
23/09/06 13:26:44.71 ROxN7tKN.net
vscodeとpycharmがただで使えるのにvimで頑張るのか(´・ω・`)
171:デフォルトの名無しさん
23/09/06 14:02:07.39 pyg074gJ.net
>>168
スマホのtermux上で遊んでるだけなので、楽しんでたプログラムが思いがけず大きくなりました
linuxディストリビューションを入れることも可能なのでvscodeも試してみたことはあります
スマホ画面ではそう使いやすくは無く、初心者なのでなおさら苦悩が増えました
といった理由でterminalでvimとなってます
さっきpluginとしてvim-lspとPlug 'mattn/vim-lsp-settings'を入れてみました
黄色や赤でスペースがなってない!などと自分のコードをド派手に隠します…
printと書くとポップアップで自分には参考にならないpython docsと似た仕様をあらわす英文がでます
いまのところ使いこなせそうにありませんw
172:デフォルトの名無しさん
23/09/07 12:33:06.77 iG8XE85c.net
yahooの再設定で生年月日わからんから生年月日を検索するツールを作りたいん
プログラム知識ないからAIで作らせたいん
どうすればいいんですか?
173:デフォルトの名無しさん
23/09/07 12:46:06.68 KtKJhS7/.net
AIの知識があるなら
プログラムもAIで作ればいいんじゃないかな
174:デフォルトの名無しさん
23/09/07 13:00:46.71 yf0XBZB8.net
馬鹿には無理
175:デフォルトの名無しさん
23/09/07 13:07:12.08 CDCme1Du.net
総当たりじゃ解けないようになってるはず
サポートに問い合わせろ
176:デフォルトの名無しさん
23/09/07 13:14:06.06 iG8XE85c.net
問い合わせても「お答えできない」としか返ってこないから意味ないん
177:デフォルトの名無しさん
23/09/08 17:42:37.49 NjDvTDdV.net
宿題にはお答え出来ません
宿題と判らないように質問してください
178:デフォルトの名無しさん
23/09/10 07:30:31.81 hps7g+0s.net
30代Pythonバカチョン男は強姦魔の犯罪者です!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
179:デフォルトの名無しさん
23/09/10 07:34:36.02 hps7g+0s.net
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。
180:デフォルトの名無しさん
23/09/10 07:34:51.97 hps7g+0s.net
30代Pythonバカチョン男は強姦魔の犯罪者です!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
181:デフォルトの名無しさん
23/09/11 03:48:59.40 WUmnzUS8.net
スレタイにふさわしい質問ですがryeってのどうですか?
Pythonバージョンの切り替えとかほぼしないしpoetryで不満ないんですが
この手のツールはあんまりフラフラ変えないほうがいいですよね?
182:デフォルトの名無しさん
23/09/11 09:49:56.20 lXcI/Ajd.net
なにそれおいしいの
183:デフォルトの名無しさん
23/09/11 12:23:17.90 Uj3i56F3.net
Rustで作られた
Pythonの環境管理・installなどのツールか
venvなどよりryeおすすめって記事をよく見る
184:デフォルトの名無しさん
23/09/11 23:35:23.83 VwcUnZnc.net
日本人が作った、多言語バージョンマネージャーのanyenv がある。
同様のツールに、asdf もある。
他には、Docker もある
Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, jlenv, luaenv
nodenv, phpenv, plenv, pyenv, rbenv
sbtenv, scalaenv, swiftenv, tfenv
185:デフォルトの名無しさん
23/09/12 15:27:42.12 RGjhGQKs.net
30代Pythonバカチョン男は強姦魔の犯罪者です!
あなたの近くにいます!
父母と祖父母の戸籍謄本を提出させましょう!
そしてスレ主がその極悪非道の強姦魔バカチョンです!
Python使う奴はチョンが多いです。
しかも北朝鮮人ですから犯罪なんでもやります。
必ず家族の戸籍を確認しましょう!
186:デフォルトの名無しさん
23/09/13 06:46:42.57 5G1pYC4E.net
>>183
恥ずかしくない?
187:デフォルトの名無しさん
23/09/13 14:22:45.91 JmOEsGWT.net
漏れの読み
>>183 == >>184
188:デフォルトの名無しさん
23/09/13 14:24:03.36 7K6lTl9W.net
pythonは俺が作った最強の系が多すぎて困る
豪語するのはデファクトになってからにしてくれ
189:デフォルトの名無しさん
23/09/13 15:56:15.75 JmOEsGWT.net
Rustのことですねわかります
190:デフォルトの名無しさん
23/09/13 16:01:01.97 GC1GSAPg.net
デファクト
191:デフォルトの名無しさん
23/09/16 16:53:10.39 EeYw60jk.net
vscodeのプラグイン分割されたせいか動きがおかしいしやつがいくつがあるな(´・ω・`)
192:デフォルトの名無しさん
23/09/16 17:12:10.72 OSqYfQ8W.net
分割ってなに
193:デフォルトの名無しさん
23/09/23 09:00:04.64 FVqyQUn9.net
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'], \}
194:デフォルトの名無しさん
23/09/23 09:02:37.55 FVqyQUn9.net
あ、めちゃくちゃになったすみません(直せない)
195:デフォルトの名無しさん
23/09/28 12:15:19.06 jwkusxvg.net
pywebview から webview2 で表示させた中身は、どうやったらスクレイピングできますか?
196:デフォルトの名無しさん
23/09/28 13:47:29.57 emnRgXWb.net
window.get_elementsでいけそう
URLリンク(pywebview.flowrl.com)
197:デフォルトの名無しさん
23/09/29 15:15:41.90 +VVm/6J4.net
pythonは門外漢なのですがコードを読めずに困ってます
dp=[[0,0] for _ in range(N)]
dp[0]=[1,1]
これは何を表していますか?
dp[i][0]%=MODとか出てくるからdp[i][j]は数値だと思うのです
198:デフォルトの名無しさん
23/09/29 15:20:33.59 K+K2fBee.net
dp=[]
for _ in range(N):
dp.append([0,0])
dp[0]=[1,1]
199:デフォルトの名無しさん
23/09/29 15:27:47.40 Dt5xSUqE.net
全ての要素が [0,0] である N-1 個のリスト dp を作成
dp の最初の要素に [1,1] を代入
200:デフォルトの名無しさん
23/09/29 15:32:53.86 K+K2fBee.net
ChatGPTに聞いたらいい感じに答えてくれた
201:デフォルトの名無しさん
23/09/29 15:57:49.40 DCwFF8Wu.net
for文の変数が_ってこの変数自体を指定することはありませんよってポーズ?
202:デフォルトの名無しさん
23/09/29 18:51:51.98 UcDRzO48.net
ふつうは言語機構つかって
[[0,0]] * N
と書くけど知らないと魔法にみえるからありなのか
203:デフォルトの名無しさん
23/09/29 19:02:04.86 NAigsGqx.net
[[0,0]] * Nはだめだよ
204:デフォルトの名無しさん
23/09/29 19:54:46.54 DCwFF8Wu.net
>>201
[0,0]のリストが同じIDでN個入ったリストができんだよね……
205:デフォルトの名無しさん
23/09/29 20:35:11.07 UcDRzO48.net
たしかに
dp[0]=[1,1]
でしか操作しないならタプルにしてるだろうし撤回するわ
206:デフォルトの名無しさん
23/09/29 20:51:40.89 w4soHy15.net
同じ実体を指してるリストが欲しいケースってそんなにあるんだろうか
簡便な記法をレアな用途に当ててしまってる気が
207:デフォルトの名無しさん
23/09/30 10:48:48.49 +WV6fTrG.net
>>195
N=3だとすると
dp=[[1,1], [0,0], [0,0]]
にしている
208:195
23/09/30 13:38:46.89 rp4pJ3sH.net
ありがとうございます。理解できました
209:デフォルトの名無しさん
23/10/04 17:52:26.06 +BdHLUL4.net
webアプリを作ろうと思って、ローカルの環境でsqlite3を使って作ったDBとflaskとを組み合わせて開発しました。
しかし、webに公開することを考えると、mysqliteのような簡易なDBではなくちゃんとmysqlを勉強してそちらを使うように作り変えるべきでしょうか?
210:デフォルトの名無しさん
23/10/04 17:54:35.82 ilZ5d6ID.net
はいそうなります
211:デフォルトの名無しさん
23/10/04 18:42:00.03 sTQvT6wD.net
アクセス数が少ないなら何の問題もない
212:デフォルトの名無しさん
23/10/05 17:06:48.85 WXXGTjkD.net
>>209
同意だけどアクセス権とかどうすんのかな
213:デフォルトの名無しさん
23/10/05 17:57:28.56 EEXxhJ5S.net
読みだけならアクセス数がそれなりに多くても平気
不特定多数が同時に書き込んだり
書き込み時に読み込みがブロックされると困る仕組みならサーバー型のデータベース使う
214:デフォルトの名無しさん
23/10/06 23:25:50.21 tE7CLicd.net
何度質問してもOKだってさ
おまいら良かったな
URLリンク(www.youtube.com)
215:デフォルトの名無しさん
23/10/16 15:27:42.68 /1UTkc3m.net
URLリンク(i.imgur.com)
良ければお試しください
ik..tk N-G用
216:デフォルトの名無しさん
23/10/16 16:21:27.52 spRcfSPO.net
>>213
とりあえずやる価値はありそう
217:デフォルトの名無しさん
23/10/16 19:47:27.54 X2HEt2zW.net
>>213
グロ
218:デフォルトの名無しさん
23/10/19 06:24:23.38 tPsc79zm.net
# >>121
title = "第124回『「韓国徴用工問題」動かぬ証拠で一気に終結』【「日本製」普及Ch】"
uri = "htt" + "ps://www.youtube.com/watch?v=iu4jdRIKxUU&list=PLm1mQfWiRy2LycHWplMELJtgLje8YaeHL"
print( title, uri, sep="\n" )
219:デフォルトの名無しさん
23/10/23 15:26:08.05 Xp0vEwce.net
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を使いながらも、元の関数の引数名を補完や表示させることってできないでしょうか?
ちなみに、デコレータとしては使いません。
220:デフォルトの名無しさん
23/10/23 15:26:19.52 Xp0vEwce.net
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を使いながらも、元の関数の引数名を補完や表示させることってできないでしょうか?
ちなみに、デコレータとしては使いません。
221:デフォルトの名無しさん
23/10/23 16:57:56.53 IbZgkAts.net
その例だと何もしなくても普通にwrapした関数の引数が表示される
222:デフォルトの名無しさん
23/10/23 19:08:52.64 xU3WfdkE.net
URLリンク(imgur.com)
URLリンク(imgur.com)
うーん、ヒントでは *args **kwargs としか表示されないですね…
何か別の拡張機能が必要ですか?
223:デフォルトの名無しさん
23/10/23 19:24:37.41 CJYAK+hs.net
ぜんぜんためしてないけど
wrapper_funcの引数がreturn func以外で使用していないところまで分かるってことか
なかなかやね
224:デフォルトの名無しさん
23/10/25 11:33:57.19 9oOV85NF.net
さすがに無理では
225:デフォルトの名無しさん
23/10/27 12:37:21.43 Zw05fGjv.net
スクレイピングしたデータをエクセルブックに保存しようとしたら失敗した上、エクセルブックのサイズが0になり開けなくなりました。
また以前のデータも消去されてしまいました。
復元する方法はありませんか?
226:デフォルトの名無しさん
23/10/27 15:12:16.53 IOqSzuPQ.net
URLリンク(i.imgur.com)
227:デフォルトの名無しさん
23/10/27 15:20:37.20 tyc9gzgR.net
データ直接いじるならバックアップは基本だろ
228:デフォルトの名無しさん
23/10/28 14:10:34.16 1iiYkiVL.net
果たして本当に保存に失敗したのだろうか
同じ名前で空のワークブックを造ってしまって
そのまま保存しちゃったんじゃね
229:デフォルトの名無しさん
23/10/30 01:51:52.74 o+4A2fED.net
mode=wとかで開いて上書きしちゃうのはあるあるミスだろうね
230:デフォルトの名無しさん
23/10/30 02:10:56.85 ciWypUeS.net
スクレイピングって要は他人が一生懸命作ったWebコンテンツをごっそりデータとして盗む泥棒行為だろ?
Pythonをそんな用途に使うんじゃない
231:デフォルトの名無しさん
23/10/30 14:29:49.94 3NOS0Vec.net
chatGPTとかの学習ネタはWEBスクレイピングだね
画像も転がってるし、使える。
232:デフォルトの名無しさん
23/10/31 09:01:51.83 vhpvFizQ.net
Googleとかのクローラーもスクレイピングの一種だよね
233:デフォルトの名無しさん
23/11/09 04:33:46.02 /NCaVTst.net
# >>216
# 反日教育は嘘ですよ~~2023年9月13日 フリージャーナリストの朴さんの経験。|채널fujichan
"".join("h_ttp_s://_www_.you_tube.co_m/wat_ch?_v=v_M1v_YrsA3_Ko".split("_"))
234:デフォルトの名無しさん
23/11/11 22:01:06.26 VAcD6vEV.net
vscodeで.htmlファイルの中に書くpythonのコードを、.pyファイルの中に書かれたpythonのコードと同じ規則で色付けしてもらうにはどうすればいいですか?
できれば<py-script></py-script>で囲われた部分だけを色付けしたいです。
235:デフォルトの名無しさん
23/11/12 00:39:55.84 hUOoaneU.net
Ruby では、埋め込みRuby・ERB で、HTML ファイルを書く。
<% ~ %>, <%= ~ %> を使って、HTML内にRubyの構文を書く
<% price = 2500 * 1.05 %>
<p>
本の値段は<%= price %>円です。
</p>
ERBの実装にもよるが、< > & " など、
HTMLの特殊文字がエスケープされるものと、されないものがある
<%= price %> これだけでエスケープされるものと、
<%=h price %> エスケープするのに、h が必要なものがある
ファイル名は、a.html.erb の形式で、
VSCode に、ERBに対応する様々な拡張機能がある
236:デフォルトの名無しさん
23/11/17 23:10:50.43 AvZ1Z1pY.net
~フルパス~\python.exe ~.py
だときちんと動くのに
c:\windows\py.exe ~.py
だと
No suitable Python runtime found
ってエラーになるのはなんで?
237:デフォルトの名無しさん
23/11/17 23:49:28.27 i6SiN6NQ.net
>>234
py とだけ打ち込んだらなんて表示される?
238:デフォルトの名無しさん
23/11/20 11:08:50.44 AlmeLY1B.net
Python 3.11.6ではエラーにならない
239:デフォルトの名無しさん
23/11/20 16:54:24.00 dslXur7U.net
javascriptのオブジェクトの分割代入の表記って今後Pythonにも実装される可能性ってあるの?
obj={aaa, bbb, ccc, ddd}
{aaa, bbb} = obj (必要なキーだけ代入)
あと変数名とオブジェクトのキー名が同じ場合にキー名を省略できるのとか。
両方さわってると、「あーこの書き方できないのかー」って思うことが多く。
240:デフォルトの名無しさん
23/11/20 19:02:06.24 e16PnsSi.net
Pythonの辞書のキーは文字列に特化してなくて
JSONみたいに引用符は省略できないから飛躍が大きい気がする
リフレクションでいろいろ丸見えなので実現するのは容易
241:デフォルトの名無しさん
23/11/23 10:27:41.94 mHKDjsht.net
pythonの黒魔術覚えろ
242:デフォルトの名無しさん
23/11/27 04:49:00.51 tnBtjkwo.net
どちらの方がいいでしょうか?
URLリンク(i.imgur.com)
243:デフォルトの名無しさん
23/11/27 07:08:59.26 dgaEQ1dv.net
密結合・疎結合の話なら右
244:デフォルトの名無しさん
23/11/27 07:13:59.21 4HQtKID3.net
どう考えても右
左は関数の仕様変更に他の関数が引っ張られてスパゲッティになる
245:デフォルトの名無しさん
23/11/27 10:26:14.60 1pI4Xk/b.net
矢印の種類と意味が左と右で違うのが気になるがどちらの構造がいいかは状況次第だから処理内容を考慮せずに判断すべきではないよ
246:デフォルトの名無しさん
23/11/27 12:48:17.49 R9It0cfW.net
処理内容次第の判断基準をざっくり言えば
関数A,B,Cがメイン関数で実行する抽象度として揃ってるなら右
抽象度が関数A > B > Cなら左
247:デフォルトの名無しさん
23/11/27 17:51:48.30 tnBtjkwo.net
ありがとうございます
248:デフォルトの名無しさん
23/11/27 17:52:20.22 ADnr9f8E.net
>>244
もうちょっと易しくかいてぅれてもいいよ
249:デフォルトの名無しさん
23/11/27 19:37:34.58 UlzV0bXg.net
初心者だしBでやってるけどAってどんなやつなんだBASICのような感じなのかな?
250:デフォルトの名無しさん
23/11/27 22:20:18.48 tnBtjkwo.net
こんなん 各2ヶ月かかった
URLリンク(dpaste.com)
URLリンク(dpaste.com)
251:デフォルトの名無しさん
23/11/28 00:48:46.12 tbHgY5Ye.net
コードはすまん読んでないけど
関数から呼ばれる関数は基本的に汎用的な関数として定義されているものであるべきと思う
例えばパスから画像を呼んでバイナリ化して返す関数を
引数にバイナリを指定し、画像加工する関数群(画像加工の種類ごとに関数を用意)からそれぞれの冒頭で呼び出す
とかなら自然かなと
汎用的ではない関数を、別の関数から呼ぶ…とかだと
渡したい引数を一旦メイン処理に戻してそっちから渡すBのやり方で書きたいなと思う
252:デフォルトの名無しさん
23/11/28 04:07:22.70 //fSvaZM.net
圧倒的に右
253:デフォルトの名無しさん
23/11/28 08:32:22.00 t7+ip2Xg.net
右だとしても
class X 造ってその中に A, B, C 定義して
main からは x = X() してから x.A() x.B() x.C() が良いと思う
254:デフォルトの名無しさん
23/11/28 10:10:52.21 khx6Zkgl.net
>>251
そのためだけにクラス作るのは馬鹿らしい
複数の関数を一つに閉じ込めたかったら関数内関数でいいじゃん
255:デフォルトの名無しさん
23/11/28 10:14:34.91 t7+ip2Xg.net
globalでもlocalでも引数で同じ情報を持ち回るのが馬鹿らしい
256:デフォルトの名無しさん
23/11/29 04:29:33.80 Z6GycUPt.net
勉強のためにとあるWebページのRPA用のフレームワークを自作しようとしてるんですが
ページを操作するクラスをStateパターンの見よう見まねで実装しようとしたところ
画面を遷移させる部分で循環インポートになってしまいます
できればmain.pyからの使い方は変えずに実装したいのですがどうすればよいですか?
操作内容は画面の状態によって異なるのでオーバーライドは無理な状況です
メソッド内でimportすれば解決するような情報もありますが
できればimportはソースコードの最上部で済ませたいです
コードは以下の通りです
main.py
URLリンク(techiedelight.com)
rpa.py
URLリンク(techiedelight.com)
presentation/__init__.py
URLリンク(techiedelight.com)
presentation/presentation_base.py
URLリンク(techiedelight.com)
presentation/a_presentation.py
URLリンク(techiedelight.com)
presentation/b_presentation.py
URLリンク(techiedelight.com)
257:デフォルトの名無しさん
23/11/29 13:46:04.06 Z6GycUPt.net
>>254
すみません
a_presentation.pyとb_presentation.pyのelseの中で
self._set_new_p(p)のあとにbreakが必要でした
258:デフォルトの名無しさん
23/12/01 06:10:11.53 +Sulqil7.net
>>254,255
自己解決しました
Mediatorパターンが参考になりました
遷移先のPresentationクラスの生成をCreatorクラスにまかせて、
PresentationクラスはそのインターフェースCreatorBaseのインスタンスを持つようにしました
CreatorクラスのインスタンスはRPAクラスのメンバーにしてPresentationに__init__()の引数として渡しました
すべてのPresentationクラスの実装のインポートをCreator内に集約することでPresentation間での循環インポートを解消できました
259:デフォルトの名無しさん
23/12/01 22:39:32.22 dcWZLwtR.net
循環インポートを避けるには
from .a_presentation import APresentationじゃなくて
import presentation.a_presentation as A とかにして
A.APresentationの形で使うだけでも大丈夫
260:デフォルトの名無しさん
23/12/01 22:43:35.51 dcWZLwtR.net
それにしても随分とパターン熱に冒されてるねー
StateパターンになってないしStateパターンを使うべきケースでもないと思うんだけどな
261:デフォルトの名無しさん
23/12/01 23:03:50.71 3nL4Jfiv.net
pip installでインストールできるようにパッケージ化してみたらいいと思う
262:デフォルトの名無しさん
23/12/02 00:49:51.55 IL/rFcuk.net
>>257,258
ご回答ありがとうございます
右も左も分からない初心者なもので見苦しくてすみません
調べている中で257の方法も試してみたのですが、
それだとmain.pyでAの方のif文は実行されたのですがBの方は実行されませんでした
なぜでしょうか?
あと画面の状態と操作を扱うクラスなのでStateかと思ったのですが違ったのでしょうか?
263:デフォルトの名無しさん
23/12/02 01:22:32.17 IL/rFcuk.net
>>260
度々すみません
Bが実行されないのはset_new_pしたあとnew_pを参照していないからでした
264:デフォルトの名無しさん
23/12/02 11:24:03.67 W00DnSBP.net
>>260
>あと画面の状態と操作を扱うクラスなのでStateかと思ったのですが違ったのでしょうか?
ある画面が状態Aでも状態Bでも状態Cでも
画面を操作するクライアント側のコード(今回で言えば主にmain)はどの状態であるかを意識ぜずに同じメソッドを呼び出す
呼び出された側が状態に応じた振る舞いや状態遷移を行うんだけどその際呼び出された側がif文で条件分岐するのではなく各状態ごとにクラス等を用意してポリモーフィズムで分岐させるのがStateパターン
265:デフォルトの名無しさん
23/12/02 12:28:53.41 +bysY8AL.net
>>262
ありがとうござい�
266:ワす 具象クラスのメソッドを直接操作してるので何かが違うんだけどとは考えてました すると今回のように呼び出し側が画面に合わせた操作をする必要がある場合はどういう設計がベターでしょうか? 循環インポートの解消に関しては from . import a_presentation as A でも問題なく動きました これはAPresentationの定義の読み込みが呼び出し時までされないということでいいですか?
267:デフォルトの名無しさん
23/12/02 14:02:31.64 0tC7Yjqi.net
だめ絶対
268:デフォルトの名無しさん
23/12/03 18:54:22.91 l1Ri8dMm.net
手始めにPython3エンジニア基礎試験合格したんだけど、次何したらいいの?
269:デフォルトの名無しさん
23/12/03 20:34:04.98 B7yqPTfY.net
>>265
趣味ならそこがゴール
あとは作りたいアプリを存分に作りまくってくれ
270:デフォルトの名無しさん
23/12/04 07:29:49.93 ZEr6pdQQ.net
>>266
特にない。何ができるのかよくわからん。
株価のデータをウェブから持ってこようと思って始めたが、それはできた。
それ以外はない。
当面、基礎試験はの次の実践試験の方やってみながら作りたいもの探すか
271:デフォルトの名無しさん
23/12/04 11:28:39.23 7xJZTz8z.net
何もないならやる必要はない
時間の無駄
272:デフォルトの名無しさん
23/12/04 12:42:51.69 LMh9z4VO.net
>>267
作りたいものはないけど情報工学技術に興味があるということかな
それなら専門学校か大学に行くとよいのでは
題材は向こうが勝手に用意してくれる
独学で専門技術を身に着けたいというのは無理ではないけどモチベが続かないだろう
273:デフォルトの名無しさん
23/12/04 13:45:27.90 C1dIH7Kj.net
>>267
株価とか出来高とか板とか見て自動で売買するアプリ作ってはどうでしょうか?
儲かりたいなら優待を
274:デフォルトの名無しさん
23/12/06 07:20:37.12 TGpYlcbb.net
AIペイントすごいなGUIもこれで良いよな
プロンプトを絵コンテみたいに書いちゃえばほぼ完成になりそう
275:デフォルトの名無しさん
23/12/06 20:32:16.84 7Cu2FhSW.net
児童取引は怖い
276:デフォルトの名無しさん
23/12/07 05:46:48.95 0LP6dGg+.net
Python では転職できない。
だから、学校へ行っても仕方ない
YouTube で有名な雑食系エンジニア・KENTA が、既に言ってる。
初心者のキャリアパスは、Ruby on Rails → Go のみ
PHP, Scala はオワコン認定した
Pythonで必要な人は大学院数学科か、AWS 機械学習資格。
文系は無理。勉強のほとんどがプログラミングじゃないから。
だから、一発逆転狙いの文系のアホには、Railsがチート職業と言われるわけ
ただし、YouTuber のかよちんみたいに、
Railsをやっている人は、Django へ転職できる
全てのバックエンドは、Rails, AWS Solution Architect が基本だから。
この2つが米国年収で2千万円!
まず転職で聞かれるのが、RailsではなくPythonを選んだ理由。
ここで皆が脱落する。
大学院数学科じゃないと、まず無理
277:デフォルトの名無しさん
23/12/07 11:41:26.60 gpmkJ2Ny.net
>>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は桁数をいくつまで手軽に扱えるの?
278:デフォルトの名無しさん
23/12/07 11:54:23.24 Y5Tf+LqT.net
URLリンク(docs.ruby-lang.org)
しらんけど無制限らしいから計算機リソースのみに依存すんでない?
処理系の縛りがあるかは書いてないからわからん
279:デフォルトの名無しさん
23/12/07 12:27:43.29 gpmkJ2Ny.net
require 'bigdecimal'
n = 0 # デフォルト値
mf = BigDecimal::limit(n)
a = BigDecimal("10")
b = BigDecimal("7", 40)
mf = a ** a ** a ** b
このくらいでエラーになるぞ。
URLリンク(paiza.io)
bを6にするとエラーにならないからこの程度が限界か?
280:デフォルトの名無しさん
23/12/07 12:49:23.47 gpmkJ2Ny.net
Rubyは説明が少なくて面倒くさいな。ideoneも対応していないし。
URLリンク(docs.ruby-lang.org)
サンプルのカンマで区切った2つ目の40という数値の意味の説明もないし。
有効桁数か?でもサンプルから考えると40なのはおかしくないか?
281:デフォルトの名無しさん
23/12/07 13:17:06.58 gpmkJ2Ny.net
Rubyのbigdecimalは解答を独自のフォーマットで返してくる。
URLリンク(paiza.io)
普通は
2.003529930406846464979072351560255...7777506072339445587895905719156736e19728
の整数1桁と小数点以下とeの値で返すはず。
282:デフォルトの名無しさん
23/12/07 14:19:10.74 wNl2TimY.net
PythonスレでRubyの話してるのはアホなんか
283:デフォルトの名無しさん
23/12/07 15:32:59.56 6vUn2cKn.net
>>273
ケンタは「文系学部出てpython出来ても職はない」と言っている
まあ首都圏にはあったりするが
また「文系学部出てAIの仕事をしたいといっても仕事はない」とも言っている
pythonはAIで良く使われているので
AIの仕事の無い地方には仕事がない、
という事になる
だがkenta氏がこんな発言をしたのってもう4年以上前だなあ
今の情勢に合わせてChatGPTをローカルに置いてちょっとカスタマイズしたい、なんて仕事も出てくると
ソースコードを壊さないように弄る必要も出る
その程度で「数学科出身じゃないからやらせない」「情報工学出身じゃないからダメ」というのは
無駄の極み
284:デフォルトの名無しさん
23/12/07 16:00:11.34 wNl2TimY.net
KENTAが文系学部出てpython出来ても職はない
KENTAが文系学部出てAIの仕事をしたいといっても仕事はない
ということだろ
285:デフォルトの名無しさん
23/12/07 17:27:42.18 XDYBiR0b.net
>>274
瞬殺されててワロタww
286:デフォルトの名無しさん
23/12/19 21:51:20.71 WeipM8cv.net
モジュールによっちゃ日本語の情報が少なくて外国のページ見て学ぶなりコピペしてくるなりしないといけないんだが
みんなそれくらいの英語は余裕でできるの?
287:デフォルトの名無しさん
23/12/20 00:47:47.59 bsiqnAom.net
サードパーティのモジュールはほぼ英語でしか説明ないけど
平易な表現しか使ってないから翻訳併用すれば中学英語レベルで十分理解できる
紹介記事は極論作者のメモ書きにすぎないからね
288:デフォルトの名無しさん
23/12/22 23:53:50.57 CDCAm2n1.net
リンク先のように書くと
URLリンク(dpaste.com)
piyoはNoneの既知のメンバーではありませんと怒られますが
回避するにはcastになるのですか?
他の言語みたいにNoneで無いことが分かっているなら!みたいに短く書く方法はないのでしょうか
289:デフォルトの名無しさん
23/12/22 23:57:32.60 CDCAm2n1.net
ifでチェックしたら回避できるのは知ってます。
290:デフォルトの名無しさん
23/12/23 00:06:34.21 nuv23jz/.net
結論から言えば無い
ifでチェックする
機能追加の提案もあるけど実装される見込みは今のところ無し
URLリンク(discuss.python.org)
291:デフォルトの名無しさん
23/12/30 07:45:04.24 W5+FG6fR.net
pythonで変数スコープをどうにかしたいのですが定石とか何かありますか?
変数宣言せずに使えるのでスコープ外れてるのに値を入れたりして名前が同じ別スコープの変数が新たに出来てバグ子温床と発見に手間が掛かります
正直言って変数宣言にvarを導入して欲しい感じなのですが型チェックがオプション的に使える様に何か方法は無いでしょうか?
292:デフォルトの名無しさん
23/12/30 09:08:17.02 9xbp05/Y.net
>>288
スコープが外れるってどういうシチュ?
関数内での代入は全てローカル扱い
これを心得てさえいれば何も困らんと思うのだが
293:デフォルトの名無しさん
23/12/30 16:01:53.58 FgzdgIdy.net
>>288
参照可能な別の変数を上書き定義してるようなケースはpylintとかでチェックすれば警告が出る
変数がスコープ内にあると勘違いして既存変数に代入したつもりが
新しい変数を定義して初期化しただけというケースはテストを書かずにチェックするのは実質無理
普通はそんなことにならないと思うけどテストを書くか変数定義にキーワードを要求する言語に乗り換えるかの二択
294:デフォルトの名無しさん
23/12/30 17:42:20.56 uPN73jPm.net
Copilot使いだしてからないけどself付け忘れはある
295:デフォルトの名無しさん
24/01/06 11:42:23.38 Zs30euLJ.net
人間に独立した人格が有るように、チンポにも独立したチン格が有る
これは親クラスと子クラスの継承関係である
チン格とはつまり「愚息」であり、自分にも他人にも成り得る
これがオブジェクトの多態性と表現される
オシッコするときのチンポは随意筋、勃起するときのチンポは不随意筋
このように時と場合によって真逆の性質を併せ持つことができる
随意筋 不随意筋
↖ ↗
チンポ
自然言語処理において語の意味は文脈によって変わるので、Pythonのような多重継承が不可欠ね!
296:デフォルトの名無しさん
24/01/08 08:28:08.05 UVvi3vWm.net
FANZAでエロ動画の価格をスクレイピングしようとしてるんですが
label for="4k"配下のdtタグのtextを出力したいんですが、for属性をfindするとエラーが出ます
print(soup.find("label",for_="4k").find("dt",class_="col2").text)
別のやり方じゃないとダメでしょうか?
URLリンク(www.techiedelight.com)
297:デフォルトの名無しさん
24/01/08 11:43:15.07 4FNw9MEQ.net
>>293
予約語回避のためのショートカットはclass_だけなのでattrsで書く
soup.find("label",attrs={"for":"4k"})
298:デフォルトの名無しさん
24/01/08 12:20:33.92 EIrMtl3n.net
>>293
独自記法が必要なfind/find_allは捨てて
標準的なCSSセレクターが使えるselect_one/selectを覚えたほうがいいよ
ブラウザからコピペしたりブラウザコンソールでそのまま確認できるので
soup.select_one('label[for="4k"]').select_one('dt.col2').text
299:デフォルトの名無しさん
24/01/08 13:31:11.16 qmm9XobD.net
>>294-295
ありがとうございます
出来ました
selectが見やすいのでselect使います
URLリンク(www.techiedelight.com)
300:デフォルトの名無しさん
24/01/08 13:33:49.83 qmm9XobD.net
リンク間違えました
URLリンク(techiedelight.com)
301:デフォルトの名無しさん
24/01/08 18:03:30.19 TiBm1ihV.net
今既存のRPA用のフレームワークを改良しています
オリジナルはこのようなコードになっています
Controllerは操作のためにDriverのアンダースコアつきメンバーに触ってるんですが
設計上しょうがないですか? ruffで警告が出るので気になります。
それともプロパティを公開して
フレームワーク利用者側からは呼ばないようにドキュメントを書く方がいいでしょうか?
Controllerは状況に合わせた専用のメソッドを持つ子クラスを都度使い分ける想定です。
URLリンク(techiedelight.com)
302:デフォルトの名無しさん
24/01/08 20:59:21.07 3KJvz+ds.net
>>297
スクレイピングから夜のおかずまで
幅広く手掛けるpython
303:デフォルトの名無しさん
24/01/09 11:51:37.25 mYyJOFIO.net
>>298
モジュールレベルの可視性とクラスレベルの可視性を使い分ける
クラスの外部からアクセスする前提のプロパティやメソッドならアンダースコアは付けない
利用者側コードでDriverを生成させる必然性はなさそうなのでフレームワーク側でDriverを生成してControllerをinitして返すAPIを用意する
__init__.pyでモジュールのユーザーに公開すべき内部モジュールを選別する
公開モジュールで非公開モジュールをインポートするときはアンダースコアを付ける
304:デフォルトの名無しさん
24/01/10 22:36:13.32 Ggzl3EdZ.net
>>300
ありがとうございます。利用者はControllerを直接受け取るということでいいですか?
最初に貼ったコードはちょっと省略しすぎました
実際には以下のようにDriverはwith文で使えるようになっているのですが
この場合もControllerを直接渡した方がよいのでしょうか?
たとえば手動操作とRPAからの操作を切り替えるような状況だと
Driverは最初に起動しておいてRPAが必要なときだけ都度Controllerを生成しています
URLリンク(techiedelight.com)
305:デフォルトの名無しさん
24/01/13 15:42:46.23 W9CIMidi.net
エ○画像とそれ以外の画像を振り分けるプログラムなんですが
実行するとmodel.fitでエラーが出ます
解決策がさっぱりわからないので助けてください
[ソースコード]
URLリンク(techiedelight.com)
[エラー内容]
URLリンク(i.imgur.com)
306:デフォルトの名無しさん
24/01/13 20:43:02.34 Wk38PunC.net
>>302
もうプログラミングはAIに聞く時代だぞ
ChatGPTのプロンプトに
「Pythonの下記のコードで~というエラーメッセージが出る原因を教えて」とタイプしてShift + ENTER押して
コードをCtrl + Vで貼り付けてENTERすれば何かしらアドバイスしてくれる
307:デフォルトの名無しさん
24/01/14 12:29:02.68 0ohzHf92.net
ネタが新鮮だとChatGPTでは無理
URLリンク(github.com)
308:デフォルトの名無しさん
24/01/14 17:49:42.52 NKNETmpB.net
無料版のChatGPTだからダメなのであって有料版のChatGPTなら新鮮なデータも答えられるでしょ
金払いたくなければBingやBardのでもいい
309:デフォルトの名無しさん
24/01/14 18:05:50.80 JQrCg+JK.net
>>305
Plusでも無理
やってみれば分かること
310:デフォルトの名無しさん
24/01/14 18:08:31.60 MIyVZkUg.net
バカとハサミは使いよう
何でもChatGPTに聞くのはバカ
311:デフォルトの名無しさん
24/01/14 18:12:22.27 mFqEsi68.net
プロンプト: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)を使用して予測されたクラスを取得します。
これらの変更を行っても問題が解決しない場合、または他のエラーが発生した場合は、具体的なエラーメッセージを教えてください。
それに基づいて、さらにアドバイスを提供できます。
312:デフォルトの名無しさん
24/01/14 18:28:17.93 mFqEsi68.net
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)) で使用されていますが、この変数の定義が見当たりません。
========
エラーメッセージをプロンプトに入れろと言われたが入力するのめんどくさいのでやってない
313:デフォルトの名無しさん
24/01/15 07:21:20.78 qqS0iVUV.net
>>308
やっぱすげーわAI
こんなの瞬時に提案できる人間なんてこの世にいないだろう
もう開発スキルを磨く必要はなくて、AIをいかに使いこなすかを勉強した方がいい
314:デフォルトの名無しさん
24/01/15 10:53:04.65 2WJTjfkc.net
つまりプロンプトエンジニアが重要になると
315:デフォルトの名無しさん
24/01/15 11:01:16.44 KiCBWffV.net
上のはChatGPT4の場合
=====
ChatGPT3.5の場合
このコードの実行中にAttributeErrorが発生しているようです。
AttributeErrorは通常、属性(Attribute)に関するエラーを示します。
コード内のどの部分でこのエラーが発生しているかを特定するために、
エラーの詳細メッセージと行数を提供してもらえますか?
エラーの詳細メッセージや行数を提供いただければ、
より具体的なアドバイスを提供できるかと思います。
316:デフォルトの名無しさん
24/01/15 11:25:47.89 VXSrH9W1.net
何か掠ってたら、あの占い師はよく当たると思っちゃう人って滑稽だよね?
317:デフォルトの名無しさん
24/01/16 23:57:22.51 DyADOzn9.net
30代のPython男は反日のチョンです。
職場から追放しましょう!
318:デフォルトの名無しさん
24/01/18 05:14:20.29 ozbgYzyy.net
くそどうでもいい質問ですみません
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”と言う部分が太字なのですが、これは何のつもりなのですか?何が言いたいのですか?
319:デフォルトの名無しさん
24/01/18 08:14:17.00 qC0ThaED.net
>>315
ChatGPT3.5に聞いた結果
これからはAIに聞く時代。人に聞くのは時間の無駄
--------------------
PythonAnywhereが自動送信するメールの中で、"a real, live human" の部分が太字になっている理由は、おそらくユーモアや親しみを込めた表現として使われています。この表現は、人間とコンピュータの違いを強調し、サポートが人間によって提供されていることを強調するために使用されている可能性があります。
通常、自動応答メッセージやウェルカムメールにおいて、太字やカジュアルな表現が使われることがあります。これは、ユーザーに友好的であると感じさせ、サービス提供者とのコミュニケーションが人間対人間であることを強調するためです。太字は通常、強調や注目を引くために使用されます。
このフレーズはあくまで軽い冗談や親しみを込めたもので、ユーザーに対して友好的な印象を与えることが意図されていると考えられます。
320:デフォルトの名無しさん
24/01/19 17:01:36.09 /agcSumM.net
ちなみに1万円札もでてきたけど、肝心の探しものは見つからなかった
321:デフォルトの名無しさん
24/01/19 21:41:13.26 CZFLW0PQ.net
技術的な難易度の低い課題にpythonで取り組むと手が止まらないな
ググりながら、リファクタリングしながら、一日で追加のコードを300行も書いたら手首がちょっと痛くなった
プログラマーは手首をヤると一発で引退だから怖い
322:デフォルトの名無しさん
24/01/21 00:26:47.65 jaz1unMy.net
pyinstallerでスタンドアローンで動くはずの電卓アプリのEXEを作ったら、勝手にインターネット通信しているのか知らないが、
DefenderでTrojan:Win32/Wacatac.B!mlにされた。
これってpyinstallerでEXEを作ると常に出るの?
323:デフォルトの名無しさん
24/01/21 01:01:49.79 po0/ndNG.net
URLリンク(stackoverflow.com)
324:デフォルトの名無しさん
24/01/21 10:26:29.85 IvCL+sTy.net
1 センチメートルは 10 ミリメートルに変換されます。
変換する長さ n センチメートルが与えられるので何ミリメートルかを出力して下さい。
宿題がわからへん。
325:デフォルトの名無しさん
24/01/21 10:41:39.44 CZIH4U50.net
プログラムとして書けないのかプログラムじゃなくても答えられないのか
プログラムとして書けないだけならデータ入力がどのようにされるかがわからないのか計算式の書き方がわからないのか表示の仕方がわからないのか
それぞれ問題を切り分けて把握したら先生にその内容を聞けばいい
326:デフォルトの名無しさん
24/01/21 16:13:36.22 PdyqbFJh.net
>>321
何がわからないのかわからん
ちゃんと推敲してくれ
327:デフォルトの名無しさん
24/01/21 16:29:55.78 JCqDmCwj.net
>>321
たとえば5センチメートルが何ミリメートルかはわかりますか
328:デフォルトの名無しさん
24/01/27 11:52:44.87 0NhbJ8Wy.net
モザイクを検出して、透過に塗りつぶして、別の画像に貼り付けるプログラムを
作ったので良かったら遊びにきて下さい
wikiwiki
同人誌同人ゲーム無修正化差し替え備忘録まとめ Wiki*
URLリンク(wikiwiki.jp)
左のメニューのところにプログラムを貼り付けてあります
329:デフォルトの名無しさん
24/01/27 12:12:30.45 R9CYWTqC.net
システムのPythonが3.0版だとして、最新3.11版を使うにはどんな方法が?
・システムPythonは更改しない前提
・Dockerコンテナは使いにくいのでその他手段を
330:デフォルトの名無しさん
24/01/27 12:27:20.61 7oImGRPe.net
>>326
pyenv
331:デフォルトの名無しさん
24/01/27 13:06:20.63 idsDIbYE.net
>>326
自分でビルド
332:デフォルトの名無しさん
24/01/27 14:03:55.97 UmjQ6ogE.net
改変したいなら自前ビルドもわかるが
そうじゃないなら切り替えも楽なpyenvでいい
333:デフォルトの名無しさん
24/01/27 16:46:55.78 6KdYFEam.net
>>328
自前でビルドするかどうかは全く関係ないやろ
334:デフォルトの名無しさん
24/01/27 17:12:17.55 OFvOzhfh.net
embeddable pythonという方法もある
335:デフォルトの名無しさん
24/01/27 18:00:42.31 XRhGTNLI.net
>>330
自分でシステムのPythonとは別に好きな場所、好きなバージョンのPython入れるのに自分でビルドするのも方法の一つでしょ
Windowsみたいにインストールパッケージ用意されたないならだけど
>>326はそういう質問じゃないんか?
336:デフォルトの名無しさん
24/01/27 18:15:20.55 XRhGTNLI.net
pyenvもたしかソースからビルドしてなかったっけ
337:326
24/01/27 18:29:33.08 o5v2l6LT.net
>>332
自分でビルドしたPython がシステムPythonのライブラリを参照して不具合が起きると困る。自分でビルドするにしろ、出来合いの物を使うにしろ、そうならない方法を訊いた。
338:デフォルトの名無しさん
24/01/27 18:49:08.88 NKobULuJ.net
は?
339:デフォルトの名無しさん
24/01/27 19:05:28.29 bXNtt3x6.net
>>332
CPythonを自前でビルドするかそれともビルド済みバイナリを持ってくるかという話と
システムデフォルトのPythonをキープしたままそれとは異なるバージョンのPythonも同時に使えるようにするという話は直交した話やで
そんでもって質問は後者についてやろ
340:デフォルトの名無しさん
24/01/27 20:45:05.22 o5v2l6LT.net
>>336
うーん、よく分からないが、
システムPythonを必要とするシステムコマンドを叩くと、何らかの方法で導入したPython 3.11 を起動するようだと困る。
そうならないよう Python 3.11 を使える、そんな方法を訊いた。
自分でビルドして、上記を満たせるなら、自分でビルドする事で構わない。
341:デフォルトの名無しさん
24/01/27 22:44:25.65 brX24hU9.net
ビルドしてもしなくてもシステムPythonとは別の場所にバイナリを配置してそこへのpathを指定して使うことになる
pyenvじゃなくても公式からダウンロードしてもいいしanacondaを使ってもいいしhomebrewやaptを使ってもいい
macosやlinux系だとシステムPythonに依存する場合は基本的に/usr/bin/pythonを指定してるのでこれが指すバージョンを変えずに自分の使いたいバージョンへのpathを通すことになる
342:デフォルトの名無しさん
24/01/27 22:47:32.91 t7pPpNfJ.net
どれを使うかという指定もなければ、パスという概念もないんだろうな。
343:デフォルトの名無しさん
24/01/27 22:58:51.17 NKobULuJ.net
>>334
>自分でビルドしたPython がシステムPythonのライブラリを参照して
これがわからん
仮に自分でビルドして/opt/python3に入れたPythonがあるとして、それがシステムのPythonにライブラリに依存するっていうこと?
どういう環境?
344:デフォルトの名無しさん
24/01/27 23:05:09.68 t7pPpNfJ.net
ただの初心者なんだろうな
345:デフォルトの名無しさん
24/01/27 23:58:06.71 X0LvN4tY.net
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
346:デフォルトの名無しさん
24/01/28 01:49:25.71 P/o+j6FX.net
Dockerなどをいきなり勧めてくるやつは前提がおかしい
347:デフォルトの名無しさん
24/01/28 01:53:38.75 VCSACfjI.net
いやいや、Dockerの前にもっとおかしいのがあるでしょ
この人マジで頭おかしいけどいつまでこの芸風続けるんだろ
348:デフォルトの名無しさん
24/01/28 05:41:05.55 P/o+j6FX.net
Rubyでしょ?
こいつはキチガイだけど、それ以外におかしいことを書くから、それも指摘しないと真面目に読むやつがあらわれる。
349:デフォルトの名無しさん
24/01/28 06:42:16.36 PWkEGs2d.net
英会話教室に通って「フランス語では云々」と講釈たれる奴みたい�
350:セよなw
351:326
24/01/28 07:28:43.27 JZ5LlHQA.net
>>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 というのは、何かしらそれに類した不具合を解消するのだろうと想像している。
352:342
24/01/28 09:12:54.94 4GEBUrLg.net
>>342
に、もちろん、pyenv も入っている
多言語バージョンマネージャー、anyenv・asdf には、
rbenv, nodenv, goenv など、たいがいの言語は入っている
ただ最近は、Docker も多い
353:デフォルトの名無しさん
24/01/28 11:10:02.02 DsZuLMRu.net
>>347
固有のパスに導入した一般的なプログラムならそうはならん
lddしたらわかるけどフルパス指定になってる
pyenvは全自動でビルドするツールなんだけど導入先はホーム以下で同様
独自のシェル拡張使わないなら副作用ないし影響範囲もシェルの中だけ
354:デフォルトの名無しさん
24/01/28 20:13:41.36 zZgVSQ5K.net
Python Arcadeが流行らないのって
名前が悪いからですよね?
Pycadeとかに変えてほしい
355:342
24/01/28 21:35:30.33 rJLsGKs7.net
PyDeca だと流行りそう。
>>349
> フルパス
のくだりがよく解らないが、取り敢えずpyenv を検討してみる。どうもありがとう。
356:デフォルトの名無しさん
24/01/28 21:56:26.44 vItLFMA9.net
お勉強スレにもポストしちゃったんですが
バージョンよって剰余演算子の挙動が違う?
-1%3とか
357:デフォルトの名無しさん
24/01/29 00:08:46.88 G6ToERat.net
くたばれPython
に見えた
358:342
24/01/29 00:10:12.64 eueHhgdA.net
>>342
のanyenv root/rbenv root/nodenv root を見れば明らか
/home/ユーザー名/.anyenv 以下しか使わない。
個人の環境しか使わない
だから多言語バージョンマネージャー、anyenv・asdf を使えばよい