Pythonのお勉強 Part74

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0b4a-lz98)
垢版 |
2024/09/21(土) 10:14:02.15ID:ZHy4g+PL0
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

※前スレ
Pythonのお勉強 Part73
https://mevius.5ch.net/test/read.cgi/tech/1717631290/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
240デフォルトの名無しさん (アウアウエー Sa8a-v/8H)
垢版 |
2024/10/23(水) 14:24:57.07ID:CetgrrtLa
governance不合格
241デフォルトの名無しさん (ワッチョイ fb16-1Wnr)
垢版 |
2024/10/30(水) 00:00:42.89ID:N5ISBsY60
pythonで不思議なのがif文

例えばこんな感じ。

name = input()
print("Hello " + name)

if name == "python":
print("Welcome")
else:
print("Goodbye")

このケースは二つだけのケースだが
三つのケースはelse:を追加
これって例えば誕生日きくときに
ifで1月
elifで2−11月
else12月。
これであってる?
なんかかなり面倒だからなんとかしてほしいw
242デフォルトの名無しさん (ワッチョイ fb16-1Wnr)
垢版 |
2024/10/30(水) 00:03:09.96ID:N5ISBsY60
あ、そっか。
まとめればいいだけだわ。
解決しましたw
2−11をまとめるとスッキリするねw
243デフォルトの名無しさん (ワッチョイ fb16-1Wnr)
垢版 |
2024/10/30(水) 00:27:22.21ID:N5ISBsY60
マッチつかおっとw
list = [1, 2, 3, 4, 5, 6, 8, 10, 11, 13, 15, 17, 19, 20, 22, 23]
list_mult2 = []
list_mult3 = []
list_others = []

for i in list:
match i:
# 2 の倍数を格納
case i % 2 == 0:
list_mult2.append(i)
# 3 の倍数を格納
case i % 3 == 0:
list_mult3.append(i)
# その他
case _:
list_others.append(i)
244デフォルトの名無しさん (ワッチョイ fb16-1Wnr)
垢版 |
2024/10/30(水) 00:28:36.78ID:N5ISBsY60
上記訂正

# 分割する数字
list = [1, 2, 3, 4, 5, 6, 8, 10, 11, 13, 15, 17, 19, 20, 22, 23]
list_mult2 = []
list_mult3 = []
list_others = []

for i in list:
match i:
case i if i % 2 ==0:
list_mult2.append(i)
case i if i % 3 ==0:
list_mult3.append(i)
case _:
list_others.append(i)

#これでよし!w
245デフォルトの名無しさん (ワッチョイ fb16-1Wnr)
垢版 |
2024/10/30(水) 00:31:39.11ID:N5ISBsY60
switch文かなり便利やな。
match beer_style: # Pilsner, IPA, Hazy IPA and others
case "Pilsner":
result = "First drink"
case "IPA":
result = "I like it"
case "Hazy IPA":
result = "Cloudy and cloudy"
case _: # ワイルドカードパターン
result = "I like most beers"
こんなに簡単にできるんだ。
今までif文がばからしいww
2024/10/30(水) 00:32:21.56ID:E1mCSTtf0
fall-throughしないから6の倍数のやつがダメだろ
2024/10/30(水) 00:35:14.70ID:odUE1a8w0
if elif elseを置き換えるだけではmatchにする有り難みがない
もっとアクロバットなことができるけど、
そんなことをしたらpythonでなくなる気がする
248デフォルトの名無しさん (ワッチョイ fb16-1Wnr)
垢版 |
2024/10/30(水) 00:35:14.71ID:N5ISBsY60
day = 3

match day:
case 1:
print("今日は月曜日です。")
case 2:
print("今日は火曜日です。")
case 3:
print("今日は水曜日です。")
case 4:
print("今日は木曜日です。")
case 5:
print("今日は金曜日です。")
case 6:
print("今日は土曜日です。")
case 7:
print("今日は日曜日です。")
case _:
print("無効な日です。")
2024/10/30(水) 00:36:51.27ID:E1mCSTtf0
どれもdictionaryにまとめるパターン
250デフォルトの名無しさん (ワッチョイ fb16-1Wnr)
垢版 |
2024/10/30(水) 00:43:34.90ID:N5ISBsY60
fruit = "apple"

match fruit:
case "apple" | "banana" | "cherry":
print("これは一般的な果物です。")
case "kiwi" | "mango":
print("これはトロピカルフルーツです。")
case _:
print("これは知らない果物です。")

複数のマッチ。
2024/10/30(水) 00:46:48.67ID:3XYQLByjH
アホだ
他言語ではswitchはバグの元って忌み嫌われてるのに
今になってわざわざ導入したPython陣営の愚かさよ
252デフォルトの名無しさん (ワッチョイ fb16-1Wnr)
垢版 |
2024/10/30(水) 00:49:17.11ID:N5ISBsY60
>>251
match 文はどう?
使い勝手がよいんだがw
2024/10/30(水) 00:54:05.39ID:E1mCSTtf0
>>250
キウイはトロピカルフルーツではないです
バナナはトロピカルフルーツです
2024/10/30(水) 01:03:26.08ID:3XYQLByjH
>>252
breakを書かないのが気持ち悪い
やはり条件分岐はifに勝るものなし
2024/10/30(水) 01:07:30.76ID:odUE1a8w0
switchにbreakがあるのが自然な感覚なら、if文もbreak要るやろ
アセンブラと一対一対応なただのジャンプ命令を高級言語にしただけなんだから
2024/10/30(水) 01:23:42.78ID:bt1w6ELFH
>>255
多分に感覚的なものだけどね
ifはelseというキーワードにより分岐から分岐に処理が流れることはないとはっきりわかるからbreakは不要
switchはそれがわからないからbreakがないと気持ち悪い

>>250で言えば、2個めのcaseからはelse caseとする設計なら安心できる
2024/10/30(水) 07:50:49.92ID:GeZTCF7U0
この場合は、と書いてるのに、それ以外の場合に処理が突っ込んでいくのが異常
自然言語として読んでそんな解釈する奴は皆無
C言語のswitchは実質goto文で、忌避すべき悪しき構造
2024/10/30(水) 08:34:25.79ID:bt1w6ELFH
>>257
C、Java、JacaScriptという錚々たるメンバーでbreakが要るんだからしょうがないじゃない

あとChatGPTに聞いてみたら、下記の記述があったけどこんなのが一般的とか言われて俺もまだまだだなと思った
-----
Pythonには switch 文はありませんが、代わりに辞書を使った条件分岐が一般的です。この場合、各条件が明示的に処理されるため、break は不要です。

switch_dict = {
1: lambda: print("処理1"),
2: lambda: print("処理2"),
}
switch_dict.get(value, lambda: print("デフォルト処理"))()
259デフォルトの名無しさん (ワッチョイ fb0a-1Wnr)
垢版 |
2024/10/30(水) 13:37:25.39ID:N5ISBsY60
100さんへ
ALL PYTHONDでもよくね?
260デフォルトの名無しさん (ワッチョイ fb0a-1Wnr)
垢版 |
2024/10/30(水) 13:40:41.42ID:N5ISBsY60
PHPでPYTHONやると語尾が気持ち悪くなるW
だっていつもコロンだか、セミコロンつかうじゃん?phpって
だから最初わしも慣れるのに苦労したW
2024/10/30(水) 13:56:31.26ID:DhwGc29Ga
HDLだとcaseで充分なんだよな
262デフォルトの名無しさん (アウアウエー Sae3-07nO)
垢版 |
2024/10/30(水) 14:02:40.72ID:DhwGc29Ga
>>258
アホはこれみてpythonは関数型言語(キリっ)とか言い出しそう
2024/11/02(土) 13:35:04.63ID:cytI8wNj0
同じ階層のlib.pyにdef func()があって、main.pyから
import lib
だけでfunc()使えなかったっけ

lib.func() なら使えるし、
from lib import func でも使えるけど、
import lib だけでも使えてるケースがあるのに違いが判らん
264デフォルトの名無しさん (ワッチョイ 535c-Idnl)
垢版 |
2024/11/02(土) 13:56:04.51ID:QT6/c5p90
使えるわけねーだろドキュメントくらい読め
2024/11/02(土) 14:01:43.84ID:cytI8wNj0
サンプルを書いてみると使えないんだけど、
実際に動いてるコードでは使えてるとしか思えないんだよな
266デフォルトの名無しさん (アウアウエー Sae3-07nO)
垢版 |
2024/11/02(土) 15:09:33.21ID:+GKIPsT4a
from lib import *
267デフォルトの名無しさん (アウアウエー Sae3-07nO)
垢版 |
2024/11/02(土) 15:24:56.26ID:+GKIPsT4a
lib.py の最後に
__builtins__['func'] = func
でいけるかな
2024/11/02(土) 15:25:32.30ID:+GKIPsT4a
lib.py の最後に
__builtins__['func'] = func
でいけるかな
269デフォルトの名無しさん (スププ Sd33-Kj37)
垢版 |
2024/11/02(土) 16:45:29.14ID:TIz0sdCnd
黒魔術禁止
2024/11/03(日) 05:30:42.12ID:3rcZcbik0
>>265
じゃあそのコード出してみればいいのに
2024/11/03(日) 09:54:14.13ID:3P3Nu4GE0
結局、動いてはいなかった
ImportError: cannot import name 'func' from 'lib'
というエラーにはならずに、とりあえず走り始める

で、funcを呼んだタイミングでエラーになるけど、
concurrent.futures.ThreadPoolExecutor.submit の先にあるので、
エラー表示は出ないし処理も止まらないだけだった
何なら、import lib すらなくても同じ動作になる
2024/11/03(日) 14:00:30.85ID:3P3Nu4GE0
エラー出ない問題は
future = concurrent.futures.ThreadPoolExecutor.submit(func)
future.result()
こんな風にすると解決する
concurrent.futures.ThreadPoolExecutor.submit(func).result()
でもok
2024/11/03(日) 16:59:41.21ID:oTBqZLJpM
なんなのこの日記
2024/11/03(日) 17:08:44.45ID:3P3Nu4GE0
但し、result()を評価すると完了を待つので同期処理になってしまう
多重処理で高速化できないので、デバッグが終わったら外す
2024/11/03(日) 17:09:12.43ID:L07G869G0
言っても無駄だから「集団無視」するのがいい
2024/11/03(日) 17:43:09.87ID:lgsiIHy30
>>273

この福祉系キチガイのせいでしょ>>87
2024/11/03(日) 18:43:10.23ID:aWrgo6rr0
五十四の日記
278デフォルトの名無しさん (スププ Sdb2-c1Ck)
垢版 |
2024/11/03(日) 19:21:34.34ID:4g0SxEOpd
過疎ってるね
2024/11/03(日) 20:18:30.62ID:rroxZfopd
seleniumやりたくてpython始めたけど
エラーばっかしで嫌になってきた
ラジオボタン選択したいだけなのにうまくいかなくて調べてったらこんな事になった


element = driver.find_element(By.ID, "spAccKbn2")
action = webdriver.common.action_chains.ActionChains( driver ) action.move_to_element_with_offset( element , 1 , -1 )
action.click()
action.perform()
2024/11/03(日) 22:36:57.37ID:m0ql+Kks0
続 五十四の日記
2024/11/03(日) 23:08:48.69ID:3P3Nu4GE0
過疎るのは別に問題じゃないけど、課題はS/N比だな
何故内容のないことを書き込みたがるのか
2024/11/03(日) 23:24:53.04ID:upFikudE0
おまいう
2024/11/03(日) 23:42:27.04ID:Hsbf+jvP0
福祉施設からきた知的障害者が荒らしてるよな>>87
2024/11/03(日) 23:43:00.68ID:Hsbf+jvP0
>>279
失せろ知的障害朝鮮人
285デフォルトの名無しさん (ワッチョイ b6d7-W6cr)
垢版 |
2024/11/07(木) 22:30:21.43ID:0vDQcGjY0
pythonってなんで語尾に;がないの?
この語尾が気持ち悪いw
あとif文やelifが:だけ:があるのが慣れないなw
286デフォルトの名無しさん (スップ Sd12-XYkR)
垢版 |
2024/11/08(金) 00:05:39.08ID:te03q3B3d
>>285
お前みたいな馬鹿がいるこの世の中が気持ち悪い
お前みたいな馬鹿が生きていられることになれないなw
2024/11/08(金) 12:27:31.09ID:F9yTI1pla
pythonは文末に;憑いてても動く
288デフォルトの名無しさん (ワッチョイ b2a0-33NL)
垢版 |
2024/11/08(金) 18:53:48.94ID:y8v+DuF60
>>285
改行コードを終わりと見做すプログラミング言語だから
2024/11/08(金) 19:07:12.95ID:cLnY3Hqj0
改行に意味があるというよりは、ブロック構造をインデント任せにしてるからだけど

{と}でブロックが明示されてたらエディタの機能でブロックの先頭と末尾を行き来できるけど、
python専用エディタだとそんなことできたりする?
インデント深いと読めなさすぎて、あの手この手で浅くする
290デフォルトの名無しさん (ワッチョイ b2a0-33NL)
垢版 |
2024/11/08(金) 19:09:12.46ID:y8v+DuF60
>>289
初心者にそんな説明をするのは悪手
2024/11/08(金) 19:38:39.84ID:BBiCQq+eH
>>289
できないと思うけど
そもそもブロック単位の移動という操作が開発で必要とは思えない
2024/11/08(金) 19:41:06.28ID:G9PsHqcG0
>>285
別に付けてもいいぞ
何なら一行に複数の文も書ける
293デフォルトの名無しさん (ワッチョイ b2a0-33NL)
垢版 |
2024/11/08(金) 19:56:04.57ID:y8v+DuF60
>>292
Pythonの原作者の悪趣味を勧めるなw
294デフォルトの名無しさん (ワッチョイ b2a0-33NL)
垢版 |
2024/11/08(金) 19:58:22.87ID:y8v+DuF60
>>292
意味なく付けていると可読性が下がる
295デフォルトの名無しさん (ワッチョイ 6e50-Du01)
垢版 |
2024/11/08(金) 20:28:10.47ID:c7CpRr710
>>288
なんかメインフレーム臭さが漂ってんだよなあ
2024/11/08(金) 22:56:15.48ID:U1OZc4Nd0
>>289
vimはできるよ

Pythonでパッと見てネスト構造が分からないようなコードは問題がある気がするがブロック単位と移動や編集が便利なのは間違いない
297デフォルトの名無しさん (ワッチョイ 7509-gPyh)
垢版 |
2024/11/09(土) 01:03:02.37ID:6W4F7+P40
>>295
セミコロンを付けない言語もそれなりにあるし、Pythonだけがそうというわけではない
最近流行りのだとGoもそう
2024/11/09(土) 11:11:55.78ID:6RYR080/0
>>289
改行を文デリミタにするのとブロックの表し方は全然関係ないだろ。
シェルスクリプトとか見てみ。
2024/11/09(土) 11:58:53.83ID:wO7HvhhQ0
luaも無視してくれるね;
300デフォルトの名無しさん (アウアウエー Sada-GGiU)
垢版 |
2024/11/09(土) 14:29:53.24ID:B62lCCpIa
xxxxxxxxxxxx
2024/11/09(土) 15:56:26.85ID:uvbykfPp0
JavaScriptみたいに自明な場合はセミコロンを挿入するって風にすればいいのにな
そうすればワンライナーとの相性もよい
302デフォルトの名無しさん (ワッチョイ 5969-4b4N)
垢版 |
2024/11/09(土) 16:57:23.68ID:5wGLeQz90
そうするとめちゃくちゃなインデントするやつが絶対でてくるからな
2024/11/09(土) 17:24:04.02ID:LlsVFZwkd
vs codeで書いてるけど
インデントしてんのにインデントおかしいぞ!って怒ってくる
2024/11/09(土) 19:42:57.03ID:b5zF/lUM0
Pythonを使うには
空白文字が判別できるグリフになってるフォントが必要
305デフォルトの名無しさん (スッップ Sdb2-XYkR)
垢版 |
2024/11/09(土) 21:20:12.17ID:SkJltVwKd
>>304
このスレってこういう馬鹿ばっかだな
2024/11/09(土) 22:08:58.33ID:sXoCSO6d0
>>305
お前みたいなのがこのスレを破壊したって
自覚持ってくれ
307デフォルトの名無しさん (スッップ Sd43-DV/N)
垢版 |
2024/11/10(日) 00:52:09.53ID:H/zpgg/Vd
>>306
お前みたいに嘘を撒き散らす馬鹿がいるからだろ
308デフォルトの名無しさん (ワッチョイ e337-R46Z)
垢版 |
2024/11/10(日) 02:54:10.37ID:NcxfIIMm0
>>303
タブと半角スペースが混じっているだけじゃないのか?
309デフォルトの名無しさん (ワッチョイ cdd5-MfT4)
垢版 |
2024/11/10(日) 07:47:13.73ID:dkv1a77w0
フォントでなくエディター側でも解決できる
VS Codeだとタブ文字やスペースを見やすくする設定があるはず
全角スペースはフォント側で可視化されてるものを使うと便利
2024/11/10(日) 09:41:38.14ID:Mocr1U5E0
全角スペースをstrip()が削除するんだから、それがスペースだということは知ってるんだよな
なんでインデントに使ったらいけないのか謎
2024/11/10(日) 10:07:01.33ID:3craHbO10
個数で判定するか幅(それも1:2か3:5かそれ以外か)でか、で自転車置き場の屋根より長い議論になることが見えてるから
2024/11/10(日) 10:30:19.57ID:Mocr1U5E0
個数でも幅でもなく、組み合わせ
TABとスペースを混ぜた時と同じ挙動
313デフォルトの名無しさん (アウアウエー Sa13-vkNS)
垢版 |
2024/11/11(月) 06:06:38.40ID:mTrGHtv9a
全角SPはTABでも半角SPでもない
2024/11/11(月) 08:13:32.49ID:XjDPgffN0
C言語のブロック記号{}に全角空白もアリにしてと言ってるようなもんだな
日本語の全角空白含めても日本人の一部にしかメリット無いです
2024/11/11(月) 14:38:02.82ID:tRsIxhTt0
インデントはタブのみ許可
タブはインデントのみ許可
みたいにガチガチにしてしまえばいいのに
そこだけは非常に残念
2024/11/11(月) 16:41:38.17ID:RisB9sc6d
タブの存在しない処理系とかあるんじゃないの
知らんけど
2024/11/11(月) 16:45:22.89ID:XlNa4SSE0
https://www.openwork.jp/company.php?m_id=a0910000000FrzY
2024/11/11(月) 17:04:38.11ID:7xH2ULqH0
TAB使うなって言うからスペースでインデントしてるけど、
エディタがデデントに対応してなくて無駄に大変
2024/11/12(火) 09:00:04.47ID:MVEhN2a60
なぜ対応のエディタを使わないのか
VSコードでいいだろ
320デフォルトの名無しさん (ワッチョイ e38e-R46Z)
垢版 |
2024/11/12(火) 20:00:16.97ID:v7TGFNyn0
>>313
スペースのことを「SP」と書いている人を初めて見たわ
321デフォルトの名無しさん (ワッチョイ e38e-R46Z)
垢版 |
2024/11/12(火) 20:07:54.86ID:v7TGFNyn0
Pythonが誕生したころは、まだ1バイト使うか4バイトも使うか記憶装置の容量では悩むレベルだったから、タブを使うか半角スペースを複数個使うかで
322デフォルトの名無しさん (ワッチョイ e38e-R46Z)
垢版 |
2024/11/12(火) 20:08:36.68ID:v7TGFNyn0
人によって意見がわれていた
323デフォルトの名無しさん (ワッチョイ 4b8e-DV/N)
垢版 |
2024/11/12(火) 20:25:38.59ID:J1Sn69yS0
>>320
お前が何も知らない馬鹿なだけかと
2024/11/12(火) 21:12:33.59ID:ZcEeG3hE0
半角SPw
2024/11/12(火) 21:16:46.59ID:nvqj0JfO0
日本人の一部にしかメリットなくても、残りの誰にもデメリット無いなら、
それはメリットしか無いのでは
326デフォルトの名無しさん (アウアウエー Sa13-vkNS)
垢版 |
2024/11/13(水) 02:13:50.19ID:lxEAsUm8a
デメリットだらけ
327デフォルトの名無しさん (ワイーワ2 FF93-R46Z)
垢版 |
2024/11/14(木) 19:11:38.32ID:g26vUJe4F
ここで質問しているやつはPythonの資格対策本でも買って勉強しろ
328デフォルトの名無しさん (ワッチョイ 2bb6-QT1F)
垢版 |
2024/11/15(金) 10:25:38.19ID:G6HDJDaQ0
uvはactivate必要なのか
pyenvとpoetryでいいわ
329デフォルトの名無しさん (ワッチョイ e3dd-R46Z)
垢版 |
2024/11/15(金) 17:45:24.05ID:Jz1yaJFv0
>>328
プロアクティブが必要
2024/11/16(土) 19:00:54.48ID:ILOr4dg40
既存のファイルを'w'でopenする時に、他のプロセスがアクセスしているとOSErrorになることがある
ならないこともある
ファイルが大きいとなるっぽい

なんとか強引に開けないものか
331デフォルトの名無しさん (ワッチョイ 1b5c-Bg8t)
垢版 |
2024/11/16(土) 21:38:03.01ID:JvbcygrM0
width同じでheightバラバラのjpg画像が大量にあるんだがこれをpdfに上下に敷き詰めるにはどうしたらいいの?
2024/11/16(土) 23:24:04.57ID:3kqPnMcZ0
>>330
windowsならWin32 APIでsharing modeを指定

>>331
bin packing problemでググれ
2024/11/17(日) 11:06:04.94ID:tn0ahmRja
print(np.arange(np.datetime64('2024-11-01'), np.datetime64('2025-05-01'), np.timedelta64(30, 'D')))

['2024-11-01' '2024-12-01' '2024-12-31' '2025-01-30' '2025-03-01' '2025-03-31' '2025-04-30']

print(np.arange(np.datetime64('2024-11-01'), np.datetime64('2025-05-01'), np.timedelta64(31, 'D')))

['2024-11-01' '2024-12-02' '2025-01-02' '2025-02-02' '2025-03-05' '2025-04-05']
なんだが

['2024-11' '2024-12' '2025-01' '2025-02' '2025-03' '2025-04']
が欲しい
2024/11/17(日) 12:17:30.72ID:EcgVWlk90
>>333
月ベースで計算したいのになぜ日ベースで計算しようとするのか

In : np.arange(np.datetime64('2024-11'), np.datetime64('2025-05'))
Out: array(['2024-11', '2024-12', '2025-01', '2025-02', '2025-03', '2025-04'], dtype='datetime64[M]')
2024/11/17(日) 12:24:22.30ID:33eX3D3e0
関係ないけど、excelで日毎のデータが何年分もあって、
グラフの横軸を年月で表示しようとしても微妙にうまく行かない
2024/11/17(日) 13:42:46.70ID:tn0ahmRja
>>334
ありがとう
print(np.arange(np.datetime64('2024-11-01'), np.datetime64('2025-05-01'), np.timedelta64(1, 'M')))
でエラーだったからどうしたもんかと
2024/11/17(日) 14:01:43.54ID:tn0ahmRja
print(np.arange(np.datetime64('2024-11-01'), np.datetime64('2025-05-01'), dtype='datetime64[M]'))
これでもうまくいったわ
338デフォルトの名無しさん (ワッチョイ 8e83-d7kS)
垢版 |
2024/11/17(日) 14:12:53.82ID:ENY5bRjq0
>>332
回答ありがたいんだが番号振られてあるから順番に上から下に敷き詰めたいんだが
339 警備員[Lv.10][芽] (ワッチョイ 6fad-gDrC)
垢版 |
2024/11/17(日) 17:22:39.74ID:z11Q5dQO0
下記の内容で Microsoft Copilot に聞いてみた で教えてくれる
------
pythonでwidth同じでheightバラバラのjpg画像が大量にあるんだがこれをpdfに上下に敷き詰めるにはどうしたらいいの?
番号振られてあるから順番に上から下に敷き詰めたいんだが
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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