20/12/28(月)21:13:18 Python... のスレッド詳細
削除依頼やバグ報告は メールフォーム にお願いします。個人情報、名誉毀損、侵害等については積極的に削除しますので、 メールフォーム より該当URLをご連絡いただけると助かります。
画像ファイル名:1609157598332.png 20/12/28(月)21:13:18 No.759581325
Python修行中だけどコード書いたからレビューしてくだち 仕事で使うから変態的な書き方じゃなくて王道な書き方が知りたい 問題 https://paiza.jp/works/mondai/skillcheck_sample/long-table?language_uid=python3 回答コード https://paiza.io/projects/aXiWgp8oguI00rBajw9jKA
1 20/12/28(月)21:16:02 No.759582550
Python知らないけど==Falseって書き方はキモくない?
2 20/12/28(月)21:17:32 No.759583260
意味の無い変数名はやめるんだ
3 20/12/28(月)21:18:01 No.759583477
おっぱいそん
4 20/12/28(月)21:18:56 No.759583936
ログインしないと問題見られない
5 20/12/28(月)21:19:12 No.759584049
サブウェイみたいなロゴしやがって
6 20/12/28(月)21:19:18 No.759584091
>意味の無い変数名はやめるんだ n,m,a_i,b_iは問題文と対応が取れるように名前付けしてます 他の変数名は適当です
7 20/12/28(月)21:21:14 No.759584940
>Python知らないけど==Falseって書き方はキモくない? Pythonに限らないけどboolの書き方はいつもどうするか迷う 冗長でもTrue/Falseと比較するように書いた方がいい気もしている
8 20/12/28(月)21:23:07 No.759585809
>Python知らないけど==Falseって書き方はキモくない? if (all(not table[idx] for idx in idxlist)): # 全部の席が空いてるかチェック に書き換えてみた
9 20/12/28(月)21:24:31 No.759586465
>if (all(not table[idx] for idx in idxlist)): # 全部の席が空いてるかチェック >に書き換えてみた 読み辛くなってない?
10 20/12/28(月)21:24:57 No.759586701
まず王道な書き方というのは用途毎に異なるからなんの用途の書き方を学びたいのか考えよう
11 20/12/28(月)21:25:04 No.759586753
>読み辛くなってない? なんかいい書き方あったらおせーてよ
12 20/12/28(月)21:25:22 No.759586905
詰まってると読みにくいよね あと読んでないけどコメントアウトが無いなら足してもらえると助かる
13 20/12/28(月)21:25:51 No.759587118
Pythonって誰が書いても同じになるってのが売りじゃなかったのか
14 20/12/28(月)21:26:09 No.759587229
>>読み辛くなってない? >なんかいい書き方あったらおせーてよ コーディングルールはPEP8に従えとPython財団様が仰っている
15 20/12/28(月)21:27:22 No.759587736
書き込みをした人によって削除されました
16 20/12/28(月)21:27:39 No.759587856
厳格者なのでPEP8に従っていないだけで読む気をなくした
17 20/12/28(月)21:27:57 No.759588016
>Pythonって誰が書いても同じになるってのが売りじゃなかったのか Goとかじゃね?
18 20/12/28(月)21:28:03 No.759588067
lintツール入れろ
19 20/12/28(月)21:28:05 No.759588075
flake8とかにかけるとPEP8に違反してるところを指摘してくれるよ
20 20/12/28(月)21:28:36 No.759588350
>Pythonって誰が書いても同じになるってのが売りじゃなかったのか それはPythonを広めたい奴のついた嘘だ
21 20/12/28(月)21:29:01 No.759588532
>flake8とかにかけるとPEP8に違反してるところを指摘してくれるよ ありがとう 使ってみるよ
22 20/12/28(月)21:30:55 No.759589388
>Pythonって誰が書いても同じになるってのが売りじゃなかったのか しらんけど今の言語でそんなことになることってあるの? 昔はCOBOLがそう言われてたけど
23 20/12/28(月)21:30:58 No.759589400
グーグル先生のスタイルガイドを丸パクリすれば誰も文句は言えまい https://google.github.io/styleguide/pyguide.html
24 20/12/28(月)21:31:37 No.759589678
>グーグル先生のスタイルガイドを丸パクリすれば誰も文句は言えまい >https://google.github.io/styleguide/pyguide.html >厳格者なのでPEP8に従っていないだけで読む気をなくした
25 20/12/28(月)21:32:08 No.759589891
あとPythonの場合エントリポイントは if __name__ == '__main__': test6() みたいにするのが主流かも
26 20/12/28(月)21:32:17 No.759589969
スタイルとか以外で何かあれば頼む
27 20/12/28(月)21:32:48 No.759590177
グーグル先生の内部では例外処理禁止って聞いて震え上がってる
28 20/12/28(月)21:33:28 No.759590441
> # coding: utf-8 これはPython2の流儀 3では使わない > if(idx >= size): 括弧いらない > table = [False] * n [False for _ in range(n)] にすべき 同じオブジェクトになる
29 20/12/28(月)21:34:46 No.759591051
paizaとか競プロやるんだったら変態的書き方でいいと思う アルゴリズムの勉強にはいいけど書き方学ぶ用途には向かない リーダブルなコードとか勉強したいならオープンソース読んだり弄ったりして経験した方がいいよ
30 20/12/28(月)21:35:35 No.759591476
一人でやってるとつい解けりゃいいやでコードスタイルおざなりになりがち 自分も気をつけよう
31 20/12/28(月)21:35:35 No.759591478
競技プログラミングじゃなくて仕事のこと考えるならなんかRoundTableみたいなクラスを座席数でインスタンス化してputCustomers(a,b)みたいなメソッド呼ぶようにするとかなんかそういうやつ
32 20/12/28(月)21:35:38 No.759591505
>[False for _ in range(n)] にすべき これはなんで?
33 20/12/28(月)21:35:57 No.759591636
paizaってコード公開していいんだっけ?
34 20/12/28(月)21:36:33 No.759591887
>paizaってコード公開していいんだっけ? これはサンプル問題だからOK ランク判定問題はNG
35 20/12/28(月)21:38:59 No.759592915
>>[False for _ in range(n)] にすべき >これはなんで? [False] * nがまずもって変態的すぎる、返り値がどんな型になるかPython博士しかわからない 内包表記のほうがメジャーで伝わりやすい
36 20/12/28(月)21:39:39 No.759593252
>>[False for _ in range(n)] にすべき >これはなんで? 横からだけど多次元にした時にも適応できるようにかな? 競プロの範囲なら、すべきとは思わないけど
37 20/12/28(月)21:39:49 No.759593325
>[False] * nがまずもって変態的すぎる、返り値がどんな型になるかPython博士しかわからない >内包表記のほうがメジャーで伝わりやすい なるほど これは変態的な方の書き方だったかありがとう
38 20/12/28(月)21:40:46 No.759593798
俺もやるぜ!って思ったけど普段使ってる言語が無かったので辞めた
39 20/12/28(月)21:41:32 No.759594110
>俺もやるぜ!って思ったけど普段使ってる言語が無かったので辞めた 間接的にそんな言語やめちまえってことだと思う
40 20/12/28(月)21:41:43 No.759594209
>俺もやるぜ!って思ったけど普段使ってる言語が無かったので辞めた atcoderやろうぜ
41 20/12/28(月)21:42:06 No.759594381
[False] * nはC++のstd::coutの<<程度には変態的ではないと思うけどなぁ
42 20/12/28(月)21:43:03 No.759594800
俺はifの後ろをカッコで囲まないといけないという脅迫観念に囚われている者だ 自分でも理由がわからん
43 20/12/28(月)21:43:10 No.759594851
test6()の中でgetline_as_list呼んでるけど問題データ読み取りと問題ロジックの部分は分けたい
44 20/12/28(月)21:43:35 No.759595038
>俺はifの後ろをカッコで囲まないといけないという脅迫観念に囚われている者だ >自分でも理由がわからん C経験者は基本囲うと思う
45 20/12/28(月)21:44:18 No.759595389
>C経験者は基本囲うと思う ああー・・・
46 20/12/28(月)21:44:29 No.759595499
細かいルール気にするよりテストコード書け
47 20/12/28(月)21:44:33 No.759595522
[[False] * m] * nとかやっちゃって悲惨なことになりがちなので注意
48 20/12/28(月)21:44:54 No.759595697
自分もカッコは基本省略しないな 普段はRを使ってるのもあるけど
49 20/12/28(月)21:45:12 No.759595810
[]*n はバグの温床だから実用面からは嫌われてるけど たしかに競プロなら別に気にしなくてもいいかもしれん……
50 20/12/28(月)21:45:14 No.759595833
まずPEP8に準拠して欲しい
51 20/12/28(月)21:45:23 No.759595893
ifのあとはなんか括っちゃうけど 必要なければ括らない方がいいのだろうか
52 20/12/28(月)21:45:34 No.759595971
ふふふ…Cランク問題すらロクに解けませんよ私は
53 20/12/28(月)21:46:05 No.759596180
というか王道の書き方を学ぶのに競技プログラミングが適してるかというと...
54 20/12/28(月)21:46:28 No.759596309
>ふふふ…Cランク問題すらロクに解けませんよ私は その頃が一番楽しいから… 解法聞いても理解できなくなってからが修行の本番
55 20/12/28(月)21:46:41 No.759596401
>ifのあとはなんか括っちゃうけど >必要なければ括らない方がいいのだろうか 基本的には「必要がないからしない」っていう感じかな あったほうが見やすいと感じるならそれでもいい
56 20/12/28(月)21:46:58 No.759596524
>というか王道の書き方を学ぶのに競技プログラミングが適してるかというと... 特にやりたい題材がないからこれやってるんだけど何かいいのあるかな 仕事ではDjango使う予定です
57 20/12/28(月)21:47:32 No.759596742
>というか王道の書き方を学ぶのに競技プログラミングが適してるかというと... コードの最小文字数競ったりするしな…
58 20/12/28(月)21:47:58 No.759596937
>>というか王道の書き方を学ぶのに競技プログラミングが適してるかというと... >特にやりたい題材がないからこれやってるんだけど何かいいのあるかな >仕事ではDjango使う予定です ホームページとかサーバとか作ればいいと思うよ
59 20/12/28(月)21:48:02 No.759596966
paizaはギブアップした後に模範解答見れないから 勉強としては微妙な気がすると以前触ってて思った
60 20/12/28(月)21:48:22 No.759597110
意外と実用コードがネットに転がってないことにビビるよね
61 20/12/28(月)21:48:31 No.759597168
atcoder楽しいよ 水色なれないんですが...
62 20/12/28(月)21:49:05 No.759597369
コーディング規約なんてツールで自動化できるしプロジェクト入ればすぐ慣れるから気にしないでいいよ 問題は変数名の付け方やクラス設計の仕方だけどこれは何か作らないと身に付かない
63 20/12/28(月)21:49:06 No.759597376
競技プログラミングとして解かなければ練習にはいいのでは
64 20/12/28(月)21:50:22 No.759597845
>コードの最小文字数競ったりするしな… PHPのHello world!出力するやつ好き
65 20/12/28(月)21:50:48 No.759598013
>特にやりたい題材がないからこれやってるんだけど何かいいのあるかな >仕事ではDjango使う予定です botでも作るのはいかが?
66 20/12/28(月)21:50:50 No.759598031
問題見れないからわからんけどget_idx_listはmod使えばもっと簡潔に書けるのでは
67 20/12/28(月)21:52:04 No.759598461
pythonのlistってanyとかなかったっけ
68 20/12/28(月)21:53:03 No.759598861
datasをdataにして1文字効率化だ
69 20/12/28(月)21:53:19 No.759598952
splitStrじゃなくてdelimiterにして あとdatasは気持ち悪いからやめて
70 20/12/28(月)21:55:02 No.759599633
dataes
71 20/12/28(月)21:55:23 No.759599787
datas infos
72 20/12/28(月)21:55:46 No.759599940
>splitStrじゃなくてdelimiterにして >あとdatasは気持ち悪いからやめて # 1行読み込んで数字リストに変換する(区切り文字あり) def getline_as_list(delimiter:str=' ') -> List[int]: data = input().rstrip().split(delimiter) return [int(dt) for dt in data] こうかな そもそもdataって名前がアレだと思ってはいるが…
73 20/12/28(月)21:56:14 No.759600109
index indices
74 20/12/28(月)21:58:12 No.759600985
ちゃんとコードレビューしてるスレ初めて見た
75 20/12/28(月)21:58:57 No.759601272
dataじゃなくてinputとかでいいんじゃないの
76 20/12/28(月)21:59:03 No.759601302
マジでありがたいよコードレビューしてくれて 一人現場だから誰もしてくれない…
77 20/12/28(月)21:59:34 No.759601530
俺ならfieldsにする
78 20/12/28(月)21:59:49 No.759601625
ブートキャンプ的な講座無いのか
79 20/12/28(月)22:00:04 No.759601722
>特にやりたい題材がないからこれやってるんだけど何かいいのあるかな >仕事ではDjango使う予定です Udemyやれば? https://www.udemy.com/course/ds_for_python/ https://www.udemy.com/course/python-beginner/ このあたりで基礎知識つけて https://www.udemy.com/course/data-kouzou-coding-interview-test-beginner/ https://www.udemy.com/course/python-algo/ このあたりでアルゴリズム勉強して https://www.udemy.com/course/python-and-django-full-stack-web-developer-bootcamp https://www.udemy.com/course/building-movies-site-with-python-django-imdb-clone Djangoについてはこのあたりで勉強(英語読めないなら字幕をchromeで自動翻訳できるからそれ使う)
80 20/12/28(月)22:00:15 No.759601811
inputだとビルトインのinputが見えなくなる
81 20/12/28(月)22:00:15 No.759601814
>dataじゃなくてinputとかでいいんじゃないの pythonには組み込み関数でinputがあるんだ
82 20/12/28(月)22:00:45 No.759602020
蛇はboolは大文字なの?キモいな…
83 20/12/28(月)22:01:53 No.759602534
もしdatasのsがsplitとかそういう頭文字を取っているのではなく複数形のつもりなら datumの複数形がdataだってことを伝えておきたい
84 20/12/28(月)22:02:13 No.759602693
デリミタで分割して未加工のリストならtokensとかでいいんじゃない?
85 20/12/28(月)22:02:17 No.759602732
udemyっていつも割引してるの?
86 20/12/28(月)22:02:20 No.759602757
>Udemyやれば? ありがとうすげえ助かる
87 20/12/28(月)22:02:29 No.759602823
標準出力をとる関数とパースする関数は分けてある方が好き
88 20/12/28(月)22:03:17 No.759603267
>udemyっていつも割引してるの? 一応割引してない期間もあるけれど月の半分ほどは割引してる気がする……
89 20/12/28(月)22:03:49 No.759603508
>udemyっていつも割引してるの? 俺からは1円も割引されて見えない・・・ いつも割引してるイメージだったのに
90 20/12/28(月)22:04:15 No.759603720
udemyはよく割引してるからちょっと待てばお安く買えるっていうか割引した状態でしか買ったことない
91 20/12/28(月)22:04:22 No.759603768
コードレビューはPychamにしてもらえ!
92 20/12/28(月)22:05:08 No.759604143
>もしdatasのsがsplitとかそういう頭文字を取っているのではなく複数形のつもりなら >datumの複数形がdataだってことを伝えておきたい 知らなかったそんなの…
93 20/12/28(月)22:05:27 No.759604270
お仕事でresultって変数名見かけるとつまりお前は何の結果で何が入ってるんだってなる
94 20/12/28(月)22:06:01 No.759604499
n,m = [int(x) for x in input().split()] for _ in range(m): a,b = [int(x) for x in input().split()]
95 20/12/28(月)22:06:14 No.759604593
>お仕事でresultって変数名見かけるとつまりお前は何の結果で何が入ってるんだってなる res多用しててすまない…
96 20/12/28(月)22:06:23 No.759604666
>お仕事でresultって変数名見かけるとつまりお前は何の結果で何が入ってるんだってなる return result的な使い方しまくっててすまない…
97 20/12/28(月)22:06:59 No.759604910
>retやretval多用しててすまない…
98 20/12/28(月)22:07:02 No.759604931
datasってわりと使われがちだけどregistみたいに指摘され難い気がする
99 20/12/28(月)22:07:05 No.759604962
get_idx_listはmap使った方がちょいスッキリかける気がする
100 20/12/28(月)22:07:09 No.759604989
>お仕事でresultって変数名見かけるとつまりお前は何の結果で何が入ってるんだってなる 関数名から察してくれるかなって甘えてすまない…
101 20/12/28(月)22:07:18 No.759605050
関数で返すのは大体resにしてる ちょっと弄ってres2とかになってすまない…
102 20/12/28(月)22:07:22 No.759605081
>aやb多用しててすまない…
103 20/12/28(月)22:07:31 No.759605131
ちゃんとアルゴリズム勉強してて偉いな… いつもググりながら雰囲気で書いてるわ…
104 20/12/28(月)22:07:59 No.759605282
>ちゃんとアルゴリズム勉強してて偉いな… >いつもググりながら雰囲気で書いてるわ… そもそもアルゴリズムなんて必要なほど高尚な仕事が少ない…
105 20/12/28(月)22:08:09 No.759605336
処理内容がスクロールせずに一瞥できる程度の短い関数内ならdataだろうがresultだろうが困ることはないかな クソ長い関数でやるな
106 20/12/28(月)22:08:13 No.759605358
>お仕事でresultって変数名見かけるとつまりお前は何の結果で何が入ってるんだってなる 気をつけます…
107 20/12/28(月)22:08:19 No.759605386
短いforで回すときは頭文字にしてるわ…
108 20/12/28(月)22:08:21 No.759605402
プログラミングで初めに触るべき言語は英語とはよく言ったもの たまに変数名とかクラス名が書けない
109 20/12/28(月)22:08:29 No.759605455
書き込みをした人によって削除されました
110 20/12/28(月)22:09:01 No.759605702
返り値はまた型がわかるからゆるしてくれ
111 20/12/28(月)22:09:05 No.759605740
indexをidxで書くのはどっち付かずではiかindexでいいのでは知らんけど
112 20/12/28(月)22:09:20 No.759605868
競技にはなれてきたんだが開発経験ないから業務で書かれるような王道の書き方がわからん テストとかもわからんし…なんか良い教材ないかな
113 20/12/28(月)22:09:39 No.759606012
言語標準やシステムが提供する関数のような戻り値は返ってくる型が分かっているものとして受け取る変数をresとかにするな 面倒くさいし
114 20/12/28(月)22:10:11 No.759606217
関数名がgetほにゃららみたいな物は返す物はが決まってるからresかresult
115 20/12/28(月)22:10:22 No.759606297
実務で覚えるしかない どうせ場所によって大なり小なり流儀も違う
116 20/12/28(月)22:10:34 No.759606422
雰囲気で書けるから一時期コードレビューに丸投げ状態になってた 関数?ファイルで分ける?知らんがなでやってたね…
117 20/12/28(月)22:10:52 No.759606559
付けてるコメントを変数名で解るようにしてくれ
118 20/12/28(月)22:10:52 No.759606561
>競技にはなれてきたんだが開発経験ないから業務で書かれるような王道の書き方がわからん >テストとかもわからんし…なんか良い教材ないかな コーディングルールなんてプロジェクトによって違う なのでリーダブルコードあたり読んで可読性の高いコードの書き方勉強すればいいよ あとはcode completeあたりだけどこっちは分厚いのでたぶん挫折する
119 20/12/28(月)22:10:54 No.759606574
get_idx_listは [(startIdx + i) % size for i in range(number)] でいいんじゃないか
120 20/12/28(月)22:11:29 No.759606870
うるせぇresとかresultは言葉として便利なのが悪いんだよ!
121 20/12/28(月)22:12:18 No.759607299
def func1(): ~~ return a, b