虹裏img歴史資料館

ここでは虹裏imgのかなり古い過去ログを閲覧することができます。新しいログはこちらにあります

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

↑Top