Recommended
PDF
perfを使ったPostgreSQLの解析(前編)
PDF
PDF
[232] 성능어디까지쥐어짜봤니 송태웅
PDF
PPTX
Linux Performance Analysis in 15 minutes
PDF
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
PPTX
PDF
Ingressの概要とLoadBalancerとの比較
PPTX
深層学習の数理:カーネル法, スパース推定との接点
PDF
PPTX
PPTX
【宝くじ仮説】The Lottery Ticket Hypothesis: Finding Small, Trainable Neural Networks
PPTX
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
PPTX
Wiresharkの解析プラグインを作る ssmjp 201409
PDF
PDF
PDF
PPTX
【DL輪読会】DiffRF: Rendering-guided 3D Radiance Field Diffusion [N. Muller+ CVPR2...
PPTX
【修正版】Django + SQLAlchemy: シンプルWay
PPTX
開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython
PDF
PDF
PPTX
PDF
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
PDF
PDF
PDF
PDF
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
PDF
ソフトウェア工学2023 12 コードフォーマット
PDF
More Related Content
PDF
perfを使ったPostgreSQLの解析(前編)
PDF
PDF
[232] 성능어디까지쥐어짜봤니 송태웅
PDF
PPTX
Linux Performance Analysis in 15 minutes
PDF
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
PPTX
PDF
Ingressの概要とLoadBalancerとの比較
What's hot
PPTX
深層学習の数理:カーネル法, スパース推定との接点
PDF
PPTX
PPTX
【宝くじ仮説】The Lottery Ticket Hypothesis: Finding Small, Trainable Neural Networks
PPTX
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
PPTX
Wiresharkの解析プラグインを作る ssmjp 201409
PDF
PDF
PDF
PPTX
【DL輪読会】DiffRF: Rendering-guided 3D Radiance Field Diffusion [N. Muller+ CVPR2...
PPTX
【修正版】Django + SQLAlchemy: シンプルWay
PPTX
開発環境構築からはじめるPython VisualStudio Codeとpipenvで始めるpython
PDF
PDF
PPTX
PDF
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
PDF
PDF
PDF
PDF
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
Similar to PEP8を読んでみよう
PDF
ソフトウェア工学2023 12 コードフォーマット
PDF
PDF
PPTX
PDF
PDF
PDF
PPTX
PDF
クイズ・Python勝ち抜きバトル pycon jp_2017
PDF
Pythonはどうやってlen関数で長さを手にいれているの?
PDF
PDF
KEY
PDF
PPT
KEY
Hello World Python featuring GAE
PDF
PPTX
PDF
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
PPTX
More from 2bo 2bo
PDF
PDF
結婚式のエンドロールを「Pythonで」当日作った話
PDF
PPTX
PPTX
PDF
PDF
PDF
PDF
Raspberry p ionzabbixproxy
PDF
PDF
PDF
Cent osにpyhtonをインストールしてみよう
PEP8を読んでみよう 1. 2. 自己紹介
• 名前:坪内 由孝
@2box2bo
• ブログ:http://www.zumwalt.info/blog
• お仕事:地方えすあいあーのインフラ屋
• 所属:(☝ ՞ਊ ՞)☝ウィーンなユーザー会
Python東海
• 最近のあれ:榛名は大丈夫です!
(´;ω;`)ブワッ
4. 5. PEP とはなんぞ?
• 「Python Enhancement Proposal」の略
日本語訳すると「Python拡張提案」
• Python コミュニティに情報提供や新機能・
プロセス・環境等を説明するための設計書
• 技術的な仕様とその機能が必要な論理的な
理由を提供する
6. 7. PEP8 とはなんぞ?
• PEPの8番目
タイトルは「Style Guide for Python Code」
• 内容はコーディングスタイルのガイド
• 日々、時代にあった物に変わっていく
• 自分が所属している組織のコーディングスタイルと
競合したら自組織のコーディングスタイルを優先
8. 9. 10. 11. 12. インデント1
• 1 段階のインデントには 4 つのスペースを使う
• 継続行のインデントはその次のインデントと
区別できるようにする
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
13. 14. インデント3
• 複数行に渡るカッコの閉じカッコはその行の
最初の空白でない文字のインデントに える
• もしくは、その複数行の要素が開始した
インデントに える
my_list = [
1, 2, 3,
4, 5, 6,
]
result = some_function_that_takes_arguments(
'a', 'b', 'c',
'd', 'e', 'f',
)
15. インデント4
# NG 1
foo = long_function_name(var_one, var_two,
var_three, var_four)
!
# NG 2
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
「吊り下げインデント」を使う場合は
最初の行に引数を書いてはいけない
次のインデントと区別できるようにする
16. 17. 18. 19. 20. 21. 行の長さの最大値3
• 継続行を適切にインデントする
• 2項演算子で改行する場合は演算子の後ろで
改行するのが推奨
class Rectangle(Blob):
!
def __init__(self, width, height,
color='black', emphasis=None, highlight=0):
if (width == 0 and height == 0 and
color == 'red' and emphasis == 'strong' or
highlight > 100):
raise ValueError("sorry, you lose")
if width == 0 and height == 0 and (color == 'red' or
emphasis is None):
raise ValueError("I don't think so -- values are %s, %s" %
(width, height))
Blob.__init__(self, width, height,
color, emphasis, highlight)
22. 23. 24. 25. 26. 27. 28. 29. 30. 31. いつもの文句のタネ1
• 以下のような余計なスペースを使わない
- カッコの内側
- カンマ、セミコロン、コロンの手前
- 丸カッコや角カッコの手前
# OK
spam(ham[1], {eggs: 2})
# NG
spam( ham[ 1 ], { eggs: 2 } )
# OK
if x == 4: print x, y; x, y = y, x
# NG
if x == 4 : print x , y ; x , y = y , x
# OK
dict[‘key’] = spam(list[index])
# NG
dict [‘key’] = spam (list [index])
32. 33. 34. その他の推奨1
• 以下の2項演算子の左右には必ずスペース
代入 (=)・複合代入 (+=, -= etc.)
比較 (==, <, >, !=, <>, <=, >=, in, not in, is, is not)
論理 (and, or, not)
# OK
a = i + 1
b = x*2 - y*y
c = (a+b) * (a-b)
!
# NG
a = i+1
b = x * 2 - y * y
c = (a + b) * (a - b)
35. 36. その他の推奨3
• 複数の文を1つの行に書くことは非推奨
• 小さい文であれば許される場合もある
# OK
if foo == 'blah':
do_blah_thing()
do_one()
do_two()
do_three()
!
# Rather not
if foo == 'blah': do_blah_thing()
do_one(); do_two(); do_three()
!
# NG
do_one(); do_two(); do_three(long, argument,
list, like, this)
37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.