24/10/16 17:27:46.34 98gvsp6K0.net
matchってswitch?
なんで変な名前なの?
190:デフォルトの名無しさん
24/10/16 17:35:39.03 qvWniM9xd.net
>>189
馬鹿にはそう見えるのか
191:デフォルトの名無しさん
24/10/16 17:49:43.98 uCgI/8kk0.net
C言語の時点でswitchは特に便利でもなかった
そこだけインデントが変になるし、breakまみれになるし
それでも推奨されたのはコンパイルで高速化できるから
分岐のかたまりではなくテーブルでジャンプするように変換してくれる
だから必然的にpythonにswitchなんか不要
192:デフォルトの名無しさん
24/10/16 18:18:16.18 98gvsp6K0.net
>>191
↑
高速化は事実だが、
テーブルうんぬんは間違い。
193:デフォルトの名無しさん (ワッチョイ 9f5a-G8R7)
24/10/16 20:02:33.53 P8hUv73s0.net
高速化として意味があったのは昔の話だけどね
194:デフォルトの名無しさん
24/10/17 18:14:57.71 lX/5R9Jx0.net
profile指定する以外の方法でseleniumでメルカリにログインする方法が判らん
195:デフォルトの名無しさん
24/10/17 20:37:13.97 rL5MZKqkH.net
>>189
別に変じゃないだろ
マッチ(match)させてその結果により分岐(switch)するという二段階の処理
用語として前を取るか後ろを取るかだけの話だ
196:デフォルトの名無しさん
24/10/17 20:43:44.76 91c0XYHa0.net
パターンマッチのmatch
switchにはパターンマッチの機能はない
197:デフォルトの名無しさん
24/10/17 20:52:52.68 l8JBYm7A0.net
>>195
え?
じゃ、switchでいいでしょ
198:デフォルトの名無しさん
24/10/17 21:15:16.24 lX/5R9Jx0.net
条件に合うか検査して分岐するんだからswitchだよな
英語のswitchってそんな多数分岐のニュアンスあるか? という疑問もある
AからBへswitchみたいな、2分岐がせいぜいなのでは
199:デフォルトの名無しさん
24/10/17 21:31:53.31 rL5MZKqkH.net
>>197
じゃ、て何よ
どっちかなんだからmatchでもいいじゃん
200:デフォルトの名無しさん
24/10/17 21:41:55.68 lX/5R9Jx0.net
switchと似て非なるもの、という意味でmatchにしたんだろうな
-tchが共通してるのは意図的
switchと同じと思われることを避けるというよりは、
switchとは違うのだよswitchとはという積極的な意思表示
201:デフォルトの名無しさん
24/10/17 21:50:15.51 yeHUFxEBa.net
switchに2択という意味は無いぞ
202:デフォルトの名無しさん
24/10/17 21:55:19.50 lX/5R9Jx0.net
longmanを引くと
1. to change from one thing to another, usually suddenly
2. to secretly remove one object and put another similar object in its place
3. to help someone you work with who needs time away from the job by agreeing to work certain hours for them if they do the same for you
4. to change the way a machine operates by using a switch
1.ある物から別の物へ、通常は突然変えること。
2.ある物をこっそり取り除き、別の似たような物をその場所に置くこと。
3. 一緒に働いている人が仕事から離れる時間を必要としている場合、その人が自分と同じことをしてくれるなら、その人のために一定の時間働くことに同意することによって、その人を助けること。
4. スイッチを使って、機械の作動方法を変えること。
何かからanotherへ切り替えの意味なんだよな
203:デフォルトの名無しさん
24/10/17 21:59:22.15 lX/5R9Jx0.net
ああ、2分岐でいいんだ
だからcaseなんだ
この場合はこれに切り替え、この場合は、という2分岐がたくさん書いてあるのか
長年の違和感がやっと解決した
204:デフォルトの名無しさん
24/10/17 22:45:28.58 iAHoYOGo0.net
with open(file_path, "r") as file:
lines = file.readlines()
これだと普通に動くのですが
with open(file_path, "r" , encoding="utf-8") as file:
lines = file.readlines()
こういう風にopen関数に第3引数を指定すると、実行してもなぜかすぐ終了してしまいます
原因わかる形いませんか?
205:デフォルトの名無しさん
24/10/17 22:49:09.06 iAHoYOGo0.net
すみませんencoding="shift-jis"にしたら動きました
質問したらすぐに自己解決する不思議・・・というか何も即終了しなくても
206:デフォルトの名無しさん
24/10/18 01:36:02.01 Ut6mxk750.net
でも
matchって色々機能があるね
使うのめんどくさいな
207:デフォルトの名無しさん
24/10/18 03:44:59.91 5Kk3482aa.net
Zennにもゴミ記事ってあるんだな
URLリンク(zenn.dev)
208:デフォルトの名無しさん
24/10/18 05:05:39.02 YY9Hp1UeH.net
>>206
うん
if~elifで済ませてきたんだから今更だし
確かPythonには一つのことをするのに複数のやり方があるのはご法度って考えがあったはずだし
開発陣の頭がボケてるとしか思えん
209:デフォルトの名無しさん
24/10/18 07:12:42.20 HW2s8lVK0.net
マッチでもスイッチでもいいが、CPU内では比較命令をそのたびにしてプログラムをジャンプすることでロジックをスルーする。
210:デフォルトの名無しさん (アウアウエー Sa3f-mL/d)
24/10/18 11:16:24.04 wVDH4S6Qa.net
choiceでも良いし
selectでも良い
211:デフォルトの名無しさん (ワッチョイ 3b54-I4pY)
24/10/18 11:26:19.64 gGHJI5N60.net
branchかなあ
複数に分岐する意味も最初から持ってる
でもアセンブラ的にはブランチは条件ジャンプと同義、、、
212:デフォルトの名無しさん
24/10/18 13:52:06.91 wVDH4S6Qa.net
case の方を前面に出した言語もあったはずω
213:デフォルトの名無しさん
24/10/18 15:40:13.78 Ut6mxk750.net
>>206
速度は場合によるようだね
ifのほうが早いケースもある
214:デフォルトの名無しさん
24/10/19 09:16:44.68 XsGIQo9N0.net
print(mes, file=(f, sys.stdout))
みたいなことができればいいのに
215:デフォルトの名無しさん (ワッチョイ cf01-sfBM)
24/10/19 10:19:20.60 +tdI/ffv0.net
複数箇所にwrite()するクラスを用意すれば簡単にできるけど
ちゃんとしたアプリケーションならロガーを使うし
簡易的なスクリプトならpythonの出力をteeするので
普通はやらない
216:デフォルトの名無しさん (ワッチョイ 3b54-I4pY)
24/10/19 10:32:03.25 XsGIQo9N0.net
ログではないんだよな
結果をファイルに出力しながら、経過の情報を画面に出力する
所要時間はこれだけでした、みたいな両方に出力したい内容は両方に出す
217:デフォルトの名無しさん
24/10/19 11:05:51.25 Qn7y5thLd.net
>>216
>>215 嫁
218:デフォルトの名無しさん
24/10/19 11:15:28.75 +tdI/ffv0.net
>>216
であれば余計に1つのprintで処理する内容じゃないから
違う形の抽象化を考えたほうがいいよ
どういう形の抽象化がいいかは将来的な変更の可能性や
コンフィグ可能にしておく要素によって変わってくる
219:デフォルトの名無しさん
24/10/19 11:24:28.68 XsGIQo9N0.net
いや、同一内容を2箇所に出力できれば片付く問題なんよ
220:デフォルトの名無しさん
24/10/19 11:30:30.87 +tdI/ffv0.net
>>216
経過情報や所要時間はこれだけでしたみたいな出力は一般的にはログって言うんだよ
221:デフォルトの名無しさん
24/10/19 11:32:49.65 +tdI/ffv0.net
>>219
printで2箇所に出力したいなら>>215に書いてるように
簡単にできるんだからそうすればいいんじゃない?
いい設計ではないけどね
222:デフォルトの名無しさん
24/10/19 11:35:48.54 XsGIQo9N0.net
logは記録に残すもので、画面にだけ表示して消えていいものはlogとは言わない
用語の定義はどうでもいいんだよ
こういう機能があると便利という提案に対して、
それはこの機能でカバーできるから不要であると反論するならば、
全てのケースでカバー可能という悪魔の証明に挑むことになる
代替の方法はあまり良くなくて、提案どおりが最適なんだから、
反論の間違いを認めないと何も進まない
223:デフォルトの名無しさん
24/10/19 11:40:20.05 3bJ6rPck0.net
また時刻の頭に0が入っていないとかいう馬鹿と同じ馬鹿か
224:デフォルトの名無しさん
24/10/19 12:10:24.78 3T8uATjna.net
>>219
>>215 嫁
225:デフォルトの名無しさん
24/10/19 12:13:44.20 RjXmMaIpd.net
teeは全てのケースでカバー可能
226:デフォルトの名無しさん
24/10/19 13:21:31.18 brAMeERq0.net
あるソフトウェア会社にテスターとして入ったが、
メカ音痴、通信音痴の詐欺人材である。
仕事をやったフリをするのが難しいので、
バグを発見した際はすぐに報告せず、
ストックしておいて小出しに報告するやり方でしのいだ。
なにか問題が発生した際は、
知らない、オレじゃない、アイツがやった、もう済んだこと
を貫徹する現場猫を
227:デフォルトの名無しさん
24/10/19 13:34:16.86 7nKsGerl0.net
オアシス運動w
228:デフォルトの名無しさん
24/10/19 14:24:41.30 5nOU6ym70.net
バカは何やらせてもダメなんだな
229:デフォルトの名無しさん
24/10/19 17:21:49.93 57zOCZIx0.net
だれか教えて。
実行環境はJupyterLab Python3.6.3
今までしっかり動いていたが今朝になって急にPyiCloudがエラーを吐くように。
PyiCloudFailedLoginException: ('Invalid email/password combination.', PyiCloudAPIResponseException('Service Temporarily Unavailable (503)'))
ちなみに同じIDとパスでiPhoneやPCのWebからはログインが出来てる。
これうちだけの環境で起きてるだけかな?
230:デフォルトの名無しさん
24/10/19 20:22:07.21 mCfaJTvfa.net
>>229
>>229 嫁
231:デフォルトの名無しさん
24/10/20 02:09:35.96 FYgfn/lt0.net
絵に描いたような老害がおるな
232:デフォルトの名無しさん (ワッチョイ c697-6Oo2)
24/10/20 18:07:25.12 57kWXpit0.net
>>230
>>230
レスの意味がわからん。
一応、昨日の遅くからようやく開発元が認識をしたらしい。
どうもアップル側のセキュリティの方法が変わったとのこと、しばらく対応まちだな。
233:デフォルトの名無しさん
24/10/20 22:57:52.56 XWbRdnBX0.net
>>229
seleniumのwebdriver-managerもそうだけど、こう言う「間を介する」モジュールって片方のアップデート次第で不都合起きるからめんどくさいよね。
234:デフォルトの名無しさん
24/10/20 23:03:29.57 deI+4SvX0.net
windows = gw.getAllTitles() ←windowsはlist型と表示されてる
for window in windows: ←windowsはリスト型なのに、windowがAnyになる
これなんでAnyになるのか原因わかる人いますか?もう全然分からない・・・
ただリストの中をwindowで回したいだけなのに・・・
235:デフォルトの名無しさん
24/10/20 23:38:07.71 UoXQ+/wnH.net
>>234
何を悩んでるん?
型を気にしなくていいのがPythonを使う最大の強みじゃん
236:デフォルトの名無しさん
24/10/21 03:31:23.77 1Z2dcRpO0.net
>>234
Listの各要素はなんでも持てる型だからAny
>Any
>制約のない型であることを示す特別な型です
実際にリストに入ってるデータの型名併記
for window in windows:
print(type(window), window)
237:デフォルトの名無しさん
24/10/21 09:33:53.50 D69IqQRS0.net
>>233
どうもサードパーティらiCloudに接続する方法を根本から変えているっぽくて、かなり大幅な改変が必要とのこと。 正規のライブラリを使っていないアプリケーションでは大規模に影響がでているはず。
とはいえ、もうRuby界隈の方は対応終わってるらしく、方法も公開されているから、Pythonの方も数日の辛抱という感じなのでは?と思っている。
238:デフォルトの名無しさん
24/10/21 11:10:24.41 cZ+nN4qG0.net
Appleが許可してない不正な方法でアクセスしてるんだから何が起きても文句は言えんよね
HTTP 503が返されてるのに'Invalid email/password combination.'扱いにしちゃう雑な作りのほうが気になる
239:デフォルトの名無しさん
24/10/21 14:35:51.14 lFfmrxXT0.net
icloudってiPhoneなくてもログインできないと詰むからガバガバなんだよね
今時あんなガバガバそうそうないぞ
240:デフォルトの名無しさん
24/10/23 14:24:57.07 CetgrrtLa.net
governance不合格
241:デフォルトの名無しさん
24/10/30 00:00:42.89 N5ISBsY60.net
pythonで不思議なのがif文
例えばこんな感じ。
name = input()
print("Hello " + name)
if name == "python":
print("Welcome")
else:
print("Goodbye")
このケースは二つだけのケースだが
三つのケースはelse:を追加
これって例えば誕生日きくときに
ifで1月
elifで2-11月
else12月。
これであってる?
なんかかなり面倒だからなんとかしてほしいw
242:デフォルトの名無しさん
24/10/30 00:03:09.96 N5ISBsY60.net
あ、そっか。
まとめればいいだけだわ。
解決しましたw
2-11をまとめるとスッキリするねw
243:デフォルトの名無しさん
24/10/30 00:27:22.21 N5ISBsY60.net
マッチつかおっと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:デフォルトの名無しさん
24/10/30 00:28:36.78 N5ISBsY60.net
上記訂正
# 分割する数字
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:デフォルトの名無しさん
24/10/30 00:31:39.11 N5ISBsY60.net
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
246:デフォルトの名無しさん
24/10/30 00:32:21.56 E1mCSTtf0.net
fall-throughしないから6の倍数のやつがダメだろ
247:デフォルトの名無しさん
24/10/30 00:35:14.70 odUE1a8w0.net
if elif elseを置き換えるだけではmatchにする有り難みがない
もっとアクロバットなことができるけど、
そんなことをしたらpythonでなくなる気がする
248:デフォルトの名無しさん
24/10/30 00:35:14.71 N5ISBsY60.net
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("無効な日です。")
249:デフォルトの名無しさん
24/10/30 00:36:51.27 E1mCSTtf0.net
どれもdictionaryにまとめるパターン
250:デフォルトの名無しさん (ワッチョイ fb16-1Wnr)
24/10/30 00:43:34.90 N5ISBsY60.net
fruit = "apple"
match fruit:
case "apple" | "banana" | "cherry":
print("これは一般的な果物です。")
case "kiwi" | "mango":
print("これはトロピカルフルーツです。")
case _:
print("これは知らない果物です。")
複数のマッチ。
251:デフォルトの名無しさん (JP 0Heb-k86b)
24/10/30 00:46:48.67 3XYQLByjH.net
アホだ
他言語ではswitchはバグの元って忌み嫌われてるのに
今になってわざわざ導入したPython陣営の愚かさよ
252:デフォルトの名無しさん (ワッチョイ fb16-1Wnr)
24/10/30 00:49:17.11 N5ISBsY60.net
>>251
match 文はどう?
使い勝手がよいんだがw
253:デフォルトの名無しさん
24/10/30 00:54:05.39 E1mCSTtf0.net
>>250
キウイはトロピカルフルーツではないです
バナナはトロピカルフルーツです
254:デフォルトの名無しさん
24/10/30 01:03:26.08 3XYQLByjH.net
>>252
breakを書かないのが気持ち悪い
やはり条件分岐はifに勝るものなし
255:デフォルトの名無しさん
24/10/30 01:07:30.76 odUE1a8w0.net
switchにbreakがあるのが自然な感覚なら、if文もbreak要るやろ
アセンブラと一対一対応なただのジャンプ命令を高級言語にしただけなんだから
256:デフォルトの名無しさん
24/10/30 01:23:42.78 bt1w6ELFH.net
>>255
多分に感覚的なものだけどね
ifはelseというキーワードにより分岐から分岐に処理が流れることはないとはっきりわかるからbreakは不要
switchはそれがわからないからbreakがないと気持ち悪い
>>250で言えば、2個めのcaseからはelse caseとする設計なら安心できる
257:デフォルトの名無しさん
24/10/30 07:50:49.92 GeZTCF7U0.net
この場合は、と書いてるのに、それ以外の場合に処理が突っ込んでいくのが異常
自然言語として読んでそんな解釈する奴は皆無
C言語のswitchは実質goto文で、忌避すべき悪しき構造
258:デフォルトの名無しさん
24/10/30 08:34:25.79 bt1w6ELFH.net
>>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:デフォルトの名無しさん
24/10/30 13:37:25.39 N5ISBsY60.net
100さんへ
ALL PYTHONDでもよくね?
260:デフォルトの名無しさん
24/10/30 13:40:41.42 N5ISBsY60.net
PHPでPYTHONやると語尾が気持ち悪くなるW
だっていつもコロンだか、セミコロンつかうじゃん?phpって
だから最初わしも慣れるのに苦労したW
261:デフォルトの名無しさん
24/10/30 13:56:31.26 DhwGc29Ga.net
HDLだとcaseで充分なんだよな
262:デフォルトの名無しさん
24/10/30 14:02:40.72 DhwGc29Ga.net
>>258
アホはこれみてpythonは関数型言語(キリっ)とか言い出しそう
263:デフォルトの名無しさん
24/11/02 13:35:04.63 cytI8wNj0.net
同じ階層のlib.pyにdef func()があって、main.pyから
import lib
だけでfunc()使えなかったっけ
lib.func() なら使えるし、
from lib import func でも使えるけど、
import lib だけでも使えてるケースがあるのに違いが判らん
264:デフォルトの名無しさん
24/11/02 13:56:04.51 QT6/c5p90.net
使えるわけねーだろドキュメントくらい読め
265:デフォルトの名無しさん
24/11/02 14:01:43.84 cytI8wNj0.net
サンプルを書いてみると使えないんだけど、
実際に動いてるコードでは使えてるとしか思えないんだよな
266:デフォルトの名無しさん
24/11/02 15:09:33.21 +GKIPsT4a.net
from lib import *
267:デフォルトの名無しさん
24/11/02 15:24:56.26 +GKIPsT4a.net
lib.py の最後に
__builtins__['func'] = func
でいけるかな
268:デフォルトの名無しさん
24/11/02 15:25:32.30 +GKIPsT4a.net
lib.py の最後に
__builtins__['func'] = func
でいけるかな
269:デフォルトの名無しさん
24/11/02 16:45:29.14 TIz0sdCnd.net
黒魔術禁止
270:デフォルトの名無しさん (ワッチョイ 71b8-jwtj)
24/11/03 05:30:42.12 3rcZcbik0.net
>>265
じゃあそのコード出してみればいいのに
271:デフォルトの名無しさん
24/11/03 09:54:14.13 3P3Nu4GE0.net
結局、動いてはいなかった
ImportError: cannot import name 'func' from 'lib'
というエラーにはならずに、とりあえず走り始める
で、funcを呼んだタイミングでエラーになるけど、
concurrent.futures.ThreadPoolExecutor.submit の先にあるので、
エラー表示は出ないし処理も止まらないだけだった
何なら、import lib すらなくても同じ動作になる
272:デフォルトの名無しさん
24/11/03 14:00:30.85 3P3Nu4GE0.net
エラー出ない問題は
future = concurrent.futures.ThreadPoolExecutor.submit(func)
future.result()
こんな風にすると解決する
concurrent.futures.ThreadPoolExecutor.submit(func).result()
でもok
273:デフォルトの名無しさん
24/11/03 16:59:41.21 oTBqZLJpM.net
なんなのこの日記
274:デフォルトの名無しさん
24/11/03 17:08:44.45 3P3Nu4GE0.net
但し、result()を評価すると完了を待つので同期処理になってしまう
多重処理で高速化できないので、デバッグが終わったら外す
275:デフォルトの名無しさん
24/11/03 17:09:12.43 L07G869G0.net
言っても無駄だから「集団無視」するのがいい
276:デフォルトの名無しさん
24/11/03 17:43:09.87 lgsiIHy30.net
>>273
この福祉系キチガイのせいでしょ>>87
277:デフォルトの名無しさん
24/11/03 18:43:10.23 aWrgo6rr0.net
五十四の日記
278:デフォルトの名無しさん
24/11/03 19:21:34.34 4g0SxEOpd.net
過疎ってるね
279:デフォルトの名無しさん
24/11/03 20:18:30.62 rroxZfopd.net
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()
280:デフォルトの名無しさん
24/11/03 22:36:57.37 m0ql+Kks0.net
続 五十四の日記
281:デフォルトの名無しさん (ワッチョイ 8554-u42f)
24/11/03 23:08:48.69 3P3Nu4GE0.net
過疎るのは別に問題じゃないけど、課題はS/N比だな
何故内容のないことを書き込みたがるのか
282:デフォルトの名無しさん (ワッチョイ 9e83-aO9f)
24/11/03 23:24:53.04 upFikudE0.net
おまいう
283:デフォルトの名無しさん
24/11/03 23:42:27.04 Hsbf+jvP0.net
福祉施設からきた知的障害者が荒らしてるよな>>87
284:デフォルトの名無しさん
24/11/03 23:43:00.68 Hsbf+jvP0.net
>>279
失せろ知的障害朝鮮人
285:デフォルトの名無しさん
24/11/07 22:30:21.43 0vDQcGjY0.net
pythonってなんで語尾に;がないの?
この語尾が気持ち悪いw
あとif文やelifが:だけ:があるのが慣れないなw
286:デフォルトの名無しさん
24/11/08 00:05:39.08 te03q3B3d.net
>>285
お前みたいな馬鹿がいるこの世の中が気持ち悪い
お前みたいな馬鹿が生きていられることになれないなw
287:デフォルトの名無しさん
24/11/08 12:27:31.09 F9yTI1pla.net
pythonは文末に;憑いてても動く
288:デフォルトの名無しさん
24/11/08 18:53:48.94 y8v+DuF60.net
>>285
改行コードを終わりと見做すプログラミング言語だから
289:デフォルトの名無しさん
24/11/08 19:07:12.95 cLnY3Hqj0.net
改行に意味があるというよりは、ブロック構造をインデント任せにしてるからだけど
{と}でブロックが明示されてたらエディタの機能でブロックの先頭と末尾を行き来できるけど、
python専用エディタだとそんなことできたりする?
インデント深いと読めなさすぎて、あの手この手で浅くする
290:デフォルトの名無しさん
24/11/08 19:09:12.46 y8v+DuF60.net
>>289
初心者にそんな説明をするのは悪手
291:デフォルトの名無しさん
24/11/08 19:38:39.84 BBiCQq+eH.net
>>289
できないと思うけど
そもそもブロック単位の移動という操作が開発で必要とは思えない
292:デフォルトの名無しさん
24/11/08 19:41:06.28 G9PsHqcG0.net
>>285
別に付けてもいいぞ
何なら一行に複数の文も書ける
293:デフォルトの名無しさん
24/11/08 19:56:04.57 y8v+DuF60.net
>>292
Pythonの原作者の悪趣味を勧めるなw
294:デフォルトの名無しさん
24/11/08 19:58:22.87 y8v+DuF60.net
>>292
意味なく付けていると可読性が下がる
295:デフォルトの名無しさん
24/11/08 20:28:10.47 c7CpRr710.net
>>288
なんかメインフレーム臭さが漂ってんだよなあ
296:デフォルトの名無しさん (ワッチョイ 75cf-kuJi)
24/11/08 22:56:15.48 U1OZc4Nd0.net
>>289
vimはできるよ
Pythonでパッと見てネスト構造が分からないようなコードは問題がある気がするがブロック単位と移動や編集が便利なのは間違いない
297:デフォルトの名無しさん
24/11/09 01:03:02.37 6W4F7+P40.net
>>295
セミコロンを付けない言語もそれなりにあるし、Pythonだけがそうというわけではない
最近流行りのだとGoもそう
298:デフォルトの名無しさん
24/11/09 11:11:55.78 6RYR080/0.net
>>289
改行を文デリミタにするのとブロックの表し方は全然関係ないだろ。
シェルスクリプトとか見てみ。
299:デフォルトの名無しさん (ワッチョイ 926b-4b4N)
24/11/09 11:58:53.83 wO7HvhhQ0.net
luaも無視してくれるね;
300:デフォルトの名無しさん
24/11/09 14:29:53.24 B62lCCpIa.net
xxxxxxxxxxxx
301:デフォルトの名無しさん
24/11/09 15:56:26.85 uvbykfPp0.net
JavaScriptみたいに自明な場合はセミコロンを挿入するって風にすればいいのにな
そうすればワンライナーとの相性もよい
302:デフォルトの名無しさん
24/11/09 16:57:23.68 5wGLeQz90.net
そうするとめちゃくちゃなインデントするやつが絶対でてくるからな
303:デフォルトの名無しさん
24/11/09 17:24:04.02 LlsVFZwkd.net
vs codeで書いてるけど
インデントしてんのにインデントおかしいぞ!って怒ってくる
304:デフォルトの名無しさん
24/11/09 19:42:57.03 b5zF/lUM0.net
Pythonを使うには
空白文字が判別できるグリフになってるフォントが必要
305:デフォルトの名無しさん
24/11/09 21:20:12.17 SkJltVwKd.net
>>304
このスレってこういう馬鹿ばっかだな
306:デフォルトの名無しさん
24/11/09 22:08:58.33 sXoCSO6d0.net
>>305
お前みたいなのがこのスレを破壊したって
自覚持ってくれ
307:デフォルトの名無しさん
24/11/10 00:52:09.53 H/zpgg/Vd.net
>>306
お前みたいに嘘を撒き散らす馬鹿がいるからだろ
308:デフォルトの名無しさん
24/11/10 02:54:10.37 NcxfIIMm0.net
>>303
タブと半角スペースが混じっているだけじゃないのか?
309:デフォルトの名無しさん
24/11/10 07:47:13.73 dkv1a77w0.net
フォントでなくエディター側でも解決できる
VS Codeだとタブ文字やスペースを見やすくする設定があるはず
全角スペースはフォント側で可視化されてるものを使うと便利
310:デフォルトの名無しさん
24/11/10 09:41:38.14 Mocr1U5E0.net
全角スペースをstrip()が削除するんだから、それがスペースだということは知ってるんだよな
なんでインデントに使ったらいけないのか謎
311:デフォルトの名無しさん (ワッチョイ 0530-yjVJ)
24/11/10 10:07:01.33 3craHbO10.net
個数で判定するか幅(それも1:2か3:5かそれ以外か)でか、で自転車置き場の屋根より長い議論になることが見えてるから
312:デフォルトの名無しさん (ワッチョイ ad54-CU01)
24/11/10 10:30:19.57 Mocr1U5E0.net
個数でも幅でもなく、組み合わせ
TABとスペースを混ぜた時と同じ挙動
313:デフォルトの名無しさん
24/11/11 06:06:38.40 mTrGHtv9a.net
全角SPはTABでも半角SPでもない
314:デフォルトの名無しさん
24/11/11 08:13:32.49 XjDPgffN0.net
C言語のブロック記号{}に全角空白もアリにしてと言ってるようなもんだな
日本語の全角空白含めても日本人の一部にしかメリット無いです
315:デフォルトの名無しさん
24/11/11 14:38:02.82 tRsIxhTt0.net
インデントはタブのみ許可
タブはインデントのみ許可
みたいにガチガチにしてしまえばいいのに
そこだけは非常に残念
316:デフォルトの名無しさん
24/11/11 16:41:38.17 RisB9sc6d.net
タブの存在しない処理系とかあるんじゃないの
知らんけど
317:デフォルトの名無しさん (ワッチョイ 759b-NX7e)
24/11/11 16:45:22.89 XlNa4SSE0.net
URLリンク(www.openwork.jp)
318:デフォルトの名無しさん
24/11/11 17:04:38.11 7xH2ULqH0.net
TAB使うなって言うからスペースでインデントしてるけど、
エディタがデデントに対応してなくて無駄に大変
319:デフォルトの名無しさん
24/11/12 09:00:04.47 MVEhN2a60.net
なぜ対応のエディタを使わないのか
VSコードでいいだろ
320:デフォルトの名無しさん
24/11/12 20:00:16.97 v7TGFNyn0.net
>>313
スペースのことを「SP」と書いている人を初めて見たわ
321:デフォルトの名無しさん (ワッチョイ e38e-R46Z)
24/11/12 20:07:54.86 v7TGFNyn0.net
Pythonが誕生したころは、まだ1バイト使うか4バイトも使うか記憶装置の容量では悩むレベルだったから、タブを使うか半角スペースを複数個使うかで
322:デフォルトの名無しさん (ワッチョイ e38e-R46Z)
24/11/12 20:08:36.68 v7TGFNyn0.net
人によって意見がわれていた
323:デフォルトの名無しさん (ワッチョイ 4b8e-DV/N)
24/11/12 20:25:38.59 J1Sn69yS0.net
>>320
お前が何も知らない馬鹿なだけかと
324:デフォルトの名無しさん
24/11/12 21:12:33.59 ZcEeG3hE0.net
半角SPw
325:デフォルトの名無しさん
24/11/12 21:16:46.59 nvqj0JfO0.net
日本人の一部にしかメリットなくても、残りの誰にもデメリット無いなら、
それはメリットしか無いのでは
326:デフォルトの名無しさん
24/11/13 02:13:50.19 lxEAsUm8a.net
デメリットだらけ
327:デフォルトの名無しさん
24/11/14 19:11:38.32 g26vUJe4F.net
ここで質問しているやつはPythonの資格対策本でも買って勉強しろ
328:デフォルトの名無しさん
24/11/15 10:25:38.19 G6HDJDaQ0.net
uvはactivate必要なのか
pyenvとpoetryでいいわ
329:デフォルトの名無しさん
24/11/15 17:45:24.05 Jz1yaJFv0.net
>>328
プロアクティブが必要
330:デフォルトの名無しさん
24/11/16 19:00:54.48 ILOr4dg40.net
既存のファイルを'w'でopenする時に、他のプロセスがアクセスしているとOSErrorになることがある
ならないこともある
ファイルが大きいとなるっぽい
なんとか強引に開けないものか
331:デフォルトの名無しさん (ワッチョイ 1b5c-Bg8t)
24/11/16 21:38:03.01 JvbcygrM0.net
width同じでheightバラバラのjpg画像が大量にあるんだがこれをpdfに上下に敷き詰めるにはどうしたらいいの?
332:デフォルトの名無しさん
24/11/16 23:24:04.57 3kqPnMcZ0.net
>>330
windowsならWin32 APIでsharing modeを指定
>>331
bin packing problemでググれ
333:デフォルトの名無しさん
24/11/17 11:06:04.94 tn0ahmRja.net
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']
が欲しい
334:デフォルトの名無しさん
24/11/17 12:17:30.72 EcgVWlk90.net
>>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]')
335:デフォルトの名無しさん
24/11/17 12:24:22.30 33eX3D3e0.net
関係ないけど、excelで日毎のデータが何年分もあって、
グラフの横軸を年月で表示しようとしても微妙にうまく行かない
336:デフォルトの名無しさん
24/11/17 13:42:46.70 tn0ahmRja.net
>>334
ありがとう
print(np.arange(np.datetime64('2024-11-01'), np.datetime64('2025-05-01'), np.timedelta64(1, 'M')))
でエラーだったからどうしたもんかと
337:デフォルトの名無しさん
24/11/17 14:01:43.54 tn0ahmRja.net
print(np.arange(np.datetime64('2024-11-01'), np.datetime64('2025-05-01'), dtype='datetime64[M]'))
これでもうまくいったわ
338:デフォルトの名無しさん
24/11/17 14:12:53.82 ENY5bRjq0.net
>>332
回答ありがたいんだが番号振られてあるから順番に上から下に敷き詰めたいんだが
339:
24/11/17 17:22:39.74 z11Q5dQO0.net
下記の内容で Microsoft Copilot に聞いてみた で教えてくれる
------
pythonでwidth同じでheightバラバラのjpg画像が大量にあるんだがこれをpdfに上下に敷き詰めるにはどうしたらいいの?
番号振られてあるから順番に上から下に敷き詰めたいんだが
340:デフォルトの名無しさん
24/11/17 17:33:31.08 33eX3D3e0.net
pdfの高さが決まってて、そこに入るだけ順番に入れてくだけの話?
if トータル高さ > pdfの高さ:
次のページに
というだけのアルゴリズムでいけるのでは
341:
24/11/17 17:40:21.98 z11Q5dQO0.net
聞いてみた結果
--from PIL import Image
from reportlab.lib.pagesizes import portrait
from reportlab.pdfgen import canvas
import os
# 画像が保存されているディレクトリのパス
image_dir = 'my_folder'
output_pdf = 'output.pdf'
# 画像ファイルのリストを取得し、ファイル名順にソート
image_files = sorted([f for f in os.listdir(image_dir) if f.endswith('.jpg')])
# 画像の幅を取得(すべての画像が同じ幅である前提)
first_image = Image.open(os.path.join(image_dir, image_files[0]))
width, _ = first_image.size
# PDFキャンバスの作成
c = canvas.Canvas(output_pdf)
# 画像をPDFに追加
for image_file in image_files:
image_path = os.path.join(image_dir, image_file)
img = Image.open(image_path)
img_width, img_height = img.size
if img_width != width:
raise ValueError(f"Image {image_file} has a different width: {img_width}")
# ページサイズを画像の縦サイズに設定し、新しいページを追加
c.setPageSize((width, img_height))
c.showPage()
# 画像をPDFに描画
c.drawImage(image_path, 0, 0, width=width, height=img_height)
# PDFの保存
c.save()
342:
24/11/17 17:51:48.14 z11Q5dQO0.net
--tabがわからん
# 画像をPDFに追加
for image_file in image_files:
image_path = os.path.join(image_dir, image_file)
img = Image.open(image_path)
img_width, img_height = img.size
if img_width != width:
raise ValueError(f"Image {image_file} has a different width: {img_width}")
# ページサイズを画像の縦サイズに設定し、新しいページを追加
c.setPageSize((width, img_height))
c.showPage()
# 画像をPDFに描画
c.drawImage(image_path, 0, 0, width=width, height=img_height)
# PDFの保存
c.save()
343:デフォルトの名無しさん
24/11/17 17:56:32.18 33eX3D3e0.net
datにはインデントのスペースも書かれてるんだけどな
表示のレンダリングで落としちゃうだけなので、
ブラウザに先頭のスペースを無視しないモードがあれば済むのに
344:デフォルトの名無しさん
24/11/18 07:06:37.63 INV+aJIp0.net
【ナゾロジー】サイコパスは「痛みを伴う失敗」から学習できない! [すらいむ★]
URLリンク(itest.5ch.net)
345:デフォルトの名無しさん
24/11/18 12:58:55.73 0TuJxtFYa.net
>>343
専ブラ
346:デフォルトの名無しさん
24/11/22 01:57:46.65 icDgwF6r0.net
某キャリア回線アプリのON、OFFをAPI送信で叩きたいけど
POSTMANでは正常に叩けてアプリに反映されれるけど
python経由だとレスポンスが正常だけどなぜかアプリ側に反映されない。
POSTMANと全く同じヘッダーつけてもダメだった。
わかる方いるかしら?