1 名前:デフォルトの名無しさん mailto:sage [2021/12/27(月) 01:38:10.93 ID:GepmXCuJ.net] 当スレに★Python以外のプログラミング言語での回答類を書くべからず★ 派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。 「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。 このスレッドは「お勉強」スレのほうには書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。 ★エラーを解決したい場合★は、 表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、 実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。 Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★ 【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、 プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。 ttps://techiedelight.com/compiler/ Run Code機能あり。 ttp://ideone.com/ デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直
237 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 20:19:30.83 ID:995Y4clk.net] flake8、すごいね お前のコード汚すぎる!ってたくさん言われた 自分の環境ではprint(とかなってたら警告されます
238 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 20:28:51.81 ID:XcSi1DQ3.net] aa = print のように代入するのはあり得るけど print だけってありえるの? pythonだと実行時のエラーすら出ない ほかの言語だとこういうのあり得ないからIDEに警告表示出るよな
239 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 20:43:06.60 ID:Sz70mZLP.net] 文字列を直置きしてdocstringにしちゃうような言語だしなぁ pydroidだとstatement seems to have no effectの警告が出る
240 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 21:19:26.94 ID:Tm8PqFX/.net] 202です。 >>205 さん そうですか…。出来ないのは残念ですが、教えていただきありがとうございます。
241 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 21:33:52.67 ID:40whDPBS.net] >>226 ちゃんとファイルを保存してる? Pylance何かと違って、保存前には動作しないよ
242 名前:デフォルトの名無しさん [2022/02/12(土) 21:56:57.57 ID:dzEAJuso.net] >>236 はい、保存してます 警告もでないし実行してもエラーも出ずスルーされるだけです pythonはこういうもんなんでしょうか?
243 名前:デフォルトの名無しさん [2022/02/12(土) 22:07:27.93 ID:kBzBXJs5.net] RustとHaskellは、コンパイルを通った時点でバグが無いことを保証されると主張してますね。 Pythonに限らず、その他の言語は、まあそういうもんでしょう。
244 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 22:32:52.77 ID:40whDPBS.net] >>237 代わりにpylintを使えばエラーを出せるよ ただ、ちょっと細かすぎて例外設定で除外しないと煩わしいことになるけど
245 名前:デフォルトの名無しさん [2022/02/12(土) 23:41:28.59 ID:za8M83yS.net] >>233 関数オブジェクト理解してる?
246 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 00:14:22.17 ID:ckMeWHs6.net] >>240 そういう返しが来るってことは print ってだけの使いかたもあるってことなのか
247 名前:デフォルトの名無しさん [2022/02/13(日) 04:55:00.94 ID:sMX7fMbN.net] 上でも言われてっけどtkinterのeventとか x.bind('<1>', print) みたいな例はいくらでもある
248 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 07:06:20.17 ID:18RMiGPm.net] 233はなんの副作用もないステートメントの話をしてるだろ それ副作用あるじゃん
249 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 09:46:47.61 ID:X4ZyWjWq.net] こんな文字列を直置きしてdocstringにしちゃうような言語をやってると、引数に渡されてスタックに積まれる関数オブジェクトと特に作用のない関数オブジェクトの違いが理解できなくなるぞw
250 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 13:12:28.71 ID:ckMeWHs6.net] >>242 それは a=print と同じ使いかたでしょ
251 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 13:27:15.78 ID:yoBtg/nD.net] >>233 > ほかの言語だとこういうのあり得ないからIDEに警告表示出るよな C言語でも同じだよ、文法的には問題ない ただ意味がないから大抵の処理系で>>234 が書いてるような警告は出るけどエラーではない
252 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 17:21:12.09 ID:yB05jN77.net] 関数へのながーい引数を変数に入れて渡すことってできませんか? args = text="テキスト", img="img.png", color="#FFFFFF" makeItem(args) みたいな感じです
253 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 17:34:48.08 ID:yB05jN77.net] >>247 自己解決しました args = {"text": "テキスト", "img": "img.png", "color": "#FFFFFF"} makeItem(**args)
254 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 17:42:58.98 ID:PEAS4D91.net] >>248 すごい細かいけど、辞書を渡す際はkwargsを仮引数にするのが暗黙のルールだったりする
255 名前:デフォルトの名無しさん [2022/02/13(日) 18:20:42.99 ID:MWit14K9.net] PythonでリストH=[a[2][3], a[5][7]] を与えた後 H[0]を呼び出すとa[2][3]が返ってきますが、このx座標、y座標である2と3を返す関数はどう作られますか?
256 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 18:30:07.26 ID:jfCaeP/j.net] b = a[2][3] c = a[5][7] H = [b, c] という評価を一行で書いてるだけなので Hの時点だともうその情報はない
257 名前:デフォルトの名無しさん [2022/02/13(日) 18:49:18.90 ID:MWit14K9.net] >>251 ありがとうございます。 ではx座標とy座標を呼び出すにはどうしたら良いでしょうか?
258 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 18:55:51.07 ID:qU7qP4LH.net] よくわからないんだけどH[0]を呼び出すとa[2][3]が返ってくるなら tmp = H[0] x = tmp[0] y = tmp[1] になるんじゃないの?
259 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 19:05:34.35 ID:4NLUjdRo.net] Pythonのサンプルコードでは from hoge import piyo import hoge のような記述をよく見ます これは行儀が悪いように見えますが、Pythonでは問題のないことなのでしょうか
260 名前:デフォルトの名無しさん [2022/02/13(日) 19:14:02.30 ID:ZyRs1D7f.net] >>250 座標もセットにしてリスト化する H=[(a[2][3],(2,3)),(a[5][7],(5,7))]
261 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 19:57:37.82 ID:yB05jN77.net] >>249 勉強中なので細かいこと大歓迎です、ありがとう
262 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 20:51:30.91 ID:JnTPIF3C.net] >>252 欲しいの座標でなく次元では?
263 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 20:54:22.96 ID:JnTPIF3C.net] すみません >>257 は読み間違いなので無視してください
264 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 21:09:57.57 ID:yB05jN77.net] メンバー変数「__name」を持つ「Human」クラスがあったとして、 これを継承した「HyperHuman」クラスは、 継承元の「__name」を参照できないんですか? クラスの外から参照しないメンバ変数を__付きにしまくったら継承先で参照できなくなってしまった
265 名前:デフォルトの名無しさん [2022/02/13(日) 21:18:20.00 ID:MWit14K9.net] >>253 すみません、 うまく行きませんでした >>255 ありがとうございました、思考によって問題を回避出来ますね。私に欠けていたのは問題に食らいつく精神力でした。
266 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 21:23:23.11 ID:+cgrIz8j.net] >>254 俺もこれ気持ち悪いわ 誰かスッキリさせてくれんか
267 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 21:54:36.39 ID:yB05jN77.net] >>254 import xxx only zzz みたいにしてほしかったよね
268 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 22:11:57.52 ID:jfCaeP/j.net] >>262 xxx.zzz以外のxxx.*参照できない状態を保持するのめんどそう import xxx zzz = xxx.zzz と書けるしfrom import自体いらんなら分かる
269 名前:デフォルトの名無しさん [2022/02/13(日) 22:23:48.09 ID:nVrhNNmO.net] >>259 そのままの名前ではできない 継承先から別の名前で山椒できる self._Human__name https://ideone.com/9xMJkE
270 名前:デフォルトの名無しさん [2022/02/13(日) 22:25:44.83 ID:nVrhNNmO.net] s/山椒/参照 参照の育て方調べてたからミスった
271 名前:デフォルトの名無しさん [2022/02/13(日) 23:42:00.06 ID:n9deEbJE.net] >>264 できるけど わざわざ__してるのを呼び出しちゃうのかーいって気はするなw
272 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 00:04:11.74 ID:BHqD30LB.net] >>264 ,265 そのタイポの仕方がちょっと笑える 「参照の育て方」はツボったよw
273 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 01:00:25.73 ID:a1vo03Tu.net] super関数使う方法ってなかったっけ
274 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 06:51:44.54 ID:E8yArpIy.net] >>264 ありがとうございます 変数名自体が変わってアクセス防いでるのかあ 同じ継承先からは参照したいので、_一個にしておきます
275 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 07:03:17.01 ID:t59hyUv0.net] if os.path.exists(p): をpathlibで書き換える場合、 if p != "" and Path(p).exists(): で完全に同じになりますか? 空文字以外に注意しなければいけないものありますか?
276 名前:デフォルトの名無しさん [2022/02/14(月) 09:12:46.38 ID:EEHmhlKD.net] 空文字判定要る?
277 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 09:19:17.38 ID:t59hyUv0.net] >>271 空文字判定しないと、空文字のとき Path(p).exists()がTrueになる 空文字はpathlibで "." として扱われるみたい
278 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 10:03:53.41 ID:SdWG8Yth.net] pが文字列なら同等とあるけど https://github.com/python/cpython/blob/main/Lib/test/test_os.py https://github.com/python/cpython/blob/main/Lib/test/test_pathlib.py テストコードの範囲内で使うのが無難
279 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 10:43:07.13 ID:TVm+ejPZ.net] 富士通「年収3500万円」の衝撃 ソニー、NECも戦々恐々の「グローバル採用競争」 「富士通年収3500万!」日本のIT企業の年収も、高額化してきました ゼロから起業するよりも事業承継(小さな会社の買収)が圧倒的に有利である3つの理由 「エース人材だって起業OK」、NECは挑戦者が集う場をつくる NECなど「出向起業」 大企業人材、起業しやすく IHIが副業解禁、人事制度で他の重工大手を先行する狙い カルビー/国内社員3900人を対象に副業解禁
280 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 11:25:14.57 ID:QXoUwWbT.net] >>272 ひでー。そんな地雷関数使いたくないな
281 名前:デフォルトの名無しさん [2022/02/14(月) 11:35:18.27 ID:LyAfGJhX.net] どのシステムでも何も渡さなければ現在のディレクトリとして処理するだろ
282 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 12:03:25.17 ID:QXoUwWbT.net] c#のsystem.io.file.exists()やdirectory.exists()、winapiのfindfirstfile()(ディレクトリの存在確認もできる) どれも空文字は失敗するよ
283 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 12:46:17.43 ID:yQZmxBH4.net] スクレイピングする際にlxmlでhtml内に任意のcssセレクタが含まれてればtrue、含まれていないときはfalseを返すことってできますか?
284 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 12:59:49.50 ID:SdWG8Yth.net] >>277 パスはpathlibへの引数でexists()の引数じゃないんよ
285 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 13:05:45.54 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 13:25:01.55 ID:T1NsaTsY.net] おう落ち目の言語の話は聞いてねえぞ
287 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 13:44:26.39 ID:cFSy1VCv.net] >>280 それ同じじゃないぞ
288 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 14:14:19.21 ID:7Dm4+XiT.net] >>280 1嫁😡
289 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 15:21:21.44 ID: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 名前:デフォルトの名無しさん [2022/02/14(月) 15:23:55.60 ID:OJkUcli+.net] まちがいました。 最後から2行目は H=[a(2,3), a(5,7)]です。(5,7)でエラー出ますけど...
291 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 17:38:13.29 ID:t59hyUv0.net] >>273 情報ありがとうございます。 テストコード長い・・・ 空文字以外は気にしなくていいと思い込むことにしよう
292 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 07:19:17.06 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 08:10:26.60 ID:U1LhfB3E.net] たまに以下のようなミスをしてしまうのですが、これを防ぐor容易に発見する にはどうしたらいいでしょうか。 foo=default_value if a_condition: boo=new_value # 本当はfooを更新したかったがbooとミスタイプした # -> あれ、fooの値が変更されてない、みたいな
294 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 08:14:04.17 ID:jBoRoSxS.net] 考えて名前つける
295 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 08:23:08.93 ID:Hej5n2W4.net] >>288 関数化 or if-else
296 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 08:45:57.03 ID:dhf8je8S.net] >>288 if a_condition: old_foo=foo boo=new_value if old_foo == foo: raise ValueError("error!")
297 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 09:05:32.17 ID:W7tQrrGw.net] >>288 VS code
298 名前:デフォルトの名無しさん [2022/02/16(水) 09:52:08.68 ID:aoiSu09N.net] pylanceさいつよ # type: ignore
299 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 11:39:04.96 ID:YEGQLb4J.net] pylanceってパイランスって言うんですか? 昔「だっちゅーの」っていう女の子二人組が... 素朴な疑問ですが、補完機能があるようなものを使うとして、上記の場合にbooが 間違いであることはどうやって分かるんでしょうか。もし同じスコープ内にbooという 変数が既にあった場合、booとタイプするのを間違いとは断定できないのでは... もしbooがなかったら、「プログラムに影響を及ぼさない変数をいじってんじゃねーよ」 というツッコミは可能だと思いますが。
300 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 11:54:00.21 ID:1mMAv7cD.net] そりゃ重箱の隅を突き始めたらすり抜けるケースなんていくらでもあるよ もともとコードとして合法なんだもん
301 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 12:23:29.89 ID:jBoRoSxS.net] >>291 だってold_booとか書いたら一緒だからね もうコンパイラ言語を使えば
302 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 12:26:03.04 ID:DXO0iyBK.net] type hints書かないの?(書き捨てのぞく)
303 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 12:29:48.85 ID:tzGoh0bw.net] エディタが人間のやりたいことを理解できる時代になったら検出できるんじゃない?
304 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 12:30:41.98 ID:tzGoh0bw.net] 怪しい部分にはassert文挟むとか、291みたいにエラー吐かせるのが基本じゃないか
305 名前:デフォルトの名無しさん [2022/02/16(水) 13:11:53.73 ID:1hjdKt99.net] 根本的に、1文字ミスって別の変数にアクセスできちゃう書き方というか、その命名規則や設計思想は良くないね 動けば何でもいーじゃんとか言って後々にツケが回るやつだ
306 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 14:37:06.42 ID:m8Y8zgQ2.net] >>287 print()とかのコンソールを前提とした戻りを 拡張子pyのときに限定しないと行き場がなくてエラーが出るんじゃない?
307 名前:デフォルトの名無しさん [2022/02/16(水) 14:51:55.36 ID:w27+Spzi.net] エラーメッセージくらい貼ろうぜ
308 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 14:56:01.74 ID:m8Y8zgQ2.net] no_consoleモードだと、エラーメッセージがそのままでは拾えないような
309 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 17:10:08.13 ID:MKfHEQkf.net] >>301 別のプログラムで、pywからImageMagickt等10種以上をsubprocess.runで呼び出して、 no_consoleモード実行してるんですがエラーになったことないです。 pythonのprint()もエラーでたことないです。
310 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 17:11:35.95 ID:MKfHEQkf.net] >>302 エラーがうまく拾えなくて困っています。
311 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 18:22:07.26 ID:m8Y8zgQ2.net] >>304 内部的にurllibを使ってると、with as 構文ではうまく動かなかったこともあるので、 ydl = YoutubeDL(ydl_opts) result = ydl.extract_info(youtube_url, download=True) ydl.close() あたりではどうかな?
312 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 18:37:50.26 ID:MKfHEQkf.net] >>306 やってみました 結果は変わらず。 ydl.close()はエラーになったのでコメントアウトしました
313 名前:デフォルトの名無しさん [2022/02/16(水) 18:38:50.39 ID:5G/Gik2e.net] >>305 そうなのか ちゃんと読まずにすまん
314 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 18:51:18.67 ID:m8Y8zgQ2.net] >>307 try-exceptでエラーをtkinterのメッセージボックスに表示してみたけど、 no_consoleモードの場合だけNoneTypeエラーが出るねぇ
315 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 18:55:08.31 ID:WMJtWX4E.net] stdoutとstderrをファイル出力にしないといけないんじゃないの
316 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 19:28:07.20 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 19:43:49.72 ID:y2cKuBOG.net] >>311 https://docs.python.org/ja/3.5/library/sys.html?highlight=stdout#sys.__stdout__
318 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 19:44:45.60 ID:y2cKuBOG.net] https://docs.python.org/ja/3.10/library/sys.html?highlight=stdout#sys.__stdout__ すまん最新版だと日本語訳あった
319 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 20:30:23.86 ID:v91aidV3.net] インタープリター名で判定 mode = 'no_console' if 'pythonw' in os.path.basename(sys.executable) else 'console'
320 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 20:54:59.81 ID:MKfHEQkf.net] 皆様ご助言ありがとうございました。 no_consoleモードの判定は、sys.__stdout__ にしました。 sys.executableではexe化したときに判定できないことがあるらしい
321 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 21:25:03.60 ID:MKfHEQkf.net] >>315 訂正 sys.executableではexe化したときに判定できるのか知らない
322 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 03:14:44.34 ID:1NrfTGml.net] メソッドに渡した文字列をstripしようとしたらnonetype errorが起きた そこで関数内でその文字列変数をprintしたらちゃんと出力された 何が理由のエラーなのかさっぱり分からん ただのバグか?
323 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 08:28:12.79 ID:MYDromrM.net] ただのバグだね
324 名前:デフォルトの名無しさん [2022/02/17(木) 09:41:57.71 ID:3vu7PZHI.net] なんでもばぐにすんな、気合いが足りんだけだろ
325 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 10:01:06.02 ID:X0cMMW0O.net] print(repr(変数))
326 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 10:23:08.88 ID:Xo3IV4af.net] とりあえずこれでも嫁 https://mitani.cs.tsukuba.ac.jp/book_support/python/python_slides.pdf
327 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 10:29:14.55 ID:SQ5bCrsi.net] stripしたいのにnonetype errorになるのがバグじゃなかったらなんなんだよw ただのバグだじゃん
328 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 14:37:46.34 ID:1NrfTGml.net] >>321 ウィルス?
329 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 14:48:19.01 ID:X0cMMW0O.net] 筑波大ドメインやぞw 開けなくてもニュースになったあの教材ってわかる
330 名前:デフォルトの名無しさん mailto:sage [2022/02/17(木) 15:16:35.70 ID:dQiouJUG.net] 元の値(文字列)をきちんと拾えるようにすればいいだけじゃないのか?
331 名前:デフォルトの名無しさん [2022/02/19(土) 09:02:00.81 ID:44TdCCHX.net] 画像の境界線をimagechops.difference().getbbox()で検出するとき 境界線付近にjpg圧縮由来のぼんやりノイズがあって、少し大きめのbbox取得しちゃうとき どうやってノイズ突破するのがよいでしょうか? 画像黒、背景白、ノイズはだいたい10%グレー前後です 目を凝らさないと見えないんだけど、differenceの感度が高すぎて拾っちゃう感じ
332 名前:デフォルトの名無しさん mailto:sage [2022/02/19(土) 11:06:37.60 ID:R5yjbcGL.net] >>326 言語などの話題ならわかるけど 個々のアルゴリズムはpython由来のものじゃないからNGだと自分は思う
333 名前:デフォルトの名無しさん mailto:sage [2022/02/19(土) 11:2
] [ここ壊れてます]
334 名前:5:23.85 ID:hDmnOZdm.net mailto: シャープとか二値化とかそんな前処理してからbboxすれば? [] [ここ壊れてます]
335 名前:デフォルトの名無しさん mailto:sage [2022/02/19(土) 12:13:56.94 ID:Bncv98Zm.net] モスキートノイズってやつ? バイラテラルフィルタをopencvで50回くらい連打すればいけそう
336 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 07:06:50.82 ID:tPTlXWXv.net] python2から3で、/ (割り算)って常に浮動小数点になりました? ね? 4/2=2; 5/2=2 (python2), 4/2=2.0; 5/2=2.5 (python3) 古いスクリプトをメンテしていたら、結果がおかしかったので... これはどうしたら。 // だと整数(部分)になるようですが、ぱっと見変数の中身が整数なのか浮動小数点 なのか明らかでない部分もあり。
337 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 08:32:24.50 ID:1BCnZvzG.net] 常にintでかこめw a = int(5/2)
338 名前:デフォルトの名無しさん [2022/02/21(月) 08:47:28.69 ID:c97x3Gxx.net] > ぱっと見変数の中身が整数なのか浮動小数点 なのか明らかでない部分もあり。 type hint付けたら?
339 名前:デフォルトの名無しさん [2022/02/21(月) 19:21:20.87 ID:T/Qg+a/K.net] 複数店舗のレシートの画像データから消費税率ごとの金額をpythonで抽出する具体的な方法をどなたかご存じでしたらお教え頂けないでしょうか? レシートへの記載方法は機械での印字、位置や内税、外税、合計金額などのフォーマットは不定となります よろしくお願いします
340 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 19:22:42.41 ID:rSxedOK0.net] int(a/b)とa//bは挙動が違うから注意がいるよね とはいっても挙動変わる桁までそんな使わないけど
341 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 19:30:48.33 ID:9+weaIl8.net] >>333 適当な業者に見積もりだしたらわかるけど難易度高いよ そのために有料のプログラム部品やクラウドサービスが各社からでてる 日々更新せんとあかんし↑を提供する側じゃないかぎり割りに合わない
342 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 19:48:55.17 ID:i5JttRhR.net] >>333 AIでエリア認識(yoloなど)と数字読み取り(どんなでも)でやればいい 画像=フラッドスキャナ読み取りで歪み傾き限定的だったらAI使わなくてもピクセル読んでく力業でなんとかなる ただフォーマットが本当に不定(どんな店のかわからない)だったら力業じゃむり 自分で作るなら手動入力前提で入力支援機能に徹する方が現実的だよ
343 名前:デフォルトの名無しさん [2022/02/21(月) 21:12:01.60 ID:ytqVjd2E.net] 揺れるならAI使うしかなかんべ まず1000枚くらいを人力でデータ化し 静止画とあわせて学習させる あとはカメラ転送python受け、内部計算pandasかdbに登録ね
344 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 21:46:18.49 ID:tPTlXWXv.net] >>331 むしろ浮動小数点の答えを期待してるっぽいところもあるので単純ではなかったり >>332 やるにしても既存のコードが結構ありまして >>334 とりあえず前者は常に整数ですが後者は中身によりますよね。 数値表示が2から2.0になったりしても、問題ですね。 結論: めんどくさい... って感じですかね
345 名前:デフォルトの名無しさん mailto:sage [2022/02/21(月) 21:54:14.38 ID:n//MgrTx.net] >>338 違うよ、前者も後者も常に整数だけど前者は整数になる前にfloatを挟むので桁数が大きいと計算精度が保証されなくなる a = 123456789012345678 b = 10 print(int(a/b)) print(a//b) これ試してみるといいよ
346 名前:デフォルトの名無しさん [2022/02/21(月) 22:29:55.05 ID:ytqVjd2E.net] //が場合によるってどこで聞いたんだよ… そんな知識の精度でintとかfloatとか気にしてる場合じゃないぞ
347 名前:デフォルトの名無しさん [2022/02/22(火) 06:29:15.92 ID:i2wW6eRB.net] >>335 ,336,337 やはりaiが必要など難易度高そうですね ありがとうございました
348 名前:デフォルトの名無しさん mailto:sage [2022/02/22(火) 07:30:32.17 ID:Y8t1jQH1.net] 回転しない前提なら投影で位置を推測するんですけどね
349 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 09:47:30.08 ID:ecVw6j+6.net] enumerateで取得した番号がずっと1だ なにがどうなってる
350 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 10:28:20.65 ID:ecVw6j+6.net] forの中にforがあって両方iだった
351 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 19:24:47.19 ID:RI+NKERl.net] iniファイルを読み込むときに、 [GENERAL] ABZ=tanaka ABG=satou AUQ=hououin 〜〜〜〜 みたいな羅列の長い内容を読み込むときに、ABZとかAUQとかコード内で指定せずに勝手に読み込んでその名前で変数化することは可能ですか? 読み込むだけで大変な長いコードになってしまった
352 名前:デフォルトの名無しさん [2022/02/23(水) 19:50:37.90 ID:A+TpIAUX.net] 辞書使う方が良い
353 名前:デフォルトの名無しさん mailto:sage [2022/02/23(水) 19:55:47.48 ID:RI+NKERl.net] >>345 cfg = configprrser.Configperser() cfg.read(path) return dict(cfg.items("GENERAL")) って辞書にする書き方ができました
354 名前:デフォルトの名無しさん [2022/02/25(金) 20:56:48.33 ID:GIHvsxbC.net] K=9 T=0 import numpy as np a[T]=np.zeros((K,K)) print(a[T]) aが定義されてませんと言われましたがどうやって回避すれば良いでしょうか?
355 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 20:57:59.34 ID:xQz6a/12.net] なかなか不思議なことやってんな
356 名前:348 [2022/02/25(金) 21:18:24.60 ID:dMzxkvQR.net] どうしたら良いでしょうか aを定義しろと言われてもaはゼロ行列だと思うのですが
357 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 21:24:04.00 ID:21E+Zf1q.net] >>348 aを定義すれば回避できるよ
358 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 21:34:05.55 ID:uvlAEAIe.net] a[T]=np.zeros((K,K)) てことは a[T] np.zeros((K,K)) とりあえず両方評価できないと始まらないので個別に評価してみる。(Kは明白なので省略) >>> a[T] … NameError: name 'a' is not defined
359 名前:デフォルトの名無しさん [2022/02/25(金) 21:51:43.98 ID:jsx2tRyk.net] > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw クソチョンはウンコを食べる糞食人種w クソチョンはゲリ便をじゅるじゅると うまそうに食うw
360 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 22:03:11.98 ID:Dt5oOUOb.net] >>350 なぜaを定義してないのにゼロ行列だと思ったん? a=[] a[T]=••• ならいけるやろ
361 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 22:18:07.65 ID:uvlAEAIe.net] >>> a=[] >>> a[T] IndexError: list index out of range 初心者スレたのしいね
362 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 00:37:43.56 ID:BMq+AkmN.net] このレベルでnumpyとか手を出さなくていい
363 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 17:10:40.38 ID:0W3q9eVZ.net] プログラム的な事マジでド初心者の俺に教えてくれ AとBのボタンを作って押下した時の挙動を書く時とかのこのボタン?フォーム?の事ってなんて言うの
364 名前:? VBAならUserFormとかで適当に作ったりしてたから似たような感じで簡単なソフト作れるんじゃないかと思ったが、調べても良く分からなんだ [] [ここ壊れてます]
365 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 17:23:42.20 ID:bVNtHGMl.net] 「python gui 方法」みたいにぐぐれば色々ヒットするよ pythonにこだわりないならc#とかほかの言語の方がウインドウ作ってとかはやりやすいと思う
366 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 17:59:06.52 ID:wx7c3FZV.net] >>357 俺も初心者だけどイベントハンドラーとか?
367 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 17:59:13.72 ID:wx7c3FZV.net] 違うかw
368 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 18:14:31.40 ID:69L5Q9UW.net] guiって言うのか やれそうな気してきた、ありがとう そんなに難しい事をするつもりはない(出来る気もしない)から言語に拘りはないけど、どうせ触るなら時代に乗ってそう?で分かりやすそうなのが良いかなぁと
369 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 18:36:02.89 ID:xS/SyeLk.net] pythonをざっとやってdjangoかなあ
370 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 21:08:07.66 ID:pRyvkJpa.net] GUIって意外と難しいぞ 非同期処理なんとなくわかる程度まで行かないと厳しい ボタン置くだけならJavascriptが一番楽 ブラウザとテキストエディタがあればいい。
371 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 21:50:25.88 ID:bHtz5ue8.net] GUIだけならdelphiとかどうだ?
372 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 22:04:11.64 ID:wj1ibNBr.net] 20年前ならまだしも今delphiは・・・
373 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 10:34:45.08 ID:nn6oofM8.net] >>357 わしも初心者ですが... ボタンとかプルダウンメニューとかマウスを使う前提の環境 = gui ボタンとかの部品 = ウィジェット それらを使うためのサブルーチン群 = guiツールキット ボタンが押されたとかの出来事 = イベント ボタンとか配置するソフト = guiデザイナ pytyonはguiツールキットが多すぎるぐらい恵まれてます。 わしはpyqt5使っております。ほかはtkinter、WxPython、pygtk、Kivy が有名。 でも意外と楽ちんなデザイナが少ない気がします。 pyqtのqtデザイナ、tkinterのPAGEが使いやすいかと思います。
374 名前:デフォルトの名無しさん [2022/02/27(日) 19:13:19.38 ID:EPp3U+v4.net] guiキット恵まれてんのにexe配布が絶望的… 頼むからpyinstallerちゃんダイエットしてくれや
375 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 19:29:40.89 ID:6fl1teDT.net] 最初からexe配布が視野に入ってるなら 処理的にどうしてもpython必須ってんじゃない限り 別の言語使った方がいい
376 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 21:23:29.75 ID:w26qCfYC.net] >>368 ホントそれ
377 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 09:01:21.60 ID:10TVIxo2.net] >>368 今のところそんな予定は全くないんだけど、 例えば何の言語だと便利なのがあるの?
378 名前:348 [2022/02/28(月) 12:02:04.82 ID:nBtp+f0s.net] 皆さまありがとうございます、皆様のおかげで問題は解決しました
379 名前:デフォルトの名無しさん [2022/02/28(月) 15:17:54.00 ID:nBtp+f0s.net] https://atcoder.jp/contests/abc241/tasks/abc241_a この問題で、 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 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 15:32:20.23 ID:UX0HcLa3.net] B=[] ←要素数ゼロで初期化 B[i]= ←i番目の要素に代入。だから要素数の範囲(レンジ)からアウトしてる
381 名前:デフォルトの名無しさん [2022/02/28(月) 16:29:27.67 ID:nBtp+f0s.net] >>373 ありがとうございます、 つまり最初に有限この要素のリスト B=[0,0,0,0,0,0,0,0,0,0]を作っておいて後からそれらの値に代入すれば問題は解決されるのでしょうか?それが一番いいやり方でしょうか?
382 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 17:08:39.69 ID:BVEEYcFL.net] >>374 コードがおかしい上に、C++って書いてあるけど。 https://atcoder.jp/posts/37
383 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 17:23:45.04 ID:BjQFST3O.net] >>374 数字が1個ずつ渡されると勘違いしてる前提だとしても Bをリストする意味ないしi = 0 や i += 1するのも意味がないよ 入力は1行で10個の数字が渡されるから 直接splitして各要素を数値にしてlistとして変数に代入すればいい
384 名前:デフォルトの名無しさん [2022/02/28(月) 18:22:56.81 ID:uUgrFe+p.net] 自己解決しました ありがとうございます
385 名前:デフォルトの名無しさん [2022/02/28(月) 18:24:43.32 ID:7jUXLESA.net] >>376 ありがとうございます
386 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 19:33:18.82 ID:QtV0mrZw.net] このタイプの入力はいつも内包表記でやってるな a = [int(i) for i in input().split()]
387 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 07:16:31.85 ID:8HE09WEK.net] パイソン学べばアプリ作れると思ってはじめてみたけど パイソンは言語のひとつであってそれだけではアプリを作れないんだね
388 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 07:48:40.95 ID:OUtPpYxS.net] すまんが日本語で話してくれんか
389 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 08:15:47.03 ID:rKWo9dcG.net] Pythonのライブラリも学べば、限界はあるが色んなアプリが作れるど
390 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 08:33:59.79 ID:aeRvHbuv.net] デスクトップアプリはあまり作り易くないな tkinter使えばいいけど
391 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 09:47:11.96 ID:nY7C5f4n.net] >>380 そうだよ Pythonに限らず言語学んだだけではアプリは作れないよ
392 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 10:14:51.79 ID:aeRvHbuv.net] むしろサーバー設置してそこでブラウザ経由で動くアプリ作るのが一番いい
393 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 10:16:01.62 ID:FpudFrD4.net] >>384 > Pythonに限らず言語学んだだけではアプリは作れないよ これは正しいけど > パイソンは言語のひとつであってそれだけではアプリを作れないんだね とは違う話だろ
394 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 10:36:06.98 ID:FuAp7249.net] 奥が深い話だな というか考えるレベルによって変わる バカなこと言えば、phthonマスターしてても端末やOS電源なんかが必要だから、pythonだけじゃアプリを作れない 多少まともなこと言えば、C++マスターしててもWin32APIなど知らないとWindowsGUIアプリ作れないみたいに、アプリ作るには言語以外の知識も必要になる
395 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 10:47:23.71 ID:xsw3hO9n.net] めちゃくちゃ浅い話やないかーい!
396 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 11:11:01.13 ID:cMGuQY9h.net] アプリっていうのはGUIアプリのことかな? CUIだって立派なアプリよ
397 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 12:19:45.24 ID:ZphrWLt8.net] アプリってのはアプリケーションソフトのことやで 日本語に訳すとは自分で調べてみてね
398 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 12:44:44.67 ID:FuAp7249.net] 今の時代はアプリはスマホアプリのことを指して、PCアプリをアプリと呼ばない人もいるからな pythonでスマホアプリを作るのに言語だけじゃというのかもしれない
399 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 13:00:42.80 ID:tGBWMiyL.net] 必死すぎww
400 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 15:34:17.13 ID:d7YWy2NT.net] アプリってのは俺たちの言うところのプログラムってやつだな
401 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 15:57:55.97 ID:mo+aGJJz.net] 俺たち?? 一緒にしないでくれるかな
402 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 18:08:42.06 ID:bPAr9M5f.net] Python + kivy でアプリ作ったが、 BuildozerでうまくAPKが作れません。 Ubuntuで作成していますが、解説サイトが少なすぎて、 どのように直せばいいのか分かりません。 アプリからCSVファイルを読み込むのに、Windowsなら csv.readerでできますが、 Android上では、上手くできない。 こういう違いを解説しているサイトありませんか??
403 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 18:50:50.61 ID:Mp5ZQhC2.net] 100%勘でいうけどcsvの読み取り処理じゃなくて権限の問題じゃない?
404 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 19:57:52.20 ID:bPAr9M5f.net] >>396 あ…、なるほど。それも確かにありますね…。 権限付与とか、Ubuntuでは関係ないので、 apk作成してから実際に確かめるしかないんですかね…。
405 名前:デフォルトの名無しさん [2022/03/01(火) 20:37:15.87 ID:rZFH8Ry6.net] そんな漠然とした質問されましても・・・。
406 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 21:57:53.58 ID:Uxf89f5s.net] やってみるしかないじゃなくて普通にAndroidの権限付与調べればいいじゃん
407 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 19:05:15.86 ID:JpI2oqvB.net] numpyみたいに左辺値にも数値を取れるようなスカラー倍の実装ってどうやればいいんでしょうか? ↓みたいなものを実現したいです vec = Vec3d(1, 2, 3) vec = 3 * vec vec * 3は普通にVec3d.__mul__()を書けばいとわかりますが…
408 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 19:13:16.50 ID:GIXfNvH2.net] __rmul__ https://docs.python.org/ja/3/reference/datamodel.html#object.__rmul__
409 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 19:31:01.69 ID:JpI2oqvB.net] ありがとうございます助かりました
410 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 23:37:34.10 ID:JgRDiBWO.net] >>401 後学のために知っておきたいんだが、rmulが素直な性質を持っていない場合(たとえば、s * vecでsが3の倍数のときだけベクトルの要素にすべてsinが適用される)、 3 * 4 * vecの評価順ってどうなるの? 12 * vecになるか、3 *(4 * vec)になるかで結果が変わってくるよね?
411 名前:デフォルトの名無しさん [2022/03/02(水) 23:51:59.12 ID:JCVrS93n.net] 優先順位が同じだから左から処理されて12*vecになる。
412 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 00:14:52.94 ID:opDE9Pw0.net] >>404 サンキュー! 八元数なんかだと結合法則成り立たないから実装には要注意だね んなもん使わないけどw
413 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 11:37:39.24 ID:MIHsZ6Ov.net] '2022-03-01'という文字列と今日の日付を比較したいのですが、うまくいきません。 文字列は datetime.datetaime.strptime(ooo,'%Y%m%d') で変換できました。 比較対象は、 datetime.date.today() かdatetime.datetime.now() にしてもだめでした。 よろしくおねがいします。
414 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 12:32:25.24 ID:iy0ngH3c.net] >>406 from datetime import date date.fromisoformat("2022-03-03") == date.today()
415 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 12:56:08.30 ID:uKQKiz/u.net] datetimeだかdateだか、ちょっとした書きミスがバグにつながるから こういうのはyear、month、dayを抜き出して、3回比較するのが確実
416 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 13:02:19.17 ID:B47DPcJE.net] そこはテストコード書こうよ
417 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 14:29:17.12 ID:uKQKiz/u.net] テストコードも同じ過ち起こして、テスト通るのにバグるってなるんだよ・・・
418 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 17:06:11.44 ID:QPV1pV4A.net] >>407 >>408 ありがとうございました。無事に解決しました。
419 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 17:20:07.18 ID:KpuntXeF.net] >>410 それはテストの書き方が悪いよ
420 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 19:15:45.74 ID:bgg8zGG6.net] >>410 お前テストコード書いたことないだろw
421 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 19:26:32.29 ID:uKQKiz/u.net] テストを神聖視しすぎ。本体とテストの実装者が同じだったら同じ過ちを犯すものだよ 最近見かけた日付関連だとファイル内の文字列"yyyy/mm/dd"と現在日を文字列比較してて しかも現在日から文字列作るのをロケール任せにしてたから、海外だと"mm/dd/yyyy"になってバグるというのがあった こんなのロケール知らずに普通にテスト組んでたら検出されない
422 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 19:45:04.76 ID:o+Rr4hsu.net] 恥の上塗り
423 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 19:53:53.66 ID:09CehFjH.net] tryすれば済む話のような
424 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 21:10:29.99 ID:bgg8zGG6.net] >>414 > テストの実装者 まじでテストコード知らんのやな ロジック書いてそうw
425 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 22:14:30.67 ID:drOOnciu.net] >>414 違うロケールでテスト流せばすぐ検出されるよね? そのケースは個別のテストケース内で確認すべき項目というより別ロケールでのテストを計画しなかった人やチームに落ち度がある 日時を扱う場合にロケールやタイムゾーンは要求仕様の一部だから事前にテスト計画に入れるのが普通
426 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 22:31:16.34 ID:GbOH5gri.net] >>414 テストの考え方間違ってるだろ 「テストしたから不具合はない」ではなく 「少なくともテストした項目については、挙動の確認/担保が出来ている」だぞ (ユニットテストはバグを検知するのでなく、動作担保のために作る) その例で言えば明らかにテストケース漏れだし むしろそういう懸念があるならレビューの時に真っ先にチェックするだろ テストコードを整備せずに、実装側を無意味に歪める方がおかしいだろ
427 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 08:01:41.44 ID:BHHJY9k/.net] テストしたからバグは少なくなってるはず 程度だろ
428 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 09:16:31.36 ID:Gnf2P8af.net] def test() print(1234) #=enddef test こんなエンドコメント入れてるんだが、ないかな? 長くなるとわかりにくいんだもん
429 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 10:06:50.30 ID:8OZVHpIn.net] ありだよ
430 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 10:19:45.82 ID:7BMKLnGc.net] そんなの見たら無言で削除するぞ
431 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 10:22:54.28 ID:tJDnSpmC.net] >>421 ちゃんとしたエディタなりIDEなり使ってたら 関数単位で折りたためる機能あるから わざわた付けなくても……
432 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 10:56:36.50 ID:8OZVHpIn.net] そりゃIDEで折りたためたり、コンボボックスにその関数名出てたりするけど そういう機能があるのと見やすさはまた違うからな 言語は違うけど、windowsのソースコードでもその手の終了示すためのコメントは使われてる
433 名前:デフォルトの名無しさん [2022/03/04(金) 11:30:20.88 ID:2+JR4Ldk.net] 長くしなければいいじゃわん
434 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 11:49:48.53 ID:dxtR1KDL.net] >>421 ねーわ、と思ったが 2000行程度のファイルで試してみたら確かに視認性が上がった カラーリング次第なところはあるがテストコードに限らず有りだわ
435 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 13:29:46.03 ID:61BdsMwc.net] 俺もあったら削除するぞ派かな。 折り畳みの邪魔にしかならんし。
436 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 14:14:06.89 ID:MfsJLXwz.net] endがあるRubyでも似たようなコメント書いてたな このendはifだっけ?whileだっけ?で見に行くのが面倒になって付け始め 条件なんだっけ?で条件もendコメントに書き始めたら 見栄えが汚くなったなww
437 名前:デフォルトの名無しさん [2022/03/04(金) 19:29:27.15 ID:k14r3fvN.net] while True: try: kakaku = btc_ask time.sleep(30) すんません教えて下さい、 30秒おきにループして、 BTCの価格を取得するプログラムなのですが、 この取得した価格を、 30秒前の前回取得した価格と比べるには、 どうしたらいいでしょうか。 30秒前のkakaku < 現在のkakaku このようなことがしたいです、 ループの中でkakakuを保持して、 次回のループの時の価格と比べたりできますか?
438 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 19:55:32.25 ID:7RF2xiEj.net] 5x7(横x縦)の2次元リストのなかにデータが格納されています。 @その中に重複しているデータは何個あるか Aその重複しているデータを抽出する が、したいです。 誰かお分かりになる方、教えて下さい。
439 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 21:58:38.89 ID:Vr/hXoC/.net] 重複しているデータが1種のみ3箇所にあったときの回答がしりたい
440 名前:デフォルトの名無しさん [2022/03/04(金) 22:21:09.17 ID:nnG5KH7G.net] >>430 ループの外にprev_kakakuとcurrent_kakakuを用意しておいて ループ内でif kakaku :=
441 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 22:40:01.34 ID:rKYLL8CC.net] ary = [ [ 1, "a", 2 ], [ 2, "a", "b", 2, 3 ] ] この場合、出力はこれで良いの? "a" => 2 2 => 3 "a"が2個、2が3個
442 名前:デフォルトの名無しさん mailto:sage [2022/03/04(金) 23:06:04.21 ID:pOcMuLi2.net] collectionsのcounterで終わりでは?
443 名前:デフォルトの名無しさん [2022/03/05(土) 00:22:47.69 ID:74G/Knts.net] >>433 なんとかできました、 ありがとうございます!
444 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 18:47:19.30 ID:IA7poZPw.net] anacondaとVSCODEで開発しています 昨日あたりから急にconda install したcv2とかpyautoguiとかをimportするとモジュールが見当たらないとエラーがでるように なってしまいました。 ですけど、conda info -eで見るとちゃんと環境は切り替わっているのですが、 pprint.pprint(sys.path)でimport先を確認するとなぜかcondaのbaseを見ています import先を切り替えるにはどうすればいいのでしょうか。 なんかUSBHDDを接続してドライブを増やしたときにpython実行した辺りから使えなくなった気がします
445 名前:デフォルトの名無しさん mailto:sage [2022/03/05(土) 23:09:14.83 ID:aOITLV1E.net] エラーメッセージで検索すれば? anaconda の使い方や、import パスの仕組みなどを調べるとか
446 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 15:40:23.36 ID:5YdwNKnV.net] スクレイピングがCloudflareでブロックされてアクセスできなくなってもうた Selenium(headlessオフ)でアクセスしてもダメ! でもChromeからのアクセスは大丈夫だから SeleniumとChromeってやっぱ違うんだね、今のところお手上げ>< フリー版?のcloudscraperでもダメっす、何か対策ありますか?
447 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 15:52:11.57 ID:GH3f7UsN.net] どのサイトをクロールしようとしてるのか分からないと 徹底的にブラウザの気持ちになってリクエストを再現しろくらいの一般論的なことしか言えんよ
448 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 19:29:03.82 ID:LhKo5a0F.net] >>421 有りか無しかで言ったら有りだけど、それ、pythonのデザインポリシーを冒涜してるだろ(笑)
449 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 21:38:43.85 ID:SX3V4D25.net] Selenium を使う場合、手動でブラウザを使うのと、全く同じようにシミュレーションすべき どこかが異なると、それを判別してブロックされる
450 名前:デフォルトの名無しさん mailto:sage [2022/03/06(日) 21:44:19.84 ID:WkkDxprJ.net] そんな複雑なチェックしてることなんてまずないだろ どうせUAがデフォルトのままとかその手がじゃないか
451 名前:デフォルトの名無しさん [2022/03/06(日) 23:17:19.54 ID:TwfM3eez.net] >>443 そいつrubyキチガイやで 触んな
452 名前:デフォルトの名無しさん mailto:sage [2022/03/07(月) 07:17:49.90 ID:TZQuxR5Y.net] ルビキチ
453 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 09:39:26.69 ID:ZX9Pe2Of.net] ルビキチ rb mylist=mystr.split(",") mysize=mylist.size() mystr=mylist.join(",") py mylist=mystr.split(",") mysize=len(mylist) mystr=",".join(mylist)
454 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 10:02:18.65 ID:yCGAKR37.net] おねいちゃのマイリス
455 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 18:04:03.25 ID:/uluuvq4.net] ある数列の連続性をカウントしてまとめたいのですが forで回してこうやりました https://ideone.com/lcnVcl ↑の例では #数列データ 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 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 18:14:37.92 ID:pY0AUvqt.net] >>448 元のseriesと、shiftメソッド使って一個行方向にずらしたseriesを引き算して、 1なら連続、とかやる方法はあるけど、あんまりエレガントにならないし、 遅いしメモリも食うしいいことなさそうな感じだなあ。
457 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 18:16:01.08 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 18:56:13.93 ID:/uluuvq4.net] >>449 なるほど >>450 今の値が1連続目だとすると 常に、1連続以上になる確率が高くなりそうな気がしますが違うでしょうか
459 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 19:33:19.86 ID:P7fXjWPX.net] https://ideone.com/rlGHHX 途切れた時点でのi-mが連続回数 何がやりたいのかいまいちわかんないけど
460 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 21:11:58.59 ID:/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 名前:デフォルトの名無しさん mailto:sage [2022/03/08(火) 23:14:01.22 ID:NoeFnt/B.net] 1が出てきたところで分割するだけならmore_itertoolsのsplit_beforeが簡単 Counter(len(x) for x in split_before(array, lambda x: x == 1)) ある要素の次に連続した数字が出てくる確率を求めたいなら yield前に計算が必要なのでsplit_beforeはそのまま使えない https://ideone.com/TMXIXG (Counterの要素数が多くなるようならメモ化とかで最適化)
462 名前:デフォルトの名無しさん mailto:sage [2022/03/09(水) 01:42:21.21 ID:5uyncfY/.net] >>454 ありがとうございます この賭けをするかどうか、がパッと見ですごくわかりやすいですね >メモ化 やってみたいと思います! ありがとうございました
463 名前:デフォルトの名無しさん mailto:sage [2022/03/09(水) 13:55:40.04 ID:uPg2QLX1.net] 画像認識用に Pillow package 追加した後に pyinstaller でexe化したら、吐き出されるファイルのサイズが全て大きくなりました。 --exclude pillow で除外するしかないのでしょうか? よろしくお願いします
464 名前:デフォルトの名無しさん [2022/03/09(水) 17:38:50.03 ID:Ey9V1kD3.net] >>456 pyinataller 肥大 検索
465 名前:デフォルトの名無しさん mailto:sage [2022/03/09(水) 23:53:04.35 ID:+dlDtb5P.net] パイエグゼ
466 名前:デフォルトの名無しさん mailto:sage [2022/03/10(木) 11:17:29.77 ID:XgQ7nsDt.net] >>457 ありがとうございます。 仮想環境を構築してexe化するのがベターなのでしょうか? 不要なライブラリを一つずつ除外してアーカイブするってのは現実的じゃないですよね? プロの皆さんはどうやってますか?
467 名前:デフォルトの名無しさん mailto:sage [2022/03/10(木) 11:37:47.77 ID:XgQ7nsDt.net] >>458 ありがとうございます。 py2exe でしょうか? pyinstaller に比べるとかなり軽量化されますね。onefileになりませんが、解決できそうです。
468 名前:デフォルトの名無しさん [2022/03/10(木) 12:19:42.66 ID:F03aXzW3.net] >>459 プロジェクトごとに最小限の環境切って出力までいく 他に手はない だからガバガバAnacondaとかが嫌われているんだね 組み込みに、必要なライブラリを必要なときに入れていく。最後にpyinstallerを入れてexe これが最小
469 名前:デフォルトの名無しさん [2022/03/10(木) 12:23:23.50 ID:F03aXzW3.net] py2exeやcxFreezeはディスコン
470 名前:デフォルトの名無しさん mailto:sage [2022/03/10(木) 12:44:48.00 ID:2dGzdKSz.net] exe化自体がPythonには向かないから肥大化は諦めろとしか まともな使い方したいならpip対応してインストーラーを配布
471 名前:デフォルトの名無しさん [2022/03/10(木) 14:01:53.94 ID:fg/vrfqm.net] まあenv+最小環境でも20MBスタートくらいだしな
472 名前:デフォルトの名無しさん mailto:sage [2022/03/10(木) 14:22:13.82 ID:7DfxLAmP.net] なんだそんなもんか .NET Coreのシングルバイナリ(60MB)に比べたら小さいね
473 名前:デフォルトの名無しさん mailto:sage [2022/03/10(木) 14:24:28.69 ID:7DfxLAmP.net] >>463 やるにしても超初心者の手を出すことじゃねえなあ 超初心者ほど必要になってしまうジレンマもあるのかも知れんが
474 名前:デフォルトの名無しさん [2022/03/10(木) 16:22:34.24 ID:fg/vrfqm.net] >>465 anaconda+tensorflow+kerasあたりのお手軽AI環境構築で700MBくらいだった気がする
475 名前:デフォルトの名無しさん [2022/03/11(金) 09:47:30.49 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/03/11(金) 10:22:58.59 ID:mIOifofz.net] https://docs.python.org/ja/3/library/typing.html#typing.Optional
477 名前:デフォルトの名無しさん [2022/03/11(金) 11:13:57.75 ID:Ozj2kjqC.net] >>468 Optional パイプで区切る書き方は3.10以降しかできない
478 名前:デフォルトの名無しさん [2022/03/11(金) 11:47:52.31 ID:jL2x9Ttt.net] すまん、書き方が悪かった None必須なのかなと思って。引数に何も入れなかったらNoneじゃなくて未定義なのでは? あとこれが通るのも違和感ある 初期化はお
479 名前:汲ネので? class Foo(): def __init__(self): __self.var : list[int] = [] # コイツ def insert(self, value: int): __self.var.append(value) [] [ここ壊れてます]
480 名前:デフォルトの名無しさん mailto:sage [2022/03/11(金) 12:38:29.51 ID:mIOifofz.net] []は0個のintからなるListで正当
481 名前:デフォルトの名無しさん [2022/03/11(金) 12:59:50.35 ID:jL2x9Ttt.net] >>472 そうなのか… 了解した
482 名前:デフォルトの名無しさん [2022/03/13(日) 22:05:27.78 ID:Eg2cTOah.net] > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw クソチョンはウンコを食べる糞食人種w クソチョンはゲリ便をじゅるじゅると うまそうに食うw
483 名前:デフォルトの名無しさん mailto:sage [2022/03/15(火) 21:22:46.39 ID:uGLxHLAf.net] PysimleGUIで使いたい機能が動かない事があるんですが、 もしかしてJupyterNotebookってPysimleGUIと相性が悪いとかってありますか?
484 名前:デフォルトの名無しさん mailto:sage [2022/03/15(火) 21:52:58.31 ID:EzbuthJ5.net] GUIは対話環境で作るものではないかな
485 名前:デフォルトの名無しさん mailto:sage [2022/03/15(火) 22:12:49.68 ID:fNg5XgpX.net] 「ボタンを作りますか?」 「何個作りますか?」 みたいな?
486 名前:デフォルトの名無しさん [2022/03/15(火) 22:19:24.09 ID:onaoSqbL.net] 逆にそれはjupyterがすごい vsc使おう
487 名前:デフォルトの名無しさん mailto:sage [2022/03/15(火) 22:43:02.98 ID:IXWkoe6F.net] SmalltalkやZopeみたいな実行環境自体がGUIでIDEってやつかとおもったら PySimpleGUIはJupyterの外なのか そこまでうれしくはないな
488 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 00:21:06.85 ID:oBLq1y/2.net] >>477 具体的には例えばこのページ(ttps://knt60345blog.com/pysimpleguigui_popup2/)にある 「popup_get_file」を使ってファイル読み込みダイアログが簡単に出るみたいに書いてあるんですが 実際にはダイアログボックスが表示こそされるもののそれ以降はエラーだらけだったりって感じです。 >>478 VSCって奴がメジャー?だったりするんですかね 教本に載ってた通りに環境をセットアップした状態だったんですが やっぱそういう相性とかあるんですね・・・
489 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 01:22:04.38 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 16:29:22.67 ID:KaTnXwme.net] 手動でモジュールをインストール(コピー)するにはどうしたらいいのでしょう? 環境コピー元でpip install numpyするとlib/site-package/numpyができる 環境コピー先のlib/site-package/の中にそのnumpyフォルダを単純にコピーしてやればいいかと思ったのですが これだと'No module named numpy'になってしまいます コピー先でもpip installしてやればいいのですが、nuget ironpythonで作った環境なのでそれができず(方法がわからず) 単純にコピーしてやればいいやというのが発端で起きた疑問です
491 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 17:17:48.57 ID:TuzuQZwE.net] >>482 ユーザじゃないからわからんけど ironpython PYTHONPATH でググってみて
492 名前:デフォルトの名無しさん mailto:sage [2022/03/16(水) 17:35:55.37 ID:KaTnXwme.net] searchPaths.Add(@"\Lib\site-packages"); engine.SetSearchPaths(searchPaths); でパスを追加すると、'Non-ASCII character '\xef' が出て numpyのpyファイルにエンコード指定を追加すると、今度はunexpected 'from'というようなエラーが出てしまうけれど エラーが出るということは正常にコピーできてるのかな。とりあえず動かなそうなので諦めます
493 名前:デフォルトの名無しさん [2022/03/17(木) 11:48:34.57 ID: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 名前:デフォルトの名無しさん [2022/03/17(木) 17:42:15.85 ID:o4f7Z1L+.net] >>485 ちなみに、サポート期限切れのバージョンを使わなきゃいけない理由はなに?
495 名前:デフォルトの名無しさん [2022/03/17(木) 17:46:15.17 ID:o4f7Z1L+.net] >>485 "Requests officially supports Python 2.7 & 3.6+." https://pypi.org/project/requests/ Requestsでも3.6以上じゃないとサポートしていない
496 名前:デフォルトの名無しさん [2022/03/17(木) 17:50:03.61 ID:o4f7Z1L+.net] >>485 pip install requestsは何もエラーや警告もでずに正常終了した? pip install requests実行してから、適当な記事からいくつかサンプルコードを打ち込んだときは、ImportError: No module named requestsはでなかったの? Windowsのバージョンはなに?
497 名前:デフォルトの名無しさん mailto:sage [2022/03/17(木) 19:01:16.89 ID:Jm9Rrpw3.net] pip\_vendor\はあくまでもpip自体が使用するモジュール 他のパッケージでも_venderディレクトリに限らず依存モジュールを持ってる場合もあるが 特定バージョンに依存してたり改変されてる可能性もあるのでもったいないからと言って外部から使おうとしちゃだめよ
498 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 09:41:06.94 ID:hUwp9ZtX.net] ├label 判定処理の開始 │├┬処理1の演算(複数行) ││└演算の結果で「判定処理の終了」に飛ぶ ││ │├┬処理2の演算(複数行) ││└演算の結果で「判定処理の終了」に飛ぶ ││ │└┬処理3の演算(複数行) │ └演算の結果で「判定処理の終了」に飛ぶ │ ├label 判定処理の終了 こういうことやりたいんだけど、gotoを使わないでやる方法てある? gotoは推奨しないていってるよね。 フラグとか使って、前の判定がNGだったかを見る方法しかないのか? 自分が考えたのは1回だけのfor文の中にこの判定処理入れて、途中てbreakでgotoの代わりをしたんだが、
499 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 10:09:20.13 ID:wuzcJXmn.net] >>490 >自分が考えたのは1回だけのfor文の中にこの判定処理入れて、途中てbreakでgotoの代わりをしたんだが、 単純に処理1の終了時に結果に応じてreturnおけば、それで簡単に抜けられるぞ ガード節とか早期returnで調べると分かりやすいかも
500 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 10:59:49.92 ID:hUwp9ZtX.net] >>491 returnて関数以外に使えるの?
501 名前:デフォルトの名無しさん [2022/03/18(金) 11:41:42.28 ID:EttWLc7+.net] 端折りすぎて何がしたいかわからん 単純に if func1() elif func2() else func3() の構図じゃねそれ
502 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 11:54:17.65 ID:S88dx27z.net] 1→2→3→終了処理 1→2→終了処理 1→終了処理 この組み合わせになるってことだろ ifで簡単にやるなら ret = func1 if(ret) ret=func2 if(ret) ret=func3 finally()
503 名前:デフォルトの名無しさん [2022/03/18(金) 19:08:01.39 ID:RDOlUVi1.net] Flaskでつくったアプリをデプロイ先で"git clone", "pip install -e ."して入れていて、アップデートがあった場合はgit pullだけしています こういう使い方ってpipで管理できない以外で何か問題ってありますか? 確かでなくても何となく気になる程度の事でも書いてもらえるだけでも有難いです
504 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 19:21:48.00 ID:/+NJrK2n.net] デプロイ時に公式リポジトリが落ちてる可能性あるからアリ いまどきはコンテナ生成時にpip使うからそういうリスクないけども
505 名前:デフォルトの名無しさん mailto:sage [2022/03/18(金) 20:29:14.39 ID:GX/cM61n.net] pypiのパッケージって存在が保証されるんじゃなかったっけ
506 名前:495 [2022/03/18(金) 20:31:32.06 ID:RDOlUVi1.net] すいません、言葉足らずでした 自分で作ったアプリでリポジトリも自前のリポジトリです
507 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 00:10:30.98 ID:k2W7TKOh.net] >>495 多言語のバージョンマネージャーのanyenv で使もう、rbenv のインストーラ https://github.com/rbenv/rbenv-installer/blob/main/bin/rbenv-installer これを簡単に説明すると、 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 https://github.com/rbenv/rbenv.git git checkout -b master origin/master fi
508 名前:499 mailto:sage [2022/03/19(土) 00:18:51.04 ID: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 https://github.com/rbenv/ruby-build.git "${rbenv_root}/plugins/ruby-build" fi
509 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:05:43.22 ID:/3rRpnUt.net] こんにちは。 文字列を空行で分割したいのですが 良い方法が見つからず悩んでいます。 たとえば、文字列を2つに分割したいです。 良い方法があればヒントをいただけると助かります。 ---------はじまり aaa bbb <==== ここで分割したい ccc ddd ---------おわり
510 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:06:40.03 ID:/3rRpnUt.net] サンプルの文字列がおかしくなったので再度書き込みます。 bbb と ccc の間の空行で分割したいです。 aaa bbb ccc ddd
511 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:29:46.04 ID:GJHZpfLi.net] gap_vector とかの話?タダの宿題?
512 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 10:40:05.16 ID:93YS43Ns.net] pythonって簡単にできる命令が多いからそれ探しがちだけどそういうの考えなきゃいくらでもできるだろ 単純に配列に一行ずつ読み込んで、要素の中身をチェックして空ならそこまでの要素を切り出してくとか 全部をひとつの文字列として変数に入れて、split(\n\n)みたいな感じで分割すればいい
513 名前:デフォルトの名無しさん [2022/03/19(土) 12:41:10.12 ID:umrdatZo.net] プログラムの初心者です。 書籍を見ながら勉強しているのですが、 指示通りに入力しても正常に反応しなくて、どこが間違っているのかわかりません。 どなたか教えていただけませんか?
514 名前:デフォルトの名無しさん [2022/03/19(土) 12:51:46.78 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 12:59:31.84 ID:d0jgyl+4.net] ファイルの文字コードがSJISになってるんじゃないかな UTF-8で保存し直してみたら
516 名前:デフォルトの名無しさん [2022/03/19(土) 13:06:08.80 ID:CtZdn1W5.net] >>506 vscode上ではそれで動く
517 名前:デフォルトの名無しさん [2022/03/19(土) 13:12:31.23 ID:umrdatZo.net] >>506 です。 こちらで解決しました! お騒がせしてすみません。
518 名前:デフォルトの名無しさん [2022/03/19(土) 19:10:36.78 ID:ozskatPz.net] if x : return elif y : return else: 処理 みたいな、ガード連打するときなんか改行なしで行きたい気がするんだけど やっぱ許されぬ罪なのですか神父様
519 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 19:21:11.13 ID:guM/7r5m.net] elif/elseにする必要なくない?
520 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 20:04:09.95 ID:XBFSEYPW.net] Kotlinとか書いてると実にそう思うが、そんな将来は来ない
521 名前:デフォルトの名無しさん [2022/03/19(土) 20:47:24.25 ID:26UREXqN.net] if x or y: __return else: 処理 じゃだめなん?
522 名前:デフォルトの名無しさん [2022/03/19(土) 21:45:40.71 ID:pKV2CHvJ.net] >>513 主題はそこじゃなくて アーリーリターンが続くような構造では改行レスのreturnと書きたいが、許されるかどうか ということでは
523 名前:デフォルトの名無しさん [2022/03/19(土) 21:51:17.02 ID:GkqZBVMg.net] 大学の研究室のコードとかはめちゃクソ改行レス あいつら道具は動けばいいんでしょ精神だからぬ
524 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 23:15:07.02 ID:guM/7r5m.net] でもカッコやendいるわけじゃなし 1行returnくらいあってもむしろ見通しいいし
525 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 23:25:51.88 ID:ahrdIXj0.net] インデント強制するような糞言語だからなぁ
526 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 23:33:43.71 ID:1HyJgrvG.net] if x or y : return orでつなげるなら一応一行でも行けるぽいけど
527 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 23:50:57.25 ID:1HyJgrvG.net] ガード節早期リターンをいれるなら if elif elseでつなげるよりもifの連打でとことんリターンさせた方が条件の独立性も保たれるしわかりやすい てかelifやelse 意味ないし if a: return if b: return if c: return
528 名前:デフォルトの名無しさん mailto:sage [2022/03/19(土) 23:53:44.87 ID:1HyJgrvG.net] でも基本的にフロー制御せずに済むようにするのが一番
529 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 00:04:23.22 ID:rHLSIq5o.net] jupyterlabのvpythonの拡張機能を入れようとしたら 3.3.2~3.4.0と5.3.2~5.4.0を同時に求められたんですがどうしたらいいですか https://i.imgur.com/tBr5qLg.png
530 名前:デフォルトの名無しさん mailto:sage [2022/03/20(日) 07:50:41.23 ID:aLyHOWc6.net] >>501 Ruby では、空行は改行が2つ続くので、そこで分割すると、 input_text = <<'TEXT' あ い う え TEXT p ary = input_text.split( "\n\n", 2 ) # 最大で2分割 #=> [ "あ\nい", "う\n\nえ\n" ]
531 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 14:47:11.41 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 14:48:37.57 ID:PCBgHcJM.net] import b b.kansu(x) --- def kansu(x):print(x)
533 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 15:01:05.51 ID:ijxTKnpM.net] >>524 そうやりたいけど、 b.kansu()をb.kansu(x)に変更するのが大変だから、質問してる。
534 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 15:11:44.38 ID:BhdZW57e.net] 質問です 大量にあるpng画像の中にある特定の画像が含まれる画像だけ抽出することはできますか? 例:オンラインゲームの撃破ログ時に特定の画像が画面内に現れるとする(ヘッドショットアイコンなど) その画像は不変であるが、画面内のどこにあるかは不特定。 特定の画像のimgを先に作成しておき、その画像が含まれる画像のpngデータを抽出したい。
535 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 15:14:23.73 ID:PCBgHcJM.net] pyscreeze.locate
536 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 15:23:33.53 ID:48q5H/E5.net] >>523 できるけどおすすめしない import b b.x = “abc" b.kansu() bにxのアクセサ(プロパティ)つくるのがましかな
537 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 16:35:08.52 ID:ijxTKnpM.net] >>528 出来ました。 ぜんぜんおすすめのような気がする。 ありがとうございました。
538 名前:デフォルトの名無しさん mailto:sage [2022/03/22(火) 18:38:00.86 ID:qHCIAUP+.net] 変数じゃなく定数だったりすると、 本来は、別のconfig.pyあたりに書いて同じことをするんだっけ? import config as g g.x = 'abc' みたいに
539 名前:デフォルトの名無しさん [2022/03/22(火) 20:38:23.71 ID:Rdq5z+Lu.net] >>526 OpenCVのテンプレートマッチング
540 名前:デフォルトの名無しさん [2022/03/23(水) 15:54:16.61 ID:cM5bvOqV.net] bbox = [0, 0, 100, 100] l, t, r, b = bbox l = 20 print(bbox) -> [20, 0, 100, 100] こういうことがしたいんですが、どうすればいいですか どういう単語で検索したらいいのかすらわかりません
541 名前:デフォルトの名無しさん mailto:sage [2022/03/23(水) 16:22:45.21 ID:9UuCXyQL.net] bbox[0]指定だと困る理由は?
542 名前:デフォルトの名無しさん [2022/03/23(水) 17:07:45.87 ID:cgrsbd9g.net] >532 辞書使って無理やり。 bbox = { 'l': 20, 't':0, 'r':100, 'b':100 } bbox['l'] = 20 bbox_values = list( bbox.values() ) print( bbox_values )
543 名前:デフォルトの名無しさん mailto:sage [2022/03/23(水) 17:18:26.23 ID:PTuUM17Q.net] あえてやるならこんなのとか 単語で検索するとしたらオブジェクト bbox=([0],[0],[100],[100]) l,t,r,b=bbox l[0]=20 print(bbox) ->([20], [0], [100], [100])
544 名前:デフォルトの名無しさん mailto:sage [2022/03/23(水) 17:27:30.54 ID:Uj8u7VlE.net] 配列順に意味があるなら L,T,R,B = 0,1,2,3 bbox[L] = 20 とか 意味ないならクラスか辞書で保持すべき
545 名前:デフォルトの名無しさん [2022/03/23(水) 18:03:21.12 ID:cM5bvOqV.net] あーなるほど、そういう感じなんですね わかりました。ありがとうございます なんか要素へリンクしてて l = bbox[0] print(l) # 0 l = 20 print(bbox[0]) # 20 みたいな感じになると思ってました bboxクラス作ります
546 名前:デフォルトの名無しさん mailto:sage [2022/03/23(水) 19:08:25.09 ID:OkzK5R+n.net] >>537 話ずれるけど、要素を外で書き換えるよりも箱の拡大縮小みたいなメソッドを作る方が一般的な気がします
547 名前:デフォルトの名無しさん mailto:sage [2022/03/25(金) 13:39:47.22 ID:uOX7ULt1.net] openpyxlでxlsxファイルを作る時にひとつのシートに複数のグラフを描こうとしたらThe same chart cannot be used in more than one worksheetってエラメ吐いたんだけど何でだろう エラメでぐぐってもイマイチよくわからなかった
548 名前:デフォルトの名無しさん mailto:sage [2022/03/25(金) 14:33:26.73 ID:9HZfMhVl.net] chart2=chart1 とかやったりするとそうなるかも 複数チャート作る時に前のチャートを使いまわしたりしてない?
549 名前:デフォルトの名無しさん mailto:sage [2022/03/25(金) 15:27:53.71 ID:uOX7ULt1.net] 使い回しはしてましたね… グラフ描く回数の分同じ記述を何度もするのが嫌だったから関数にして複数回呼び出せばいいかと思ってた グラフ描画部分の関数に引数として描画シートとか参照するセルの範囲を渡してやってたんだけどそれじゃ駄目だったか
550 名前:デフォルトの名無しさん mailto:sage [2022/03/26(土) 06:26:35.95 ID:m+SAsqZm.net] ダメってわけじゃないけど気を付けないといけないポイントがある チャートとかのいわゆるオブジェクトのコピーはdeepcopy使う
551 名前:デフォルトの名無しさん mailto:sage [2022/03/26(土) 11:27:01.85 ID:qLHTxQhk.net] 配布するpyスクリプトで標準外パッケージを使いたいけどユーザの環境を汚したくないというときはvenvのような仮想環境か pyinstallerでまとめるくらいしか手は無いのかな。 どちらもpython.exe自体をコピーして大げさなんで、jsのwebpackみたいなパッケージのバンドルができたらよかったんだけど。
552 名前:デフォルトの名無しさん [2022/03/27(日) 17:22:26.41 ID: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 名前:デフォルトの名無しさん [2022/03/27(日) 17:44:38.62 ID:p/i0WnQH.net] >>544 >ファイルが開けませんでした。 この時どんなエラーがでましたか?
554 名前:544 [2022/03/27(日) 18:47:55.50 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 18:48:39.52 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 19:01:26.37 ID:ayYjDlX4.net] >>544 バイナリでglobしてバイナリでopenしてみれば? cp932がutf8の文字列として解釈されてるのが原因だと思う glob(b'*.jpg')
557 名前:544 [2022/03/27(日) 19:04:53.96 ID:nYvTQ02C.net] >>547 ありがとうございます! 無事ファイルが開けてプラグインが完成しました!!
558 名前:544 [2022/03/27(日) 20:00:09.87 ID:nYvTQ02C.net] もう一つ質問で悪いのですが これもGIMPです 数字を文字列にして文章とつなげているのですが その半角数字を全角数字にしようとしましたが エラーが出ます どうしたらいいのでしょうか? コードを書くと書き込めなかったので スクリーンショットを貼ります https://imgur.com/a/F2J1Ksw エラーはこちらです https://imgur.com/a/xv8Hcrt
559 名前:デフォルトの名無しさん [2022/03/27(日) 20:31:27.21 ID:p/i0WnQH.net] >>550 https://ideone.com/ 再現ができないのでここにコードを書いて、そのリンクを貼ってください コードを書いて、Runボタンを押すとリンクが生成されます こんな感じで https://ideone.com/UGO5O1
560 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 20:34:15.47 ID:px6SVueC.net] >>550 gimp2にバンドルされてるpythonは2.7なのでそのコードは使えないね
561 名前:デフォルトの名無しさん [2022/03/27(日) 20:35:54.32 ID:p/i0WnQH.net] Python2か
562 名前:544 [2022/03/27(日) 21:00:21.01 ID:nYvTQ02C.net] >>551 こうですか? https://ideone.com/cKytn2 >>552 python2の場合はどうすればいいですか?
563 名前:デフォルトの名無しさん mailto:sage [2022/03/27(日) 22:12:37.46 ID: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 名前:デフォルトの名無しさん [2022/03/27(日) 22:21:41.23 ID:p/i0WnQH.net] >>554 https://ideone.com/xemuRV これでどうですか
565 名前:544 [2022/03/27(日) 22:34:09.27 ID:nYvTQ02C.net] たびたびすいません、GIMPのモノです。 glob.globが治っていたのが勘違いで 今度はアドレスに日本語が入ってると何も検索してくれなくなりました どうしたらいいですか? >>> glob.glob(b"C:\\Users\\name\\Desktop\\新しいフォルダー\\*.jpg") [] >>> glob.glob("C:\\Users\\name\\Desktop\\新しい\\*.jpg".decode("mbcs")) [] >>556 ありがとうございます! 無事小文字から大文字になりました
566 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 08:06:48.20 ID:bggr0gZp.net] 書き間違いだろ 「新しいフォルダー」と「新しい」のどちらかが、存在しないのでは?
567 名前:デフォルトの名無しさん [2022/03/28(月) 11:24:31.81 ID:xKLASzt7.net] 久しぶりにPython2触ってたら痒くなってきた
568 名前:デフォルトの名無しさん [2022/03/28(月) 17:43:20.16 ID:FxPljt62.net] >>558 すいません地中で名前を変えたので 紛らわしくなりました 年のためもう一度試してみたのですが やはりフォルダー内を検索してくれませんでした
569 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 17:54:40.03 ID:rI7b9so+.net] 解決案じゃなくて恐縮だけど DOSの頃からAPI上のパス区切りはスラッシュで通るのに 入門書やサイトにバックスラッシュで記載あるのなんとかならんかな
570 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 18:42:28.40 ID:zYEeILU0.net] ソースコードをutf8で書いたらいけない、ソースがutf8でなくshiftjisになってる、のどっちかじゃないか
571 名前:544 [2022/03/28(月) 18:59:10.76 ID:FxPljt62.net] 自己解決です folder_path=folder_path.decode("utf-8") にしてみたら日本語でも行けました! お騒がせしてすいませんでした。 >>561 GIMPのコンソールだとglob.glob()の中はバックスラッシュじゃないと反応しなかったです
572 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 19:04:00.69 ID:rI7b9so+.net] >>563 そうなんだ わざわざ試してもらってありがとう Python2のglob実装みてみる
573 名前:デフォルトの名無しさん [2022/03/28(月) 19:27:15.27 ID:FxPljt62.net] >>564 のおかげで バックスラッシュに気づけたので 解決出来ました ありがとうございます >>562 気づかずすいません ありがとうございます! そういう事みたいでした
574 名前:デフォルトの名無しさん mailto:sage [2022/03/28(月) 19:41:51.56 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 03:06:27.47 ID:NFxs7VO2.net] 【悲報】俺が2時間かけて作ったプログラムがこれ [125096601] https://greta.5ch.net/test/read.cgi/poverty/1649069479/
576 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 17:14:08.59 ID:EwNP7gad.net] uwscのBETWEENSTRに該当する 指定文字列から、AとBの検索語の間で文字列をカットする関数はありますか?
577 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 17:57:12.47 ID:qZGMajZg.net] >>568 https://docs.python.org/ja/3/library/re.html#regular-expression-syntax 正規表現の (?<=...) と (?=…) をつかって re.search() あたり?
578 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 18:23:32.74 ID:h0FbB6w5.net] まんま実装してるライブラリも探せばあるんだろうけど、普通は正規表現だろうね python 正規表現 タグの間を取得」とかでぐぐれば
579 名前:デフォルトの名無しさん [2022/04/05(火) 18:27:10.86 ID:/cMxK+XJ.net] zipファイル解凍しなくてもファイル数の確認ができるのだが rarファイルではできないの?
580 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 18:59:43.10 ID:EwNP7gad.net] >>569 ありがとうございます labでいろいろ試してみます
581 名前:デフォルトの名無しさん [2022/04/06(水) 00:25:28.29 ID:vOjBJMWB.net] テスト
582 名前:デフォルトの名無しさん [2022/04/06(水) 18:52:36.40 ID:V6m5p1Ce.net] https://www.python.jp/train/loop/index.html を参考にwhile文でクレジットカードのアカウント管理プログラムを作ってみようと思ったんだけど 例えばパイソンクレジットのパスワードはpythonだとして text = "" while text != "パスワード": text = input("パイソンクレジット:") print("python") これで実行は出来たのですが2つ分からないことがあって ・パスワードだけじゃなくてIDや暗証番号などのも設定させたい場合の書き方 ・while文は「パスワード」だけど、これだけじゃなくて「パス」や「pass」でも答えが表示できるようにしたい この2つがどうしてもできません
583 名前:デフォルトの名無しさん [2022/04/06(水) 18:59:11.46 ID:PpwVEMc8.net] >>574 > ・パスワードだけじゃなくてIDや暗証番号などのも設定させたい場合の書き方 IDや暗証番号もinputで取る whileの条件を増やす > ・while文は「パスワード」だけど、これだけじゃなくて「パ
584 名前:X」や「pass」でも答えが表示できるようにしたい while text not in ('パスワード', 'パス','pass'): [] [ここ壊れてます]
585 名前:デフォルトの名無しさん [2022/04/06(水) 19:21:28.09 ID:V6m5p1Ce.net] >>575 後者やってみたけど パスワードpassじゃないと入力できなくなっちゃった 書き方がおかしいのか?
586 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 19:48:17.76 ID:aY4pnG+o.net] クォーテーションが全角になってるぞ
587 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 06:43:14.77 ID:wVatZXx3.net] 文字コード=sjis、改行コード=CRLFのテキストファイルを それぞれutf8、LFのファイルに変換したい どうすればいいですか
588 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 12:11:07.10 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 13:41:11.89 ID:bGha8t6H.net] Windows相手なら encoding='cp932' が無難やね
590 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 15:29:47.16 ID:iHIe6oz3.net] Shift-JIS_2004が来やがる事しばしば かと思ったらWindows-1254とかと誤判断
591 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 17:06:38.29 ID:pSQTwr1V.net] cchardet.detect(文字列)['encoding'] で取得した結果をopenのときに投げればいいんじゃないの 意外と使えるよ
592 名前:デフォルトの名無しさん [2022/04/08(金) 17:51:57.12 ID:7I4TuE41.net] anser = input("パスワードは?:") while anser!="パスワード"or"pass"or"パス": print("OK") これでどうしてもエラーが出てしまう
593 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 17:59:24.81 ID:Nr5XXVVB.net] answer...
594 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 18:01:49.89 ID:+3oW9fkF.net] そうですか。次はちゃんと質問しような
595 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 18:07:50.56 ID:bGha8t6H.net] >>> "パスワード" or "pass" or "パス" 'パスワード' 想定してるような集合扱いにはならないのと、先に`answer != "パスワード”`が評価されるから >>> True or "pass" or "パス" True >>> False or "pass" or "パス" 'pass' のどっちかになる。
596 名前:デフォルトの名無しさん [2022/04/08(金) 18:20:28.20 ID:7I4TuE41.net] >>586 ちょっと違うみたいで anser = input("パスワードは?:") while anser!="パスワード"or"pass"or"パス": print("OK") で↑に行を開けると起動するんだけど 今度は無限ループになる上に、while文の"パスワード"or"pass"or"パス"が効かなくなる (enterキーとか適当な文字入力でも OK OK
597 名前:デフォルトの名無しさん [2022/04/08(金) 18:20:44.05 ID:7I4TuE41.net] って無限ループしちゃう
598 名前:デフォルトの名無しさん [2022/04/08(金) 18:25:12.75 ID: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 名前:デフォルトの名無しさん [2022/04/08(金) 18:30:46.90 ID:7I4TuE41.net] 実行環境忘れてた ptyon3.10 IDLE
600 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 18:53:45.66 ID:D6M1QgM/.net] エラーメッセージちゃんと読んでるか?
601 名前:デフォルトの名無しさん [2022/04/08(金) 18:59:35.32 ID:7I4TuE41.net] >>591 expected an indented block after while statement on line 2
602 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 19:00:25.07 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 19:02:02.75 ID:bGha8t6H.net] >>589 https://github.com/pyenv/pyenv#installation まず公式読んで >>592 while True: answer = input('パスワードは?:') if answer in ['パスワード', 'pass', 'パス']: break print('OK') 先にチュートリアルで構文を学ぼ https://docs.python.org/ja/3/tutorial/
604 名前:デフォルトの名無しさん [2022/04/08(金) 19:02:33.34 ID:KIOBCG5Y.net] >>590 そのコード何がしたいかわからん inputパスがあってたら中身表示するとしたら while True: __ans = input('パスは?') __if ans.lower() in ['パス', 'パスワード', 'pass', 'password']: ____中身表示系書く とかだぞ あと評価式でorするときは1から書き直す if a == 1 or a ==2 or ,,, とりあえず君は初心者本1冊完走してから作りたいもの作ろう
605 名前:593 mailto:sage [2022/04/08(金) 19:10:07.84 ID:LwBnqH/T.net] ~/.pyenv/bin/ か、~/.pyenv/shims/ に、 python, python2, python3 の内のどれかは知らないけど、 あるかどうか見てみれば?
606 名前:593 mailto:sage [2022/04/08(金) 19:14:42.64 ID:LwBnqH/T.net] 普通は、多言語バージョンマネージャーのanyenv かasdf を使う。 pyenv だけ使う事はまれ nodenv(Node.js), rbenv(Ruby), jlenv(Julia), tfenv(Terraform)なども使うから それか、Docker。 Windows, WSL2 なら、Docker Desktop
607 名前:デフォルトの名無しさん [2022/04/08(金) 19:15:41.95 ID:7I4TuE41.net] >>594-595 https://www.python.jp/train/loop/index.html 一応このサイト見て勉強してるのですが どうにもうまくいきません…… あとお二人方のコードで試したら、また別なエラーが出ました 作りたかったのは Q パスワードは? A パスワード、パス、pass でAを入力するとOKと表示されるコードでした
608 名前:デフォルトの名無しさん [2022/04/08(金) 19:43:33.96 ID:cn/Cvl0A.net] >>583 自分は、pythonは記憶とんだ。 だから、門外漢だけど、 「"パスワード"or"pass"or"パス"」じゃないなら、ループ。 って、おかしくない? 「"パスワード"or"pass"or"パス"」ならループ。 じゃないの? ループを脱出したら「OKを表示」じゃないの?
609 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 19:50:24.15 ID:xCRwEkJt.net] >>598 password_list = ['パスワード', 'パス', 'pass'] input_key = input('Enter Your password: ' ) if len(input_key) > 0: for i in password_list: if input_key == i: print('おk') if input_key != i: pass
610 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 19:55:23.52 ID:cn/Cvl0A.net] 自分の発想のアルゴリズムだと、 アルゴリズム変えなければ、たぶんコメントなしだね・・・・・。
611 名前:589 [2022/04/08(金) 20:16:11.04 ID:o9HNgSR+.net] >>594 レスありがとうございます。
612 名前:デフォルトの名無しさん [2022/04/08(金) 20:24:09.51 ID:KIOBCG5Y.net] >>598 本当に作りたいのがそれだけなら passlist = ['a', 'b' , 'c'] if input('password ? ') in passlist: __print('ok') なんよ とりあえず落ち着け。作りたいもの置いといて、基礎を学ぶのだ 今のままじゃ多分全部聞いて、全部身にならない
613 名前:デフォルトの名無しさん [2022/04/08(金) 20:47:17.17 ID:7I4TuE41.net] >>603 上に上げたサイトだとローカル巻数とグローバル巻数の部分まで来たんですが ここがどうしても意味不明です
614 名前:デフォルトの名無しさん [2022/04/08(金) 20:57:37.08 ID:L/LJ1T8Z.net] >>604 お前にはプログラミングは無理だ
615 名前:デフォルトの名無しさん [2022/04/08(金) 21:39:05.15 ID:7I4TuE41.net] まずIDLEだとインデントが上手くいかない 最後のprintだけスペース戻したらエラーになる
616 名前:デフォルトの名無しさん [2022/04/08(金) 22:21:47.04 ID:YkLgLgBr.net] >>606 VSCode入れて、それでそのチュートリアルやってみたら
617 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 22:57:08.82 ID:Qvok9sII.net] 質問です >>594 や>>603 のようにlistでin演算子を使ったところ 同僚に「あー……listでin演算子使っちゃうタイプね(ニチャア)setやdictならわかるんだけどね……(ニチャア)参考までにこういうブログ読んでね【listでin演算子は遅いことを示したURL】(ニチャア)」 ということがありました 苛ついたので月曜日までにPythonを改良して(Python4を自作する)listのin演算子を早くしたいです。よろしくお願いします
618 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 23:35:22.01 ID:xCRwEkJt.net] >>606 google colabでやったら?
619 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 23:41:09.25 ID:xCRwEkJt.net] >>603 ほおおおおお シンプルで勉強になる
620 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 02:15:52.81 ID:Da31VTkt.net] ローカル巻数とグローバル巻数がわかりません
621 名前:デフォルトの名無しさん [2022/04/09(土) 05:08:42.56 ID:fKWuF8Ed.net] IDLEは単純に使いづらいぞ、付属品だけど使ってる人皆無 VSCodeかPyCharmの無料版に切り替えた方が良いぞ 実際に開発する時も使うのはこのどっちかだし Pythonのインデントは基本半角スペース4つだから全角はもちろん、TAB文字でもNG だから最低でも半角スペースとかTAB文字が視覚的に表示されるエディタ使わないと話にならないし 何よりもデバッガ使って問題がある箇所を探す、っていう工程を覚えないと身にならん
622 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 05:17:34.20 ID:STE4KUoA.net] >>611 赤巻紙、青巻紙、黄巻紙
623 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 05:29:39.23 ID:eHvkij8x.net] ラズパイでPyQt5使ってます。 IDEはeric6ですが、他にありますか?
624 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 05:39:02.83 ID:STE4KUoA.net] >>614 つ google colab
625 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 06:21:03.55 ID:O1Wp6+GJ.net] >>579 ありがとうございます openにこんなにいろいろ指定できるなんて感動 newline=に指定するのは出力したい真の改行文字ってことですね ついでに改行文字について調べてみたら、 Windows版Pythonでprintやwriteに使う改行文字\nってLFのことで、 ホントはCRLFを出力したければ\r\nと書くべきなんだけど newlineを指定しなければOSに合わせて\n→\r\nに変換して 出力してくれてるってわかってためになりました ただこれはいいことばかりではなくて、str.replaceで改行文字を 指定して変換をかけるような時は、しっかり\r\nと書かないといけない ので落とし穴でもあり、改行は恐いなと思いました
626 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 08:13:20.11 ID:r2/dOOYj.net] >>615 ColabでGUI?っておもったけどローカルのJupyterに接続するんかな 手軽にリモート開発できていいかも
627 名前:デフォルトの名無しさん [2022/04/09(土) 08:50:33.02 ID:eI7Hi2BA.net] 質問です。 MacOS10.12.6 [bash]のpython3.8.3で、 下記のエラーメッセージが出ます。 どういう原因が考えられますか? どうすれば良いのでしょうか? ImportError: dlopen(/Users/xxx/yyy/lib/python3.8/site-packages/PIL/_imaging.cpython-38-darwin.so, 2): Symbol not found: ____chkstk_darwin
628 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 09:15:21.81 ID:0h6RcYap.net] >>612 Python3.10になってIDLEメッチャ良くなったぞ 左にプロンプト専用のスペースができて表示が格段に良くなった あとはjupyterみたいなセルを導入して欲しいかな VSCodeとかPyCharmは聞いたことあるけど、明らかにIDLEの方が使われてるよ だって付属品なんだもん、そもそもエディターはVimしかありえないじゃん? Vim+IDLEが最強だって! IDLEはbatファイルから起動させるようにしてるわ 毎回importするパッケージや変数定義をbatファイルに記述しておいて batファイルでIDLE起動ドーン! これ超便利! 作業別にbatファイルを用意しておいてドーン! これ超便利!
629 名前:デフォルトの名無しさん [2022/04/09(土) 09:23:42.23 ID:fKWuF8Ed.net] >>619 https://news.mynavi.jp/techplus/article/20200508-1031849/ 残念ながらPyCharmとVScodeだけでシェア60割近く握ってるんだ…… batファイル起動とかも、今なら別にGitでクローンして持って来れば良いから そんな面倒な事せんでも・・…
630 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 09:38:45.07 ID:0h6RcYap.net] >>620 https://www.itmedia.co.jp/news/articles/2105/27/news089.html 残念ながらシェア60割近く握っているのはサクラエディタと秀丸なんだ・・ batファイル簡単じゃん、Gitクローンとか知らんし
631 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 09:53:46.27 ID:a9m8EYfT.net] それ絶対一人で何回も投票した人いるよね?
632 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 09:56:19.00 ID:erlZKZM8.net] >>621 それIDEも使わないようなエンジニアだしw https://image.itmedia.co.jp/news/articles/2105/27/dy_nn_02_w290.jpg あと>>620 もそうだが60割って…
633 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 10:06:40.99 ID:fKWuF8Ed.net] 60%って書こうとしてたら60割って書いてたわ…… こんなアホみたいなミスするとは……
634 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 10:19:09.57 ID:7zWpZRsf.net] PyCharmとかvimがそんなシェアあるって嘘だろって数値だから ネタで割使ってるのかと思ったら素でやってたのか・・・
635 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 10:24:51.12 ID:0h6RcYap.net] >>624 batも勘違いしてるでしょ? IDLE起動するとき毎回同じimport文やらを記述するのが面倒だから そういうのをbatファイルに記述しておいて、IDLEを引数渡しで起動させるってことだよ? Gitクローン関係無いよね?
636 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 10:52:35.78 ID:fKWuF8Ed.net] >>626 すまん、何か色々勘違いしてたみたいだわ 普通にコードのテンプレートみたいなものをbatで生成してるのかと思ったわ
637 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 11:29:12.77 ID:0h6RcYap.net] >>627 なるほど、そういう勘違いね IDLEでガッツリコードを書くわけじゃなくて、コードはVimで書く IDLEは実行とかテストとかだね、VSCodeとかPyCharmとかも結局裏でIDLEで実行してるわけで たぶんやってることは同じだと思う、知らんけど
638 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 11:37:03.51 ID:ehpYMGIZ.net] >VSCodeとかPyCharmとかも結局裏でIDLEで実行してるわけで IDLEってTkInter使ったただのエディタじゃね?VSCodeが裏で使うってどういう場面で?
639 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 11:54:52.85 ID:0h6RcYap.net] https://docs.python.org/ja/3/library/idle.html えー、IDLEは対話的インタプリタでありまして・・VSCodeはインタプリタの設定があるようで、 であるからして、えーインタプリタを裏で実行しているということでありまして えー、、、つまり最後に「知らんけど」って書いてあるのが全てであります
640 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 12:47:04.00 ID:yJynhyxC.net] IDLEは、コメントアウトのショートカットキーで"'# "に出来ない時点でアウトなんだよ
641 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 12:49:50.16 ID:LiKgioEf.net] >>630 それよりPythonそのものがインタプリタ言語でしょって話だろ 一行ずつ変換してCPUで実行してるで原理は変わらない
642 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 12:51:34.84 ID:LiKgioEf.net] 開発環境の標準化と管理しやすさから Docker使うのが楽ちんこかゆい
643 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 12:56:08.24 ID:XJ3vBTOo.net] どういうことなの
644 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 13:15:20.25 ID:fH1CYxKR.net] >>616 >ただこれはいいことばかりではなくて、str.replaceで改行文字を >指定して変換をかけるような時は、しっかり\r\nと書かないといけない テキストモードでnewlineを指定しなければ読ま込み時に\nに変換されてるのでstr.replaceは\nで大丈夫
645 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 14:56:49.55 ID:lodglsEl.net] htmlのタグつきソースじゃなく、webの文字だけを直接取得する方法ってないの
646 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 15:08:35.72 ID:LiKgioEf.net] 正規表現でいけるんじゃね
647 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 15:42:19.36 ID:STE4KUoA.net] つ 「クローリングハックあらゆるWebサイトをクロールするための実践テクニック」
648 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 15:50:48.63 ID:0h6RcYap.net] >>636 直接取得する方法は、webページ上でCtrl+A -> 右クリック -> コピー で直接取得できます! ちなみにhtmlタグつきソースからwebの文字を抽出する正規表現はこんな感じだと思います import re re.findall(r'>([^<>]+?)</(?!script)', htmlタグつきソース)
649 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 16:17:02.76 ID:lodglsEl.net] 検索結果から結果の文字列だけ取りたいんだけど BeautifulSoupじゃなくてもとれるの? re.findall で, > と < の間の入力文字を取るってこと やはり一時sourceから整形しないといけないんだね
650 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 16:52:16.54 ID:mo38de66.net] #TVer改悪 ですか?
651 名前:デフォルトの名無しさん [2022/04/09(土) 19:04:45.34 ID:q9kiD+/u.net] while 10: if 10<100: input("数字") print("NO") elif 10>0: input("数字:") print("no") print("END") 数字:10を入力するとENDになって 11~100を入力するとNOと表示されて 10~0を入力するとnoと表示されて戻るプログラム作りたいんだけど 何を入れてもNOとしか表示されない
652 名前:デフォルトの名無しさん [2022/04/09(土) 19:49:24.04 ID:i94l3mqO.net] 超初心者以前の知能が足りない人用スレが必要なんじゃないかな
653 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 19:59:15.82 ID:yZu8Oa/R.net] gensim使ってword2vecのモデル作ろうとしてんだけど、単語の長さが1文字になっている 例えば富士山って単語があって、その前後にきっちりスペース入っててちゃんと区切られてても、「富」と「士」と「山」として学習されてる モデル作るときのオプションになんかあるんかなと思って公式のマニュアルみたけど、それっぽいのないしどなたか助け船ください
654 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 21:52:07.66 ID:0h6RcYap.net] >>642 while True: n = int(input("数字:")) if n == 10: print("END") break elif 11 <= n <= 100: print("NO") elif 0 <= n <= 10: print("no") >>644 gensimとか全然知らんけども、調べたら VECTORS_SIZE = 50 #次元数は20〜50必要と書いてる あとは文章を単語に分けるget_words周りをチェックしてみたらいいんじゃないでしょうか https://developers.goalist.co.jp/entry/vector_jisho
655 名前:デフォルトの名無しさん mailto:sage [2022/04/09(土) 23:11:12.72 ID:yZu8Oa/R.net] >>645 レスありがとう そのベクトルサイズっていうのは単語の意味を決めるベクトルの次元数を示してて、単語そのものの長さじゃないんだ めっちゃアバウトに言うと 抱き枕=抱き締める、枕 …ベクトルサイズ2 抱き枕=抱き締める、枕、気持ちいい …ベクトルサイズ3 ほんで次元数が増えれば増えるほど意味の精度が良くなる感じ 単語にわけるのは問題ない、中身みてもうまく行ってるんで よくわからん…
656 名前:デフォルトの名無しさん [2022/04/10(日) 00:09:48.46 ID:QKdC6ZNW.net] >>645 ありがとうございます
657 名前:デフォルトの名無しさん mailto:sage [2022/04/10(日) 00:28:15.42 ID:ECLG0OKI.net] >>644 自己解決
658 名前:デフォルトの名無しさん mailto:sage [2022/04/10(日) 10:28:10.14 ID:AUZk5nGZ.net] >>648 ぜひ回答も書いてスレの肥やしにしてください
659 名前:593 mailto:sage [2022/04/10(日) 21:01:22.34 ID:ZtzjE5Lq.net] >>589 の処理を要約すると、 ~/.bash_profile に、下の1 か2を書いているだけ (1) export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init --path)" (2) export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/shims:$PATH" eval "$(pyenv init --path)" 漏れが、>>593 に書いた、anyenv 用の下の2行と同じ意味。 環境変数PATH を設定してから、仮想環境を実行する export PATH="$HOME/.anyenv/bin:$PATH" eval "$(anyenv init -)" bash で、下を入力すると、 which anyenv ~/.anyenv/bin/anyenv 次へ続く
660 名前:593 mailto:sage [2022/04/10(日) 21:02:11.54 ID:ZtzjE5Lq.net] 前からの続き ただし、漏れの環境は、WSL2, Ubuntu 18.04。 君のOS や、シェルが何か分からないが、 シェルで下を入力すると、 which pyenv ~/.pyenv/bin/pyenv # 1の場合 ~/.pyenv/shims/pyenv # 2の場合 1, 2で、どちらかが表示されるのでは? まあ、多言語バージョンマネージャーのanyenvか、asdf を勧める >>596 >~/.pyenv/bin/ か、~/.pyenv/shims/ に、 >python, python2, python3 の内のどれかは知らないけど、あるかどうか見てみれば? これは、たぶん間違い。 ~/.pyenv/bin/pyenv か、~/.pyenv/shims/pyenv がある 結局、~/.pyenv/bin/ か、~/.pyenv/shims/ は、各人の好みなんだろう
661 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 07:06:19.05 ID:+2lQ4ezC.net] Python venv 仮想環境のフォルダー名 --clearとやったら全部吹っ飛んだんだがどうしたらいいの? m1 macでやっててユーザー名変えたら何故かvenvがactivateされててもpythonコマンドが2系だったんでどっかのクソサイト真似たら想定してない結果になった これ復元できるかね?
662 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 10:12:49 ID:sVlSXLDD.net] 同じく仮想環境でのエラーについて… modulenotfounderrorの原因って何があるかね(モジュールはrequests) winのvscode上で、仮想環境内にインストールは当然してるし、スペルミスもない、vscodeとPython両方ともパスも通ってる あと何がある?追加インストールしたモジュール全部このエラーになるんだ m1macではエラーはでなかったから尚更意味わかりません
663 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 10:22:02 ID:8HOMPEv6.net] 箇条書きで整理してから肉付けしてみて 自己解決すんじゃないかな
664 名前:デフォルトの名無しさん [2022/04/11(月) 11:30:00 ID:uYcMdD2t.net] >>652 そら仮想環境は--clearしたら全部消えるし、ユーザ名変えたらパス変わるし使えなくなるでしょ 何らかのバックアップとってないと復元は無理だと思う
665 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 11:54:19.97 ID:EWxq5I4o.net] サイトが糞だったのか自分が糞だったのか詳しく
666 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 12:14:48 ID:rXD/3mKA.net] >>653 何もミスしてないってのが間違いなんじゃねーの とりあえずsys.pathをprintすれ
667 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 12:36:17.27 ID:uIRj5XJN.net] >>653 Ruby ではモジュールは、モジュール探索パス内から探される 例えば、モジュール探索パスに、フォルダa, b, c が存在する場合、 その先頭から、つまりabcの順番で、モジュールが存在するかどうかを探していく 同名のモジュールが、aとc内にある場合は、 a内のモジュールが使われて、c内のモジュールは使われない なので、この順番が重要
668 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 13:33:13.98 ID:zI2UWl89.net] Dockerでやれよ
669 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 20:50:27.40 ID:+2lQ4ezC.net] >>656 https://dev.classmethod.jp/articles/change-venv-python-version/ こいつの記事を見てインストールし直すといいとか書いてあったからpip installでできる何かかなと思ってreqxirements.txt作ったけどやったあとにそういえばPythonってファイルのことモジュールって言うよなと思いだして見てみたら全部消えてた こいつの説明もおかしいしclearなんて何をクリアーするのか分からない名前にする方もおかしいしモジュールなんて紛らわしい名前にする方もおかしいし全部がおかしい しかも一番最後に唐突にpyenvなんて単語が飛び出してきてるあたりvenvとpyenvごっちゃになってるんたろうな
670 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 21:15:25.54 ID:8HOMPEv6.net] 記事読んだけどpyenvとvenvを混同してるの>>660 だけやん 何するにもまず公式サイトの説明かコマンドのヘルプみない方が悪いよ classmethodだから変なこと書いてる可能性は低いが公式ではないからね
671 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 21:18:23.24 ID:+2lQ4ezC.net] >>661 うん本当に公式サイトの説明かコマンドのヘルプ以外何も信用できないと痛感した 今後はその2つ以外何も見ないようにするよ それはそうとデータ復元させられればいいんだけどね やる気ないわどうしよう
672 名前:593 mailto:sage [2022/04/11(月) 21:40:41.55 ID:uIRj5XJN.net] 普通は複数言語を使うから、venv , pyenv を単独では使わない。 Ruby と同じで、GUI が無く、HTML, CSS, JavaScript を使うから、Node.js も必要 多言語のバージョンを個別に管理できない だから、漏れは日本人が作った、多言語バージョンマネージャーのanyenv を使っている。 nodenv(Node.js), rbenv(Ruby), jlenv(Julia), tfenv(Terraform)など、20言語ぐらいある。 同様のツールに、asdf もある それか、Windows 10, WSL2, Linux, VSCode なら、公式のDocker Desktop
673 名前:593 mailto:sage [2022/04/11(月) 21:51:13.38 ID:uIRj5XJN.net] 基本的に、単独のバージョンマネージャー、 venv , pyenv, rbenv の記事を書いている香具師は、情弱 そういう香具師は、Node.js を入れる段になると、nvm, n とか言い出すw 各言語で、様々なバージョンマネージャーを使うな。ややこしい 最初から、20言語入っている、anyenv, asdf を使えば良いだけ。 全言語同時に更新できるし それか、Windows 10, WSL2, Linux, VSCode なら、公式のDocker Desktop この3つ
674 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 23:50:16.65 ID:zI2UWl89.net] だからDocker以外認めないんだって さらに環境構築はスレチなので 初心者はgoogle colabでやりなはれ
675 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 23:53:31.78 ID:zI2UWl89.net] さもなければ拗ねる
676 名前:デフォルトの名無しさん mailto:sage [2022/04/11(月) 23:57:32.81 ID:vk1u9tuU.net] 漏れと香具師とか生きとったんかワレ
677 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 04:43:55.44 ID:iDZ3USXF.net] 「普通は複数言語を扱うから」とかいうのは正しいかもしれないが、だからといってごちゃ混ぜ環境構築ツールを使うのはベストどころか悪手だから信用しちゃいけないよ どう考えてもその言語専用に開発されたツールを使った方が、言語のバージョンアップに素早く対応できるし、 情報も多いし細かい所まで調整できる ラッパーツールを使うってことは自らラッパーツールによる制限をあらかじめ課しているようなものなので、 ラッパーツールで十分と判断できるようになるまで理解が進むまでは使わない方がいいと思うわ poetryですら弱点(pipの --find-links が使えない)があるからなあ。
678 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 08:14:42.30 ID:5/F0IJac.net] 発達障害の相手をするな
679 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 08:45:44.48 ID:J6etQu1f.net] ちんちんシュッ!シュッ!シュッ!
680 名前:593 mailto:sage [2022/04/12(火) 13:21:00.67 ID:gsOGD0UL.net] 多言語バージョンマネージャーのanyenv, asdf を使わない香具師は、大変 例えば、Python は公式のvenv, Ruby はrbenv, Node.js はnvm。でも、最近は、n もあるのでどうしましょう? とか聞かれたら、そういう香具師を相手にできない そいつは様々なバージョンマネージャーを調べる、時間が膨大
681 名前:デフォルトの名無しさん [202
] [ここ壊れてます]
682 名前:2/04/12(火) 16:48:37.17 ID:nozFiGE2.net mailto: すいません教えてください pyautoguiの.pyファイルを.pywにしたら キー入力されなくなってしまいました pyautogui.ress("aaaa")してもアクティブウィンドウに入力されません どうしてでしょうか? .pyのときはうまくいったのにできません [] [ここ壊れてます]
683 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 16:53:27.00 ID:gsOGD0UL.net] 確かに、python/pythonw, ruby/rubyw の違いって何だろ
684 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 16:54:12.66 ID:JpfqGpfI.net] どんなコード?
685 名前:デフォルトの名無しさん [2022/04/12(火) 17:01:08 ID:nozFiGE2.net] すいません pyautogui.press('a')でした pyautogui.press('a')にしてもpywにすると入力されないです
686 名前:672 [2022/04/12(火) 17:05:24 ID:nozFiGE2.net] >>674 これでみれますか? https://ideone.com/MBXcaG
687 名前:デフォルトの名無しさん [2022/04/12(火) 17:47:07.40 ID:dyOgG/yk.net] 要素が100あるリストを作るにはどうすればいいですか? [0] * 100 ってのもカッコ悪い。 整数型で要素数100、初期化は不要。 int d[100]; 的なやつ。
688 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 18:00:54.92 ID:3I6I23IO.net] 慣れの問題じゃね? list(range(100)) とかでもかけるけど…
689 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 18:06:36.43 ID:dyOgG/yk.net] ありがとう。 [0, 1, 2, .. 99] ってリストを作るのか。 array も numpy 入れないと使えないのが面倒だね。
690 名前:672 [2022/04/12(火) 18:13:09.62 ID:nozFiGE2.net] >>676 の12行目のprintに#をつけると.pyでも キー入力されなくな
691 名前:閧ワした 代わりにtime.sleep(0.5)いれたらキー入力されるようになりました これは一体何が起きれるんでしょう??? 指定したウィンドウがアクティブになるまで待つループに行かずに プログラムが終わっちゃってるんでしょうか??? [] [ここ壊れてます]
692 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 18:39:56.40 ID:ESzOQLHU.net] stdoutがないからだよ
693 名前:672 [2022/04/12(火) 19:08:23.01 ID:nozFiGE2.net] >>681 stdoutを 検索したんですがちょっと難しくて分からないんです stdoutをどこにどうつけたらいいんですか?
694 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 19:26:07 ID:wqnh+ciA.net] import pyautogui import time time.sleep(5) print("test") pyautogui.press('a') で正常に動く pyautogui.pressの前に終了してんじゃね stdoutは今回関係ないと思うけど
695 名前:672 [2022/04/12(火) 20:13:48.89 ID:nozFiGE2.net] >>683 ありがとうございます なぜかSleep入れないと終了してしまうみたいです
696 名前:デフォルトの名無しさん [2022/04/12(火) 20:50:57.47 ID:b2N2qKAz.net] card={"ID":"python123","PASS":"python","an":"1234"} card_input=input("クレジットカード:") while True: if card_input in card: print(card[card_input]) break else: print("違います") これで何故か違いますがループしてしまいます
697 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 21:02:02.35 ID:/Ra8N6EM.net] とくさんか?
698 名前:デフォルトの名無しさん [2022/04/12(火) 21:15:26.84 ID:nozFiGE2.net] pythonを3.10にアップデートしたのですが コマンドプロンプトでpython -Vするとpython 2.7.14となってしまいます cdでpython3.10のある場所まで移動してから python -Vするとちゃんと3.10.4と出ます 古いバージョンのpythonはアンインストールして pathも確認したんですがきちんと入ってるし どうしたら3.10になるんでしょうか? でも.pyのファイル自体はpython3.10のpython.exeに関連付けさせて ダブルクリックでpython3で動くようにはなっているみたいだし これはいったい・・・? 。
699 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 21:43:39.95 ID:wqnh+ciA.net] >>687 コマンドプロンプトでwhere pythonを実行 microsoftのパスが含まれていたら 設定 アプリ アプリ実行エイリアス アプリインストーラー(python.exe,python3.exe) → オフ microsoftのパスが含まれていなかったらわからん
700 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 21:47:47.87 ID:iDZ3USXF.net] >>677 カッコ悪いとかいう前に、それがPythonだからなあ。[*range(100)]とかもあるがlist(range(100))よりちょっと短いってだけだな
701 名前:デフォルトの名無しさん [2022/04/12(火) 22:07:40.99 ID:nozFiGE2.net] >>688 ありがとうございます where pythonしたら inkscapeの中にあるpythonが出てきたので inkscapeをインストールし直したら cmdのpythonも3.10になりました!!
702 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 22:42:33.34 ID:xAlxnI5L.net] inkscapeはpythonのパスを乗っ取るのか gimpはそんなことしないのにな
703 名前:デフォルトの名無しさん [2022/04/13(水) 10:15:08.39 ID:mrQ0lXuv.net] >>677 ary = [None] * 100
704 名前:デフォルトの名無しさん [2022/04/13(水) 11:46:56.33 ID:e4z5vS6p.net] 誰か>>685 の質問に答えて
705 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 11:53:51.12 ID:e6OSlB4j.net] なんだその態度は!
706 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 11:57:12.77 ID:DDWJQX1p.net] そもそも685は質問じゃねーじゃん
707 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 12:25:16.84 ID:U9T9z/+B.net] >>685 in dictってkeyそのものの存在チェックにしかならんぞ だからID、PASS、anって入力した場合は ifの中に入れるけど、python123とかって入力した場合にはelseに入る 質問するなら、想定してる挙動と実際の挙動 (何を入力した時にどういう判定をして、どう出力されるか)辺りまで軽く書いておかないとエスパー要素必要になるぞ
708 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 12:30:16.93 ID:Ndo4Py5H.net] エスパー要素いらないだろ ソース見れば何を聞きたいかはわかる
709 名前:デフォルトの名無しさん [2022/04/13(水) 12:49:39 ID:ucZJU7o2.net] >>693 お前は基礎的な知識が足りなさ過ぎて、いちいち質問してたらキリがないから 一度チュートリアル的なことやってこいって言われただろ
710 名前:デフォルトの名無しさん [2022/04/13(水) 13:21:38.69 ID:e4z5vS6p.net] >>698 申し訳ございません 説明書みて一通り試してみたけど、まだ修業が足りなかったみたいです
711 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 13:34:58.58 ID:OtnGUpOi.net] >>699 card={"ID":"python123","PASS":"python","an":"1234"} card_input='ID' counter = 0 while True: counter += 1 if counter == 10: break if card_input in card: print(card[card_input]) break else: print("違います") 結果はPython123 keyじゃなくてvalueがあるのか知りたいなら card={"ID":"python123","PASS":"python","an":"1234"} card_input='python' counter = 0 while True: counter += 1 if counter == 10: break if card_input in card.values(): print(f'{card_input}はある') break else: print("違います")
712 名前:デフォルトの名無しさん [2022/04/13(水) 13:58:50.36 ID:e4z5vS6p.net] >>700 ありがとうございます
713 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 15:01:31 ID:axude+fp.net] >>700 これ両方とも何がしたいのかわからん 特に2つめとかありえんやろ
714 名前:デフォルトの名無しさん [2022/04/13(水) 15:20:53.26 ID:e4z5vS6p.net] クレジットカードのID、パスワード、暗証番号を文字入力で分かるプログラムを組みたかった
715 名前:デフォルトの名無しさん [2022/04/13(水) 16:03:29.19 ID:MldHjaMW.net] >>703 お前はもう消えろ
716 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 16:14:56.54 ID:oiiWsGZU.net] パスワードとか暗号化したうえでログインできるスクリプトってかけるの
717 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 16:17:24.75 ID:LexWIY5u.net] >>571 rarのヘッダのフォーマット調べたら、 ファイル数そのまんまは記録されてないみたいね 書庫内のファイルのサイズはファイル毎の先頭に書いてあるので、 ファイル末尾までシークしながら数えるしかないみたい rarは書庫の分割に対応している圧縮形式だけど たとえば3つに分割して2番目だけ削除すると、 本家のWinrarでも1番目と3番目に入ってるファイルしかわからなくなる
718 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 16:20:57.30 ID:okI3ZS6T.net] >>703 クレジットカード1枚だけの情報を管理するプログラム? “ID”と入力すればその1枚のカード番号が表示される “パスワード”と入力すればパスワードが表示される ということ?
719 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 16:26:04.91 ID:Ndo4Py5H.net] 解凍しなくても数が分かるかって質問に対してはyes。rarも解凍しなくてもわかる
720 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 16:38:15.19 ID:QsWWVW1A.net] >>705 OSが提供するPassword Vaultを利用するのが一般的 実行時に何かしらCredentialを渡す形になる
721 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 19:59:56.38 ID:2NeVpU9O.net] whileループの中にinputがないのにループ回す理由あるの?
722 名前:デフォルトの名無しさん [2022/04/13(水) 20:15:30.03 ID:4yCExL0b.net] カードガイジが作りたいのはこういうカタチだろ? whileは待ち受けたい意図でしょ データベースとアクセサとかGUIとかの話はたぶんできなかろ 実践力を身につけるPythonの教科書 っていうプログラム自体がはじめての人向けの すげー甘い本があるから,作りたいものを忘れて,手を動かしながら読み切れ 殺すぞクソバカゴミ野郎 banks = ['mizho', 'ufj'] ids = ['a0123', 'z9876'] passs = [1234, 9876] seqs = [123, 987] while True: ____req = input('銀行名は? : ') ____if req == 'end': exit() ____try: ________idx = banks.index(req) ____except ValueError: ________print('\n死ね\n') ____else: ________print('\n銀行名', banks[idx]) ________print('ID', ids[idx]) ________print('PASS', passs[idx]) ________print('SEQ', seqs[idx]) ________print()
723 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 20:47:54.73 ID:Rs+TlID+.net] passs
724 名前:デフォルトの名無しさん [2022/04/13(水) 20:49:17.78 ID:Z6ROrQAS.net] for p in product: print(p) とありますが、この文のpって文字はどんな小文字英語でもいいんでしょうか? またはこの文字じゃないといけないなど、何かしら理由があるのでしょうか? ご教授お願いします。
725 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 20:53:05.46 ID:wi1nO/gW.net] わかりやすければなんでもいいよ 1文字でなくても
726 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 20:59:01.94 ID:Rs+TlID+.net] >>713 https://docs.python.org/ja/3/reference/lexical_analysis.html#identifiers そこまでに登場してない識別子でキーワード以外
727 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 21:12:32.22 ID:Z6ROrQAS.net] ありがとうございます!
728 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 21:15:44.96 ID:Z6ROrQAS.net] >>714 一文字じゃなくてもいいんですね 新発見です!
729 名前:デフォルトの名無しさん [2022/04/13(水) 21:24:17.20 ID:MldHjaMW.net] >>717 いい加減消えろや
730 名前:デフォルトの名無しさん mailto:sage [2022/04/13(水) 21:24:39.98 ID:iz/3T8fY.net] >>711 これは酷い 同じレベルじゃん
731 名前:デフォルトの名無しさん [2022/04/13(水) 21:34:31.03 ID:2yWJivzV.net] >>719 そり同じレベルで回答しなきゃ質問者が理解できないだろ… 俺ならtryも避けて答えるかもしれん
732 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 01:24:51.42 ID:uO0SXD9A.net] ガイジはプラレールとかで遊んでろよ…
733 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 01:42:48 ID:ZzIGlvaI.net] いつからこんな悪辣になった?
734 名前:デフォルトの名無しさん [2022/04/14(木) 02:10:25.44 ID:lxOIQ3st.net] 悪貨が良貨を駆逐する 馬鹿がスレをダメにする
735 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 13:12:06.99 ID:BtLi5peK.net] もともとこんなもんだろ 新年度(と学校の休み期間)は特にそれが顕になるだけ
736 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 15:03:37.58 ID:JhmvXnUD.net] 別にくだすれだから別にええぞ 何度も似たような質問してきたら流石に返答者も荒れるが
737 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 18:28:52.38 ID:lv3Dkk0V.net] ファイルの先頭行に列を挿入したいのですが、列名が無い場合の追加方法がぐぐっても出て来ません( ノД`)
738 名前:デフォルトの名無しさん [2022/04/14(木) 18:32:29.06 ID:GwONt0bS.net] >>726 そうなんだ
739 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 19:03:58.80 ID:zm2h//wN.net] >>726 ファイルに行と列があるのはわかるけど、どういう風に行や列を表記するかは千差万別なので ファイル形式(OpenXMLやCSV、TSVなど)かどのアプリで扱うファイルなのか分からないと答えようがない
740 名前:デフォルトの名無しさん mailto:sage [2022/04/14(木) 20:52:20.51 ID:kWetsGXW.net] >>726 そりゃ出てこないだろうな
741 名前:726 mailto:sage [2022/04/14(木) 23:18:32.03 ID:lv3Dkk0V.net] 解んなかったので、Dosのファイル結合で処理しました 失礼しました
742 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 00:49:03.96 ID:gAv1cu4K.net] ファイル結合で先頭行に列を追加!? すごいDOS力
743 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 01:08:53.44 ID:9XxTBRIR.net] まず先頭行に列を追加ってどういうことよ?
744 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 10:48:59.76 ID:JgjbCGpn.net] 先頭行に列追加ってまんまじゃん・・・ プログラムでやるならtmp開いて先頭に追加したいの書き込んで、その後に元ファイルの内容読み込むと同時にtmpへ書き込む で、全部終わったら元ファイル消して、tmpを元ファイル名にリネームして終わり エラー処理きちんとしないとトラブル色々起きる
745 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 11:21:19.02 ID:1FLstH2r.net] 行には行しか追加できんだろ。 まあ列のヘッダを追加したいってことなんだろうけどね。
746 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 11:42:10.16 ID:NjgRgzMt.net] 配列で[1:100]だと[100]が含まれないのに慣れん。 それなら [1:100) にしろよ。
747 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 17:51:56 ID:PiHpabQE.net] 要素数が100なのにend-startが99だったりしたらそれはそれでややこしかったりするので一長一短かと
748 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 18:52:43.93 ID:NJzLAbi3.net] 空の区間を表現するのに特別な表現をいれたくないしね > それなら [1:100) にしろよ。 半分同意 Haskell他にある多重ドットを拝借してほしかったけど どっちがどっちだっけとなりそうだし悩ましい
749 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 19:03:00.69 ID:Pt8Ngg3U.net] こういうことでしょ?つまり普通はAが欲しければ[0:1]と書く じゃなんで[1:100]で100が含まれない? o.5ch.net/1y4kc.png
750 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 19:24:36.19 ID:PiHpabQE.net] >>738 インデックスの1のところが100だとしたら、数値の100はBの位置なんだが…
751 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 19:32:41.96 ID:atHGer73.net] またこの話かよ L[a:b] + L[b:c] == L[a:c] が成り立つように決められたからだって言ったたろ あれ、こっちのスレじゃなかったか?
752 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 21:07:28.54 ID:CLXxITWO.net] >>740 正直、Pythonの基本仕様で一番難解だと思う 数年Python使っているけどいまだに覚えられなくて >>738 のような図をいちいち書いてコーディングする
753 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 21:50:41.47 ID:T4CYxiXU.net] [1:100}で100が含まれないのは非直感的な面はあるのは確かだけど慣れるしかない [1:100]はfor (i = 1; i<100; i++)みたいなイメージで捉えてる
754 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 22:00:09.34 ID:qspZjXdd.net] アドレス0からアドレス0x10まで何バイトですかったら16バイトだし 添え字=要素ではなくオフセットと捉えられるなら、そう突飛とは思えぬけど 1ベースなら考えなくもないが、満年齢然り0ベースは<=より断然<だし面倒がない
755 名前:デフォルトの名無しさん [2022/04/15(金) 22:47:15.90 ID:HX7dwYSm.net] >>743 えっ?
756 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 03:27:04 ID:M2x4IyLd.net] ああ分かったぞ 100が含まれないじゃなくて含まれるじゃん ただ[0:100]じゃなくて[1:100]と書いてるから100じゃなくて1が含まれないんだよ じゃ別に普通だな それよりrange(0, 100)で0から99までって事のほうがアカンやろ a = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100] for i in a[1:100]: print(i)
757 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 04:37:12.16 ID:GwpFWYo1.net] すいません、教えて下さい こういうのをaiとかでやらせたいのですが 何からとっかかればいいんでしょうか? カラー漫画の吹き出しの中の文字を 周囲と同じ色で塗りつぶして消したいです おそらく100%うまくいくと思えないので 塗りつぶしのみの画像をaiに作らせて フォトショップみたいな画像ソフトでレイヤーとして 上に被せて 関係無い部分が塗りつぶされてたら 手で直すって感じを想定してます 問題は学習用のデータがなく 自力で修正した数ページ分の漫画で コツコツ教え込むしかない事です よろしくお願いします
758 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 09:26:44.86 ID:ewKy6
] [ここ壊れてます]
759 名前:0XC.net mailto: >>746 文字部分だけをマスクした教師データを用意してセグメンテーションするのがいい 塗りつぶすのは別のアルゴリズムを使うほうがいいかなぁ [] [ここ壊れてます]
760 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 14:13:32.08 ID:u7Gm+96S.net] OCR使えばいいだけでは? 誤字とか関係ないんだし
761 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 15:31:25.88 ID:fPn+eEc/.net] 吹き出しの中に絵が書いてあったらどうするの? 吹き出しの検出は物体検出の分野だと思うのですが PASCAL VOCで見かけた事は無いのでMS COCOを 漁るか自分で集めるかかな
762 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 16:37:07.55 ID:NFUA2B25.net] >>746 ちょっとググったらそう言うのは結構やられてるのな 残念ながらフリーのやつは見つけられなかったけど https://image.itmedia.co.jp/ebook/articles/1107/05/tnfigff2.jpg https://www.itmedia.co.jp/ebook/spv/1107/05/news067.html >>749 > 吹き出しの中に絵が書いてあったらどうするの? そんなレアケースなんて当面考えなくても良くね?
763 名前:デフォルトの名無しさん mailto:sage [2022/04/16(土) 18:22:27.77 ID:fPn+eEc/.net] >>750 このリンク先の技術はディープラーニングの洗礼を受ける前のだから、今の技術で再構築すればもっと優れたものが 出来る可能性は高いな 本来あった(であろう)物を補完するのはGANとかになるかと。(ディープフェイクとかの分野や) なお、GANでアワビを補完して逮捕された事案が最近あったなw
764 名前:746 mailto:sage [2022/04/16(土) 23:16:15.06 ID:GwpFWYo1.net] もう自分が作ろうと思ってるものが出来てたんですね… 驚きです
765 名前:デフォルトの名無しさん [2022/04/17(日) 01:28:36 ID:WoAMfKL/.net] こんなことも知らないのは初心者というより知的障害者に近い
766 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 04:46:41.05 ID:2lvfHA8s.net] >>753 それあなたですよね
767 名前:デフォルトの名無しさん [2022/04/17(日) 11:52:58.54 ID:06xFq++l.net] xlist, ylist = [], [] getxy(src) ->(x, y) # 出力値は入力値による 大量にgetxyを回してxlist, ylistに結果を記録していくとき どういう方法が速い(?) / 高効率(?)ですか xy = getxy() xlist.append(xy[0]) ylist.append(xy[1]) しかわかりません…
768 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 12:08:40 ID:E+w90SEK.net] Python onlyかつライブラリなしであればそれでいいよ 回数が分かってるなら[None]*100とかで先に確保しておくと、途中でリストメモリの再確保が入らないから厳密には多少速いだろうけど、まあ誤差でしょ getxyが画像のピクセルを触ってるなら、何かしらの方法で一括取得できるはずだからリファレンスをよく読め 他にはnumpy使うとかnamba使うとかcython使えば速くなるかもしれない こいつらは速くなる条件があるから条件に適合するコードを書くことが必要だ これは少し慣れがいる あとはそこだけcとかc++とかgoとかrust使ってロジックを書いてctypesで呼べば速い これはさほど条件に左右されず速くなる 初心者にはおすすめしないけど
769 名前:デフォルトの名無しさん [2022/04/17(日) 12:22:40.47 ID:06xFq++l.net] >>756 了解です xyは画像座標なんだけど getxy(im): if bbox := myfilter(im).getbbox(): _ return bbox[0] * n , bbox[2] * m else: _ return 0, im.width みたいな感じなのでいじれないかなー cは書けないので切腹します
770 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 15:19:43.31 ID:AHx/k7U9.net] 要素数が多いほど[None] * nのプリアロケートで得られる速度差は微々たるものになって インデックス周りなんかのその他の呼び出しで相殺される それよりPythonでの命令数を減らすほうが速度は上がる
771 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 19:46:30.65 ID:hToGhZqz.net] pandasで日付を軸にCSVファイルを結合したいのですが、書式をyyyy-mm-ddで統一しているはずなのに、成功するのと失敗するのがあります 失敗 2009-01-05 成功 2009-01-06 失敗の方は同一の日付と見なされないので行が重複します Pythonには人が見えないものが見えてるのでしょうか?
772 名前:デフォルトの名無しさん [2022/04/17(日) 20:12:58 ID:xdoWfkC3.net] 私にはあなたのやりたい事が見えないです
773 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 20:52:14 ID:BJkxuXtr.net] 質問の仕方で知性も人間性もわかるよね
774 名前:デフォルトの名無しさん [2022/04/17(日) 21:10:58.88 ID:TsyjUgRL.net] >>759 そりゃ見えてるだろ それとも君は直接その眼でメモリー内容が見える人なの?
775 名前:デフォルトの名無しさん mailto:sage [2022/04/17(日) 21:11:17.06 ID:lzcM8q3n.net] 質問に対する反応でもね
776 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 07:30:00 ID:q3rIpq5e.net] Win10にAnacondaをインストールしたのですが、AnacondaからSpyderを起動すると落ちてしまい、二度と起動しません。 スタートメニューのショートカットも消えてしまいます。 どうしたらいいでしょうか?
777 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 08:24:53.65 ID:KQnHhLBW.net] >>759 半角・全角だいじょうぶ?
778 名前:デフォルトの名無しさん mailto:sage [2022/04/19(火) 12:09:38 ID:aIiYfvVh.net] VSCodeでPythonしています frm = tkinter.Tk() でフォームを作り、これをクリックしたときに座標を取得したいのですが、 frm.bind('<Button-1>',frm_click) としても、frm_clickを呼び出してくれません どこがおかしいでしょうか?
779 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 14:35:05.52 ID:B0PpCiU+.net] pythonからhtmlファイルを指定してブラウザで開く、閉じるができません。 subprocess.popen開くことはできるのですが、開いたらファイルを閉じる(タブを消す)ためにはどうすればよいでしょうか。
780 名前:デフォルトの名無しさん [2022/04/20(水) 21:54:23.66 ID:NTuuFKH0.net] 変数がfor できるかどうか判別する方法ありますか?
781 名前:768 [2022/04/20(水) 21:57:53.61 ID:NTuuFKH0.net] 文字列に対してforしたら、一文字ずつ取得でき想定してない動作になりました エラーか、ループせずを想定したのですが リストなど通常、ループできるのが適当なやつを判定するにはどうすればいいですか?
782 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 22:16:03.52 ID:WoVRayDr.net] >>769 forで文字列が一文字ずつ取得できるのは正当なPythonの仕様なので 文字列をforの対象にしたくないという考え方が間違っています
783 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 22:22:57.69 ID:PgCzoxTm.net] >>769 if isinstance(obj, (Iterable, Sequence)) and not isinstance(obj, (str, bytes)):
784 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:04:40.03 ID:wSEx/joO.net] >>769 まず基本的な型になれるといいよ ミュータブル イミュータブル シーケンス
785 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:06:36.28 ID:PionEwfV.net] a = soup.find_all としたときにaをa0とかa1のように あらかじめfor i in range(2):で生成される数値を入れたいのですが。 前もってb=a+str(i)=a0として b= soup. とできますか?
786 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:30:24.72 ID:2isIGBT3.net] aやa0/a1は字面こそ似てるけどPythonからすると全く関連のない識別子で統一的に扱えなくなる listとして単一の変数で扱うのが筋 a = [] # list a.append(soup.find_all(…)) 急がば回れでまず公式チュートリアルをやるべき
787 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:41:19.59 ID:PionEwfV.net] ご教授有難うございます
788 名前:デフォルトの名無しさん [2022/04/20(水) 23:42:38.34 ID:LGsJlZ4G.net] subprocess.Popenで動かしたものの出力を拾いたいのですが文字化けしてしまいます どうすれば文字化けが治りますか? windows 10 python2.7で3.10の.pyを動かしています 2.7のほう(GIMP python コンソール) p = subprocess.Popen(('C:\\Users\\aa\\AppData\\Local\\Programs\\Python\\Python310\\python.exe C:\\Users\\aa\\Desktop\\oyo.py'), stdout = subprocess.PIPE, shell=True) line = p.stdout.readline() line 3.10のoyo.py #!/usr/bin/env python # -*- coding: utf-8 -*- print("あいう") 結果 あいうが'\x82\xa0\x82\xa2\x82\xa4\r\n'になってでてきますorz
789 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:49:59.94 ID:5YAs/nU7.net] もうPython2覚えてないや line.decode('cp932') かな?
790 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:53:10.20 ID:CqlWpUmw.net] >>773 何のためにそんなことしたいの? 前にも似たようなこと書いてた人がいたけど 変数名を連番で生成してそれらに代入したくなる状況が想像できないので理由を説明してくれると助かる
791 名前:デフォルトの名無しさん mailto:sage [2022/04/20(水) 23:59:08.90 ID:2isIGBT3.net] >>778 > 前もってb=a+str(i)=a0として こうメタプロ的に解決しようとかんがえたんだろ なんでわからん
792 名前:776 [2022/04/21(木) 00:06:54.28 ID:EXXirMvu.net] >>777 文字が増えるだけで普通の文字になってくれないです line.decode('cp932') u'\u3042\u3044\u3046\r\n'
793 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 00:31:19 ID:68zG9eph.net] >>780 ちゃんと「あいう」とUnicode文字列で保持できてる そのGIMP環境で日本語がprintできる前提で >>> '日本語'.decode('cp932') がエラーなしなら >>> print u'\u3042\u3044\u3046\r\n'.encode('cp932') でとおるはず 環境によりcp932はutf8他かもしれんが
794 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 00:38:42.33 ID:Qeso+L0D.net] >>776 最後2行 line = p.stdout.readline().decode('cp932') print line で表示できるはず
795 名前:776 [2022/04/21(木) 00:53:13.48 ID:EXXirMvu.net] >>781 >>782 GIMPコンソール上では line.decode('cp932')で u'\u3042\u3044\u3046\r\n' とでてたんですが メッセージボックスだしたら gimp.message(line.decode('cp932')) 日本語表示されました。 よくわからないですがそういう文字の扱い?みたいです おさわがせしました ありがとうございます
796 名前:776 [2022/04/21(木) 01:54:42.76 ID:EXXirMvu.net] もう一つ質問なんですが stdoutで他の.pyで動かした出力が受け取れたんですが 他の.pyに入力を与えてその結果出力を受け取るにはどうしたらいいんでしょうか? 検索しても p = subprocess.Popen(('C:\\Users\\aa\\AppData\\Local\\Programs\\Python\\Python310\\python.exe C:\\Users\\aa\\Desktop\\oyo.py'), stdin=subprocess.PIPE,stdout = subprocess.PIPE, shell=True) みたいに stdin=subprocess.PIPE を追加するみたいなんですが、入力する変数はどこに書けばいいのか 入力を受け取る側の.pyではどうやって受け取るのか分からなかったです
797 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 02:05:23.23 ID:Qeso+L0D.net] >>784 .communicate(input=変数)
798 名前:746 mailto:sage [2022/04/21(木) 06:31:01.36 ID:EXXirMvu.net] >>785 ありがとうございます 入力を受け取る側の.pyではどうすればいいんですか?
799 名前:デフォルトの名無しさん [2022/04/21(木) 09:46:00 ID:v468I8x9.net] ターミナルから以下を入力すると問題なく実行できるのに、 ファイルcalendar.pyに保存して実行すると TypeError: 'module' object is not callableになるのは何故でしょう? import calendar print(calendar.calendar(2022))
800 名前:デフォルトの名無しさん [2022/04/21(木) 09:48:00 ID:v468I8x9.net] すみません自己解決しました。 calendar.pyの名前が被ってるからのようですね。
801 名前:746 mailto:sage [2022/04/21(木) 17:49:56.13 ID:EXXirMvu.net] 自己解決です 受け取る側にinput()で出来ました
802 名前:デフォルトの名無しさん [2022/04/21(木) 19:03:12.96 ID:FRtLfLsM.net] import tkinter でTtkが読まれないのは仕様だそうですが、いまいちしっくりこないんですが単なるインポートでコレが読み込まれるとか(Ttkのように)読み込まれないとかはどこで知ればいいのでしょうか?
803 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 19:17:14.76 ID:gmJJNdw9.net] >>790 from tkinter だとtkinter以外インポートしないから from tkinter import * のときってこと? それなら tkinter.__all__ でわかる
804 名前:デフォルトの名無しさん mailto:sage [2022/04/21(木) 19:20:14.88 ID:gmJJNdw9.net] https://docs.python.org/ja/3/library/tkinter.ttk.html Ttkって拡張があるんだね これは個々の事情なので知ってないとわからないけど ここに書いてるし説明くらい読もうよしかいえん
805 名前:デフォルトの名無しさん [2022/04/21(木) 20:19:47 ID:YKw8btnC.net] import tkinter as tk import tkinter.ttk as ttk imporr tkinter.messagebox as tkmb import tkinter.filedialog as tkfd 俺が普段使うセット from tkinter import * from tkinter import ttk は推奨しない 一部のウィジェットはtk版のが使いやすかったりするから オーバーライドされてほしくないのだ
806 名前:776 [2022/04/22(金) 01:33:52.51 ID:llHCzfDa.net] >>776 です input()で入力を受け取ったpython3.10の方が文字化けしてしまって 自分なりにはいろいろencode,decode試したんですが うまくいかなかなかったです 文字化けを直すにはどうしたらいいですか? GIMPコンソール上の入力(python2.7) import subprocess input_text = 'あいう' line="" p = subprocess.Popen(('C:\\Users\\aa\\AppData\\Local\\Programs\\Python\\Python310\\python.exe C:\\Users\\aa\\Desktop\\ohayo.py'),stdin = subprocess.PIPE, stdout = subprocess.PIPE, shell=True) line=p.communicate(input=input_text)[0] print line python3.10の.py #!/usr/bin/env python # coding: utf-8 from tkinter import messagebox text = input() messagebox.showinfo("moji",text) ↑このメッセージボックスの中身が 画数の多い漢字と記号に化けてしまいました コピペできなかったので画像付けます https://dotup.org/uploda/dotup.org2781923.jpg.html
807 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 02:34:21.05 ID:I15ojW8g.net] >>794 line=p.communicate(input=input_text.encode('cp932'))[0].decode('cp932')
808 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 12:16:08.09 ID:j0HvfQsZ.net] >>778 テーブルを美汁でとるとき一行づつdictしてconcatinationするときに使えないかと思い
809 名前:デフォルトの名無しさん [2022/04/22(金) 13:23:31.05 ID:sHpgXsI/.net] アナコンダかをインストールして混ぜるな危険のpipとコンダをやってしまい壊れた pip一本化で問題ないですか?
810 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 13:38:07.44 ID:EkSdB4ug.net] 一本化で問題ない
811 名前:デフォルトの名無しさん [2022/04/22(金) 14:13:32.13 ID:sHpgXsI/.net] サンクス
812 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 14:37:59.91 ID:53M5rCU+.net] クラスを書いているとき中身が肥大化して __init__関数の引数が膨大な数になって インスタンスを作るのが大変な状態になってしまったとき リストでよく使うひな型をいくつか書いておいてそれを渡すという解決法を考えたのですが 妥当なやり方でしょうか?また他に良いやり方があればお教え願います
813 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 14:45:24.17 ID:CAe1t8bi.net] >>800 デザインパターンでググる
814 名前:デフォルトの名無しさん [2022/04/22(金) 16:00:19.34 ID:3+eT3Tts.net] >>800 >クラスを書いているとき中身が肥大化して >__init__関数の引数が膨大な数になって インスタンスを作るのが大変な状態になってしまったとき どんな状態?
815 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 16:08:00.83 ID:EkSdB4ug.net] プロセス起動するためのクラス作りたいな。で最初は実行ファイルのexeパス指定だけのシンプルなclassだったけど arg追加しよう、ワーキングフォルダ指定、起動時最小化オプション追加、管理者として実行オプション・・・ 引数が膨大になってくってことだろ
816 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 16:15:58.67 ID:p48HHJp5.net] >>79
817 名前:6 なるほどわからん >>774 の言うようにコレクションをコレクションのまま扱う感覚を身につけたほうがいいのかもしれない htmlテーブルをdictionaryにしたいならthの構成に合わせてlistやdictにする(もしくはpandasのread_html) https://www.w3schools.com/html/html_tables.aspのtable#customersなら header = [ th.text for th in table.select('tr:first-child > th')] result = [ {header[i]: td.text for i, td in enumerate(tr.select('td'))} for tr in table.select('tr')[1:] ] print(result[2]['Country’]) # Austria [] [ここ壊れてます]
818 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 17:12:11 ID:DFy/+sOR.net] 何でもやらせるほどsubprocessの極薄ラッパーになっていって 最終的にいらねえじゃんってなる
819 名前:デフォルトの名無しさん [2022/04/22(金) 18:54:56.60 ID:vYYyAoJX.net] 1スレを読んでみようと思ったのですが一つ一つリンクをクリックして戻った結果途中で"rawを読み込めませんでした"と言われこのスレに戻されてしまいました。どなたかこのスレの1を読む方法教えて頂けませんか
820 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 19:13:49.15 ID:CAe1t8bi.net] >>806 2ch → 5ch
821 名前:デフォルトの名無しさん [2022/04/22(金) 19:48:10.24 ID:vYYyAoJX.net] >>807 ありがとうございます! 5ちゃんねるの"くだすれpython"の現行版から過去のスレのリンクを辿ってみました part34辺りで5chから2chのログに切り替わっているせいかリンクを読み込もうとしなくてロード出来ませんでした スマホからだと読むことは出来ないと言うことでしょうか
822 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:17:22.51 ID:a0+aRfgz.net] 便所の落書き読む時間があるなら書籍の一冊でも読んだほうが有意義だぞ
823 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:24:41.56 ID:h+Fap4CC.net] >>803 > ワーキングフォルダ指定、起動時最小化オプション追加、管理者として実行オプション・・・ そう言うのはプロパティとかでいいだろ > 引数が膨大になってくってことだろ 毎回全部指定するつもりなのかよw
824 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 20:59:16.35 ID:cNb4vicF.net] 毎回全部指定したい(指定強制したい)ってことはあるからな
825 名前:デフォルトの名無しさん mailto:sage [2022/04/22(金) 21:03:59.41 ID:7tkDjHFj.net] >>811 ラッパー経由になるだけだから指定強制なんて意味ないでしょ
826 名前:デフォルトの名無しさん [2022/04/22(金) 21:20:42.63 ID:72MHsUfr.net] >>800 はまだ>>800 しか書いてなくて、後は>>803 の憶測について議論してるんだよね?
827 名前:746 mailto:sage [2022/04/22(金) 21:33:54.80 ID:llHCzfDa.net] >>795 ありがとうございます! 出来ました!! エンコードとデコード両方しないと行けないのですね 助かります!!
828 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 18:41:33.50 ID:yaJafia3.net] テキストファイルの先頭からあるワードを検索し 1回目に見つかったワードを特定のワードに置換 2回目に見つかったワードをまた別のワードに置換 … という処理を実装したいです 自分の知識だと、テキストを一行ずつ読み込んでは 正規表現でワードをサーチしカウンタを加算し カウンタ値に応じてreplaceするっていうコードしか浮かばないですが 何か他に効率的・定番的な書き方があれば教えてください
829 名前:776 [2022/04/23(土) 21:11:23.83 ID:S27JpXaa.net] 度々すみません。 >>794 で教えてもらった以下の行を入れたのですが line=p.communicate(input=input_text.encode('cp932'))[0].decode('cp932') 中国語(繁体語)をinputに入れたところ以下のエラーがでてしまいます UnicodeEncodeError: 'cp932' codec can't encode character u'\u91d9' in position 0: illegal multibyte sequence 検索してみたところcp932に含まれない文字があった場合にでるみたいです u'\u91d9'はこの字でした(釙) https://0g0.org/unicode/91D9/ 中国語(繁体語)をinputに送っていたので 以下を参考にエンコードをcp932ではなくてcp950にしてみたのですが文字化けしてしまします docs.daemon.ac/python/Python-Docs-2.5/lib/standard-encodings.html 他にbig5やbig5hkscsも試してみましたが文字化けします この文字化けはどうしたらちゃんと表示されますか? こういった多言語を扱う場合どうしたら良いのでしょうか? u'\u91d9'(釙)以外にもu'\ufe50'(﹐)などにも引っかかってしまします
830 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 21:38:30.92 ID:LTun4BN3.net] >>815 そんな一般性もないような使い捨てのコードは効率よりわかりやすさが大事 文章そのままにコーディングしたらええがな
831 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 22:06:21.75 ID:A38Z8Utb.net] >>815 1行ずつ読み込みだとキーワードの途中改行に対応できない気がするけどいいの?
832 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 22:33:39.38 ID:7+1nJnMo.net] 途中改行するキーワードなんて生まれてこのかた見たことない
833 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 22:48:08 ID:dSfqqc1i.net] >>816 Windows の文字コードは、独特で誰も知らない。 たぶん、何百種類もあるでしょ 日本なら、CP932 だけに対応するけど、 全世界の何百種類とかに対応できない そもそも、外人はCP932すら知らないし CP何々とか、UTF-16 とか、Linux 用の全言語で処理できない。 Linuxは全言語、UTF-8 のみに統一されている これ以外の特定の端末用言語、例えば、Windows PC 用言語などは、特殊 だから基本、システムで使ってはいけない。 システムはLinuxのみで、Windows PCは単なるクライアントとしてしか使えない Ruby on Rails では辞書に定義することで、多言語化しているけど、 これはUTF-8だからできる この文字はCP932、これはCP950 とか一々、何百種類に対応できない
834 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 22:49:34 ID:Ac8uMNgs.net] 置換だと検索文字として\n含むのはよくあるし キーワードに改行なくてもワードラップがきちんとされてないテキストなんかだと改行コードに邪魔されてヒットしないこともよくある そういうとこはやりたいことの条件しだいだからなんともだな
835 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 23:04:11.07 ID:ll5AWkFj.net] >>815 re.subの引数に呼ばれるたびにカウントアップした文字列を返すreplacerを渡してやればいい
836 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 23:15:47 ID:pT174lS4.net] >>820 もうlocale知らん奴がいるんだなぁ
837 名前:デフォルトの名無しさん mailto:sage [2022/04/23(土) 23:29:24.04 ID:OEg3OW8V.net] >>816 これでどうだろう import subprocess, os my_env = os.environ.copy() my_env["PYTHONIOENCODING"] = "cp65001" input_text = 'あいう釙' line="" p = subprocess.Popen(('C:\\Users\\aa\\AppData\\Local\\Programs\\Python\\Python310\\python.exe C:\\Users\\aa\\Desktop\\ohayo.py'),stdin = subprocess.PIPE, stdout = subprocess.PIPE, shell=True, env=my_env) line=p.communicate(input=input_text)[0] print line 後出し条件追加は控えてくれると助かる
838 名前:デフォルトの名無しさん [2022/04/24(日) 00:03:00.76 ID:XmcVNZmY.net] > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw クソチョンはウンコを食べる糞食人種w クソチョンはゲリ便をじゅるじゅると うまそうに食うw
839 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 00:16:33.35 ID:JO+3K+yc.net] >>824 my_env["PYTHONIOENCODING"] = "utf-8" のほうがわかりやすいかな
840 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 00:25:04.32 ID:lQs7d+0h.net] 外部コマンド前提だから古典Unix的に 間にiconvを挟むのが適当
841 名前:776 mailto:sage [2022/04/24(日) 12:08:29.52 ID:kM/BqeMC.net] >>824 ありがとうございます こんな方法があるんですね 驚きました まさか外国語も色々エンコードあるなんて思いもよらず 後出しになってすいませんでした >>827 どこにiconvというのを入れればよいのですか?
842 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 12:48:07.19 ID:PxrfmSzI.net] >>828 https://man.cx/iconv(1)/ja こういう外部コマンドがある。(ないなら導入する) python310.exe UTF-8出力するscript.py | iconv -f utf8 -t cp932 でcp932で出力するコマンドと同等になる。前に置くと入力も変換できる。 わかるとおもうがパスやエンコーディングは適当に読み替えて
843 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 13:28:31 ID:JO+3K+yc.net] 多言語処理するなら、824の方法でいいよ iconvなんか使ったらエラー処理面倒くさくなる 他には、バッチファイルでchcp 65001する方法や、utf-8のファイルで受け渡す方法もある
844 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 14:10:53.30 ID:QXI/jpLW.net] いいわけないだろw utf8決め打ちだけでいいなら苦労しない
845 名前:デフォルトの名無しさん mailto:sage [2022/04/24(日) 14:36:36.75 ID:JO+3K+yc.net] >>831 なら、794の処理を動く形でコード書いてよ 見て判断するよ
846 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:25:05.85 ID:ir2De51z.net] Python関連から少し外れてしまうのですが、元々汎用系の技術者だったのですが、縁があってデータ分析の仕事に関わることになりました。 現在python3を手続き型の書き方でコード書いているのですが、オブジェクト思考に切り替えた方が良いタイミングやポイントありますか? 今のところ一人でpandasやpysparkを処理していて100行にも満たないくらいの小規模開発しています。 オブジェクト思考に憧れはあるのですが、まだ書いたことはありません。
847 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:35:36.96 ID:5b8jykvI.net] ( ^ω^)汎用って何が汎用なんですかお?
848 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:38:14.23 ID:ir2De51z.net] >>834 具体的にはコボラーメインでした
849 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:41:18.84 ID:GNyXlK50.net] >>833 切り替える必要はありません オブジェクト指向は大規模開発を大人数で共有しながら進めるために 編み出された作法です そんなプロジェクトにPythonは使われません
850 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:42:40.76 ID:ufUUo1o1.net] 今どきオブジェクト指向は…
851 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:55:21.47 ID:ir2De51z.net] >>836 そうなのですね 可読性とか設計的にオブジェクト思考の方が優れているイメージがあり、汎用系出身のプログラマーとしては劣等感を感じています >>837 最近の流行り=メインストリームは何でしょう?
852 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:59:31.83 ID:NGFGt/bW.net] >>836 > オブジェクト指向は大規模開発を大人数で共有しながら進めるため そんなことないだろw 継承とか具体的に使い始めるとたぶん 目からうろこだろ感動もんだろ鳥肌もんだろ汎用系からだと
853 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:40:25.60 ID:Sf8HNHhp.net] 疎結合進んでひとりでも大規模開発できるようになるし 小規模でもアタマ楽になるし学習コスト顧みても利点の方が多い
854 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:51:51.09 ID:ir2De51z.net] >>840 仕事中は時間の誓約もあるので手続型でコード書いちゃって、プライベートでは作りたいものなくてオブジェクト指向の本読んでも分かったような分からないような感じで実践できていません 皆さんはオブジェクト指向はどうやってマスターしましたか? デザインパターンの本を写経するのが一番なんですかね。。。
855 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 00:19:27.73 ID:bO9itIdJ.net] >>838 よほどクラス設計をきちんとやっておかないと可読性はむしろ落ちます 自分で書いたクラスでも三日経てばわからなくなります 結局のところ手続型で上から下に一直線にゴリゴリ書く方が速いし手直しも楽です ただしオブジェクト指向は作法ですから、チームが作法として採用している場合は致し方ありません が、先に述べたようにPythonでチーム開発などすることはまずありませんからご安心を
856 名前:デフォルトの名無しさん [2022/04/30(土) 00:49:48.45 ID:46aR4GCy.net] データ分析を書き下しでやるなんて聞いたことない どんな小規模よそれ
857 名前:デフォルトの名無しさん [2022/04/30(土) 01:24:52.50 ID:03xdZc7H.net] データ分析で100行に満たないとなると、オブジェクト指向じゃないと思うけどなあ. レコード同士の制約がRDBMSで取り扱えない範囲の制約だったらオブジェクト指向にした方がいいけど、 大体RDBMS的アプローチで十分じゃない? 分析手法が固まった段階で業務にいれこむとなるとちゃんとオブジェクト指向にした方がいいと思うけど、分析の段階だとPOCでしょ
858 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:13:55.43 ID:TTQ8Rhtz.net] 典型的なオブジェクト指向は、Ruby on Rails でも、最近の言語、Go, Rust, Elixir などは、オブジェクト指向ではない。 オブジェクト指向の弊害の方が目立ってきたため Elixirは関数型
859 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:19:59.25 ID:38aggrlO.net] 頭の中で完結してるけど説明が下手なのか 書くうちに発散して纏まってないけどそのまま殴り書いたか ようわからん文章やな
860 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:22:55.20 ID:Zvv3yApT.net] ぶっちゃけSQLとパワークエリで事足りると思うんですが、会社がPythonメインでやるという方針なのでPython使ってます。pandasもpysparkもデータ分析用というより大量データの結合やデータ変換に使うことが多いです。 環境的には不要で自己満になるかもなのですが、今後のスキルアップのためにオブジェクト指向取り入れて開発したいなぁという願望があります。
861 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:25:25.49 ID:MSWmTJKz.net] おまえら素人ばかりだな オブジェクト指向で作るのは理由があるからだ 理由は自分で考えろ
862 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:26:46.14 ID:Zvv3yApT.net] >>845 Elixeir初めて聞きました。新しい言語や関数型言語も出てきているのですね。。。
863 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:26:52.93 ID:MSWmTJKz.net] pythonメインでやる方針にも理由がある 理由は自分で考えろ
864 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:27:36.14 ID:MSWmTJKz.net] とにかくやれ やらない理由はいくらでもあるから とにかくやる気があるうちにやるんだ
865 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:34:17 ID:MSWmTJKz.net] やってみて わからなかったらいつでも質問しておいで
866 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 02:37:35 ID:Zvv3yApT.net] ありがとうございます とりあえず挑戦してみます
867 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 05:55:28.21 ID:OR8SZm5l.net] >>835 COBOLに慣れてるならGnuCOBOLでも入れて色々遊んでみたらいいんじゃね? COBOL2002からはオブジェクト指向をサポートしてる
868 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 06:14:48.85 ID:Zvv3yApT.net] >>854 COBOLでもオブジェクト指向サポートしてるバージョンあるんですね! 時代の進歩に全然追い付けてないです
869 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:21:56.93 ID:nLS5ACA1.net] 妙だな…Pythonでチーム開発とか普通にあるけど
870 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:29:49.76 ID:mj6Qj3Uj.net] >>856 日本だと少ないとはいえ、チーム開発も少しずつ増えてきてるよな というか規模の大きな開発が増えてきたから 型ヒント周りの機能が強化されてきてるんだし
871 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:48:06.80 ID:UlwKMlAZ.net] YouTubeやDropboxがPythonで書かれてるけど、1人で開発されたなんて考えてんのかね、>>842 は https://tech-camp.in/note/technology/45702/ DropboxのRian Hunter氏は「PyCon APAC 2013」で、Dropboxは全てPythonで開発していると述べています。コード量はサーバとクライアントのコードを全て合わせて93万7707行。
872 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 08:55:29.45 ID:0pJ/3NeQ.net] 一般的にpythonがーじゃなくて、そいつが職場で開発してるって条件下では大規模開発はありえないって話だろ
873 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 09:46:12.98 ID:2kJdiTOr.net] >>842 の気持ちはわかる たぶんバッチ処理主体でPythonを使ってる現場なんだろうけど、バッチ処理しか書けない奴って本当に一直線のコードしか書けないのよ 最近は業務系のそういう連中がPythonに進出してきていて、なかなか酷い状況だよ
874 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 12:04:18.69 ID:asMkUOFh.net] 一般常識として身につけておいたほうかがいいとは思うがpandasなんかを使ったデータ分析用途の場合はオブジェクト指向は極力避けて関数とデータを意識的に分けたほうが可読性もメンテナンス性も高いよ SeriesやDataframeのようにデータとメソッドが不可分な独自の抽象データ構造をライブラリとして提供する場合にはオブジェクト指向を使ったほうがいい
875 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 14:35:51 ID:wjVEP1qN.net] Pythonはオブジェクト指向を学ぶのには向いてないよな
876 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 15:03:49.44 ID:Uatckw9k.net] >>860 その通りです 私はバッチ処理専門で開発していますが 関数すら極力書かないようにしています 関数を作ると処理の流れが行ったり来たりして読みづらいからです Cで言うとmain関数の中に全ての処理があるように書きます
877 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 15:17:02.34 ID:XZrd/bpX.net] >>863 関数の役割分担や命名をちゃんとしてないからでは? 関数はそれ自身で責任を追って実装・検証するもの 使う側は関数内部まで気にしなくても済むようにならないと意味ない なんで便宜上行ったり来たりは発生しない 外部ライブラリやビルトインの関数の実装までふつう追わないでしょ
878 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 16:40:05.60 ID:wcqGltd4.net] >関数すら極力書かないようにしています さすがにそれはアカン 考えを改めた方がいい
879 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 16:45:43.84 ID:WuQ7ClRo.net] 個別の関数をmain関数と同居させる場合、 関数の配置の順序とかあるの? JSで関数を最後にまとめたりしているものがあったけど、 Pythonじゃ見かけないような
880 名前:デフォルトの名無しさん [2022/04/30(土) 16:56:56.93 ID:IElPr3np.net] >>863 コボラーですね分かります。 合言葉はIDENTIFICATION DIVISION。
881 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 17:15:45.06 ID:XOEt5cKu.net] >>866 JSはスコープごとにスクリプトを2回読むイメージで実行されるので 関数や変数の宣言は巻き上げられて先頭で宣言されてるのと同じになる Pythonにはそういう機能はないので1ファイルならmainの実行は最後にするのが普通 def main(): hoge() def hoge(): print(‘hoge’) main()
882 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 17:16:15.33 ID:Uatckw9k.net] >>866 他の言語は知りませんが、Pythonは関数を呼ぶ処理より前に 関数定義がないといけないんですよ だから関数のあるスクリプトファイルを開くと、まず関数の羅列が ズラズラと目に入るわけでして、文書を上から下に読んでいくという 人間の自然な動作に合わないのです
883 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 17:39:11.77 ID:PWl3mLPj.net] コボラーってやっぱアタオカだな
884 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 18:04:44.96 ID:64v4nlhT.net] >>869 def main(): sukinakansuu() def sukinakansuu(): pass if __name__ == '__main__': main() みたいに書くよ
885 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 18:07:46.92 ID:OR8SZm5l.net] >>866 Python の def 文は「実行文」だから定義される関数を呼び出す前に実行しないといけないのでJSみたいにするとエラーになる ちなみに実行文だから if xxx: def foo: print('foo1') else: def foo: print('foo2') みたいにして実行時に関数の定義を変えることもできる
886 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 18:49:26 ID:oMuBjy8I.net] 実行文??
887 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 19:22:27.31 ID:XZrd/bpX.net] https://docs.python.org/ja/3/reference/compound_stmts.html#function-definitions 式じゃないし識別子でもない単にそこで実行される文
888 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 21:51:14.91 ID:yu/EzU82.net] >>872 それ「実行文だから」とか全然理由になってない インタプリタ型の言語ならJSでもRubyでもPHPでも全く同じことできる 実行文ではないC言語でも定義より先に呼び出したらエラーになる
889 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 22:12:01.94 ID:o6QgUZIK.net] >>872 ┏━━━━━━━━━━━━┓ ┃The image you are .┃ ┃requesting does not exist .┃ ┃or is no longer available. .┃ ┃ ┃ ┃imgur.com ┃ ┗━━━━━━━━━━━━┛
890 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 22:22:35.44 ID:64v4nlhT.net] seleniumでaタグをclickしてswitch_to.windows(driver.window_handles[1])しても<html><head></head><body></body></html>っていうページにアクセスするようになる なんで無内容に?どうすればいいんだろう そもそもGUI上はクリックしてないんだけどなんだこれ
891 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 22:23:14.79 ID:OR8SZm5l.net] >>875 > インタプリタ型の言語ならJSでもRubyでもPHPでも全く同じことできる やれるね、だから何? > 実行文ではないC言語でも定義より先に呼び出したらエラーになる コンパイル言語で定義より先に呼び出し? 実行順序とソース上の順序を混同してるだろw
892 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 22:59:55.25 ID:64v4nlhT.net] >>877 解決 クリックしたあと2秒sleepさせたら出来た 読み込みに時間が掛かるんだな
893 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 23:11:39.76 ID:484odO/R.net] >>878 だから何じゃねーよww ダメだこいつw
894 名前:デフォルトの名無しさん [2022/05/01(日) 02:13:14.49 ID:b95w4aAB.net] >>875 C言語の場合、宣言すれば定義は後回しでOK。
895 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 05:53:28 ID:Rd1MW222.net] >>880 ダメなのはお前の頭だろw 他の言語なんて関係ないし
896 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 08:06:33.67 ID:JzdAzqq0.net] https://i.imgur.com/3qXlqVA.jpg
897 名前:デフォルトの名無しさん [2022/05/01(日) 09:40:22.97 ID:0ggTu6P0.net] 実行文って、コンパイル型言語で宣言文と区別する意味の用語だから、Pythonでは、完全にナンセンス 「実行文だから」は何の意味も持たない 実行文でない文は、逆にあるのか?
898 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 10:00:01.37 ID:aj8iUgGb.net] コンパイル言語? JSにも宣言文はあるんだが
899 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 10:06:43.73 ID:KjQtFKQ9.net] インタプリタだって全部の行を一行ずつ実行しながら解釈しているとは限らないんだから区別はあっておかしくない。
900 名前:デフォルトの名無しさん [2022/05/01(日) 10:39:20 ID:c1q3P+1N.net] 宣言っていまいち意味わからんのだけど。 defは今の名前空間に新たにオブジェクト(function/callable)を作成するって捉える方がしっくりする。 だから、名前()で呼び出しするためには、その前に作成が終わってなきゃダメよね、ってなる。 って考えると、Pythonは上から下に順番に実行しかしていない、ってわかる。
901 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 11:07:07.83 ID:IDzy7BiL.net] 関数定義をまとめた関数をスクリプト末尾に書いて それをスクリプト先頭で呼ぶようにすれば…と思ったけどダメですね ズラズラ並んだ関数定義を見たくない場合、定義部分を別スクリプトにして それをimportすればいいのかな?
902 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 11:28:22.49 ID:UqOJOPuh.net] 868のやり方じゃ駄目なんけ?main()の呼び出しを最後に書く以外は関数の並び順は自由だし、関数名がmainなら最初に実行されるだろうことは暗に容易に伝わる。 自分も呼び出すほうを上、呼び出されるほうを下に書くほうが読みやすいと感じるから常にそうしてるよ
903 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 11:54:47.68 ID:IDzy7BiL.net] >>889 自分はメイン処理をトップレベルに書く派なので 残念ながらこの手法は使えません しかし知識として知りたくはあります >>868 ってmain()より下にあるhoge()をmain()から呼べるってことですよね それは何故でしょうか
904 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 12:26:54.53 ID:Dd8WxxXv.net] >>890 > 868ってmain()より下にあるhoge()をmain()から呼べるってことですよね > それは何故でしょうか main()が(定義される時じゃなくて)実行される時はdef hoge()も実行済みだから
905 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 12:29:09.32 ID:UqOJOPuh.net] そのこだわりはよくわからんな… デメリットしか思いつかん
906 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 12:46:49.10 ID:JzdAzqq0.net] 相互参照している場合とかどうするんでしょうね?
907 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 12:52:31.00 ID:Yd4A+jrH.net] >>885 >>872 で「実行文だから実行時に関数定義をかえることができる」と書いてるのは嘘だったってことかな?
908 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 13:24:18.52 ID:Rd1MW222.net] >>893 実行までに各々定義すればいいだけだからなんの問題もないだろ
909 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 13:25:01.76 ID:Rd1MW222.net] >>894 Pythonの話とJSの話の区別もつかない無能乙
910 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 13:46:20.12 ID:qrKdrkjM.net] どうでもいい話になってきてるような スレタイにふさわしいと言えばそうだが
911 名前:デフォルトの名無しさん [2022/05/01(日) 14:07:59 ID:b95w4aAB.net] スレタイ通り下らない話で盛り上がってて実に素晴らしい。
912 名前:デフォルトの名無しさん [2022/05/01(日) 14:08:54 ID:QvrU5Mi0.net] エントリポイントのエの字も出ない
913 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 14:18:30 ID:Gwm1B3AE.net] >>891 実行というからおかしくなる 関数のシグニチャを評価するタイミングと 関数のボディを評価するタイミングの違い 前者が他言語でいう宣言文の役割 Cのプロトタイプ宣言とかと同じ Pythonでも宣言として捉えたほうが分かりやすいよ
914 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 14:20:32.48 ID:IDzy7BiL.net] >>891 うーんよくわかりません なぜ上にある関数から下にある関数を呼べるのか 私の脳はここまでです >>892 メリットが二つあります ・スクリプトの先頭から実行が始まるので流れを追いやすい ・メイン処理の字下げが一段少なく済む
915 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 14:40:33.88 ID:vJsN8meg.net] >>901 > 先頭から実行が始まる 先頭に書いてあるのがmain関数なら上から読み下せるのは同じじゃね?
916 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 14:53:14.40 ID:KjQtFKQ9.net] うちはスクリプトの末尾にこの2行、ってのが定番たわ。 if __name__ == '__main__': main()
917 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:06:46.08 ID:JzdAzqq0.net] >>895 https://i.imgur.com/1yUgMXq.jpg
918 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:10:06.70 ID:Rd1MW222.net] >>900 だからそんな思考回路だと if xxx: def foo: print('foo1') else: def foo: print('foo2') みたいなコード見たらなんで宣言2個あってもいいんだよ?ってなるだろ
919 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:11:46.01 ID:IDzy7BiL.net] >>902 main関数が処理の始まりかどうかは結局下を見ないと確定しないので… ならばトップレベルにメイン処理を書く方が安心確実と思う次第です [] [ここ壊れてます]
921 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:15:47.63 ID:4M5GqABF.net] def main(): hoge() def hoge(): print(‘hoge’) main() Pythonの評価順は基本的に上から下に一行ずつ 1行目ではdef main():までの関数シグニチャのみ評価してボディは評価されない(それがdefの役目) 2行目も同じようにdef hoge():までの関数シグニチャのみ評価 3行目の関数呼び出し時にmain関数のボディが評価される そのタイミングではhoge関数はシグニチャが評価され関数として宣言済みなのでhogeを呼び出せる
922 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:20:45.71 ID:Rd1MW222.net] >>901 Pythonインタープリターの気持ちになって考えればわかると思うよ 1: def main(): 2: hoge() 3: def hoge(): 4: print(‘hoge’) 5: main() 1を実行する時は2の内容をmainで登録する(この時点では2自体は実行されない) 3も同様に4の内容をhogeで登録する 5のmainの呼び出しで2が実行されて4が呼ばれるので実行順は1→3→5→2→4のようになる
923 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:22:24.87 ID:Rd1MW222.net] >>906 そう思うのは自由だけどPythonでは無理だから諦めるか他の言語にするしかない
924 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:22:30.22 ID:F/hLZDCn.net] >>905 宣言が2個あったところで何が問題なの? 2個あったらエラーにするルールのある言語もあるけどPythonにそんなルールない
925 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:30:33.22 ID:vJsN8meg.net] >>906 確かにそのとおりだけど、あんまり他人を疑いすぎると禿げちゃうよ
926 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:36:27.81 ID:M2LDeL9g.net] これからはクラス定義もクラスメソッドも関数もごちゃごちゃにして途中でjson入れたり意味なく連想配列作ったりいきなりタプルにしたり判読し辛いコード書くことに決めた 初心者が初心者になる前に躓いて読めなくなるようにしていこう
927 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:37:45.97 ID:M2LDeL9g.net] オーバーライドしまくってやる
928 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:38:22.08 ID:M2LDeL9g.net] 意味なく戻り値にクラスメソッド使ってやる
929 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:51:18.35 ID:Rd1MW222.net] >>910 エラーにしない言語って何?
930 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 15:55:09.23 ID:zrtkQxP2.net] javascriptは同じ名前の関数が並んでてもエラーにならないな。後ろが使われる
931 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 16:00:48.30 ID:DfY2Iokg.net] グローバル変数・定数の定義とか、 場合分けしてモジュール等をインポートするときとか、 これらをサブ関数の中か、その前にグローバルで書くべきかいつも悩むわ モジュール等のインポート グローバル変数・定数の定義 場合分けによるモジュール等のインポート(環境依存) サブ関数の定義 場合分けによるモジュール等のインポート(環境非依存) メイン関数の定義 メイン関数の実行(>>903 ) これ、問題ある?
932 名前:917 mailto:sage [2022/05/01(日) 16:03:56.84 ID:DfY2Iokg.net] グローバル変数・定数の定義なんかも サブ関数としてまとめて定義して、メイン関数で呼び出してグローバル宣言したほうがいいのかな?
933 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 16:08:44 ID:Rd1MW222.net] >>916 まあjavascriptはvarで同じ変数使ってもエラーにならないような言語だしね さすがに最近はletで重複させるとエラーになるみたいだけど
934 名前:デフォルトの名無しさん [2022/05/01(日) 16:30:44 ID:6txgexSj.net] 機能別にモジュール作って、関数詰め込んで使ってるんだが、合ってる?
935 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 18:30:38 ID:tQAUcym9.net] 一連の流れ見てもよくわからんのだけど、質問は何なの?
936 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 18:43:16 ID:CmrphzhC.net] 自分の思い通りにソース書きたいけど仕様上書けない、どうしたらいいのって愚痴
937 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 19:08:52 ID:tQAUcym9.net] もう質問じゃないよね。だったら区切ってもいいでしょ
938 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 19:09:28 ID:Jd2/Razo.net] わからないです
939 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 21:52:03.79 ID:haToe2zO.net] >>917 普通にモジュール分割していいなら メイン関数は定義せず__main__.pyのトップレベルに書く 定数は定数用のモジュールを用意してimport
940 名前:デフォルトの名無しさん [2022/05/01(日) 22:17:08.56 ID:b95w4aAB.net] 「オレは気に入らない」って人は生きるの辛そう。 柔軟性が無いと常に何かと戦うことになる。
941 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 23:58:05.46 ID:Hq8ES+K0.net] こだわりなくてもいいとこなら別にそれでいいんじゃね こだわらなきゃいけない事なんていくらでもあるだろう
942 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 00:19:51 ID:zZIONtog.net] ノットフォーミー全盛期だよな、現代
943 名前:デフォルトの名無しさん [2022/05/02(月) 13:04:57.99 ID:ZthOcqCz.net] とにかく在日は悪いことしかしない 在日は皆殺しにすべき!
944 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 21:11:16.99 ID:FWJ3qdnv.net] 俺も最初の頃はこだわり持って色々なこと試してたけど結局シンプルイズベストだと気づいてさっさと書くようにしたら効率上がったなぁ まぁある程度新しいことにも挑戦するべきだけどさ でもセイウチ演算子の使い所がよく分からないよね
945 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 06:15:08.74 ID:mgZ8H7hi.net] > でもセイウチ演算子の使い所がよく分からないよね C言語やってたら余裕 with open("sample.txt") as f: while text := f.readline(): print(text)
946 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 06:20:24.93 ID:ZdlL7fiJ.net] それfor文より何がいいの? というかファイルのデータなくなったらエラーでないの? while文の終了条件がわからない
947 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 06:51:18.93 ID:mgZ8H7hi.net] for 文で書いてみてよ
948 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 07:44:11.89 ID:GYbp8Bpg.net] セイウチ演算子の使い所は、PEPのExapmlesを見れば分かるのでは https://peps.python.org/pep-0572/#examples
949 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 10:25:34 ID:lrUYCsXU.net] >>933 for line in f: print(line) ファイルオブジェクトはiterableで行読み込みする てかふつうこう書かん? >>932 https://docs.python.org/ja/3/library/stdtypes.html#truth ファイル終端で空文字列(=偽)が返って終了
950 名前:デフォルトの名無しさん [2022/05/03(火) 16:37:55.33 ID:zAUrPbJb.net] 0.1*3==0.3がFalseになるのに、0.1*2==0.2がTrueになるのはなぜですか?
951 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 16:54:49.32 ID:zAUrPbJb.net] 解決しました。忘れてください
952 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 18:09:38.71 ID:5IHsdKXO.net] >>937 ちなみに何故です?
953 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 19:47:01.45 ID:6X7U05Nz.net] 計算誤差でしょ
954 名前:デフォルトの名無しさん [2022/05/03(火) 20:19:38.25 ID:zAUrPbJb.net] >>938 二進数だから >>939 そうなんだけど、0.2はその誤差が何で出ないのかなってわかんなくて聞いたけど、書いてすぐわかっちゃった
955 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 20:45:03.55 ID:tKI6TxwO.net] 知りたい~
956 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 22:27:11.85 ID:lyrCvvNg.net] 案外やなヤツw
957 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 05:25:28 ID:8abXDPny.net] ちんちんシュッ!シュッ!シュッ!
958 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 10:24:51.52 ID:vEkkTSCd.net] (2^((2^(35-1))-1))*(2-(2^-4060)) の計算がしたいんだが、できないのでとりあえず 2^17179869183 の計算がしたいが、 多倍長電卓LMで一瞬で解答が得られる 2^2147483647 でさえも、 ttps://paiza.io/projects/RM8L_oSwcs5_ghDFro5Sew でも ttp://codepad.org/ZhAiGY69 でも ttps://ideone.com/TeJEDo でもタイムアウトして困っています。
959 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 12:32:07.83 ID:Yq75WaGa.net] 日本語でOK
960 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 12:38:36.07 ID:MYAXyIRK.net] 6億桁ぐらいか? そんなのprintしろって言われても困っちゃうよ
961 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 16:24:10.63 ID:gVprMCyl.net] >>944 そんだけデカい桁扱いたいなら Decimal使いつつ、デフォルトの指数設定も弄らないとオーバフロー起こすぞ https://docs.python.org/ja/3/library/decimal.html コード例としてはこんな感じ https://ideone.com/exndwC (桁数6億ぐらいだから多分合ってると思う)
962 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 17:06:58.83 ID:vEkkTSCd.net] >>947 どうもありがとう。 大変参考になります。
963 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 17:20:45.83 ID:h3TBoBMl.net] decimal 使わずとも print しなけりゃ時間内に終わるよね?
964 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 17:22:51.83 ID:h3TBoBMl.net] https://ideone.com/xXhkPf
965 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 17:37:43.73 ID:vEkkTSCd.net] 有効桁数100桁で2^17179869183の計算ができました。 https://ideone.com/dqhOTo どうもありがとう。
966 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 18:05:45.24 ID:vEkkTSCd.net] >>949-950 カレットが使えないんじゃないかな? 計算結果が違っている。 ttps://ideone.com/SNjYuo **で置き換えてみたがランタイムエラーになる。 ttps://ideone.com/F2N5yS ttps://ideone.com/WUSd0H
967 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 19:04:52.15 ID:h3TBoBMl.net] 元の式をコピペして動いたと思っちゃった。 確かに ** にしないと計算結果違っちゃうね。 python の int は多倍長計算してくれると思ってたけど 上限あったのね。勉強になったです。
968 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 20:44:57.60 ID:SUkJat8/.net] >>940 これ教えてください
969 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 20:54:23.21 ID:Rtfrs1Kx.net] >>954 二進数 誤差 でググりもしてないならこの分野向いてない
970 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 20:58:06.37 ID:SUkJat8/.net] >>955 なんで0.2も0.3も二進数で表現できないのに0.2は誤差がでないんですか?
971 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:20:06.74 ID:Rtfrs1Kx.net] >>956 答えとしてはたまたまでPythonの浮動小数点の実装方針 >>> [(x, 1e-1 / 10 ** x) for x in range(10)] これでイメージつくかも
972 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:33:08.66 ID:/WvxkOMY.net] 仮数部が等しいから当然
973 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:51:52.77 ID:tw5Ro1fM.net] 0.2 に誤差がでないのではなく、 誤差付き 0.1 を2倍した結果が、誤差付き 0.2 と等しくなる、 というだけ 0.1, 0.2 を二進数にすると、それぞれ以下の無限小数になる 0.00011001100.. 0.0011001100.. これらを正規化すると、以下のようになる 1.1001100.. x 2^-4 1.1001100.. x 2^-3 つまり、仮数部が同じで指数部が 1 だけ異なる float の仮数部の桁数は小数点以下 52 桁なので、 53 桁目で丸められて誤差が入るが、 元の仮数部が同じなので、丸められた結果の仮数部も同じ
974 名前:デフォルトの名無しさん [2022/05/05(木) 22:29:18.63 ID:VIM8YOLC.net] 優しみがゴイスー
975 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 01:20:26.74 ID:wPj9y4p8.net] 2進数の11 は、3 だけど、 110なら6、1100なら12 指数部の指定で、桁がずれるだけで、仮数部は同じ。 仮数部は2桁で、11とする 10進数の11 は、11だけど、 110なら110、1100なら1100 これも指数部の指定で、桁がずれるだけで、仮数部は同じ。 仮数部は2桁で、11とする
976 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 13:14:50.97 ID:2qmSGQfh.net] プロジェクトのパッケージ構成で質問 https://packaging.python.org/en/latest/tutorials/packaging-projects/#packaging-python-projects 上記内の例で__init__.py、example.pyが存在するのはsrc直下ではなくて、その中にあるexample_package内であってますか?
977 名前:デフォルトの名無しさん mailto:sage [2022/05/07(土) 22:17:49.52 ID:hLdUgsLX.net] >>947 で教えて頂いた https://ideone.com のdecimalのemaxって最大9を何個まで指定可能か知ってますか? とりあえず801個まではテストしてみて動きましたが。
978 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 07:16:57 ID:rAxhmZ4o.net] decimal.MAX_EMAXに書いてある
979 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 08:22:04 ID:vKAQqA9f.net] >>964 どうやったらそれを画面出力できるの? print(decimal.MAX_EMAX) NameError: global name 'decimal' is not defined print(MAX_EMAX) NameError: global name 'MAX_EMAX' is not defined
980 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:10:53.78 ID:lPzTyKes.net] リファレンスの読み方の勉強からはじめたら?
981 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:12:41.48 ID:8ykKyj07.net] __  ̄ ̄ ̄二二ニ=- '''''""" ̄ ̄ -=ニニニニ=- /⌒ヽ _,,-''" _ ,(^ω^ ) ,-''"; ;, / ,_O_,,-''"'; ', :' ;; ;,' (.゙ー'''", ;,; ' ; ;; ': ,' _,,-','", ;: ' ; :, ': ,: :' ┼ヽ -|r‐、. レ | _,,-','", ;: ' ; :, ': ,: :' d⌒) ./| _ノ __ノ
982 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:23:18.61 ID:abjrWq6f.net] あのさぁ、俺はお前らを「道具」として見てンだわw 俺が聞いたらお前らは素直に答える。これだけでいいのw decimal.MAX_EMAXの出力方法教えろやおらぁwwwwwwwwwwwwwww
983 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:26:59.55 ID:gMjR/OFO.net] https://docs.python.org/ja/3/library/decimal.html#constants
984 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:29:39.59 ID:3lpfIXfe.net] NameError: global name 'decimal' is not defined これを解決すればいいんじゃない?
985 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:30:11.41 ID:rWXY/EV0.net] >>965 まずdecimal.MAX_EMAXの値はリファレンスに乗ってる https://docs.python.org/ja/3/library/decimal.html の定数って所 で、コードで確認する例もおいておく https://ideone.com/gt9i0u
986 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 09:34:38.39 ID:vKAQqA9f.net] >>969 書いた通りリンク先に書いてある(18個)以上の9の数を設定できちゃうんだけど、 9の数が999999999999999999個ってことなの? でも1601個設定して10^10^1600を計算したらエラーになったぞ。
987 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 10:09:59.71 ID:vKAQqA9f.net] ごめんなさい。1600個いけました。9の個数が足りてませんでした。 9の数が999999999999999999個まで行けそうですね。 すみません。
988 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 10:20:28.56 ID:vKAQqA9f.net] ctx.Emax = 10 ** 100000 # 指数上限を増やす とかできるね。
989 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 10:33:25.17 ID:vKAQqA9f.net] 処理時間と表示桁数の関係であまり大きいとエラーになるけれども 10^10^2000 https://ideone.com/hjMW7h このくらいまではいけますね。
990 名前:デフォルトの名無しさん mailto:sage [2022/05/08(日) 10:50:23.38 ID:vKAQqA9f.net] 10^10^100000 https://ideone.com/PIILdo ctx.Emax = 10 ** 10 ** 5 これを ctx.Emax = 10 ** 10 ** 6 にすると5秒ではタイムオーバーする。 なので上記が限界かな? 10^10^100001(エラー) https://ideone.com/Og9zW4
991 名前:デフォルトの名無しさん mailto:sage [2022/05/09(月) 22:59:02.46 ID:afn9JDvJ.net] >>847 どんな感じ?
992 名前:デフォルトの名無しさん [2022/05/13(金) 02:25:52.93 ID:LdGyp25/.net] class sub(tk.Toplevel): __WIN: tk.Toplevel|None = None __def __init__(self, root): ____if win:= self.__class__.WIN: _______win.focus_set() _______return ____super().__init__(root, name='sub') ____self.protocol('WM_DELETE_WINDOW', self.onExit) __def __onExit(self): ____self.__class__.WIN = None ____self.destroy() rootにサブ画面呼び出しボタンがある. 以下のような感じ btn['command'] = onShow def onShow(self): __sub(self.root) サブ画面はシングルトンにしたい.あればハイライトする,なければ画面生成 で上記の感じで書いて,問題なく動いてはいるんだけど tkinterのtoplevelのシングルトン表現ってこれでいいんだっけ? __new__に仕込むんだったかな ボタン押すたびに無駄なインスタンス生じてる気がするんだけど,GCあるし問題ない?
993 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 01:37:06.47 ID:n1VwRTHA.net] Pycharmについての質問なんですが コードを書いてる途中に出てくる self:Canvas,からはじまる吹き出しを消したいのですが どこかの設定なのかプラグインなのかわからなくて困っています よろしくお願いします
994 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 21:46:26.19 ID:BQcMDz1x.net] pandasでgroupbyにGrouperつかってas_index=Falseにすると Grouperで使用した日付がどこかいっちゃうんですけど仕様なんですか? df.groupby(pd.Grouper(key="Date", freq="MS"), as_index=False)[["hoge"]].sum() as_Index=Falseからreset_indexで代わりはいけるのですがなんとも…
995 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 21:48:07.41 ID:BQcMDz1x.net] >>980 最後の行間違ってました as_Index=Trueからreset_index
996 名前:デフォルトの名無しさん [2022/05/20(金) 10:26:37.96 ID:gFWhc+m8.net] >>978 厳密にやりたいなら、metaclass使う方法なんだけど、 すごくデカイものじゃなかったら、起動時に1回切りで作ってしまうのもありだし、 lazyにしたければ、呼び出し時にインスタンスがNoneかどうか判定する処理を挟むだけ。 どっちも簡易的なシングルトンになる。 そもそも、GCさせないのがシングルトンの目的でしょ? 一般論として、シングルトンはデメリットも大きいことは理解しておく必要がある。 たとえば、画面とデータの同期を常に意識しないといけないとか、その関係でリークの原因になりやすいとか。 そういうのが面倒であれば、シングルトンをやめて画面を再作成する方がいい。
997 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 18:02:35.80 ID:/hGmbW/Z.net] FlaskでWebアプリケーション作ってHerokuに上げる練習しているのですが Herokuにデプロイした時、requirements.txtの内容のパッケージをインストールしてるみたいですけど autopep8とかもインストールしてるのにさっき気がつきました こういう、開発するときは使うけど本番では使わないパッケージってのはどう管理するものなのでしょう? パッケージはpipでインストールして、pip freeze > requirements.txt しました 気にしなくてもいいんでしょうか
998 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 19:12:30.17 ID:KFSuZxfk.net] >>983 pip標準だけだとdev dependencyを指定する方法はないと思うよ HerokuはPipenvのPipfile.lockにも対応してるので Pipfile使って[dev-packages]で指定すれば?
999 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 22:21:22.65 ID:/hGmbW/Z.net] >>984 ありがとうございます やっぱりフォーマッタとかがHerokuにインストールされちゃうのはちょっと嫌なので Pipenv調べてみます スレ立て挑戦してみます
1000 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 22:28:24.41 ID:/hGmbW/Z.net] 立てました。 【まず1嫁】くだすれPython(超初心者用) その57 mevius.5ch.net/test/read.cgi/tech/1653225908/
1001 名前:デフォルトの名無しさん [2022/05/24(火) 16:41:49.28 ID:IF15Gljx.net] ファイル読み込みでawkで言う'/hoge/,/fuga/{ print }'みたいに特定の文字列を含む行から特定の文字列を含む行のみを表示するにはどうすれば良いですか? hogeがマッチしたら出力フラグ立てて、fugaがマッチしたらフラグ消すとかみたいなの以外でお願いします
1002 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 17:09:56.59 ID:78F716Pq.net] >>987 正規表現使うか行単位のイテレータを使うか
1003 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 10:54:30 ID:LbC2GlL6.net] インターネット接続が制限されたWindows上でPythonを利用したくなり、 NumPyやpandas等、必要だったパッケージが同梱されていたこともあり、 WinPythonを利用しています 同じようなことを、同様な環境のLinux(Alma Linux 8)で利用したいと思っており、 Anacondaを利用してみましたが、Windowsと同じように使いたく思ってます Linux向けのPythonディストリビューションで、pip系で運用できるものは 何かありますでしょうか
1004 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 11:20:04.09 ID:4ToCs4sv.net] >>989 公式からソースとってきてビルドするだけでpipは使える Linuxが古すぎると必須ライブラリも自前でビルドする必要はあるだろうけど
1005 名前:デフォルトの名無しさん mailto:sage [2022/05/30(月) 11:36:49.09 ID:LbC2GlL6.net] >>990 なるほど 自前ビルドならpipも使えますね 自前ビルドして、使うパッケージをpipで導入する、という作業をするものとして、 WinPythonのように、既に各種のパッケージが導入された、 Linux向けのPython環境というものがあれば紹介いただけますでしょうか
1006 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 06:33:05 ID:Re2gLZE7.net] イテレータとイテラブルの項読んでると頭おかしくなるわ 要は「反復可能なオブジェクト」と「反復不可能なオブジェクト」があって 反復可能に設定されてるオブジェクトはnext()とかが使えて 「反復不可能なオブジェクト」はnext()とかは使えないけど for ... in ,,, にこのオブジェクトをいれると 内部ではiter()の中にぶちこまれてるから反復動作をするようになる つまり「反復不可能なオブジェクト」でもiter()に入れれば良いんだが 実は「反復不可能なオブジェクト」にはiter()を使えないものもある iter()が使えるものをイテラブル、と分類している [オブジェクト] ├[イテレータ] next()などOK │ └[イテラブル] iter() OK │ └[not イテレータ]next()などNG ├[イテラブル] iter() OK → next()などOK └[not イテラブル] iter() NG ということ?
1007 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 07:59:09.30 ID:6BOKaYJy.net] イテレータは自身を返すiter()を実装しなければならないので、 イテレータはすべてイテラブルでもある for ... in ,,, は、iter()の結果に対してnext()を複数回呼び出すので、 イテレータでもイテラブルでも動作する [オブジェクト] ├[イテラブル] iter() OK │ ├[イテレータ] next() OK │ └[not イテレータ] next() NG │ └[not イテラブル] iter()もnext()もNG
1008 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 11:22:58.61 ID:3ilbGXWX.net] ミュータブルかイミュータブルかイテラブルかシーケンスかそれぞれの型にどの役割を当てられるかの感覚もつといいよ
1009 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 12:31:24.08 ID:Re2gLZE7.net] >>993-994 ありがとう ちょっとよく解んなくなってたわ 何度も学べば慣れるかな
1010 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 13:02:02.70 ID:G7XbJ25h.net] >>995 その辺り分類を掘り下げんでも良いのではなかろか イテラブルはiter()が使える反復可能オブジェクト イテレータはそれで返される物くらいのニュアンス ではイテレータ(型)とは何かって、next()など統一的な方法で 文字列でもリストでも辞書でもファイルでも各要素を反復するため 抽象化されたインターフェイス、主に対象への参照と現在位置を保持する
1011 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 14:19:59.15 ID:ercqZUlb.net] 公式リファレンスは正確性は高いが分かりやすさはお世辞にも高いとは言えないので 公式で分かりにくいと感じたらもう少し分かりやすく書いてる自分に合った補完サイトも読んだ方がいい
1012 名前:デフォルトの名無しさん mailto:sage [2022/06/04(土) 17:37:58 ID:3ilbGXWX.net] >>995 必ず慣れる でもその前に情報を整理する方が大切かもしれない
1013 名前:デフォルトの名無しさん mailto:sage [2022/06/05(日) 08:30:29.68 ID:BQs+AO7P.net] python iterable sequentialとかで画像検索すれば分かりやすいベン図みたいなのが出てくるよ
1014 名前:デフォルトの名無しさん [2022/06/05(日) 08:48:37.88 ID:Sg+yaBaV.net] 56埋まるまえに57に書いちゃったよお
1015 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 160日 7時間 10分 28秒
1016 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています