- 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/ ほぼ直
- 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
話ずれるけど、要素を外で書き換えるよりも箱の拡大縮小みたいなメソッドを作る方が一般的な気がします
|

|