- 1 名前:デフォルトの名無しさん mailto:sage [2020/07/18(土) 16:33:27.37 ID:/iWSRGfH.net]
- 当スレに★Python以外のプログラミング言語での回答類を書くべからず★
「Ruby では」「Rubyでは」「某言語では」をNGワード登録推奨 このスレッドは「お勉強」スレのほうには書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。 ★エラーを解決したい場合は、 表示されてるエラー全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、 実行環境(Pythonのバージョン・OS+IDEの種類とバージョン)をシッカリ書くこと。 【【【複数の連続半角スペースはなかったことになる・タブがうまく入らない5chの仕様】】】に注意! Pythonの★ソースコードをそのまま5ちゃんにコピペすると、インデントが崩れてチヌ★ので ↓等の、いわゆるコードうp用サイトに貼ってこいください。 ttps://techiedelight.com/compiler/ Run Code機能あり。最近流行中? ttp://ideone.com/ デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。 ttp://codepad.org/ ほぼ直感的に使える。Run codeボタンあり。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ◇
- 561 名前:デフォルトの名無しさん [2020/08/11(火) 10:40:31.12 ID:x3iAuc4F.net]
- モジュールとクラスでは、モジュールのほうが大きいんですよね?
- 562 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 10:45:12.20 ID:B3vzQThI.net]
- >>542
バッファリングがあるからそんなに単純じゃないよ 同時に処理されるかどうかは確率的にゼロでなければ長期間運用してたら起こる可能性はあるので、その可能性があるならバッティングの処理が必要 一般的な方法としては空のファイルを作ってそのファイルが存在するかどうかで判断する 他の方法としてはsyslogやデータベースを使って、その処理は既存の仕組みで対応する
- 563 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 10:53:49.16 .net]
- >>544
sleepしてって考えてたけどsleep終わったあとに同時になったら・・とか思ってたが >空のファイルを作ってそのファイルが存在するか (これも存在確認後に、ってのがちょっと気になるが) >syslogやデータベース なるほど、あまり気にせず既存のを使えるのはいいな とりあえずは余裕をもって確実に順次実行できれば一般用途では大丈夫ってことかな あんがと
- 564 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 10:56:58.52 .net]
- ライブラリ ← パッケージが詰まってる
└パッケージ ← モジュールが詰まってる └モジュール ← クラスや関数が詰まってる モジュール名.py
- 565 名前:デフォルトの名無しさん [2020/08/11(火) 11:03:18.24 ID:x3iAuc4F.net]
- はい
- 566 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 11:20:56 ID:Kv91d30/.net]
- >>541
withを使えばその動作は予定通りなのでは? 普通に
- 567 名前:openしてcloseするまえに処理の競合が起きれば、また違った動作になる []
- [ここ壊れてます]
- 568 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 11:28:43.21 ID:1kHdySm/.net]
- 競合しないように書くの良いですね
- 569 名前:デフォルトの名無しさん [2020/08/11(火) 13:08:00.16 ID:IdGWSTlI.net]
- >>515
安全靴で丸坊主で歩いてるだけで逮捕だもんな 狂ってるわ
- 570 名前:デフォルトの名無しさん [2020/08/11(火) 13:12:55.63 ID:IdGWSTlI.net]
- >>544-545
セマフォの役割にはmkdir()が良いってどっかで聴いた
- 571 名前:デフォルトの名無しさん [2020/08/11(火) 13:24:11.52 ID:l01whKN5.net]
- perlの時代から有る手法で、ご丁寧なことに、被らないユニークな名前を生成してくれるモジュールまで存在していた
- 572 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 13:27:04.77 .net]
- >>548
そう ただ、デバッグのやり方がわからなかった 例えば with open('hoge.txt', mode='w') as f: _f.write('a or b') のa.py、b.py2つ用意して a.pyとb.pyを同時に何万回も起動実行したりとかすればいいのかなと >>511 なるほど
- 573 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 13:28:12.84 .net]
- >>553訂正 mode='w' → mode='a'
- 574 名前:デフォルトの名無しさん [2020/08/11(火) 13:42:17.84 ID:IdGWSTlI.net]
- 555
- 575 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 14:43:16.85 ID:jY8oIKoT.net]
- >>536
Python で定数を定義する https://maku77.github.io/python/syntax/const.html Python には、C/C++ の const のような、定数を定義するためのキーワードは用意されていません。
- 576 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 14:57:39.72 ID:nKBbqh2w.net]
- >>536
もしかして:kotae
- 577 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 15:34:48.63 ID:D2zXE6xI.net]
- https://i.imgur.com/z8LRR8K.jpg
ステップ関数をグラフにしようとしてこうやったけどならないんだけど間違ってる?? 保存先の13.svgをpreviewしても真っ白になる
- 578 名前:デフォルトの名無しさん [2020/08/11(火) 16:03:56.36 ID:IdGWSTlI.net]
- >>558
https://dotup.org/uploda/dotup.org2225187.png
- 579 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 16:22:25.07 ID:D2zXE6xI.net]
- >>559
うおおおおお! まじで助かりました!
- 580 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 16:29:12.57 ID:cFpL7en6.net]
- >>544
横だけど参考になりました
- 581 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 16:41:25.70 ID:93tMQ9Bj.net]
- >>559
ステップ関数ってy=0とy=1が同じx座標になる関数じゃないの? ズレてない?
- 582 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 16:43:36.93 ID:DJf2UAfN.net]
- これくらいのステップの方が上りやすいな
- 583 名前:デフォルトの名無しさん [2020/08/11(火) 17:36:53.27 ID:IdGWSTlI.net]
- >>562
x の刻みを増やせば解決する
- 584 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 18:45:02.45 ID:IUnIyxWQ.net]
- 今まで一つのファイルにつらつらとコードを書き連ねてたから、分割しようとしたらま〜苦労した
ライブラリとかモジュールとかただコピペして使ってただけだから、from〜importとimportの違いもよくわかってなかった 独学で必要な情報だけつまみ食いしてると基本的なことが抜け落ちてて補完が大変だ…
- 585 名前:デフォルトの名無しさん [2020/08/11(火) 21:03:59.46 ID:7OoR6BUn.net]
- フレームワーク使って簡単なウェブアプリでも作ったらいい
構成からテスト、デプロイ等々、一通り網羅できるでしょ
- 586 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 23:41:09.64 ID:D+9Pqaiv.net]
- https://imgur.com/gOoCERA
https://harigami.jp/cd?hsh=1e894b6f-d705-405e-9987-613886c9e6c5 Pythonとmysql-connector-pythonについてです MySQLで画像のようなテーブルを作成し、売上が100以上200以下の社員数を営業所ごとにカウントしたいです sql_1は期待する結果を得られていますが sql_2やsql_3のようにプレースホルダーを使うと何も取得できません 変数でテーブル名や数値などを動的に使いたいです プレースホルダーを使ってsql_1を実現する方法を教えて下さい
- 587 名前:デフォルトの名無しさん [2020/08/12(水) 01:27:49.12 ID:t6UQqoiG.net]
- > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑) キチガイの嘘つきの低レベルFランの、 朝鮮ゴキブリBot君は、 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な ことはよーくわかったよ。 ホントなにもできない朝鮮ゴキブリBot君! クソチョンw Pythonさえろくにできないバカチョンのくせに できるとほざくクソチョンw 日本で強姦と窃盗を繰り返す 犯罪者在日のクソチョンw
- 588 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 03:11:27 ID:UVmFgkue.net]
- Ruby on Rails なら、
売上.where( 売上: 100..200 ).joins( 社員 ).group( 社員.営業所 ).count Rails みたいなフレームワークを使わず、自分で文字列で、SQL 文を組み立てると、 SQL injection され放題になるけどw
- 589 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 08:22:16.74 .net]
- 【構成】
hoge_sample ├main.py └packages ├__init__.py ├sample01.py └sample02.py 【main.py】 from packages import * a = smpl01(1,2) print(type(a)) print(a) #print( dummy(1,2) ) 【__init__.py】 from .sample01 import * __all__ = [ "smpl01", '''"dummy"''' ] 【sample01.py】 from .sample02 import smpl02 def smpl01(a,b): return smpl02(a+b) def dummy(a,b): return b-a 【sample02.py】 def smpl02(s): return str(s)
- 590 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 08:29:12.14 .net]
- 疑問点 >>570
(1) 【main.py】でpackages内モジュールのクラスや関数を使う時 smpl01という名前を知っていることが前提 せめて「sample01をインポートしましたよ」みたいなマーキングは必要か? それとも【packages】みたいなパッケージのディレクトリ名から、把握しているのが前提か (2) packagesのサードパーティ製モジュールのimportは相対パスで指定している デバッグのために【sample01.py】を直接起動させると smple02が使えない
- 591 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 08:39:48.51 .net]
- 訂正 >>570
【__init__.py】 from .sample01 import * __all__ = [ "smpl01" ] #["smpl01","dummy"]
- 592 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 08:47:45.76 ID:+7u2t/Rq.net]
- まずtableがデータベースのテーブルではなくカラムになっていて紛らわしい
通報されるレベル cursor.execute()の前にcursor(prepared=True)を実行しているか分からないが大丈夫か? > cursor.execute(sql_2, (table, table, x_min, table, x_max)) は問題がないように見える > cursor.execute(sql_2, (table, x_min, x_max)) は%sと引数の数があっていない > cursor.execute(sql_3, {'table': table, 'x_min': x_min, 'x_max': x_max}) はこの文法が通用するのは比較的新しいPyMySQL(0.7.9以降?)だがバージョンは大丈夫か? https://github.com/PyMySQL/PyMySQL/blob/73c22c78d14466a5ed8029ef67ca11198234913e/pymysql/cursors.py#L158
- 593 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 09:09:26 ID:+7u2t/Rq.net]
- >>571
(1)は言いたいこと良くが分からない アスタリスクが全ての元凶のように見えるが・・・ この構成の作り方だと packages.sample01 … module packages.sample02 … module packages.smpl01 … function がmain.pyからは見える (2)は相対インポートがパッケージ内でのみ機能する記法だから 直接実行すると相対インポートがエラーになる 回避方法は python -m packages.sample01 として実行する方法だが、上記の構成で__init__.pyが定義されているため警告はでる
- 594 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 10:01:11.25 .net]
- >>574
>python -m packages.sample01 d できた なぜか警告も出なかった (1)は最初 from packages.sample01 import smpl01 にしてたけど他にも使いたいモジュールが出てきたら fromなんちゃらの行が【main.py】に延々追加されていくので それなら__init__.pyの方に纏めておいた方が見やすいのか?と思った
- 595 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 10:13:01.58 ID:r3C450gU.net]
- >>573
こんな書き方できるのか。知らんかった mysqlclientで順番に値を放り込む方法しか使ったことないや
- 596 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 11:54:40 ID:dVYQOL+d.net]
- https://harigami.jp/cd?hsh=9af27284-08c6-4b67-8f9a-0bfcffb213b2
すみません、まだやってます・・・そろそろ諦めようかな・・・
- 597 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 13:06:36 ID:r3C450gU.net]
- >>577
カラム名を%sにするとだめみたいよ 置換フィールドで放り込んでやるとうまくいった sql_4 = "SELECT 社員.営業所, COUNT(売上.売上) " \ "FROM 社員 LEFT JOIN 売上 " \ "ON 社員.社員ID = 売上.社員ID" \ "WHERE {table} BETWEEN %s AND %s " \ "GROUP BY 社員.営業所".format(table='売上.売上')
- 598 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 13:38:11.01 ID:+7u2t/Rq.net]
- >>575
python -m packages.sample01 で警告が出るのはpythonのバージョンのせいかも知れない(python3.7では警告が出た) この方法では packages/__init__.py がまず読み込まれ、その後 packages/sample01.py が実行される __init__.pyでsample01.pyを読み込んでいるので、sample01.pyは2回読み込まれていることに注意 __init__.pyにまとめることは普通に良くやるしpackages/__init__.pyの中でアスタリスクを使うことも良くやる ただしmain.pyでアスタリスクを使うのは行儀が悪いように思う fromナンチャラの行が増えるのが嫌いなら、メモリは食うけど import packages とした方が心の健康によさげ
- 599 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 13:54:59.57 ID:+7u2t/Rq.net]
- >>577,578
>カラム名を%sにするとだめみたいよ これが全て
- 600 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 14:15:16 .net]
- >>579
>2回読み込まれ あーやっぱりそうだったのか なぜか2倍printされるので。。 >ただしmain.pyでアスタリスクを使うのは行儀が悪いよう なるほど
- 601 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 14:19:38.23 ID:dVYQOL+d.net]
- >>578
できました!やったーありがとうございます
- 602 名前:デフォルトの名無しさん [2020/08/12(水) 14:21:32.92 ID:q6njxWnQ.net]
- 実用的でないPythonプログラミングを買いました。
VisualStudio2017とかでできますか? 皆さんオススメの環境を教えてください。 Pythonのバージョンは3.5らしいです。 (まだちゃんと読んでないけど)
- 603 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 15:03:29.71 ID:+7u2t/Rq.net]
- Windowsなら
Python: Anaconda エディタ: Visual Studio Code (VisualStudioではない)
- 604 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 15:21:07.28 ID:JA3gbSGM.net]
- >>583
AnacondaPrompt エディタはNotePad++
- 605 名前:デフォルトの名無しさん [2020/08/12(水) 15:24:26 ID:q6njxWnQ.net]
- >>584
>>585 有り難みが強い。 参考にさせていただきます。
- 606 名前:デフォルトの名無しさん [2020/08/13(木) 10:56:33.23 ID:0rwjVY3B.net]
- イテレータとリストの違いですが、イテレータは処理途中の状態を記録できるという点が違うのでしょうか?
- 607 名前:デフォルトの名無しさん [2020/08/13(木) 11:27:43.34 ID:WWRPvGcb.net]
- 違う
君が言う後者の機能は generator リスト は全部メモリに確保されたもの イテレータ はメモリを占有せずに順番に値を取得 generator は処理途中の状態を記録できる イテレータ
- 608 名前:フ実装に generator が使われているかも知れないが別の概念 []
- [ここ壊れてます]
- 609 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 11:27:51.35 ID:RJ8S/0mc.net]
- 作り置きと、注文の都度作るかの違い
作り置きは、置き場のスペースが必要
- 610 名前:デフォルトの名無しさん [2020/08/13(木) 11:43:13.98 ID:CM5c4LB7.net]
- リストとイテレータの違いがよくわからないのですが、かんたんナ... - Yahoo!知恵袋
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12229812432 これでは分らなかったのか
- 611 名前:デフォルトの名無しさん [2020/08/13(木) 12:28:04 ID:0rwjVY3B.net]
- なるほど、なんとなくわかったです
- 612 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 12:48:37 ID:BKihMO2y.net]
- foo = [1,2,3]
foo_iter = iter(foo) next(foo_iter) #=> 1 next(foo_iter) #=> 2 next(foo_iter) #=> 3 next(foo_iter) #=> StopIteration イテレータはnext()が呼ばれたら次の要素を1つ返すオブジェクト 内部でどこまで返したか覚えておく必要があるので状態を記録してるかというと記録してる for x in foo: って書けば iter(foo)して、next()を呼んで、得られた値をxに代入して、loop内の処理へ渡してる ジェネレータは一般的には呼ばれたら1つ1つ値を生成して返す関数でイテレータの一種 ジェネレータではないイテレータは1つ1つ値を生成するんじゃなく すでに用意されたリストなどから順に値を1つずつ返すもの なので作り置きから注文の都度1つずつ返すのもイテレータ
- 613 名前:デフォルトの名無しさん [2020/08/13(木) 13:00:42.76 ID:0rwjVY3B.net]
- 何故pathで取得したパスは、iterdirなどを使ってジェネレータにする必要があるんでしょうか?
ササッとリストでも取得してくれればいいんじゃないですか? フォルダのファイル一覧を取得する場合、 パス→ジェネレータ生成→リスト化という手順を踏まないといけないみたいです パス→リスト でいいような、、
- 614 名前:デフォルトの名無しさん [2020/08/13(木) 13:05:38.39 ID:KaPqduB6.net]
- python2 へようこそ
- 615 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 13:10:29.18 ID:xFixv4R5.net]
- 一言で言うと「yieldがあるのがgenerator」
- 616 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 13:13:43.47 ID:xFixv4R5.net]
- >>593
項目が超巨大になったときにリストの実態返されたら悲しいことになる ジェネレータなら、あれ?なんかでかいぞ、止めよう、ができる
- 617 名前:デフォルトの名無しさん [2020/08/13(木) 13:39:30.96 ID:0rwjVY3B.net]
- >>596
な、なるほど そこまで巨大なファイルを扱ったことはなかったので、必要性が分からんでした
- 618 名前:デフォルトの名無しさん [2020/08/13(木) 13:56:32.50 ID:CM5c4LB7.net]
- やっぱり強制的に教え込むべきだ
業界が先祖返りしてる 計算機プログラムの構造と解釈 第二版 https://sicp.iijlab.net/fulltext/x350.html
- 619 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 14:04:29 ID:jm0McRWL.net]
- >>592
> ジェネレータは一般的には呼ばれたら1つ1つ値を生成して返す関数でイテレータの一種 逆でしょ 「イテレータは、コンテナに含まれる値ひとつひとつに対して走るジェネレータの一種である。」 ハードウェア乱数生成装置から読み取った値を返すジェネレータとか内部で値を保持しないジェネレータとかもある >>588とかも勘違いしてる
- 620 名前:デフォルトの名無しさん [2020/08/13(木) 14:28:08 ID:WYCQl6Jw.net]
- >>598
先祖還りって言うか もう3周目とか4周目だろう
- 621 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 14:31:15 ID:BKihMO2y.net]
- >>599
逆じゃないよ >「イテレータは、コンテナに含まれる値ひとつひとつに対して走るジェネレータの一種である。」 こういう味方があっても別いいとは思うけど一般的ではない >ハードウェア乱数生成装置から読み取った値を返すジェネレータとか内部で値を保持しないジェネレータとかもある yield 乱数生成()で値を返すジェネレータがあったとして 何回yieldしたかとかloop条件を満たしてるかどうかとか なんらかの状態を内部に保持することになるよね?
- 622 名前:デフォルトの名無しさん [2020/08/13(木) 14:57:12.58 ID:0rwjVY3B.net]
- ループの返り値を内包表記を使用して変数に挿れるのと、普通にループで記載する場合では何が違うんでしょうか?後者だとグローバル変数が必要になると思いますけど。
- 623 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 15:04:40.77 ID:cLv1fX6M.net]
- >>602
https://qiita.com/intermezzo-fr/items/43f90e07e4cebe63aeb6
- 624 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 15:11:06.77 ID:RDWqdqfD.net]
- >>601
> こういう味方があっても別いいとは思うけど一般的ではない いや、なんの根拠もないお前の定義を一般的と主張されても困るよw イテレータは必ずジェネレータだけどイテレータでないジェネレータはあるだろ(その例が乱数発生器) > yield 乱数生成()で値を返すジェネレータがあったとして > 何回yieldしたかとかloop条件を満たしてるかどうかとか > なんらかの状態を内部に保持することになるよね? そりゃ、そういうジェネレータならそうだろう… 内部情報を保持しない例に保持する奴持ってきて何を言いたいんだ?
- 625 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 15:27:20.97 ID:TgMttUh/.net]
- >イテレータは必ずジェネレータだけど
どこからこんな解釈が? pythonのイテレータはイテレータプロトコルをサポートするオブジェクトのことだし、 ジェネレータは呼ばれたらイテレータを返す関数のことだろ。
- 626 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 15:41:35.50 ID:BKihMO2y.net]
- >>604
日本語のWikipediaの間違った記載を鵜呑みにしてるっぽいね https://ja.wikipedia.org/wiki/ジェネレータ_(プログラミング) 英語版も見るといいよ https://en.wikipedia.org/wiki/Generator_(computer_programming) 疑似乱数生成器(Psuedo Random Number Generator)の名前にジェネレータが含まれてるからといって それらがプログラミング言語でいうところのジェネレータを使って実装されてるわけじゃないから
- 627 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 15:43:11.84 ID:BKihMO2y.net]
- >>606
>それらがプログラミング言語でいうところのジェネレータを使って実装されてるわけじゃないから それらが”すべて”プログラミング言語でいうところのジェネレータを使って実装されてるわけじゃないね ジェネレータのものもあればそうでないものもあるということ
- 628 名前:デフォルトの名無しさん [2020/08/13(木) 15:45:42.36 ID:hDTlT7Ky.net]
- 酷いのが居るな
知らないのなら黙ってれば良いのに
- 629 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 16:08:22.81 ID:3TUGpUf8.net]
- >>605
>イテレータは必ずジェネレータだけど 逆ぅ! >>> import collections, types >>> issubclass(types.GeneratorType, collections.Iterator) True
- 630 名前:609 mailto:sage [2020/08/13(木) 16:21:41.93 ID:3TUGpUf8.net]
- 訂正
>>609は>>604へのレスね。
- 631 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 16:34:47 .net]
- tkinterでmainloopする前に無限ループ処理をしたいのですが
無限ループ処理Aをするとmainloop()できない mainloop()を先に、無限ループ処理Aを後にすると、無限ループ処理Aできない という板挟みになりました どうしたら良いのでしょうか import tkinter as tk import time while True: _print("処理") _time.sleep(1) root = tk.TK() root.mainloop()
- 632 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 16:52:12 ID:wdeLOLBT.net]
- クラスの使い道がわからん
数値や文字を関数に放り込んで値を出して表示する これだけでやりたいことが全部できてやることがなくなった
- 633 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 17:18:52.97 ID:ut3SsjSC.net]
- >>611
root = tk.Tk() def mokomoko(): 処理 root.after(1000, mokomoko) root.after(1000, mokomoko) root.mainloop()
- 634 名前: mailto:sage [2020/08/13(木) 17:19:09.07 ID:P/jo0Y4p.net]
- >>612
そのとおり クラスなんかなくても何でも書ける ただしクラスという抽象化手段は、単に書けるという以上のものを目指すときに使う 例えば再利用とか
- 635 名前:デフォルトの名無しさん [2020/08/13(木) 17:22:35.60 ID:CM5c4LB7.net]
- >>611
まずはかんたんなアナログ時計から作った方がいい
- 636 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 17:32:17.63 .net]
- >>613
できました ありがとうございます ついでにボタンを追加してみたのですが 処理中はなぜかプッシュ感がありませんでした ボタンクリックしても押し込まれるアニメーションが出てこない(処理が終わった瞬間、処理前に押したときのボタン処理がドバーッと実行される)のですがそういうものなんでしょうか
- 637 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 17:34:45.02 .net]
- >>615
とりあえずストップウォッチのコードを眺めてみることにします
- 638 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 17:53:26.38 ID:DN44Q+/a.net]
- 何かしらPythonでなければならない理由があるならともかくGUIならC#で作った方が楽じゃないか?
- 639 名前:デフォルトの名無しさん [2020/08/13(木) 17:56:22.43 ID:1iT07aDZ.net]
- >>618
ココはPython の布教>>1
- 640 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 18:05:56.78 ID:BJex6KXt.net]
- >>616
細かい所を拘るなら PySimpleGUIとか別ライブラリを使うのも手 (tkinter自体は大昔からあるやつだから、モダンな物を作ろうとするとちょっと大変)
- 641 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 18:11:59.85 .net]
- https://ideone.com/h4QkaK
とりあえずストップウォッチを参考に書いてみましたが やはりボタンのプッシュ感がありません なぜでしょうか 明らかにroot.afterの行が原因で止まっているんだろうな、という感じです
- 642 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 18:12:22.88 .net]
- >>620
なるほど ぐぐってみます
- 643 名前:デフォルトの名無しさん [2020/08/13(木) 18:14:57.99 ID:0rwjVY3B.net]
- 複数フォルダの先頭ファイルのみ取り出すにはどういうロジックにしたらいいんでしょうか?
フォルダのインデックス0を取り出したあと、各々のフォルダの中でファイルのインデックス0を取り出すという手順になるでしょうか
- 644 名前:デフォルトの名無しさん [2020/08/13(木) 18:15:56.91 ID:0rwjVY3B.net]
- あ、違いますね。
フォルダのインデックス0という点は間違いです。フォルダ構造です。 フォルダ1 ┗ファイル1 ┗ファイル2 フォルダ2 ┗ファイル3 ┗ファイル4
- 645 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 18:32:21 .net]
- 自己解決したかどうかわかりませんが(意図した処理と同等かよくわからない)一応ボタンが常にプッシュしてくれるようになりました >>621
https://ideone.com/GOuxDw
- 646 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 19:42:17.54 ID:2TasqE+0.net]
- >>623-624
その子供ファイルたちの「一番目」って何で決めるの? サイズ?日付?名前???
- 647 名前:デフォルトの名無しさん [2020/08/13(木) 20:42:25 ID:0rwjVY3B.net]
- sortedを使用するので、名前です(´・ω・`)、、、
- 648 名前:蟻人間 mailto:sage [2020/08/13(木) 20:46:52.26 ID:4HMLW5OS.net]
- フォルダの一覧を作成。
各フォルダについて最初のファイルを取得して、ファイルパスをリストに追加。
- 649 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 20:58:21 ID:vQKb1geh.net]
- >>587
一般論であれば、まずPythonにおける「リスト」とは 他言語における「配列」を指す 次に、配列とは単なるデータ構造を指し、 その配列の各要素をあれこれ処理するアルゴリズムは「手続き」として定義される データ構造と手続きが完全に分離されている、これがFORTRAN/COBOLに始まり C/Pascal/Modulaへと続く1980年代前半までの古典的な「手続き型言語」の流れ こうした手続き型の流れは、大規模開発における保守性/再利用性の低さから批判を受け、 対処策として注目された概念の一つが「抽象データ」であり、 これはデータ構造の内部詳細を隠蔽し外部に公開された手続きで処理対象をモデル化する たとえばスタックという抽象データは、内部のデータ構造が配列であっても リンクドリストであっても構わず、外部に公開されたEmpty/Push/Pop/IsEmptyという 手続きの集合(インターフェイス)だけで定義される この抽象データという概念を発展させて、反復(ループ)処理すらも抽象化させるという提案が イテレータ(iterator, 反復子)であり、それが最初に実装されたのがCluと呼ばれる実験的言語になる まとめると、リスト(=配列)とはデータ構造の一種であり、イテレータとはリストを含む 複合データ構造に関する反復処理に限定して抽象データとしてモデル化した概念である
- 650 名前:デフォルトの名無しさん [2020/08/13(木) 21:02:29.42 ID:0rwjVY3B.net]
- >>628
ロジックは最初に日本語化したほうがいいですか?
- 651 名前:蟻人間 ◆T6xkBnTXz7B0 mailto:sage [2020/08/13(木) 21:07:21 ID:4HMLW5OS.net]
- >>630
英語の方が分かりやすいなら英語で。伝統的な日本人なら日本語で。
- 652 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 21:18:06.70 .net]
- PySimpleGUI調べてみました
圧倒的にコードが見やすくなりました 特徴は、レイアウトを最初にまとめてコーディングして 最後にWhile True:でイベントを監視するところでしょうか。 event, value = window.read()の直前後にprintを挟んでテストしてみましたが 一番最初にそのprintが出力され、次にイベントの処理が出力されました つまりwindow.read()のところで待機?してるのだと思いますが その仕組みが今一わからず悶々としています
- 653 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 21:25:29.32 ID:vQKb1geh.net]
- >>631
リストに対応する英単語は list であり、 同様に、配列に対応する英単語は array(アレイ) または vector(ベクタ) である 何を言いたいのかな? 英語?日本語?言語は関係ないよ
- 654 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 22:05:38.43 ID:SL8XbHj+.net]
- はじめてpysimpleguiを知ったんだけど、tkinterやqtのラッパーだなんて説明を見つけたけど本当?
公式の英語を読むと、ラッパーなんて記述は見つからないのだが。
- 655 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 23:41:28.50 ID:ut3SsjSC.net]
- 5秒で見つけたぞ
https://pysimplegui.readthedocs.io/en/latest/#whats-the-big-deal-what-is-it
- 656 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 23:45:08.41 ID:SL8XbHj+.net]
- あ、ホントだ。てことは、exe配布時に必要なバッケージはどうなるんだ?
全部?
- 657 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 00:07:27 ID:SCMnTycc.net]
- 例えば、メモ帳のパスなら、コマンドプロンプトで確認できる。
上に表示される方が、優先される where notepad C:\Windows\System32\notepad.exe C:\Windows\notepad.exe 同様に、where php とやってみれば? 環境変数パスを知らないような人は、システム環境構築運用なんて、とてもできない
- 658 名前:637 mailto:sage [2020/08/14(金) 00:08:54 ID:SCMnTycc.net]
- >637
誤爆です
- 659 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 01:42:40.43 ID:H4kV4BPg.net]
- 何の話かと思ったぜw
- 660 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 02:25:37.41 ID:SCMnTycc.net]
- >>623
【.cmd】 バッチファイルスクリプト %13 【.bat】 https://mevius.5ch.net/test/read.cgi/tech/1542779527/972 上に、Ruby で書いておいた。 Rubyでは、フォルダ以下のファイル名を取得する際、自動的にソートされる 他には、隠しファイルをどう扱うのか?
- 661 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 02:44:30 ID:PbBJ4pBD.net]
- 再帰関数について質問させてください。
どういう順番で処理されているのかよくわからなかったので、 0から10までの数字を足す処理を再帰で書いて、途中のプロセスをprintで出力しようとしました。 https://techiedelight.com/compiler/?PYzg するとこのような結果が出たのですが、A_10からB_55が二回分printされているのはなぜなのでしょうか。 他のプログラム言語の経験は無く、pythonを始めたばかりです。 変な質問だったらすみません。
|

|