暇つぶし2chat TECH
- 暇つぶし2ch262:デフォルトの名無しさん
22/02/13 20:51:30.91 JnTPIF3C.net
>>252
欲しいの座標でなく次元では?

263:デフォルトの名無しさん
22/02/13 20:54:22.96 JnTPIF3C.net
すみません >>257 は読み間違いなので無視してください

264:デフォルトの名無しさん
22/02/13 21:09:57.57 yB05jN77.net
メンバー変数「__name」を持つ「Human」クラスがあったとして、
これを継承した「HyperHuman」クラスは、
継承元の「__name」を参照できないんですか?
クラスの外から参照しないメンバ変数を__付きにしまくったら継承先で参照できなくなってしまった

265:デフォルトの名無しさん
22/02/13 21:18:20.00 MWit14K9.net
>>253
すみません、
うまく行きませんでした

>>255
ありがとうございました、思考によって問題を回避出来ますね。私に欠けていたのは問題に食らいつく精神力でした。

266:デフォルトの名無しさん
22/02/13 21:23:23.11 +cgrIz8j.net
>>254
俺もこれ気持ち悪いわ
誰かスッキリさせてくれんか

267:デフォルトの名無しさん
22/02/13 21:54:36.39 yB05jN77.net
>>254
import xxx only zzz
みたいにしてほしかったよね

268:デフォルトの名無しさん
22/02/13 22:11:57.52 jfCaeP/j.net
>>262
xxx.zzz以外のxxx.*参照できない状態を保持するのめんどそう
import xxx
zzz = xxx.zzz
と書けるしfrom import自体いらんなら分かる

269:デフォルトの名無しさん
22/02/13 22:23:48.09 nVrhNNmO.net
>>259
そのままの名前ではできない
継承先から別の名前で山椒できる
self._Human__name
URLリンク(ideone.com)

270:デフォルトの名無しさん
22/02/13 22:25:44.83 nVrhNNmO.net
s/山椒/参照
参照の育て方調べてたからミスった

271:デフォルトの名無しさん
22/02/13 23:42:00.06 n9deEbJE.net
>>264
できるけど
わざわざ__してるのを呼び出しちゃうのかーいって気はするなw

272:デフォルトの名無しさん
22/02/14 00:04:11.74 BHqD30LB.net
>>264,265
そのタイポの仕方がちょっと笑える
「参照の育て方」はツボったよw

273:デフォルトの名無しさん
22/02/14 01:00:25.73 a1vo03Tu.net
super関数使う方法ってなかったっけ

274:デフォルトの名無しさん
22/02/14 06:51:44.54 E8yArpIy.net
>>264
ありがとうございます
変数名自体が変わってアクセス防いでるのかあ
同じ継承先からは参照したいので、_一個にしておきます

275:デフォルトの名無しさん
22/02/14 07:03:17.01 t59hyUv0.net
if os.path.exists(p):
をpathlibで書き換える場合、
if p != "" and Path(p).exists():
で完全に同じになりますか?
空文字以外に注意しなければいけないものありますか?

276:デフォルトの名無しさん
22/02/14 09:12:46.38 EEHmhlKD.net
空文字判定要る?

277:デフォルトの名無しさん
22/02/14 09:19:17.38 t59hyUv0.net
>>271
空文字判定しないと、空文字のとき Path(p).exists()がTrueになる
空文字はpathlibで "." として扱われるみたい

278:デフォルトの名無しさん
22/02/14 10:03:53.41 SdWG8Yth.net
pが文字列なら同等とあるけど
URLリンク(github.com)
URLリンク(github.com)
テストコードの範囲内で使うのが無難

279:デフォルトの名無しさん
22/02/14 10:43:07.13 TVm+ejPZ.net
富士通「年収3500万円」の衝撃 ソニー、NECも戦々恐々の「グローバル採用競争」
「富士通年収3500万!」日本のIT企業の年収も、高額化してきました
ゼロから起業するよりも事業承継(小さな会社の買収)が圧倒的に有利である3つの理由
「エース人材だって起業OK」、NECは挑戦者が集う場をつくる
NECなど「出向起業」 大企業人材、起業しやすく
IHIが副業解禁、人事制度で他の重工大手を先行する狙い
カルビー/国内社員3900人を対象に副業解禁

280:デフォルトの名無しさん
22/02/14 11:25:14.57 QXoUwWbT.net
>>272
ひでー。そんな地雷関数使いたくないな

281:デフォルトの名無しさん
22/02/14 11:35:18.27 LyAfGJhX.net
どのシステムでも何も渡さなければ現在のディレクトリとして処理するだろ

282:デフォルトの名無しさん
22/02/14 12:03:25.17 QXoUwWbT.net
c#のsystem.io.file.exists()やdirectory.exists()、winapiのfindfirstfile()(ディレクトリの存在確認もできる)
どれも空文字は失敗するよ

283:デフォルトの名無しさん
22/02/14 12:46:17.43 yQZmxBH4.net
スクレイピングする際にlxmlでhtml内に任意のcssセレクタが含まれてればtrue、含まれていないときはfalseを返すことってできますか?

284:デフォルトの名無しさん
22/02/14 12:59:49.50 SdWG8Yth.net
>>277
パスはpathlibへの引数でexists()の引数じゃないんよ

285:デフォルトの名無しさん
22/02/14 13:05:45.54 HOsCpiZ6.net
Ruby では結論としては、空文字列と、. で同じ結果になる
require "pathname"
p path = Pathname.new( "" ) #=> #<Pathname:>
p path.to_path #=> ""
p path_ab = path.join( "a/b" ) #=> #<Pathname:a/b>
p path_ab.to_path #=> "a/b"
# --------
p path_2 = Pathname.new( "." ) #=> #<Pathname:.>
p path_2.to_path #=> "."
p path_2_ab = path_2.join( "a/b" ) #=> #<Pathname:a/b>
p path_2_ab.to_path #=> "a/b"

286:デフォルトの名無しさん
22/02/14 13:25:01.55 T1NsaTsY.net
おう落ち目の言語の話は聞いてねえぞ

287:デフォルトの名無しさん
22/02/14 13:44:26.39 cFSy1VCv.net
>>280
それ同じじゃないぞ

288:デフォルトの名無しさん
22/02/14 14:14:19.21 7Dm4+XiT.net
>>280
1嫁😡

289:デフォルトの名無しさん
22/02/14 15:21:21.44 OJkUcli+.net
>>250
私も初心者なのでアドバイスなどおこがましいのですが...
class作るのが簡単かと...
class a(object):
  value=[[0,1,2,3,4,5],[0,2,4,6,8,10],[0,3,9,12,15]]
  def __init__(self,x,y):
    self.x=x
    self.y=y
  def ans(self,x,y):
    return(a.value[x][y])
  def xy_ans(self):
    return((self.x,self.y))
H=[a[2][3], a[5][7]]
hoge=H[0].xy_ans()

290:デフォルトの名無しさん
22/02/14 15:23:55.60 OJkUcli+.net
まちがいました。
最後から2行目は
H=[a(2,3), a(5,7)]です。(5,7)でエラー出ますけど...

291:デフォルトの名無しさん
22/02/14 17:38:13.29 t59hyUv0.net
>>273
情報ありがとうございます。
テストコード長い・・・
空文字以外は気にしなくていいと思い込むことにしよう

292:デフォルトの名無しさん
22/02/16 07:19:17.06 MKfHEQkf.net
GUI(tkinter)からyt_dlpで動画ダウンロードするものを作っていたのですが
Visual Studio Codeから実行した場合正常に処理できました
直接実行するとエラーになりました(拡張子pyw)
拡張子をpyに変えると直接実行しても正常に処理できました
一般的に拡張子pywで正常に処理できるかを実行せずに判断する方法ありますか?
あるいは、拡張子pywでも正常に処理する方法ありますか?
今回のPGMはsubprocess.runを使わずに
with YoutubeDL(ydl_opts) as ydl:
____result = ydl.extract_info(youtube_url, download=True)
のような形式で呼び出しています

293:デフォルトの名無しさん
22/02/16 08:10:26.60 U1LhfB3E.net
たまに以下のようなミスをしてしまうのですが、これを防ぐor容易に発見する
にはどうしたらいいでしょうか。
foo=default_value
if a_condition:
  boo=new_value # 本当はfooを更新したかったがbooとミスタイプした
# -> あれ、fooの値が変更されてない、みたいな

294:デフォルトの名無しさん
22/02/16 08:14:04.17 jBoRoSxS.net
考えて名前つける

295:デフォルトの名無しさん
22/02/16 08:23:08.93 Hej5n2W4.net
>>288
関数化 or if-else

296:デフォルトの名無しさん
22/02/16 08:45:57.03 dhf8je8S.net
>>288
if a_condition:
  old_foo=foo
  boo=new_value
  if old_foo == foo:
    raise ValueError("error!")

297:デフォルトの名無しさん
22/02/16 09:05:32.17 W7tQrrGw.net
>>288
VS code

298:デフォルトの名無しさん
22/02/16 09:52:08.68 aoiSu09N.net
pylanceさいつよ # type: ignore

299:デフォルトの名無しさん
22/02/16 11:39:04.96 YEGQLb4J.net
pylanceってパイランスって言うんですか? 昔「だっちゅーの」っていう女の子二人組が...
素朴な疑問ですが、補完機能があるようなものを使うとして、上記の場合にbooが
間違いであることはどうやって分かるんでしょうか。もし同じスコープ内にbooという
変数が既にあった場合、booとタイプするのを間違いとは断定できないのでは...
もしbooがなかったら、「プログラムに影響を及ぼさない変数をいじってんじゃねーよ」
というツッコミは可能だと思いますが。

300:デフォルトの名無しさん
22/02/16 11:54:00.21 1mMAv7cD.net
そりゃ重箱の隅を突き始めたらすり抜けるケースなんていくらでもあるよ
もともとコードとして合法なんだもん

301:デフォルトの名無しさん
22/02/16 12:23:29.89 jBoRoSxS.net
>>291 だってold_booとか書いたら一緒だからね
もうコンパイラ言語を使えば

302:デフォルトの名無しさん
22/02/16 12:26:03.04 DXO0iyBK.net
type hints書かないの?(書き捨てのぞく)

303:デフォルトの名無しさん
22/02/16 12:29:48.85 tzGoh0bw.net
エディタが人間のやりたいことを理解できる時代になったら検出できるんじゃない?

304:デフォルトの名無しさん
22/02/16 12:30:41.98 tzGoh0bw.net
怪しい部分にはassert文挟むとか、291みたいにエラー吐かせるのが基本じゃないか

305:デフォルトの名無しさん
22/02/16 13:11:53.73 1hjdKt99.net
根本的に、1文字ミスって別の変数にアクセスできちゃう書き方というか、その命名規則や設計思想は良くないね
動けば何でもいーじゃんとか言って後々にツケが回るやつだ

306:デフォルトの名無しさん
22/02/16 14:37:06.42 m8Y8zgQ2.net
>>287
print()とかのコンソールを前提とした戻りを
拡張子pyのときに限定しないと行き場がなくてエラーが出るんじゃない?

307:デフォルトの名無しさん
22/02/16 14:51:55.36 w27+Spzi.net
エラーメッセージくらい貼ろうぜ

308:デフォルトの名無しさん
22/02/16 14:56:01.74 m8Y8zgQ2.net
no_consoleモードだと、エラーメッセージがそのままでは拾えないような

309:デフォルトの名無しさん
22/02/16 17:10:08.13 MKfHEQkf.net
>>301
別のプログラムで、pywからImageMagickt等10種以上をsubprocess.runで呼び出して、
no_consoleモード実行してるんですがエラーになったことないです。
pythonのprint()もエラーでたことないです。

310:デフォルトの名無しさん
22/02/16 17:11:35.95 MKfHEQkf.net
>>302
エラーがうまく拾えなくて困っています。

311:デフォルトの名無しさん
22/02/16 18:22:07.26 m8Y8zgQ2.net
>>304
内部的にurllibを使ってると、with as 構文ではうまく動かなかったこともあるので、
ydl = YoutubeDL(ydl_opts)
result = ydl.extract_info(youtube_url, download=True)
ydl.close()
あたりではどうかな?

312:デフォルトの名無しさん
22/02/16 18:37:50.26 MKfHEQkf.net
>>306
やってみました
結果は変わらず。
ydl.close()はエラーになったのでコメントアウトしました

313:デフォルトの名無しさん
22/02/16 18:38:50.39 5G/Gik2e.net
>>305
そうなのか
ちゃんと読まずにすまん

314:デフォルトの名無しさん
22/02/16 18:51:18.67 m8Y8zgQ2.net
>>307
try-exceptでエラーをtkinterのメッセージボックスに表示してみたけど、
no_consoleモードの場合だけNoneTypeエラーが出るねぇ

315:デフォルトの名無しさん
22/02/16 18:55:08.31 WMJtWX4E.net
stdoutとstderrをファイル出力にしないといけないんじゃないの

316:デフォルトの名無しさん
22/02/16 19:28:07.20 MKfHEQkf.net
>>310
with (redirect_stdout(open(os.devnull, 'w')), redirect_stderr(open(os.devnull, 'w')), YoutubeDL(ydl_opts) as ydl):
____result = ydl.extract_info(youtube_url, download=True)
でno_consoleモードで正常に処理できました。ありがとうございます。
どなたか、no_consoleモードかどうかの判定の仕方教えてもらえませんか?
拡張子での判定は、Visual Studio Codeから実行した場合に支障がでるので

317:デフォルトの名無しさん
22/02/16 19:43:49.72 y2cKuBOG.net
>>311
URLリンク(docs.python.org)

318:デフォルトの名無しさん
22/02/16 19:44:45.60 y2cKuBOG.net
URLリンク(docs.python.org)
すまん最新版だと日本語訳あった

319:デフォルトの名無しさん
22/02/16 20:30:23.86 v91aidV3.net
インタープリター名で判定
mode = 'no_console' if 'pythonw' in os.path.basename(sys.executable) else 'console'

320:デフォルトの名無しさん
22/02/16 20:54:59.81 MKfHEQkf.net
皆様ご助言ありがとうございました。
no_consoleモードの判定は、sys.__stdout__ にしました。
sys.executableではexe化したときに判定できないことがあるらしい

321:デフォルトの名無しさん
22/02/16 21:25:03.60 MKfHEQkf.net
>>315
訂正
sys.executableではexe化したときに判定できるのか知らない

322:デフォルトの名無しさん
22/02/17 03:14:44.34 1NrfTGml.net
メソッドに渡した文字列をstripしようとしたらnonetype errorが起きた
そこで関数内でその文字列変数をprintしたらちゃんと出力された
何が理由のエラーなのかさっぱり分からん
ただのバグか?

323:デフォルトの名無しさん
22/02/17 08:28:12.79 MYDromrM.net
ただのバグだね

324:デフォルトの名無しさん
22/02/17 09:41:57.71 3vu7PZHI.net
なんでもばぐにすんな、気合いが足りんだけだろ

325:デフォルトの名無しさん
22/02/17 10:01:06.02 X0cMMW0O.net
print(repr(変数))

326:デフォルトの名無しさん
22/02/17 10:23:08.88 Xo3IV4af.net
とりあえずこれでも嫁
URLリンク(mitani.cs.tsukuba.ac.jp)

327:デフォルトの名無しさん
22/02/17 10:29:14.55 SQ5bCrsi.net
stripしたいのにnonetype errorになるのがバグじゃなかったらなんなんだよw
ただのバグだじゃん

328:デフォルトの名無しさん
22/02/17 14:37:46.34 1NrfTGml.net
>>321
ウィルス?

329:デフォルトの名無しさん
22/02/17 14:48:19.01 X0cMMW0O.net
筑波大ドメインやぞw
開けなくてもニュースになったあの教材ってわかる

330:デフォルトの名無しさん
22/02/17 15:16:35.70 dQiouJUG.net
元の値(文字列)をきちんと拾えるようにすればいいだけじゃないのか?

331:デフォルトの名無しさん
22/02/19 09:02:00.81 44TdCCHX.net
画像の境界線をimagechops.difference().getbbox()で検出するとき
境界線付近にjpg圧縮由来のぼんやりノイズがあって、少し大きめのbbox取得しちゃうとき
どうやってノイズ突破するのがよいでしょうか?
画像黒、背景白、ノイズはだいたい10%グレー前後です
目を凝らさないと見えないんだけど、differenceの感度が高すぎて拾っちゃう感じ

332:デフォルトの名無しさん
22/02/19 11:06:37.60 R5yjbcGL.net
>>326
言語などの話題ならわかるけど
個々のアルゴリズムはpython由来のものじゃないからNGだと自分は思う

333:デフォルトの名無しさん
22/02/19 11:2


334:5:23.85 ID:hDmnOZdm.net



335:デフォルトの名無しさん
22/02/19 12:13:56.94 Bncv98Zm.net
モスキートノイズってやつ?
バイラテラルフィルタをopencvで50回くらい連打すればいけそう

336:デフォルトの名無しさん
22/02/21 07:06:50.82 tPTlXWXv.net
python2から3で、/ (割り算)って常に浮動小数点になりました? ね?
4/2=2; 5/2=2 (python2), 4/2=2.0; 5/2=2.5 (python3)
古いスクリプトをメンテしていたら、結果がおかしかったので... これはどうしたら。
// だと整数(部分)になるようですが、ぱっと見変数の中身が整数なのか浮動小数点
なのか明らかでない部分もあり。

337:デフォルトの名無しさん
22/02/21 08:32:24.50 1BCnZvzG.net
常にintでかこめw
a = int(5/2)

338:デフォルトの名無しさん
22/02/21 08:47:28.69 c97x3Gxx.net
> ぱっと見変数の中身が整数なのか浮動小数点
なのか明らかでない部分もあり。
type hint付けたら?

339:デフォルトの名無しさん
22/02/21 19:21:20.87 T/Qg+a/K.net
複数店舗のレシートの画像データから消費税率ごとの金額をpythonで抽出する具体的な方法をどなたかご存じでしたらお教え頂けないでしょうか?
レシートへの記載方法は機械での印字、位置や内税、外税、合計金額などのフォーマットは不定となります
よろしくお願いします

340:デフォルトの名無しさん
22/02/21 19:22:42.41 rSxedOK0.net
int(a/b)とa//bは挙動が違うから注意がいるよね
とはいっても挙動変わる桁までそんな使わないけど

341:デフォルトの名無しさん
22/02/21 19:30:48.33 9+weaIl8.net
>>333
適当な業者に見積もりだしたらわかるけど難易度高いよ
そのために有料のプログラム部品やクラウドサービスが各社からでてる
日々更新せんとあかんし↑を提供する側じゃないかぎり割りに合わない

342:デフォルトの名無しさん
22/02/21 19:48:55.17 i5JttRhR.net
>>333
AIでエリア認識(yoloなど)と数字読み取り(どんなでも)でやればいい
画像=フラッドスキャナ読み取りで歪み傾き限定的だったらAI使わなくてもピクセル読んでく力業でなんとかなる
ただフォーマットが本当に不定(どんな店のかわからない)だったら力業じゃむり
自分で作るなら手動入力前提で入力支援機能に徹する方が現実的だよ

343:デフォルトの名無しさん
22/02/21 21:12:01.60 ytqVjd2E.net
揺れるならAI使うしかなかんべ
まず1000枚くらいを人力でデータ化し
静止画とあわせて学習させる
あとはカメラ転送python受け、内部計算pandasかdbに登録ね

344:デフォルトの名無しさん
22/02/21 21:46:18.49 tPTlXWXv.net
>>331
むしろ浮動小数点の答えを期待してるっぽいところもあるので単純ではなかったり
>>332
やるにしても既存のコードが結構ありまして
>>334
とりあえず前者は常に整数ですが後者は中身によりますよね。
数値表示が2から2.0になったりしても、問題ですね。
結論: めんどくさい... って感じですかね

345:デフォルトの名無しさん
22/02/21 21:54:14.38 n//MgrTx.net
>>338
違うよ、前者も後者も常に整数だけど前者は整数になる前にfloatを挟むので桁数が大きいと計算精度が保証されなくなる
a = 123456789012345678
b = 10
print(int(a/b))
print(a//b)
これ試してみるといいよ

346:デフォルトの名無しさん
22/02/21 22:29:55.05 ytqVjd2E.net
//が場合によるってどこで聞いたんだよ…
そんな知識の精度でintとかfloatとか気にしてる場合じゃないぞ

347:デフォルトの名無しさん
22/02/22 06:29:15.92 i2wW6eRB.net
>>335,336,337
やはりaiが必要など難易度高そうですね
ありがとうございました

348:デフォルトの名無しさん
22/02/22 07:30:32.17 Y8t1jQH1.net
回転しない前提なら投影で位置を推測するんですけどね

349:デフォルトの名無しさん
22/02/23 09:47:30.08 ecVw6j+6.net
enumerateで取得した番号がずっと1だ
なにがどうなってる

350:デフォルトの名無しさん
22/02/23 10:28:20.65 ecVw6j+6.net
forの中にforがあって両方iだった

351:デフォルトの名無しさん
22/02/23 19:24:47.19 RI+NKERl.net
iniファイルを読み込むときに、
[GENERAL]
ABZ=tanaka
ABG=satou
AUQ=hououin
~~~~
みたいな羅列の長い内容を読み込むときに、ABZとかAUQとかコード内で指定せずに勝手に読み込んでその名前で変数化することは可能ですか?
読み込むだけで大変な長いコードになってしまった

352:デフォルトの名無しさん
22/02/23 19:50:37.90 A+TpIAUX.net
辞書使う方が良い

353:デフォルトの名無しさん
22/02/23 19:55:47.48 RI+NKERl.net
>>345
cfg = configprrser.Configperser()
cfg.read(path)
return dict(cfg.items("GENERAL"))
って辞書にする書き方ができました

354:デフォルトの名無しさん
22/02/25 20:56:48.33 GIHvsxbC.net
K=9
T=0
import numpy as np
a[T]=np.zeros((K,K))

print(a[T])
aが定義されてませんと言われましたがどうやって回避すれば良いでしょうか?

355:デフォルトの名無しさん
22/02/25 20:57:59.34 xQz6a/12.net
なかなか不思議なことやってんな

356:348
22/02/25 21:18:24.60 dMzxkvQR.net
どうしたら良いでしょうか

aを定義しろと言われてもaはゼロ行列だと思うのですが

357:デフォルトの名無しさん
22/02/25 21:24:04.00 21E+Zf1q.net
>>348
aを定義すれば回避できるよ

358:デフォルトの名無しさん
22/02/25 21:34:05.55 uvlAEAIe.net
a[T]=np.zeros((K,K))
てことは
a[T]
np.zeros((K,K))
とりあえず両方評価できないと始まらないので個別に評価してみる。(Kは明白なので省略)
>>> a[T]

NameError: name 'a' is not defined

359:デフォルトの名無しさん
22/02/25 21:51:43.98 jsx2tRyk.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
クソチョンはウンコを食べる糞食人種w
クソチョンはゲリ便をじゅるじゅると
うまそうに食うw

360:デフォルトの名無しさん
22/02/25 22:03:11.98 Dt5oOUOb.net
>>350
なぜaを定義してないのにゼロ行列だと思ったん?
a=[]
a[T]=•••
ならいけるやろ

361:デフォルトの名無しさん
22/02/25 22:18:07.65 uvlAEAIe.net
>>> a=[]
>>> a[T]
IndexError: list index out of range
初心者スレたのしいね

362:デフォルトの名無しさん
22/02/26 00:37:43.56 BMq+AkmN.net
このレベルでnumpyとか手を出さなくていい

363:デフォルトの名無しさん
22/02/26 17:10:40.38 0W3q9eVZ.net
プログラム的な事マジでド初心者の俺に教えてくれ
AとBのボタンを作って押下した時の挙動を書く時とかのこのボタン?フォーム?の事ってなんて言うの


364:? VBAならUserFormとかで適当に作ったりしてたから似たような感じで簡単なソフト作れるんじゃないかと思ったが、調べても良く分からなんだ



365:デフォルトの名無しさん
22/02/26 17:23:42.20 bVNtHGMl.net
「python gui 方法」みたいにぐぐれば色々ヒットするよ
pythonにこだわりないならc#とかほかの言語の方がウインドウ作ってとかはやりやすいと思う

366:デフォルトの名無しさん
22/02/26 17:59:06.52 wx7c3FZV.net
>>357
俺も初心者だけどイベントハンドラーとか?

367:デフォルトの名無しさん
22/02/26 17:59:13.72 wx7c3FZV.net
違うかw

368:デフォルトの名無しさん
22/02/26 18:14:31.40 69L5Q9UW.net
guiって言うのか
やれそうな気してきた、ありがとう
そんなに難しい事をするつもりはない(出来る気もしない)から言語に拘りはないけど、どうせ触るなら時代に乗ってそう?で分かりやすそうなのが良いかなぁと

369:デフォルトの名無しさん
22/02/26 18:36:02.89 xS/SyeLk.net
pythonをざっとやってdjangoかなあ

370:デフォルトの名無しさん
22/02/26 21:08:07.66 pRyvkJpa.net
GUIって意外と難しいぞ
非同期処理なんとなくわかる程度まで行かないと厳しい
ボタン置くだけならJavascriptが一番楽
ブラウザとテキストエディタがあればいい。

371:デフォルトの名無しさん
22/02/26 21:50:25.88 bHtz5ue8.net
GUIだけならdelphiとかどうだ?

372:デフォルトの名無しさん
22/02/26 22:04:11.64 wj1ibNBr.net
20年前ならまだしも今delphiは・・・

373:デフォルトの名無しさん
22/02/27 10:34:45.08 nn6oofM8.net
>>357
わしも初心者ですが...
ボタンとかプルダウンメニューとかマウスを使う前提の環境 = gui
ボタンとかの部品 = ウィジェット
それらを使うためのサブルーチン群 = guiツールキット
ボタンが押されたとかの出来事 = イベント
ボタンとか配置するソフト = guiデザイナ
pytyonはguiツールキットが多すぎるぐらい恵まれてます。
わしはpyqt5使っております。ほかはtkinter、WxPython、pygtk、Kivy が有名。
でも意外と楽ちんなデザイナが少ない気がします。
pyqtのqtデザイナ、tkinterのPAGEが使いやすいかと思います。

374:デフォルトの名無しさん
22/02/27 19:13:19.38 EPp3U+v4.net
guiキット恵まれてんのにexe配布が絶望的…
頼むからpyinstallerちゃんダイエットしてくれや

375:デフォルトの名無しさん
22/02/27 19:29:40.89 6fl1teDT.net
最初からexe配布が視野に入ってるなら
処理的にどうしてもpython必須ってんじゃない限り
別の言語使った方がいい

376:デフォルトの名無しさん
22/02/27 21:23:29.75 w26qCfYC.net
>>368
ホントそれ

377:デフォルトの名無しさん
22/02/28 09:01:21.60 10TVIxo2.net
>>368
今のところそんな予定は全くないんだけど、
例えば何の言語だと便利なのがあるの?

378:348
22/02/28 12:02:04.82 nBtp+f0s.net
皆さまありがとうございます、皆様のおかげで問題は解決しました

379:デフォルトの名無しさん
22/02/28 15:17:54.00 nBtp+f0s.net
URLリンク(atcoder.jp)
この問題で、

i=0
A=[]
B=[]
for i in range(10):
#### list assignment out of range が次の行で出る
B[i]=input('A[i]を代入してください')
A[i].append(int(B[i]))
if A[i]<= 9:
i +=1
else :
B[i]=input('もう一度A[i]を代入してください')
print(A[A[A[0]]])

何がout of range なのでしょうか?

380:デフォルトの名無しさん
22/02/28 15:32:20.23 UX0HcLa3.net
B=[] ←要素数ゼロで初期化
B[i]= ←i番目の要素に代入。だから要素数の範囲(レンジ)からアウトしてる

381:デフォルトの名無しさん
22/02/28 16:29:27.67 nBtp+f0s.net
>>373
ありがとうございます、
つまり最初に有限この要素のリスト
B=[0,0,0,0,0,0,0,0,0,0]を作っておいて後からそれらの値に代入すれば問題は解決されるのでしょうか?それが一番いいやり方でしょうか?

382:デフォルトの名無しさん
22/02/28 17:08:39.69 BVEEYcFL.net
>>374
コードがおかしい上に、C++って書いてあるけど。
URLリンク(atcoder.jp)

383:デフォルトの名無しさん
22/02/28 17:23:45.04 BjQFST3O.net
>>374
数字が1個ずつ渡されると勘違いしてる前提だとしても
Bをリストする意味ないしi = 0 や i += 1するのも意味がないよ
入力は1行で10個の数字が渡されるから
直接splitして各要素を数値にしてlistとして変数に代入すればいい

384:デフォルトの名無しさん
22/02/28 18:22:56.81 uUgrFe+p.net
自己解決しました
ありがとうございます

385:デフォルトの名無しさん
22/02/28 18:24:43.32 7jUXLESA.net
>>376
ありがとうございます

386:デフォルトの名無しさん
22/02/28 19:33:18.82 QtV0mrZw.net
このタイプの入力はいつも内包表記でやってるな
a = [int(i) for i in input().split()]

387:デフォルトの名無しさん
22/03/01 07:16:31.85 8HE09WEK.net
パイソン学べばアプリ作れると思ってはじめてみたけど
パイソンは言語のひとつであってそれだけではアプリを作れないんだね

388:デフォルトの名無しさん
22/03/01 07:48:40.95 OUtPpYxS.net
すまんが日本語で話してくれんか

389:デフォルトの名無しさん
22/03/01 08:15:47.03 rKWo9dcG.net
Pythonのライブラリも学べば、限界はあるが色んなアプリが作れるど

390:デフォルトの名無しさん
22/03/01 08:33:59.79 aeRvHbuv.net
デスクトップアプリはあまり作り易くないな
tkinter使えばいいけど

391:デフォルトの名無しさん
22/03/01 09:47:11.96 nY7C5f4n.net
>>380
そうだよ
Pythonに限らず言語学んだだけではアプリは作れないよ

392:デフォルトの名無しさん
22/03/01 10:14:51.79 aeRvHbuv.net
むしろサーバー設置してそこでブラウザ経由で動くアプリ作るのが一番いい

393:デフォルトの名無しさん
22/03/01 10:16:01.62 FpudFrD4.net
>>384
> Pythonに限らず言語学んだだけではアプリは作れないよ
これは正しいけど
> パイソンは言語のひとつであってそれだけではアプリを作れないんだね
とは違う話だろ

394:デフォルトの名無しさん
22/03/01 10:36:06.98 FuAp7249.net
奥が深い話だな
というか考えるレベルによって変わる
バカなこと言えば、phthonマスターしてても端末やOS電源なんかが必要だから、pythonだけじゃアプリを作れない
多少まともなこと言えば、C++マスターしててもWin32APIなど知らないとWindowsGUIアプリ作れないみたいに、アプリ作るには言語以外の知識も必要になる

395:デフォルトの名無しさん
22/03/01 10:47:23.71 xsw3hO9n.net
めちゃくちゃ浅い話やないかーい!

396:デフォルトの名無しさん
22/03/01 11:11:01.13 cMGuQY9h.net
アプリっていうのはGUIアプリのことかな?
CUIだって立派なアプリよ

397:デフォルトの名無しさん
22/03/01 12:19:45.24 ZphrWLt8.net
アプリってのはアプリケーションソフトのことやで
日本語に訳すとは自分で調べてみてね

398:デフォルトの名無しさん
22/03/01 12:44:44.67 FuAp7249.net
今の時代はアプリはスマホアプリのことを指して、PCアプリをアプリと呼ばない人もいるからな
pythonでスマホアプリを作るのに言語だけじゃというのかもしれない

399:デフォルトの名無しさん
22/03/01 13:00:42.80 tGBWMiyL.net
必死すぎww

400:デフォルトの名無しさん
22/03/01 15:34:17.13 d7YWy2NT.net
アプリってのは俺たちの言うところのプログラムってやつだな

401:デフォルトの名無しさん
22/03/01 15:57:55.97 mo+aGJJz.net
俺たち??
一緒にしないでくれるかな

402:デフォルトの名無しさん
22/03/01 18:08:42.06 bPAr9M5f.net
Python + kivy でアプリ作ったが、
BuildozerでうまくAPKが作れません。
Ubuntuで作成していますが、解説サイトが少なすぎて、
どのように直せばいいのか分かりません。
アプリからCSVファイルを読み込むのに、Windowsなら csv.readerでできますが、
Android上では、上手くできない。
こういう違いを解説しているサイトありませんか??

403:デフォルトの名無しさん
22/03/01 18:50:50.61 Mp5ZQhC2.net
100%勘でいうけどcsvの読み取り処理じゃなくて権限の問題じゃない?

404:デフォルトの名無しさん
22/03/01 19:57:52.20 bPAr9M5f.net
>>396
あ…、なるほど。それも確かにありますね…。
権限付与とか、Ubuntuでは関係ないので、
apk作成してから実際に確かめるしかないんですかね…。

405:デフォルトの名無しさん
22/03/01 20:37:15.87 rZFH8Ry6.net
そんな漠然とした質問されましても・・・。

406:デフォルトの名無しさん
22/03/01 21:57:53.58 Uxf89f5s.net
やってみるしかないじゃなくて普通にAndroidの権限付与調べればいいじゃん

407:デフォルトの名無しさん
22/03/02 19:05:15.86 JpI2oqvB.net
numpyみたいに左辺値にも数値を取れるようなスカラー倍の実装ってどうやればいいんでしょうか?
↓みたいなものを実現したいです
vec = Vec3d(1, 2, 3)
vec = 3 * vec
vec * 3は普通にVec3d.__mul__()を書けばいとわかりますが…

408:デフォルトの名無しさん
22/03/02 19:13:16.50 GIXfNvH2.net
__rmul__
URLリンク(docs.python.org)

409:デフォルトの名無しさん
22/03/02 19:31:01.69 JpI2oqvB.net
ありがとうございます助かりました

410:デフォルトの名無しさん
22/03/02 23:37:34.10 JgRDiBWO.net
>>401
後学のために知っておきたいんだが、rmulが素直な性質を持っていない場合(たとえば、s * vecでsが3の倍数のときだけベクトルの要素にすべてsinが適用される)、
3 * 4 * vecの評価順ってどうなるの?
12 * vecになるか、3 *(4 * vec)になるかで結果が変わってくるよね?

411:デフォルトの名無しさん
22/03/02 23:51:59.12 JCVrS93n.net
優先順位が同じだから左から処理されて12*vecになる。

412:デフォルトの名無しさん
22/03/03 00:14:52.94 opDE9Pw0.net
>>404
サンキュー!
八元数なんかだと結合法則成り立たないから実装には要注意だね
んなもん使わないけどw

413:デフォルトの名無しさん
22/03/03 11:37:39.24 MIHsZ6Ov.net
'2022-03-01'という文字列と今日の日付を比較したいのですが、うまくいきません。
文字列は datetime.datetaime.strptime(ooo,'%Y%m%d') で変換できました。
比較対象は、 datetime.date.today() かdatetime.datetime.now()
にしてもだめでした。
よろしくおねがいします。

414:デフォルトの名無しさん
22/03/03 12:32:25.24 iy0ngH3c.net
>>406
from datetime import date
date.fromisoformat("2022-03-03") == date.today()

415:デフォルトの名無しさん
22/03/03 12:56:08.30 uKQKiz/u.net
datetimeだかdateだか、ちょっとした書きミスがバグにつながるから
こういうのはyear、month、dayを抜き出して、3回比較するのが確実

416:デフォルトの名無しさん
22/03/03 13:02:19.17 B47DPcJE.net
そこはテストコード書こうよ

417:デフォルトの名無しさん
22/03/03 14:29:17.12 uKQKiz/u.net
テストコードも同じ過ち起こして、テスト通るのにバグるってなるんだよ・・・

418:デフォルトの名無しさん
22/03/03 17:06:11.44 QPV1pV4A.net
>>407
>>408
ありがとうございました。無事に解決しました。

419:デフォルトの名無しさん
22/03/03 17:20:07.18 KpuntXeF.net
>>410
それはテストの書き方が悪いよ

420:デフォルトの名無しさん
22/03/03 19:15:45.74 bgg8zGG6.net
>>410
お前テストコード書いたことないだろw

421:デフォルトの名無しさん
22/03/03 19:26:32.29 uKQKiz/u.net
テストを神聖視しすぎ。本体とテストの実装者が同じだったら同じ過ちを犯すものだよ
最近見かけた日付関連だとファイル内の文字列"yyyy/mm/dd"と現在日を文字列比較してて
しかも現在日から文字列作るのをロケール任せにしてたから、海外だと"mm/dd/yyyy"になってバグるというのがあった
こんなのロケール知らずに普通にテスト組んでたら検出されない

422:デフォルトの名無しさん
22/03/03 19:45:04.76 o+Rr4hsu.net
恥の上塗り

423:デフォルトの名無しさん
22/03/03 19:53:53.66 09CehFjH.net
tryすれば済む話のような

424:デフォルトの名無しさん
22/03/03 21:10:29.99 bgg8zGG6.net
>>414
> テストの実装者
まじでテストコード知らんのやな
ロジック書いてそうw

425:デフォルトの名無しさん
22/03/03 22:14:30.67 drOOnciu.net
>>414
違うロケールでテスト流せばすぐ検出されるよね?
そのケースは個別のテストケース内で確認すべき項目というより別ロケールでのテストを計画しなかった人やチームに落ち度がある
日時を扱う場合にロケールやタイムゾーンは要求仕様の一部だから事前にテスト計画に入れるのが普通

426:デフォルトの名無しさん
22/03/03 22:31:16.34 GbOH5gri.net
>>414
テストの考え方間違ってるだろ
「テストしたから不具合はない」ではなく
「少なくともテストした項目については、挙動の確認/担保が出来ている」だぞ
(ユニットテストはバグを検知するのでなく、動作担保のために作る)
その例で言えば明らかにテストケース漏れだし
むしろそういう懸念があるならレビューの時に真っ先にチェックするだろ
テストコードを整備せずに、実装側を無意味に歪める方がおかしいだろ

427:デフォルトの名無しさん
22/03/04 08:01:41.44 BHHJY9k/.net
テストしたからバグは少なくなってるはず
程度だろ

428:デフォルトの名無しさん
22/03/04 09:16:31.36 Gnf2P8af.net
def test()
 print(1234)
#=enddef test
こんなエンドコメント入れてるんだが、ないかな?
長くなるとわかりにくいんだもん

429:デフォルトの名無しさん
22/03/04 10:06:50.30 8OZVHpIn.net
ありだよ

430:デフォルトの名無しさん
22/03/04 10:19:45.82 7BMKLnGc.net
そんなの見たら無言で削除するぞ

431:デフォルトの名無しさん
22/03/04 10:22:54.28 tJDnSpmC.net
>>421
ちゃんとしたエディタなりIDEなり使ってたら
関数単位で折りたためる機能あるから
わざわた付けなくても……

432:デフォルトの名無しさん
22/03/04 10:56:36.50 8OZVHpIn.net
そりゃIDEで折りたためたり、コンボボックスにその関数名出てたりするけど
そういう機能があるのと見やすさはまた違うからな
言語は違うけど、windowsのソースコードでもその手の終了示すためのコメントは使われてる

433:デフォルトの名無しさん
22/03/04 11:30:20.88 2+JR4Ldk.net
長くしなければいいじゃわん

434:デフォルトの名無しさん
22/03/04 11:49:48.53 dxtR1KDL.net
>>421
ねーわ、と思ったが
2000行程度のファイルで試してみたら確かに視認性が上がった
カラーリング次第なところはあるがテストコードに限らず有りだわ

435:デフォルトの名無しさん
22/03/04 13:29:46.03 61BdsMwc.net
俺もあったら削除するぞ派かな。
折り畳みの邪魔にしかならんし。

436:デフォルトの名無しさん
22/03/04 14:14:06.89 MfsJLXwz.net
endがあるRubyでも似たようなコメント書いてたな
このendはifだっけ?whileだっけ?で見に行くのが面倒になって付け始め
条件なんだっけ?で条件もendコメントに書き始めたら
見栄えが汚くなったなww

437:デフォルトの名無しさん
22/03/04 19:29:27.15 k14r3fvN.net
while True:
try:
kakaku = btc_ask
time.sleep(30)
すんません教えて下さい、
30秒おきにループして、
BTCの価格を取得するプログラムなのですが、
この取得した価格を、
30秒前の前回取得した価格と比べるには、
どうしたらいいでしょうか。
30秒前のkakaku < 現在のkakaku
このようなことがしたいです、
ループの中でkakakuを保持して、
次回のループの時の価格と比べたりできますか?

438:デフォルトの名無しさん
22/03/04 19:55:32.25 7RF2xiEj.net
5x7(横x縦)の2次元リストのなかにデータが格納されています。
①その中に重複しているデータは何個あるか
②その重複しているデータを抽出する
が、したいです。
誰かお分かりになる方、教えて下さい。

439:デフォルトの名無しさん
22/03/04 21:58:38.89 Vr/hXoC/.net
重複しているデータが1種のみ3箇所にあったときの回答がしりたい

440:デフォルトの名無しさん
22/03/04 22:21:09.17 nnG5KH7G.net
>>430
ループの外にprev_kakakuとcurrent_kakakuを用意しておいて
ループ内でif kakaku :=

441:デフォルトの名無しさん
22/03/04 22:40:01.34 rKYLL8CC.net
ary = [
[ 1, "a", 2 ],
[ 2, "a", "b", 2, 3 ]
]
この場合、出力はこれで良いの?
"a" => 2
2 => 3
"a"が2個、2が3個

442:デフォルトの名無しさん
22/03/04 23:06:04.21 pOcMuLi2.net
collectionsのcounterで終わりでは?

443:デフォルトの名無しさん
22/03/05 00:22:47.69 74G/Knts.net
>>433
なんとかできました、
ありがとうございます!

444:デフォルトの名無しさん
22/03/05 18:47:19.30 IA7poZPw.net
anacondaとVSCODEで開発しています
昨日あたりから急にconda install したcv2とかpyautoguiとかをimportするとモジュールが見当たらないとエラーがでるように
なってしまいました。
ですけど、conda info -eで見るとちゃんと環境は切り替わっているのですが、
pprint.pprint(sys.path)でimport先を確認するとなぜかcondaのbaseを見ています
import先を切り替えるにはどうすればいいのでしょうか。
なんかUSBHDDを接続してドライブを増やしたときにpython実行した辺りから使えなくなった気がします

445:デフォルトの名無しさん
22/03/05 23:09:14.83 aOITLV1E.net
エラーメッセージで検索すれば?
anaconda の使い方や、import パスの仕組みなどを調べるとか

446:デフォルトの名無しさん
22/03/06 15:40:23.36 5YdwNKnV.net
スクレイピングがCloudflareでブロックされてアクセスできなくなってもうた
Selenium(headlessオフ)でアクセスしてもダメ! でもChromeからのアクセスは大丈夫だから
SeleniumとChromeってやっぱ違うんだね、今のところお手上げ><
フリー版?のcloudscraperでもダメっす、何か対策ありますか?

447:デフォルトの名無しさん
22/03/06 15:52:11.57 GH3f7UsN.net
どのサイトをクロールしようとしてるのか分からないと
徹底的にブラウザの気持ちになってリクエストを再現しろくらいの一般論的なことしか言えんよ

448:デフォルトの名無しさん
22/03/06 19:29:03.82 LhKo5a0F.net
>>421
有りか無しかで言ったら有りだけど、それ、pythonのデザインポリシーを冒涜してるだろ(笑)

449:デフォルトの名無しさん
22/03/06 21:38:43.85 SX3V4D25.net
Selenium を使う場合、手動でブラウザを使うのと、全く同じようにシミュレーションすべき
どこかが異なると、それを判別してブロックされる

450:デフォルトの名無しさん
22/03/06 21:44:19.84 WkkDxprJ.net
そんな複雑なチェックしてることなんてまずないだろ
どうせUAがデフォルトのままとかその手がじゃないか

451:デフォルトの名無しさん
22/03/06 23:17:19.54 TwfM3eez.net
>>443
そいつrubyキチガイやで
触んな

452:デフォルトの名無しさん
22/03/07 07:17:49.90 TZQuxR5Y.net
ルビキチ

453:デフォルトの名無しさん
22/03/08 09:39:26.69 ZX9Pe2Of.net
ルビキチ
rb
mylist=mystr.split(",")
mysize=mylist.size()
mystr=mylist.join(",")
py
mylist=mystr.split(",")
mysize=len(mylist)
mystr=",".join(mylist)

454:デフォルトの名無しさん
22/03/08 10:02:18.65 yCGAKR37.net
おねいちゃのマイリス

455:デフォルトの名無しさん
22/03/08 18:04:03.25 /uluuvq4.net
ある数列の連続性をカウントしてまとめたいのですが
forで回してこうやりました
URLリンク(ideone.com)
↑の例では
#数列データ
df = pd.DataFrame([1,2,1,1,1,2,3,1,2,1,2,3,1,2,1,2,1,2,3,4,5,1,1,2])
#連続性
#[(1,2),(1),(1),(1,2,3),(1,2),(1,2,3),(1,2),(1,2),(1,2,3,4,5),(1),(1,2)]
#つまり
# (1),(1),(1), (1,2),(1,2),(1,2),(1,2),(1,2), (1,2,3),(1,2,3), (1,2,3,4,5)
数列のデータはpandasのデータフレームで受け取るので
どうせならpandasをもっとうまく使えたらなぁと思ったのですが何かいい案はないでしょうか。
やりたいことはカウントというよりも、
今現在の連続記録nに対して、これ以上は連続しにくいぞ、とか、まだまだ連続する、程度を知れたらいいなと思っています
(数列は正の整数で連続し、連続が切れると1から始まります)
上でやったforのやつでも結果の関数を解くだけなので出来なくはないですが
何か野暮ったいかなと思いました

456:デフォルトの名無しさん
22/03/08 18:14:37.92 pY0AUvqt.net
>>448
元のseriesと、shiftメソッド使って一個行方向にずらしたseriesを引き算して、
1なら連続、とかやる方法はあるけど、あんまりエレガントにならないし、
遅いしメモリも食うしいいことなさそうな感じだなあ。

457:デフォルトの名無しさん
22/03/08 18:16:01.08 cb69q7TI.net
元配列[1,2,1,1,1,2,3,1,2,1,2,3,1,2,1,2,1,2,3,4,5,1,1,2])に含まれる1の数、2の数、3の数・・・をカウントするだけでいい
今の値が3だとしたら、次に4が来るか途切れそうかは、カウントした4の数から考えることができる↑だと4は一個だからほぼほぼ途切れるだろうということになる

458:デフォルトの名無しさん
22/03/08 18:56:13.93 /uluuvq4.net
>>449
なるほど
>>450
今の値が1連続目だとすると
常に、1連続以上になる確率が高くなりそうな気がしますが違うでしょうか

459:デフォルトの名無しさん
22/03/08 19:33:19.86 P7fXjWPX.net
URLリンク(ideone.com)
途切れた時点でのi-mが連続回数
何がやりたいのかいまいちわかんないけど

460:デフォルトの名無しさん
22/03/08 21:11:58.59 /uluuvq4.net
>>452
ありがとうございます
この数列は、カウンターが出力される機器のログを記録したようなものです
ボタンを押すごとに1,2,3・・と数字がカウントされますが途中でリセットされます
リセットのタイミングは機器によって異なります
極論、
{ 1:1, 2: 10000, 7: 2 }
のログデータを示した機器は(1,2)が10000回出ているので
もし現在2回連続中なら、次ボタンを押しても1にリセットされる期待大だろうと思います
問題は、1,2,1,1,1,2みたいなseriesのデータでしか受け取れないというところで
どうせなら受け取ったdataframeの操作だけでできないのだろうかとあれこれやってみましたが行き詰まり質問しました
上の極論例で言えば
圧倒的に1,2,1,2,1,2…のパターンが多いと思うので、良い感じにグループ化して
期待が大きい順にソートできないのかな、みたいな
ゴリ押しコードではできそうになりました
ありがとうございました。

461:デフォルトの名無しさん
22/03/08 23:14:01.22 NoeFnt/B.net
1が出てきたところで分割するだけならmore_itertoolsのsplit_beforeが簡単
Counter(len(x) for x in split_before(array, lambda x: x == 1))
ある要素の次に連続した数字が出てくる確率を求めたいなら
yield前に計算が必要なのでsplit_beforeはそのまま使えない
URLリンク(ideone.com)
(Counterの要素数が多くなるようならメモ化とかで最適化)

462:デフォルトの名無しさん
22/03/09 01:42:21.21 5uyncfY/.net
>>454
ありがとうございます
この賭けをするかどうか、がパッと見ですごくわかりやすいですね
>メモ化
やってみたいと思います!
ありがとうございました

463:デフォルトの名無しさん
22/03/09 13:55:40.04 uPg2QLX1.net
画像認識用に Pillow package 追加した後に pyinstaller でexe化したら、吐き出されるファイルのサイズが全て大きくなりました。
--exclude pillow で除外するしかないのでしょうか?
よろしくお願いします

464:デフォルトの名無しさん
22/03/09 17:38:50.03 Ey9V1kD3.net
>>456
pyinataller 肥大 検索

465:デフォルトの名無しさん
22/03/09 23:53:04.35 +dlDtb5P.net
パイエグゼ

466:デフォルトの名無しさん
22/03/10 11:17:29.77 XgQ7nsDt.net
>>457
ありがとうございます。
仮想環境を構築してexe化するのがベターなのでしょうか?
不要なライブラリを一つずつ除外してアーカイブするってのは現実的じゃないですよね? プロの皆さんはどうやってますか?

467:デフォルトの名無しさん
22/03/10 11:37:47.77 XgQ7nsDt.net
>>458
ありがとうございます。
py2exe でしょうか? pyinstaller に比べるとかなり軽量化されますね。onefileになりませんが、解決できそうです。

468:デフォルトの名無しさん
22/03/10 12:19:42.66 F03aXzW3.net
>>459
プロジェクトごとに最小限の環境切って出力までいく
他に手はない
だからガバガバAnacondaとかが嫌われているんだね
組み込みに、必要なライブラリを必要なときに入れていく。最後にpyinstallerを入れてexe
これが最小

469:デフォルトの名無しさん
22/03/10 12:23:23.50 F03aXzW3.net
py2exeやcxFreezeはディスコン

470:デフォルトの名無しさん
22/03/10 12:44:48.00 2dGzdKSz.net
exe化自体がPythonには向かないから肥大化は諦めろとしか
まともな使い方したいならpip対応してインストーラーを配布

471:デフォルトの名無しさん
22/03/10 14:01:53.94 fg/vrfqm.net
まあenv+最小環境でも20MBスタートくらいだしな

472:デフォルトの名無しさん
22/03/10 14:22:13.82 7DfxLAmP.net
なんだそんなもんか
.NET Coreのシングルバイナリ(60MB)に比べたら小さいね

473:デフォルトの名無しさん
22/03/10 14:24:28.69 7DfxLAmP.net
>>463
やるにしても超初心者の手を出すことじゃねえなあ
超初心者ほど必要になってしまうジレンマもあるのかも知れんが

474:デフォルトの名無しさん
22/03/10 16:22:34.24 fg/vrfqm.net
>>465
anaconda+tensorflow+kerasあたりのお手軽AI環境構築で700MBくらいだった気がする

475:デフォルトの名無しさん
22/03/11 09:47:30.49 jL2x9Ttt.net
def select(idx: int, name: str):
ret = None
__if idx: ret.add
__if name: ret.add
return ret
こういう省略可能な引数に対する型ヒントはどう書きます?
select(idx: int|None =None,
みたいにしなきゃダメ?

476:デフォルトの名無しさん
22/03/11 10:22:58.59 mIOifofz.net
URLリンク(docs.python.org)

477:デフォルトの名無しさん
22/03/11 11:13:57.75 Ozj2kjqC.net
>>468
Optional
パイプで区切る書き方は3.10以降しかできない

478:デフォルトの名無しさん
22/03/11 11:47:52.31 jL2x9Ttt.net
すまん、書き方が悪かった
None必須なのかなと思って。引数に何も入れなかったらNoneじゃなくて未定義なのでは?
あとこれが通るのも違和感ある
初期化はお�


479:汲ネので? class Foo(): def __init__(self): __self.var : list[int] = [] # コイツ def insert(self, value: int): __self.var.append(value)



480:デフォルトの名無しさん
22/03/11 12:38:29.51 mIOifofz.net
[]は0個のintからなるListで正当

481:デフォルトの名無しさん
22/03/11 12:59:50.35 jL2x9Ttt.net
>>472
そうなのか…
了解した

482:デフォルトの名無しさん
22/03/13 22:05:27.78 Eg2cTOah.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
クソチョンはウンコを食べる糞食人種w
クソチョンはゲリ便をじゅるじゅると
うまそうに食うw

483:デフォルトの名無しさん
22/03/15 21:22:46.39 uGLxHLAf.net
PysimleGUIで使いたい機能が動かない事があるんですが、
もしかしてJupyterNotebookってPysimleGUIと相性が悪いとかってありますか?

484:デフォルトの名無しさん
22/03/15 21:52:58.31 EzbuthJ5.net
GUIは対話環境で作るものではないかな

485:デフォルトの名無しさん
22/03/15 22:12:49.68 fNg5XgpX.net
「ボタンを作りますか?」
「何個作りますか?」
みたいな?

486:デフォルトの名無しさん
22/03/15 22:19:24.09 onaoSqbL.net
逆にそれはjupyterがすごい
vsc使おう

487:デフォルトの名無しさん
22/03/15 22:43:02.98 IXWkoe6F.net
SmalltalkやZopeみたいな実行環境自体がGUIでIDEってやつかとおもったら
PySimpleGUIはJupyterの外なのか
そこまでうれしくはないな

488:デフォルトの名無しさん
22/03/16 00:21:06.85 oBLq1y/2.net
>>477
具体的には例えばこのページ(URLリンク(knt60345blog.com))にある
「popup_get_file」を使ってファイル読み込みダイアログが簡単に出るみたいに書いてあるんですが
実際にはダイアログボックスが表示こそされるもののそれ以降はエラーだらけだったりって感じです。
>>478
VSCって奴がメジャー?だったりするんですかね
教本に載ってた通りに環境をセットアップした状態だったんですが
やっぱそういう相性とかあるんですね・・・

489:デフォルトの名無しさん
22/03/16 01:22:04.38 PxZpXkqG.net
PySimpleGUI は、ネイティブアプリか?
一方、Ruby on Rails, Electron(Node.js + Chromium), Electron製のVSCode などは、
HTML, CSS, JavaScript を使ったウェブアプリ
Jupyter Notebook もウェブアプリかも?
そもそも、Windows 用のネイティブアプリがまともに動くのか、という疑問がある。
文字コードがUTF-8 じゃないし
C# だけはWindows用言語だけど、それ以外の言語はすべてLinux用だから、
Windows用にコンパイルして、テストしているかどうか疑問

490:デフォルトの名無しさん
22/03/16 16:29:22.67 KaTnXwme.net
手動でモジュールをインストール(コピー)するにはどうしたらいいのでしょう?
環境コピー元でpip install numpyするとlib/site-package/numpyができる
環境コピー先のlib/site-package/の中にそのnumpyフォルダを単純にコピーしてやればいいかと思ったのですが
これだと'No module named numpy'になってしまいます
コピー先でもpip installしてやればいいのですが、nuget ironpythonで作った環境なのでそれができず(方法がわからず)
単純にコピーしてやればいいやというのが発端で起きた疑問です

491:デフォルトの名無しさん
22/03/16 17:17:48.57 TuzuQZwE.net
>>482
ユーザじゃないからわからんけど
ironpython PYTHONPATH
でググってみて

492:デフォルトの名無しさん
22/03/16 17:35:55.37 KaTnXwme.net
searchPaths.Add(@"\Lib\site-packages");
engine.SetSearchPaths(searchPaths);
でパスを追加すると、'Non-ASCII character '\xef' が出て
numpyのpyファイルにエンコード指定を追加すると、今度はunexpected 'from'というようなエラーが出てしまうけれど
エラーが出るということは正常にコピーできてるのかな。とりあえず動かなそうなので諦めます

493:デフォルトの名無しさん
22/03/17 11:48:34.57 BdzeKlQx.net
Windows+Python3.5です、少し古いかもしれないですがご勘弁下さい
インストールしてすぐです
requestsを使いたくて適当な記事からいくつかサンプルコードを打ち込んだのですが、ImportError: No module named requestsというエラーを吐かれて
まずコマンドプロンプトでpip install requestsを実行すべきなのがわかりました
しかしpip install requestsで新しく生成されたディレクトリは~\Lib\site-packages\requestsで
pip install requests実行前に、Python自体をインストールした状態ではLib\site-packages\pip\_vendor\にもrequestsディレクトリがあり
しかしこの\_vendor\requestsフォルダはコマンドプロンプトでもPythonの対話モードでも認識されておらず、存在していないような扱いでした
このLib\site-packages\pip\_vendor\内のrequestsが、どのような経路で利用されるものなのか教えていただけないでしょうか?
あまり余分にファイルを増やしたくないので、_vendor\requestsの方を利用できる手段があるならばそうしたいのです

494:デフォルトの名無しさん
22/03/17 17:42:15.85 o4f7Z1L+.net
>>485
ちなみに、サポート期限切れのバージョンを使わなきゃいけない理由はなに?

495:デフォルトの名無しさん
22/03/17 17:46:15.17 o4f7Z1L+.net
>>485
"Requests officially supports Python 2.7 & 3.6+."
URLリンク(pypi.org)
Requestsでも3.6以上じゃないとサポートしていない

496:デフォルトの名無しさん
22/03/17 17:50:03.61 o4f7Z1L+.net
>>485
pip install requestsは何もエラーや警告もでずに正常終了した?
pip install requests実行してから、適当な記事からいくつかサンプルコードを打ち込んだときは、ImportError: No module named requestsはでなかったの?
Windowsのバージョンはなに?

497:デフォルトの名無しさん
22/03/17 19:01:16.89 Jm9Rrpw3.net
pip\_vendor\はあくまでもpip自体が使用するモジュール
他のパッケージでも_venderディレクトリに限らず依存モジュールを持ってる場合もあるが
特定バージョンに依存してたり改変されてる可能性もあるのでもったいないからと言って外部から使おうとしちゃだめよ

498:デフォルトの名無しさん
22/03/18 09:41:06.94 hUwp9ZtX.net
├label 判定処理の開始
│├┬処理1の演算(複数行)
││└演算の結果で「判定処理の終了」に飛ぶ
││
│├┬処理2の演算(複数行)
││└演算の結果で「判定処理の終了」に飛ぶ
││
│└┬処理3の演算(複数行)
│ └演算の結果で「判定処理の終了」に飛ぶ

├label 判定処理の終了
こういうことやりたいんだけど、gotoを使わないでやる方法てある?
gotoは推奨しないていってるよね。
フラグとか使って、前の判定がNGだったかを見る方法しかないのか?
自分が考えたのは1回だけのfor文の中にこの判定処理入れて、途中てbreakでgotoの代わりをしたんだが、

499:デフォルトの名無しさん
22/03/18 10:09:20.13 wuzcJXmn.net
>>490
>自分が考えたのは1回だけのfor文の中にこの判定処理入れて、途中てbreakでgotoの代わりをしたんだが、
単純に処理1の終了時に結果に応じてreturnおけば、それで簡単に抜けられるぞ
ガード節とか早期returnで調べると分かりやすいかも

500:デフォルトの名無しさん
22/03/18 10:59:49.92 hUwp9ZtX.net
>>491
returnて関数以外に使えるの?

501:デフォルトの名無しさん
22/03/18 11:41:42.28 EttWLc7+.net
端折りすぎて何がしたいかわからん
単純に
if func1()
elif func2()
else func3()
の構図じゃねそれ

502:デフォルトの名無しさん
22/03/18 11:54:17.65 S88dx27z.net
1→2→3→終了処理
1→2→終了処理
1→終了処理
この組み合わせになるってことだろ
ifで簡単にやるなら
ret = func1
if(ret) ret=func2
if(ret) ret=func3
finally()

503:デフォルトの名無しさん
22/03/18 19:08:01.39 RDOlUVi1.net
Flaskでつくったアプリをデプロイ先で"git clone", "pip install -e ."して入れていて、アップデートがあった場合はgit pullだけしています
こういう使い方ってpipで管理できない以外で何か問題ってありますか?
確かでなくても何となく気になる程度の事でも書いてもらえるだけでも有難いです

504:デフォルトの名無しさん
22/03/18 19:21:48.00 /+NJrK2n.net
デプロイ時に公式リポジトリが落ちてる可能性あるからアリ
いまどきはコンテナ生成時にpip使うからそういうリスクないけども

505:デフォルトの名無しさん
22/03/18 20:29:14.39 GX/cM61n.net
pypiのパッケージって存在が保証されるんじゃなかったっけ

506:495
22/03/18 20:31:32.06 RDOlUVi1.net
すいません、言葉足らずでした
自分で作ったアプリでリポジトリも自前のリポジトリです

507:デフォルトの名無しさん
22/03/19 00:10:30.98 k2W7TKOh.net
>>495
多言語のバージョンマネージャーのanyenv で使もう、rbenv のインストーラ
URLリンク(github.com)
これを簡単に説明すると、
Mac のHomebrew の場合と、Linux の場合で、処理を切り替えている
23行目 : rbenv="$(command -v rbenv ~/.rbenv/bin/rbenv | head -1)"
で、-v : 「コマンド」を実行せず、実行対象となるコマンドやファイル名、
関数・エイリアスの定義を表示する
25行目 : if [ -n "$rbenv" ]; then
で、-n : 文字列が1文字以上(ヌルではない)のとき真(not zero)
つまり、初回はgit init して、2回目以降は、git pull する
if [ -n "$rbenv" ]; then
git pull --tags origin master
else
git init
git remote add -f -t master origin URLリンク(github.com)
git checkout -b master origin/master
fi

508:499
22/03/19 00:18:51.04 k2W7TKOh.net
>>499
の続き
69行目からも同じ
69行目 : if [ -n "$ruby_build" ]; then
で、-n : 文字列が1文字以上(ヌルではない)のとき真(not zero)
つまり、初回はgit clone して、2回目以降は、git pull する
if [ -n "$ruby_build" ]; then
git pull origin master
else
git clone URLリンク(github.com) "${rbenv_root}/plugins/ruby-build"
fi

509:デフォルトの名無しさん
22/03/19 10:05:43.22 /3rRpnUt.net
こんにちは。
文字列を空行で分割したいのですが 良い方法が見つからず悩んでいます。
たとえば、文字列を2つに分割したいです。
良い方法があればヒントをいただけると助かります。
---------はじまり
aaa
bbb
<==== ここで分割したい
ccc
ddd
---------おわり

510:デフォルトの名無しさん
22/03/19 10:06:40.03 /3rRpnUt.net
サンプルの文字列がおかしくなったので再度書き込みます。
bbb と ccc の間の空行で分割したいです。
aaa
bbb
ccc
ddd

511:デフォルトの名無しさん
22/03/19 10:29:46.04 GJHZpfLi.net
gap_vector とかの話?タダの宿題?

512:デフォルトの名無しさん
22/03/19 10:40:05.16 93YS43Ns.net
pythonって簡単にできる命令が多いからそれ探しがちだけどそういうの考えなきゃいくらでもできるだろ
単純に配列に一行ずつ読み込んで、要素の中身をチェックして空ならそこまでの要素を切り出してくとか
全部をひとつの文字列として変数に入れて、split(\n\n)みたいな感じで分割すればいい

513:デフォルトの名無しさん
22/03/19 12:41:10.12 umrdatZo.net
プログラムの初心者です。
書籍を見ながら勉強しているのですが、
指示通りに入力しても正常に反応しなくて、どこが間違っているのかわかりません。
どなたか教えていただけませんか?

514:デフォルトの名無しさん
22/03/19 12:51:46.78 umrdatZo.net
>>505
import tkinter
root=tkinter.Tk()
root.title("初めてラベル")
root.geometry("800x600")
label=tkinter.Label(root,text="ラベルの文字列",font=("System",24))
label.place(x=200,y=100)
root.mainloop()
こう入力しましたがウィンドウが表示されませんでした。

515:デフォルトの名無しさん
22/03/19 12:59:31.84 d0jgyl+4.net
ファイルの文字コードがSJISになってるんじゃないかな
UTF-8で保存し直してみたら

516:デフォルトの名無しさん
22/03/19 13:06:08.80 CtZdn1W5.net
>>506
vscode上ではそれで動く

517:デフォルトの名無しさん
22/03/19 13:12:31.23 umrdatZo.net
>>506
です。
こちらで解決しました!
お騒がせしてすみません。

518:デフォルトの名無しさん
22/03/19 19:10:36.78 ozskatPz.net
if x : return
elif y : return
else:
処理
みたいな、ガード連打するときなんか改行なしで行きたい気がするんだけど
やっぱ許されぬ罪なのですか神父様

519:デフォルトの名無しさん
22/03/19 19:21:11.13 guM/7r5m.net
elif/elseにする必要なくない?

520:デフォルトの名無しさん
22/03/19 20:04:09.95 XBFSEYPW.net
Kotlinとか書いてると実にそう思うが、そんな将来は来ない

521:デフォルトの名無しさん
22/03/19 20:47:24.25 26UREXqN.net
if x or y:
__return
else:
処理
じゃだめなん?

522:デフォルトの名無しさん
22/03/19 21:45:40.71 pKV2CHvJ.net
>>513
主題はそこじゃなくて
アーリーリターンが続くような構造では改行レスのreturnと書きたいが、許されるかどうか
ということでは

523:デフォルトの名無しさん
22/03/19 21:51:17.02 GkqZBVMg.net
大学の研究室のコードとかはめちゃクソ改行レス
あいつら道具は動けばいいんでしょ精神だからぬ

524:デフォルトの名無しさん
22/03/19 23:15:07.02 guM/7r5m.net
でもカッコやendいるわけじゃなし
1行returnくらいあってもむしろ見通しいいし

525:デフォルトの名無しさん
22/03/19 23:25:51.88 ahrdIXj0.net
インデント強制するような糞言語だからなぁ

526:デフォルトの名無しさん
22/03/19 23:33:43.71 1HyJgrvG.net
if x or y : return

orでつなげるなら一応一行でも行けるぽいけど

527:デフォルトの名無しさん
22/03/19 23:50:57.25 1HyJgrvG.net
ガード節早期リターンをいれるなら
if elif elseでつなげるよりもifの連打でとことんリターンさせた方が条件の独立性も保たれるしわかりやすい
てかelifやelse 意味ないし
if a: return
if b: return
if c: return

528:デフォルトの名無しさん
22/03/19 23:53:44.87 1HyJgrvG.net
でも基本的にフロー制御せずに済むようにするのが一番

529:デフォルトの名無しさん
22/03/20 00:04:23.22 rHLSIq5o.net
jupyterlabのvpythonの拡張機能を入れようとしたら
3.3.2~3.4.0と5.3.2~5.4.0を同時に求められたんですがどうしたらいいですか
URLリンク(i.imgur.com)

530:デフォルトの名無しさん
22/03/20 07:50:41.23 aLyHOWc6.net
>>501
Ruby では、空行は改行が2つ続くので、そこで分割すると、
input_text = <<'TEXT'




TEXT
p ary = input_text.split( "\n\n", 2 ) # 最大で2分割
#=> [ "あ\nい", "う\n\nえ\n" ]

531:デフォルトの名無しさん
22/03/22 14:47:11.41 ijxTKnpM.net
---a.py-----
import b
x="abc"
b.kansu()
---b.py-----
def kansu()
global x
print(x)
a.pyを実行させて、その中で呼び出された関数kensuの中でa.pyで定義された変数xを参照したいんですけどできます。
xが定義されてないて言われるんだけど。

532:デフォルトの名無しさん
22/03/22 14:48:37.57 PCBgHcJM.net
import b
b.kansu(x)
---
def kansu(x):print(x)

533:デフォルトの名無しさん
22/03/22 15:01:05.51 ijxTKnpM.net
>>524
そうやりたいけど、
b.kansu()をb.kansu(x)に変更するのが大変だから、質問してる。

534:デフォルトの名無しさん
22/03/22 15:11:44.38 BhdZW57e.net
質問です
大量にあるpng画像の中にある特定の画像が含まれる画像だけ抽出することはできますか?
例:オンラインゲームの撃破ログ時に特定の画像が画面内に現れるとする(ヘッドショットアイコンなど)
その画像は不変であるが、画面内のどこにあるかは不特定。
特定の画像のimgを先に作成しておき、その画像が含まれる画像のpngデータを抽出したい。

535:デフォルトの名無しさん
22/03/22 15:14:23.73 PCBgHcJM.net
pyscreeze.locate

536:デフォルトの名無しさん
22/03/22 15:23:33.53 48q5H/E5.net
>>523
できるけどおすすめしない
import b
b.x = “abc"
b.kansu()
bにxのアクセサ(プロパティ)つくるのがましかな

537:デフォルトの名無しさん
22/03/22 16:35:08.52 ijxTKnpM.net
>>528
出来ました。
ぜんぜんおすすめのような気がする。
ありがとうございました。

538:デフォルトの名無しさん
22/03/22 18:38:00.86 qHCIAUP+.net
変数じゃなく定数だったりすると、
本来は、別のconfig.pyあたりに書いて同じことをするんだっけ?
import config as g
g.x = 'abc'
みたいに

539:デフォルトの名無しさん
22/03/22 20:38:23.71 Rdq5z+Lu.net
>>526
OpenCVのテンプレートマッチング

540:デフォルトの名無しさん
22/03/23 15:54:16.61 cM5bvOqV.net
bbox = [0, 0, 100, 100]
l, t, r, b = bbox
l = 20
print(bbox) -> [20, 0, 100, 100]
こういうことがしたいんですが、どうすればいいですか
どういう単語で検索したらいいのかすらわかりません

541:デフォルトの名無しさん
22/03/23 16:22:45.21 9UuCXyQL.net
bbox[0]指定だと困る理由は?

542:デフォルトの名無しさん
22/03/23 17:07:45.87 cgrsbd9g.net
>532 辞書使って無理やり。
bbox = { 'l': 20, 't':0, 'r':100, 'b':100 }
bbox['l'] = 20
bbox_values = list( bbox.values() )
print( bbox_values )

543:デフォルトの名無しさん
22/03/23 17:18:26.23 PTuUM17Q.net
あえてやるならこんなのとか
単語で検索するとしたらオブジェクト
bbox=([0],[0],[100],[100])
l,t,r,b=bbox
l[0]=20
print(bbox)
->([20], [0], [100], [100])

544:デフォルトの名無しさん
22/03/23 17:27:30.54 Uj8u7VlE.net
配列順に意味があるなら
L,T,R,B = 0,1,2,3
bbox[L] = 20
とか
意味ないならクラスか辞書で保持すべき

545:デフォルトの名無しさん
22/03/23 18:03:21.12 cM5bvOqV.net
あーなるほど、そういう感じなんですね
わかりました。ありがとうございます
なんか要素へリンクしてて
l = bbox[0]
print(l) # 0
l = 20
print(bbox[0]) # 20
みたいな感じになると思ってました
bboxクラス作ります

546:デフォルトの名無しさん
22/03/23 19:08:25.09 OkzK5R+n.net
>>537
話ずれるけど、要素を外で書き換えるよりも箱の拡大縮小みたいなメソッドを作る方が一般的な気がします

547:デフォルトの名無しさん
22/03/25 13:39:47.22 uOX7ULt1.net
openpyxlでxlsxファイルを作る時にひとつのシートに複数のグラフを描こうとしたらThe same chart cannot be used in more than one worksheetってエラメ吐いたんだけど何でだろう
エラメでぐぐってもイマイチよくわからなかった

548:デフォルトの名無しさん
22/03/25 14:33:26.73 9HZfMhVl.net
chart2=chart1
とかやったりするとそうなるかも
複数チャート作る時に前のチャートを使いまわしたりしてない?

549:デフォルトの名無しさん
22/03/25 15:27:53.71 uOX7ULt1.net
使い回しはしてましたね…
グラフ描く回数の分同じ記述を何度もするのが嫌だったから関数にして複数回呼び出せばいいかと思ってた
グラフ描画部分の関数に引数として描画シートとか参照するセルの範囲を渡してやってたんだけどそれじゃ駄目だったか

550:デフォルトの名無しさん
22/03/26 06:26:35.95 m+SAsqZm.net
ダメってわけじゃないけど気を付けないといけないポイントがある
チャートとかのいわゆるオブジェクトのコピーはdeepcopy使う

551:デフォルトの名無しさん
22/03/26 11:27:01.85 qLHTxQhk.net
配布するpyスクリプトで標準外パッケージを使いたいけどユーザの環境を汚したくないというときはvenvのような仮想環境か
pyinstallerでまとめるくらいしか手は無いのかな。
どちらもpython.exe自体をコピーして大げさなんで、jsのwebpackみたいなパッケージのバンドルができたらよかったんだけど。

552:デフォルトの名無しさん
22/03/27 17:22:26.41 nYvTQ02C.net
質問なんです
GIMPのpython使っています
# -*- coding: utf-8 -*-
import glob,os,re
file = glob.glob(‘C:\Users\name\Desktop\*.jpg’)
で取り出したファイル名を使ってファイルを開こうとすると
ファイル名が日本語の場合文字化けしてファイルが開けませんでした。
文字化けを直すにはどうしたら良いのでしょうか?
print(file)した時に文字化け表示される文字は
'C:/Users/name/Desktop\\\x83A\x83\x8a\x83G\x83N\x83`\x83\x83\x83b\x83g\x91\xce\x89\x9e.JPG'
こんな感じです
よろしくおねがいします

553:デフォルトの名無しさん
22/03/27 17:44:38.62 p/i0WnQH.net
>>544
>ファイルが開けませんでした。
この時どんなエラーがでましたか?

554:544
22/03/27 18:47:55.50 nYvTQ02C.net
>>545
RuntimeError: 'C:\Users\name\Desktop\�A���G�N�`���b�g�Ή�.JPG' を開いて読み込むことができません。
Invalid argument
これと詳細な情報のところに
Traceback (most recent call last):
File "C:\Program Files\GIMP 2\lib\gimp\2.0\python/gimpfu.py", line 740, in response
dialog.res = run_script(params)
File "C:\Program Files\GIMP 2\lib\gimp\2.0\python/gimpfu.py", line 361, in run_script
return apply(function, params)
File "C:\Users\name\AppData\Roaming\GIMP\2.10\plug-ins\add_aaaaaaaa.py", line 11, in aaaaaaa

555:デフォルトの名無しさん
22/03/27 18:48:39.52 px6SVueC.net
>>544
'C:/Users/name/Desktop\\\x83A\x83\x8a\x83G\x83N\x83`\x83\x83\x83b\x83g\x91\xce\x89\x9e.JPG'.decode("mbcs")

556:デフォルトの名無しさん
22/03/27 19:01:26.37 ayYjDlX4.net
>>544
バイナリでglobしてバイナリでopenしてみれば?
cp932がutf8の文字列として解釈されてるのが原因だと思う
glob(b'*.jpg')

557:544
22/03/27 19:04:53.96 nYvTQ02C.net
>>547
ありがとうございます!
無事ファイルが開けてプラグインが完成しました!!

558:544
22/03/27 20:00:09.87 nYvTQ02C.net
もう一つ質問で悪いのですが
これもGIMPです
数字を文字列にして文章とつなげているのですが
その半角数字を全角数字にしようとしましたが
エラーが出ます
どうしたらいいのでしょうか?
コードを書くと書き込めなかったので
スクリーンショットを貼ります
URLリンク(imgur.com)
エラーはこちらです
URLリンク(imgur.com)

559:デフォルトの名無しさん
22/03/27 20:31:27.21 p/i0WnQH.net
>>550
URLリンク(ideone.com)
再現ができないのでここにコードを書いて、そのリンクを貼ってください
コードを書いて、Runボタンを押すとリンクが生成されます
こんな感じで
URLリンク(ideone.com)

560:デフォルトの名無しさん
22/03/27 20:34:15.47 px6SVueC.net
>>550
gimp2にバンドルされてるpythonは2.7なのでそのコードは使えないね

561:デフォルトの名無しさん
22/03/27 20:35:54.32 p/i0WnQH.net
Python2か

562:544
22/03/27 21:00:21.01 nYvTQ02C.net
>>551
こうですか?
URLリンク(ideone.com)
>>552
python2の場合はどうすればいいですか?

563:デフォルトの名無しさん
22/03/27 22:12:37.46 GW1PkVkn.net
python2ってなんだよと思ったら、gimpって開発の勢いがないソフトだったんだな
2007年10月24日 - GIMP 2.4.0
2008年10月1日 - GIMP 2.6.0
2012年5月3日 - GIMP 2.8.0
2018年4月27日 - GIMP 2.10.0
今は2.10.30
Python 3.0は2008年12月3日

564:デフォルトの名無しさん
22/03/27 22:21:41.23 p/i0WnQH.net
>>554
URLリンク(ideone.com)
これでどうですか

565:544
22/03/27 22:34:09.27 nYvTQ02C.net
たびたびすいません、GIMPのモノです。
glob.globが治っていたのが勘違いで
今度はアドレスに日本語が入ってると何も検索してくれなくなりました
どうしたらいいですか?
>>> glob.glob(b"C:\\Users\\name\\Desktop\\新しいフォルダー\\*.jpg")
[]
>>> glob.glob("C:\\Users\\name\\Desktop\\新しい\\*.jpg".decode("mbcs"))
[]
>>556
ありがとうございます!
無事小文字から大文字になりました

566:デフォルトの名無しさん
22/03/28 08:06:48.20 bggr0gZp.net
書き間違いだろ
「新しいフォルダー」と「新しい」のどちらかが、存在しないのでは?

567:デフォルトの名無しさん
22/03/28 11:24:31.81 xKLASzt7.net
久しぶりにPython2触ってたら痒くなってきた

568:デフォルトの名無しさん
22/03/28 17:43:20.16 FxPljt62.net
>>558
すいません地中で名前を変えたので
紛らわしくなりました
年のためもう一度試してみたのですが
やはりフォルダー内を検索してくれませんでした

569:デフォルトの名無しさん
22/03/28 17:54:40.03 rI7b9so+.net
解決案じゃなくて恐縮だけど
DOSの頃からAPI上のパス区切りはスラッシュで通るのに
入門書やサイトにバックスラッシュで記載あるのなんとかならんかな

570:デフォルトの名無しさん
22/03/28 18:42:28.40 zYEeILU0.net
ソースコードをutf8で書いたらいけない、ソースがutf8でなくshiftjisになってる、のどっちかじゃないか

571:544
22/03/28 18:59:10.76 FxPljt62.net
自己解決です
folder_path=folder_path.decode("utf-8")
にしてみたら日本語でも行けました!
お騒がせしてすいませんでした。
>>561
GIMPのコンソールだとglob.glob()の中はバックスラッシュじゃないと反応しなかったです

572:デフォルトの名無しさん
22/03/28 19:04:00.69 rI7b9so+.net
>>563
そうなんだ
わざわざ試してもらってありがとう
Python2のglob実装みてみる

573:デフォルトの名無しさん
22/03/28 19:27:15.27 FxPljt62.net
>>564のおかげで
バックスラッシュに気づけたので
解決出来ました
ありがとうございます
>>562
気づかずすいません
ありがとうございます!
そういう事みたいでした

574:デフォルトの名無しさん
22/03/28 19:41:51.56 awWxWPo2.net
u"C:\\Users\\name\\Desktop\\新しいフォルダー\\*.jpg"
のように最初からユニコード文字列にするのが正攻法かな
でもgimpのpythonコンソールに直に書く時は
u"C:\\Users\\name\\Desktop\\\u65b0\u3057\u3044\u30d5\u30a9\u30eb\u30c0\u30fc\\*.jpg"
のようにunicodeエスケープしないといけないのが難点
俺環のgimp2.10.30はスラッシュでも問題ないな

575:デフォルトの名無しさん
22/04/05 03:06:27.47 NFxs7VO2.net
【悲報】俺が2時間かけて作ったプログラムがこれ [125096601]
スレリンク(poverty板)

576:デフォルトの名無しさん
22/04/05 17:14:08.59 EwNP7gad.net
uwscのBETWEENSTRに該当する
指定文字列から、AとBの検索語の間で文字列をカットする関数はありますか?

577:デフォルトの名無しさん
22/04/05 17:57:12.47 qZGMajZg.net
>>568
URLリンク(docs.python.org)
正規表現の (?<=...) と (?=…) をつかって re.search() あたり?

578:デフォルトの名無しさん
22/04/05 18:23:32.74 h0FbB6w5.net
まんま実装してるライブラリも探せばあるんだろうけど、普通は正規表現だろうね
python 正規表現 タグの間を取得」とかでぐぐれば

579:デフォルトの名無しさん
22/04/05 18:27:10.86 /cMxK+XJ.net
zipファイル解凍しなくてもファイル数の確認ができるのだが
rarファイルではできないの?

580:デフォルトの名無しさん
22/04/05 18:59:43.10 EwNP7gad.net
>>569
ありがとうございます
labでいろいろ試してみます

581:デフォルトの名無しさん
22/04/06 00:25:28.29 vOjBJMWB.net
テスト

582:デフォルトの名無しさん
22/04/06 18:52:36.40 V6m5p1Ce.net
URLリンク(www.python.jp)
を参考にwhile文でクレジットカードのアカウント管理プログラムを作ってみようと思ったんだけど
例えばパイソンクレジットのパスワードはpythonだとして
text = ""
while text != "パスワード":
text = input("パイソンクレジット:")
print("python")
これで実行は出来たのですが2つ分からないことがあって
・パスワードだけじゃなくてIDや暗証番号などのも設定させたい場合の書き方
・while文は「パスワード」だけど、これだけじゃなくて「パス」や「pass」でも答えが表示できるようにしたい
この2つがどうしてもできません

583:デフォルトの名無しさん
22/04/06 18:59:11.46 PpwVEMc8.net
>>574
> ・パスワードだけじゃなくてIDや暗証番号などのも設定させたい場合の書き方
IDや暗証番号もinputで取る
whileの条件を増やす

> ・while文は「パスワード」だけど、これだけじゃなくて「パ�


584:X」や「pass」でも答えが表示できるようにしたい while text not in ('パスワード', 'パス','pass'):



585:デフォルトの名無しさん
22/04/06 19:21:28.09 V6m5p1Ce.net
>>575
後者やってみたけど
パスワードpassじゃないと入力できなくなっちゃった
書き方がおかしいのか?

586:デフォルトの名無しさん
22/04/06 19:48:17.76 aY4pnG+o.net
クォーテーションが全角になってるぞ

587:デフォルトの名無しさん
22/04/08 06:43:14.77 wVatZXx3.net
文字コード=sjis、改行コード=CRLFのテキストファイルを
それぞれutf8、LFのファイルに変換したい
どうすればいいですか

588:デフォルトの名無しさん
22/04/08 12:11:07.10 NfDoLo6c.net
>>578
with open('shift_jis.txt', mode='r', encoding='shift-jis') as f:
  lines = f.read()
with open('utf8.txt', mode='w', newline='¥n') as f:
  f.write(lines)

589:デフォルトの名無しさん
22/04/08 13:41:11.89 bGha8t6H.net
Windows相手なら encoding='cp932' が無難やね

590:デフォルトの名無しさん
22/04/08 15:29:47.16 iHIe6oz3.net
Shift-JIS_2004が来やがる事しばしば
かと思ったらWindows-1254とかと誤判断

591:デフォルトの名無しさん
22/04/08 17:06:38.29 pSQTwr1V.net
cchardet.detect(文字列)['encoding']
で取得した結果をopenのときに投げればいいんじゃないの
意外と使えるよ

592:デフォルトの名無しさん
22/04/08 17:51:57.12 7I4TuE41.net
anser = input("パスワードは?:")
while anser!="パスワード"or"pass"or"パス":
print("OK")
これでどうしてもエラーが出てしまう

593:デフォルトの名無しさん
22/04/08 17:59:24.81 Nr5XXVVB.net
answer...

594:デフォルトの名無しさん
22/04/08 18:01:49.89 +3oW9fkF.net
そうですか。次はちゃんと質問しような

595:デフォルトの名無しさん
22/04/08 18:07:50.56 bGha8t6H.net
>>> "パスワード" or "pass" or "パス"
'パスワード'
想定してるような集合扱いにはならないのと、先に`answer != "パスワード”`が評価されるから
>>> True or "pass" or "パス"
True
>>> False or "pass" or "パス"
'pass'
のどっちかになる。

596:デフォルトの名無しさん
22/04/08 18:20:28.20 7I4TuE41.net
>>586
ちょっと違うみたいで
anser = input("パスワードは?:")
while anser!="パスワード"or"pass"or"パス":
print("OK")
で↑に行を開けると起動するんだけど
今度は無限ループになる上に、while文の"パスワード"or"pass"or"パス"が効かなくなる
(enterキーとか適当な文字入力でも
OK
OK

597:デフォルトの名無しさん
22/04/08 18:20:44.05 7I4TuE41.net
って無限ループしちゃう

598:デフォルトの名無しさん
22/04/08 18:25:12.75 o9HNgSR+.net
質問です。
pyenvの設定をネットで調べると次の2つが見つかりました。
どっちが正しいのでしょうか?
(1)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
# ↑ binになっている
echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile
source ~/.bash_profile
(2)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/shims:$PATH"' >> ~/.bash_profile
# ↑ shimsになっている
echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile
source ~/.bash_profile

599:デフォルトの名無しさん
22/04/08 18:30:46.90 7I4TuE41.net
実行環境忘れてた
ptyon3.10
IDLE

600:デフォルトの名無しさん
22/04/08 18:53:45.66 D6M1QgM/.net
エラーメッセージちゃんと読んでるか?

601:デフォルトの名無しさん
22/04/08 18:59:35.32 7I4TuE41.net
>>591
expected an indented block after while statement on line 2

602:デフォルトの名無しさん
22/04/08 19:00:25.07 LwBnqH/T.net
>>589
漏れは、Windows 10, WSL2, Ubuntu 18.04 で、
日本人が作った、多言語バージョンマネージャーのanyenv を使っている。
nodenv(Node.js), rbenv(Ruby), jlenv(Julia), tfenv(Terraform)など、20言語ぐらいある。
同様のツールに、asdf もある
漏れは、~/.bash_aliases に、下のように書いている。
export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
これは、~/.bashrc の終わりの方で、
もし、~/.bash_aliasesが存在するなら、それを読み込むように書いてあるから
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
bash で、下を入力すると、
which ruby
~/.anyenv/envs/rbenv/shims/ruby
which node
~/.anyenv/envs/nodenv/shims/node
WSL2, Ubuntu 18.04 サーバー(CUI のみ)では、~/.bash_profile は存在しない

603:デフォルトの名無しさん
22/04/08 19:02:02.75 bGha8t6H.net
>>589
URLリンク(github.com)
まず公式読んで
>>592
while True:
  answer = input('パスワードは?:')
  if answer in ['パスワード', 'pass', 'パス']:
    break
print('OK')
先にチュートリアルで構文を学ぼ
URLリンク(docs.python.org)


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch