Pythonのお勉強 Part68

■ このスレッドは過去ログ倉庫に格納されています
2022/09/15(木) 18:52:26.67ID:VqLViKoX0
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
 エラー文(勝手に省略orスクショうp等の横着禁止)と
 おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。

★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/

●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その57
http://mevius.5ch.net/test/read.cgi/tech/1653225908/

〇前スレ〇
Pythonのお勉強 Part67
https://mevius.5ch.net/test/read.cgi/tech/1653540315/

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ### ​
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2022/11/10(木) 18:34:12.90ID:RApG3JqD0
カードクラス作ってもいいけど、同じカードが存在しない、記号4つと数字1〜13の組み合わせの
ものにクラスがいちいちいるかな。
カードクラスはカード1枚を表して、なにができればいいんだ?

記号クラスがあって、各記号クラスがあって、ナンバークラスがあって、
is_MarkMatchとかis_NumberMatchとかもってんの?
idとprintがあればいいのかな。まあいいけど、そんだけのために
classいちいち用意するのめんどくない?
複数枚のカードを扱うcardsクラスなのかな?機能はいろいろ持てそうだけど
ゲーム固有すぎてどうなのかな?
2022/11/10(木) 19:12:07.27ID:/sng0JalM
可読性考えるとクラスのほうが良いわな
自分だけが使うなら好きに作ればいい
2022/11/10(木) 19:17:47.15ID:tUNuHkwK0
自分だけが使う場合でも後々困る
読みにくくていいのは再利用しないと判ってる場合
729デフォルトの名無しさん (ワッチョイ 1997-OSgl)
垢版 |
2022/11/10(木) 19:47:31.93ID:eS5awfmL0
>>725
689だが、トランプはクラスを作った方が(少なくともnamedtuple,dataclass)便利だと思うぞ
>>726
記号クラス、番号クラスなんて作らない
記号はenum、番号はそのまま1~13でいい
が、どの記号が黒だ赤だ、どの番号が絵柄か(JQKA)
みたいなのはたとえインスタンスが一個でもメソッドになってた方が便利だと思うけどなあ。

カードは内部表現とUI上の表現が異なるのが自然だし、そういう意味でもクラスにしておくのは悪くないと思うが

クラスにしすぎてもしょうがないというのは、ゲームのルールをクラスにして共通のインタフェース持たせて、バリエーションを切り替えられるようにしても大抵は仕方ないみたいなことだよ
もちろん、どんなゲームシステムを作るかによるし、ルールを共通インタフェースで入れ替えられるようにするメリットがある場合もあるけど
2022/11/10(木) 20:15:59.37ID:1wmpgP/ea
>>726
ちょっと発想が変だよ
2022/11/10(木) 20:18:11.54ID:TQxJo3Q4M
全てユースケース次第じゃね
13×4のブール配列で持っていたほうが都合がよい場合もあるだろうし
2022/11/10(木) 21:05:35.45ID:tUNuHkwK0
とりあえず作って、必要に応じてリファクタリングしていけばいい
733デフォルトの名無しさん (ワッチョイ b12c-rDMU)
垢版 |
2022/11/10(木) 22:35:47.17ID:SvDTIviz0
カード型のインスタンスを生成するデッキクラスを作りたいやん

deck.suffle()
hands = deck.draw(5)

みたいなさあ
あとは各ゲームで処理つくろ
2022/11/10(木) 22:41:30.18ID:tUNuHkwK0
カードのリストでよくね
2022/11/10(木) 23:28:06.08ID:ofaAiG0L0
多くのレスを頂き、ありがたく思います
ちょっと自己顕示欲が強い気もしますが、俺のGitHubを公開させて頂くので、
よろしければご覧下さい
https://github.com/masa-gh/practice
のblackjack_3.pyがそれです
これでもクラス使わないで書けるのかな…
2022/11/11(金) 00:15:20.89ID:ajyQllPs0
力作だね

友人のアドバイスは痛いほどよく分かる
クラス云々よりも「ここからメインの処理」以降の各処理を関数にまとめるほうがずっと大事だよ
2022/11/11(金) 00:21:32.63ID:gNt5qX/T0
1関数がでけえ
ということを言いたかったんだろう
2022/11/11(金) 00:23:24.86ID:Zi2NVkwv0
マサくん
739デフォルトの名無しさん (ワッチョイ 5e10-420S)
垢版 |
2022/11/11(金) 00:52:49.95ID:5ErmYwLs0
何のためにでっかい関数の中にクラス作るのか分からん
この設計センスなら友人のアドバイスは正しいな
2022/11/11(金) 00:55:17.73ID:n0j9oGtca
blackjackで囲むのって意味あんのかね
2022/11/11(金) 01:14:49.41ID:9Wk/PRlY0
レスありがとうございます

>>708
クラス使った方が見通し良くなりますよね?
スッキリJavaにもそう書いてありました(Pythonの本ではないですが)

>>709
複雑にならない方がいいからだそうです

>>710
ええ、ですので皆さんの意見をお聞きしたんです

>>711
うーん、明らかにプロと思われる方の書き込みもありますし、
信じられるレスはあると思います

>>716
ただ彼の主張では、なるべくクラスは使うな、ということでした
Javaを独習した経験がある俺からすると、少し疑問符が付くのです
2022/11/11(金) 01:21:10.00ID:n0j9oGtca
クソクラスをクソと認識できるためにもそれなりの能力が要るからね
2022/11/11(金) 01:28:18.01ID:9Wk/PRlY0
>>724
そうですよね
カードのクラス作りました

>>726
複数枚のカードを持つCardクラスです
ブラックジャックなので、A・J・Q・Kの値は別に決める必要があります

>>727
可読性は重視したいです

>>736
そう言って頂けると大変ありがたいです
やっぱりそこは1つの関数にまとめた方がいいんですね

>>737-740
それも友人に、グローバル変数は少なければ少ないほどいい、と言われたのを
受けてのことです
2022/11/11(金) 01:39:45.03ID:tK9Svk7P0
>>735
ざっと見た感じ、そりゃ色々言われるわ
クラス云々言ってるのに、blackjackっていうデカい関数の中にクラス切ってる時点で吹いたわ

あとクラスの役割分担というか、所属してる関数もおかしく感じるわ
プレイヤークラスっていう名前なのに、にルール関係のスコア計算、バースト判定とかが入ってるし
それこそblackjackのルールを管理をするクラスを作る方が自然だべ

あともうし自分で書くとしたら、ルールクラスにis_winっていう関数作って、そこで勝利判定してtrue/falseで返すわ
最後に全パターンで人間/CPUに対して勝利判定かけてるけど、参加プレイヤー/CPUが増えた時の勝利判定の実装とか
これベースだと面倒だろうなって思った
2022/11/11(金) 01:43:33.89ID:tK9Svk7P0
>>743
>グローバル変数は少なければ少ないほどいい
これはまず変数のスコープは狭い方が良い、っていう話だぞ
(グローバル変数だとそれこそスコープが広くてどこで書き変わるのかが不明瞭になるから、なるべく使うなって言われてる)
バカデカい関数を作るって何の解決にもなってねえwwwwwww
2022/11/11(金) 05:10:58.43ID:dIH3TsNBM
使い回さないのに関数化やクラス化する意味ってあるんだろうか
2022/11/11(金) 06:45:32.82ID:fLgBQpEC0
is_<動詞> ってたまに見るけどどこかで流行ってるの?
2022/11/11(金) 07:35:28.77ID:BuWtLPbxM
>>746
この業界には、「一処理は100行に収めるべし」という格言があってな
つまり100行以上の処理があったら、100行以内にぶった切って関数にして順次呼ぶべしってことなんだよ
理由は知らん
2022/11/11(金) 08:51:38.78ID:QYmFVFm/a
まあ分割っていうか処理に名前つけろやって感じだな
抽象的に書こう
2022/11/11(金) 09:56:03.89ID:gNt5qX/T0
でかい関数はあれもやってこれもやってになってるから、
それを機能毎に分割すればいいだけ
1箇所からしか呼ばれない関数がいくつもできるけど、それは問題ない

うまく作ってあれば、関数の戻り値を次の関数に渡すだけ、みたいなシンプルな構造に自然となる
それぞれの機能が変数をいろいろ共有していて切り分けられなかったら、元々の書き方が悪い
2022/11/11(金) 10:26:37.58ID:XH1qJoq+0
pythonではクラスをあまり作らないほうがいい、じゃなくて
お前にクラスは百年早い、って言いたかったんだろその友人は。
碌に関数も作れないのだからクラスなんて無用の長物。
2022/11/11(金) 10:31:34.23ID:PAETAgDl0
昔、関数ごとに仕様書作成が必要な現場があって、それを嫌って
ほとんどの関数が200行を超えるサイズで書かれる様になった
2022/11/11(金) 11:00:27.63ID:gNt5qX/T0
テストができんやろ
2022/11/11(金) 11:32:04.24ID:dIH3TsNBM
文書をアウトライン化するような感じで使うのね
メンテのときに不要な部分を読み飛ばせるのがメリットか
2022/11/11(金) 11:49:07.64ID:VSBKZoKf0
何か楽をするためのプログラムを作るのはいけるけど、
サイトの仕様変更で動かなくなったときの修正が苦痛だな、、
そのまま放置になりがち、、
2022/11/11(金) 11:59:14.38ID:gNt5qX/T0
スクレイピングはそのうち廃れる気がする
元データがあって人間用に加工して表示したものをまた元データに戻さなくても、
最初から元データで公開した方がお互い楽なことに気づき始めた
2022/11/11(金) 12:00:41.38ID:L/uUC/Rw0
C++でキー処理が数百行で、しかもファンクションキー毎に少しづつ違う
という構成のものを改修させれて辟易したことある
もしや、行数で成果が評価される現場だったのか
2022/11/11(金) 13:05:05.34ID:XH1qJoq+0
>>756
人間向けのHTMLを解析すれば無料なのにAPI経由は有料ってのも多いしな。
2022/11/11(金) 13:20:52.45ID:wT5HNNmtr
Python勉強してるけどどうやって初心者の粋を超えたらいいのかが分からない
何か作りたいけどその何かが思い浮かばないし
自動で巡回してエロビDLするとか電子書籍自動でスクショとかできるんだっけ?
2022/11/11(金) 13:23:31.34ID:RyfBFStrM
やってから聞けばいいのに
2022/11/11(金) 14:22:12.06ID:Pyb1B8zp0
>>759
早速思い浮かんでるじゃん
誰かができないと言うからやらないというなら何の勉強にもならない
明確な目的が無く勉強自体が目的なら機能しないゴミしか作れなくても意味があるし思い浮かんだもの全部作ればいい
762デフォルトの名無しさん (ワッチョイ 1933-pSqO)
垢版 |
2022/11/11(金) 14:23:36.91ID:JQ5LhQOs0
>>756
もしかして、APIが存在しない世界から来た方ですか?
763デフォルトの名無しさん (ワッチョイ 1933-pSqO)
垢版 |
2022/11/11(金) 14:29:46.62ID:JQ5LhQOs0
別に既にあるものでも構わないから、何か作りたいというモチベーションがある内に色んなものを作った方がいい
独学は特に大事
764デフォルトの名無しさん (ワッチョイ 1933-pSqO)
垢版 |
2022/11/11(金) 14:34:12.48ID:JQ5LhQOs0
途中で奥ちゃった
そしたら、次に何か新しいもの作りたくなった時に何が足りないか自分で調べられるぐらいにはなってると思う
2022/11/11(金) 15:20:48.12ID:KvbVlUc20
奥り人なんだな
2022/11/11(金) 19:48:45.92ID:acI+Bjnd0
クラスを設計するのはものすごく難しい
作り始めないとわからないことも多いし
途中で仕様が変わったりしたら
簡単に破綻する
大きなプロジェクトでは
途中でクラス構成を変えることは
困難なので
しばしば大変なことになる
2022/11/11(金) 21:01:39.50ID:BuWtLPbxM
>>759
この前も同じこと言ってる人がいたよ
作りたいものがないのでなんかアイディアないですかって

まず、何のためにPythonを勉強しているのか聞きたい
普通は作りたいものがあったり、仕事だから、課題だからという
動機があるはずなんだ
動機もなく身に着けられるものじゃないよ。プログラミングは一応専門技能だから
2022/11/11(金) 21:43:58.80ID:zIrG+C10M
自分探しして働かない奴と同じだよな
2022/11/11(金) 21:51:56.55ID:7hjsWVqY0
>>766
最初から完璧な要件・設計で開発なんて不可能だから
途中で構成変わる前提で組み立てるんだよ
クラスに限った話じゃないけど
2022/11/11(金) 22:08:17.04ID:dIH3TsNBM
インスピレーションを得るなら多くの作品に触れることでしょ
2022/11/11(金) 22:16:07.93ID:PAETAgDl0
プログラムやりたいと思った動機ってそれぞれあるだろう
2022/11/11(金) 22:26:55.54ID:6yLWq/6IM
ズボラほど上達が早いように思う
やりたくないことは全部コンピュータにやらせたい
2022/11/11(金) 23:18:07.02ID:ywa4HP4la
現実は必死に努力してQiitaにちょっとやってみたーみたいなこと書いてるやつばっかりだけどな
2022/11/11(金) 23:19:39.80ID:ywa4HP4la
部品の置き換えが利くってのは完璧なプログラムとほとんど同義だね
具体的にねっちょりと書くしか無いこともあるけど
775デフォルトの名無しさん (ワッチョイ 2389-UXd1)
垢版 |
2022/11/12(土) 11:00:15.35ID:jZf8/3In0
質問です。
これをヘッドレスモードで動かしたいのですがどうするといいでしょうか?

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
browesr = webdriver.Chrome(ChromeDriverManager().install())
776デフォルトの名無しさん (ワッチョイ 2389-UXd1)
垢版 |
2022/11/12(土) 11:41:37.67ID:jZf8/3In0
すいません。
解決しました。

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--headless')
browesr = webdriver.Chrome(ChromeDriverManager().install(), options=options)
browesr.quit()
2022/11/12(土) 13:03:04.39ID:FJxDQgNh0
ちゃんと終わってる筈なのにタスクマネージャに残るんだよな
2022/11/12(土) 14:06:44.73ID:QoJFyqg+0
async関数の終了を2箇所で待つ方法は無いですか?
普通にawaitを2回使うと既にawaitedした処理だぜってエラーが出ます。
2022/11/12(土) 14:23:25.37ID:ToW7pe8/0
答えは持ち合わせてないけど同じことを考えたことあるな
2022/11/12(土) 14:24:45.91ID:T1+EK47n0
エラーなんか無視する
2022/11/12(土) 15:22:28.94ID:QoJFyqg+0
>>780
エラー握り潰しても、肝心な処理待ちが出来ないので駄目です。
2022/11/12(土) 15:46:37.70ID:AXYSbt7W0
メモ化する関数でラップ
頻発するならデコレータ書く
783デフォルトの名無しさん (ワッチョイ c597-AMkR)
垢版 |
2022/11/12(土) 15:58:01.40ID:pkT2sKDg0
>>756
廃れないよ。Webって広告で成り立っている基本人間向けの情報発信ツールなんだから、人間向けのデータ(文章とかね)のスクレイピングは依然として残る。
APIは有料というのは広告収入につながらないから割と当たり前の話で。
利益を目的としないデータ公開はオープンデータ化していくだろうけれど、そういうのって政府や自治体のデータ公開、大学などぐらいしか基本的にはないだろう。
2022/11/12(土) 15:59:27.93ID:QoJFyqg+0
>>782
メモ化だと結果は再利用できますが、同時に待つことができないように思います。
2022/11/12(土) 16:11:11.71ID:2L2Z04CZ0
>>778
task = asyncio.create_task(async_fn())
result = await task
result = await task
2022/11/12(土) 17:58:24.29ID:QoJFyqg+0
>>785
うまく行きました! ありがとうございます!
TaskというのがJavaScriptのPromiseみたいな事してくれるんですね!
2022/11/13(日) 15:06:45.34ID:mAjRS9pi0
なんでOpenCVはちょっとしたことでぶっ壊れるんですか?
2022/11/13(日) 19:56:00.79ID:S7gZHHW/
_max=7
_min=3
a=2
if a>_max:
 a=_max
elif a<_min:
 a=_min
print(a)

これってもっとスマートに書けませんでしたっけ
2022/11/13(日) 20:10:07.19ID:S7gZHHW/
ちなみに0を含む自然数で
range(_min,_max,1)
です
これの範囲外は判定できるのですが
_minより小さく外したのか、_maxより大きく外したのか
って一行で短く書けなかったかな、と。
記憶違いかもしれません、無かったような気がしてきました
790デフォルトの名無しさん (ワッチョイ 4b10-TWxH)
垢版 |
2022/11/13(日) 20:12:10.16ID:cgKyROyF0
a=max(min(a,_max),_min)
2022/11/13(日) 20:16:44.58ID:S7gZHHW/
>>790
できました!!
そうですこれです!

_max=7
_min=3
for i in range(10):
 print(i,max(min(i,_max),_min))

ありがとうございます!!
2022/11/13(日) 20:31:52.48ID:J0JT7kUN0
>>787
それ依存関係が壊れてるからじゃね?
2022/11/13(日) 20:32:48.89ID:xH4HHaxN0
最近excelで、答えがマイナスなら0にする、という処理がめんどくさいと思ったけど、
max(0,x)でシンプルに書けた
2022/11/13(日) 20:47:55.89ID:ZI0YVyVbM
>>790は一見何をやっているのか、やりたいのかわからんし
メンテナンス性が悪そうだ
>>788の方はわかるし改造しやすい
コードは短ければ良いというものではないな
2022/11/13(日) 21:04:49.96ID:xH4HHaxN0
やりたいことをまず自然言語で書く
minとmaxの範囲内ならそのまま出力
範囲外ならばminとmaxでガードする

これだけの情報量があるので、コードがそれなりの長さになって当然
2022/11/13(日) 21:55:42.10ID:tnJyg4LP0
コードゴルフは面白いけどコミットはしないで欲しい
2022/11/13(日) 22:26:40.02ID:0j2qr49h0
>>788
np.clip(array, _min, _max)
798デフォルトの名無しさん (ブーイモ MM69-AMkR)
垢版 |
2022/11/13(日) 22:58:00.99ID:6O/r8caVM
何がコードゴルフかはジャンルにもよるよなあ。シェーダーなんかだとminmaxみたいなのは常套句みたいなものだし、
pythonの内包表記もちょっと凝り出すとコードゴルフ的になる。コーディングガイドラインがあればいいけどね。
2022/11/13(日) 23:21:42.99ID:m9TsWVuY6
>>794
さすがにこのくらいはグラフ考えて分かってよ
800デフォルトの名無しさん (ブーイモ MM69-AMkR)
垢版 |
2022/11/13(日) 23:47:29.33ID:6O/r8caVM
まあ、minmaxの良くないところは、慌てて順番反転させたりする事故が起きると何もクリップしてくれなくなるところなんだけど(良く使うなら関数化しておくべき)
とはいえ、minmax的なのNGって、関数型言語全否定に近いものがあると思うんで、その立場でいいのかは考えるべきだと思うけど。
もちろん手続き型メインのPython使ってるんだからPythonではそんなのお門違いだという意見も否定はしないけど
2022/11/14(月) 00:16:33.72ID:RdGM128m0
maxとminでもいいと思うけど
頻繁に使うならclamp(val,lo,hi)みたいな関数作ればいい
802デフォルトの名無しさん (ワッチョイ ad2c-WM47)
垢版 |
2022/11/14(月) 02:35:12.38ID:Msnzn9MH0
初コメです。質問させてください。
ウィジェットに、押すとnotepad.exeを起動するボタンを作ったのですが、起動したテキストに文字を書き込む(テンプレート)ボタンを作りたいのですが、どのようにすれば良いでしょうか…
2022/11/14(月) 06:45:05.17ID:gWXr0Wl00
>>802
PyAutoGUI
内容次第ではPythonやめてAutoItだけの方が楽
2022/11/14(月) 08:17:37.42ID:z4y/4erZ0
AutoItとかAutoHotKeyとかキーボードやマウスをプログラムから操作して
自動化するツールはいろいろあるけど、
どれが最強なのか今ひとつ判らない

簡単にする為に出来ることを減らしていたり、
いろいろできるけど言語仕様が原始的すぎたり
pythonと同じ書き方ができて出来ないことがないのが理想
2022/11/14(月) 11:56:34.09ID:EWF0SvAna
対象のプログラムやウィンドウが背面に行ったり最小化されててもちゃんと動くかどうかで選べばいい
2022/11/14(月) 12:07:38.76ID:K3emCbowa
対象プログラムが背面にあっても動くってウインドウハンドルにSendMessageを直接送る感じ?
2022/11/14(月) 13:25:46.58ID:99fRleugr
windowsのアプリをバックグラウンドで起動して動かすようなのが出来たらなぁ
マウス取られるから他の作業できないんだよね
808デフォルトの名無しさん (ガックシ 0669-AMkR)
垢版 |
2022/11/14(月) 15:23:33.25ID:yiG7YfVR6
WindowsをVMに入れるか、リモートデスクトップ複数人ログイン対応のWindowsならフォアグラウンドでも実質バックグラウンドにできるから困らなさそうだ
Win32APIを直で叩きまくればバックグラウンドでも動かせるような気がしないでもないけど、イベント処理のメインループが回るかは謎だね。全然詳しくないや。
2022/11/14(月) 21:26:19.81ID:LuassWmg0
>>790 がメンテ性悪いとか言う人は
プログラマー向いてないと思うの
2022/11/14(月) 21:33:59.91ID:z4y/4erZ0
temp = min(input, upper_limit)
output = max(temp ,lower_limit)
これを合体させただけなんだけどな
2022/11/14(月) 21:55:04.23ID:aUHlXgrZ0
関数化せずにインラインでそれ書いてきたらレビューでハネる
2022/11/14(月) 21:57:02.78ID:CWXyQGgF0
頻度次第
2022/11/14(月) 22:11:36.21ID:gxurLVtj0
>>809
まあ適宜空白入れろよとは思う
a = max(min(a, _max), _min)
2022/11/14(月) 22:20:44.64ID:xHaIXgz6M
>>810
そもそもmaxの中にminがある時点で頭がおかしくなる俺の場合
2022/11/14(月) 22:25:56.00ID:SUeRZblV0
import ctypes
SendMessage = ctypes.windll.user32.SendMessageW
hWnd = ごにょごにょ
pos = (y << 16) + x
SendMessage(hWnd, 513, 0, pos) # WM_LBUTTONDOWN
SendMessage(hWnd, 514, 0, pos) # WM_LBUTTONUP

>>806
こんな感じかな
どのみち、どう処理されるかは相手次第になってしまうけど
背面とか最小化とか、最悪トップに出てきたり
816デフォルトの名無しさん (ワッチョイ 4b10-TWxH)
垢版 |
2022/11/14(月) 22:50:26.22ID:dRHiUVHI0
>>813
それは自動整形機能の仕事で人間が気遣うことではない
817デフォルトの名無しさん (スップ Sd03-WM47)
垢版 |
2022/11/14(月) 23:20:28.77ID:XZXiqJkqd
>>803
pyautoguiで一歩進みました!ありがとうございます!
2022/11/15(火) 01:47:11.37ID:qykSWSRkM
>>810
その2行なら受け入れるけど合体させるのは意味はないじゃんって思うよ
2022/11/15(火) 01:54:09.53ID:JTzzJATw0
関数名と変数名を工夫すれば良いと思う
_付けるだけでそれを区別するのはちょっと
820デフォルトの名無しさん (ワッチョイ c597-AMkR)
垢版 |
2022/11/15(火) 01:57:43.67ID:7joAI/8k0
>>818
それは、+=や、f.write(','.join([若干長い内包表記]))が許されるかみたいな話とも繋がっていて、
ぶっちゃけ何度も出て来ればこんな簡単なのは1行にしたくなると思うよ
内包表記だって1行で書きたいから書くって側面もあるわけじゃない。
2022/11/15(火) 04:53:39.40ID:Ohwd0nE10
>>816
掲示板に書く時におまえが気遣えよって言う指摘だぞw
2022/11/15(火) 05:06:14.63ID:9j9A/xThM
a = range_ni_osameru(_min, a, _max)

どや!
2022/11/15(火) 07:01:01.67ID:+rxWDVlZ0
def range_ni_osameru(_min, a, _max):
 return _min if a < _min else a if a < _max else _max

こうかな!
2022/11/15(火) 07:23:39.25ID:GEd0aXfXa
>>823
俺なら
return _min if a < _min else _max if _max < a else a
って書くかな
2022/11/15(火) 07:58:14.56ID:gBqAZwZY0
行数というよりは、中間の変数を登場させたくない
合体させるにしても、後ろに繋げていく方式とネストを深くしていく方式があって、
ネストだとどうしても可読性を損なう
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況