awdpython表⽰空的代码块_Python基本语法
Python是⼀种简⽽美的语⾔,现在学习它的⼈也越来越多,为了节省⼤家的时间,也为了⾃⼰以后的复习和使⽤,遂在这⾥整理了Python 的基本语法知识点以供⼤家能⽅便的来进⾏快速的学习和查阅。
格式
try again
在学习Python的基本语法之前,我们先要对它的⽂法格式有⼀定了解。
print "Hello, World!"
#这是⼀段Python代码
Hello, World!
如果您急于了解Python的语法特征并尽快投⼊使⽤,请略过这⼀部分。
注:这⼀部分的很多规则都是⼗分个⼈化的使⽤习惯,请谨以之作为参考。
代码布局
缩进
Python使⽤缩进分隔代码块。
⼀个代码块起始于⼀⾏以冒号结尾的代码,下⾯所有缩进相同或更多的⾏都被视为同⼀个代码块,例如:
i = 0
while i < 3:
print i
i = i + 1
1
2
需要注意的是,虽然Python允许使⽤任意数量的空格或者Tab制表符进⾏缩进。
但是我们平时最好养成利⽤4个空格进⾏缩进的好习惯。
另外,除⾮是坐标,否则最好在逗号后⾯加上⼀个空格。
注释
井号(#)常被⽤作单⾏注释符号,在代码中使⽤#时,它右边的任何数据都会被忽略,当做是注释,例如:
#这是⼀个单⾏注释
多⾏注释是⽤三引号包含的,例如:
'''
the who
这是三对单引号包括的Python多⾏注释
和多⾏Str字符串的表⽰相同
'''
establishing"""
这是三对双引号包括的Python多⾏注释
在使⽤的时候要注意和多⾏Str字符串进⾏区分
"""
每⾏最⼤长度
每⾏最好控制在79个字符内,如果必要可以接受最多84个字符。
尽量避免代码嵌套层级过多,可以通过巧妙地使⽤break、continue和return语句实现。
长语句换⾏
编写长语句时,可以使⽤换⾏符(\)换⾏。
在这种情况下,下⼀⾏应该与上⼀⾏的最后⼀个“.”句点或“=”对齐,或者是缩进4个空格符:thisIsAVeryLong(functionCall, 'with many parameters') \
.thatReturnsAnObjectWithAnAttribute
MyModel.query.filter(MyModel.scalar > 120) \
.orderBy(MyModel.name.desc()) \
四级作文范文.limit(10)
如果你使⽤括号“()”或花括号“{}”为长语句换⾏,那么下⼀⾏应与括号或花括号对齐:thisIsAVeryLong(functionCall, 'with many parameters',
23, 42, 'and even more')
对于元素众多的列表或元组,在第⼀个“[”或“(”之后马上换⾏:
大比items = [
'this is the first', 't of items', 'with more items',
'to come in this line', 'like this'
]
空⾏
顶层函数与类之间空两⾏,此外都只空⼀⾏。
不要在代码中使⽤太多的空⾏来区分不同的逻辑模块,如:
def hello(name):
print 'Hello %s!' % name
def goodbye(name):
print 'See you %s.' % name
class MyClass(object):
codo"""This is a simple docstring."""
def __init__(lf, name):
lf.name = name
def getAnnoyingName(lf):
return lf.name.upper() + '111'
表达式和语句
⼀般空格规则
单⽬运算符与运算对象之间不空格(例如,-,~等),即使单⽬运算符位于括号内部也⼀样。
双⽬运算符与运算对象之间要空格。
好的:
betta
exp = -1.05
value = (itemValue / itemCount) * offt / exp
value = myList[index]
value = myDict['key']
差的:
exp = - 1.05
value = ( itemValue / itemCount ) * offt / exp
value = (itemValue/itemCount)*offt/exp
value=( itemValue/itemCount ) * offt/exp
value = myList[ index ]
value = myDict ['key']
benjamin disraeli不能编写尤达语句(Yoda Statements,指的是类似星战中尤达⼤师那样颠倒句⼦的正常顺序):
不要拿常量与变量进⾏对⽐,应该拿变量与常量进⾏对⽐。
好的:
if method == 'md5':
pass
坏的:
if 'md5' == method:
pass
⽐较
任意类型之间的⽐较,使⽤“==”和“!=”。
与单例(singletons)进⾏⽐较时,使⽤is和is not。
永远不要与True或Fal进⾏⽐较(例如,不要这样写:foo == Fal,⽽应该这样写:not foo)。否定成员关系检查
使⽤foo not in bar,⽽不是not foo in bar。
实例检查
使⽤isinstance(a, C),⽽不是type(a) is C`。
但是⼀般要避免做实例检查,建议检查实例的特性。
命名规范
类名称:⼤驼峰拼写法(CamelCa),⾸字母缩略词保持⼤写不变(HTTPWriter,⽽不是HttpWriter)。
变量名:⼩写加下划线(lowerca_with_underscores), 对于⼀些显⽽易见的单词可以进⾏缩写。
⽅法与函数名:⼩驼峰拼写法(lowercaWithUnderscores)。
常量:⼤写加下划线(UPPERCASE_WITH_UNDERSCORES)。
预编译的正则表达式:⾸字母⼤写加下划线(Name_re)。
注:变量名我本来采取⼩驼峰的拼写法,后来认为或许⼩写加下划线的拼写⽅法更舒服,⽽已有的⽰例代码则不再对其做出更改,依然对变量名采⽤⼩驼峰的拼写法。预编译的正则表达式也由⼩写加下划线变换为⾸字母⼤写加下划线,亦同上例对已有的⽰例代码不做更改。
受保护的元素以⼀个下划线为前缀。双下划线前缀只有定义混⼊类(mixin class)时才使⽤。
如果使⽤关键词(keywords)作为类名称,应在名称后添加后置下划线(trailing underscore)。
允许与内建变量重名,不要在变量名后添加下划线进⾏区分。
如果函数需要访问重名的内建变量,请将内建变量重新绑定为其他名称。
函数和⽅法的参数:
类⽅法:cls为第⼀个参数。
实例⽅法:lf为第⼀个参数。
property函数中使⽤匿名函数(lambdas)时,匿名函数的第⼀个参数可以⽤x替代,例如:
display_name = property(lambda x: x.real_name or x.urname)
⽂档字符串
⽂档字符串规范
respect是什么意思⽂档字符串的⾏数不同,布局也不⼀样。
如果只有⼀⾏,代表字符串结束的三个引号与代表字符串开始的三个引号在同⼀⾏。
如果为多⾏,⽂档字符串中的⽂本紧接着代表字符串开始的三个引号编写,代表字符串结束的三个引号则⾃⼰独⽴成⼀⾏。
def foo():
"""This is a simple docstring."""
def bar():
"""This is a longer docstring with so much information in there
that it spans three lines. In this ca, the closing triple quote
is on its own line.
"""
⼀般来说,⽂档字符串应分成简短摘要(尽量⼀⾏)和详细介绍。
如果必要的话,摘要与详细介绍之间空⼀⾏。
模块头部
模块⽂件的头部包含有utf-8编码声明(如果模块中使⽤了⾮ASCII编码的字符,建议进⾏声明)。
# -*- coding: utf-8 -*-
类型
Python是⼀种动态类型语⾔,这意味着变量没有类型,因此也不需要被声明。
另⼀⽅⾯,值是有类型的。我们可以查询变量包含的值的类型:
a = 3
print type(a)
a = 3.14
print type(a)
a = 'hello python'
print type(a)
Python也包括了原⽣的数据结构,如列表和字典。
字符串 (str)
Python⽀持两种不同类型字符串的引⽤ASCII字符串和Unicode字符串。
ASCII字符串使⽤'...'、"..."、'''...'''或者"""..."""来分隔,其中的三重引号⽤来分隔多⾏字符串。
Unicode字符串则以⼀个u起始,包含Unicode字符串的字符串(使⽤单重或者三重的单引号或者双引号分隔的)跟在后⾯。通过选择编码,可以将Unicode字符串转换成ASCII字符串,例如:
a = 'this is an ASCII string'
b = u'This is a Unicode string'
a = b.encode('utf8')
执⾏完这三条命令之后,得到的结果a是⼀个存储UTF8编码字符的ASCII字符串。
通过使⽤str或repr命令,许多Python对象可以被序列化成字符串,例如数字。
这两条命令⾮常相似,但是会产⽣略有不同的输出,如:
for i in [3, 'hello']:
print str(i), repr(i)
3 3
hello 'hello'
对于⽤户定义的类,使⽤特殊操作符_str_和_repr_, str和repr可以被定义/重定义,其中repr总有⼀个默认值。
Python字符串的另⼀重要特征是,像列表⼀样,它是⼀个遍历对象。
for i in 'hello':
print i
h
e
l
l
o
列表 (list)