1. 赋值语句常用技巧
通过序列解包(sequence unpacking) 可以将多个值的序列解开,让后一一放置到变量的序列中。解包的序列中的元素必须和等号左边变量数量一致。如下:
1 values = 1,2,3
2
3 print values # output: (1, 2, 3)
4
5 x,y,z = values # output: 1 2 3
6 print x,y,z
7
8 bob_Info = {'name':'Bob','email':'bob@gmail.com'}
9 key,value = bob_Info.popitem()
10
11 print value # output: Bob
1.2 链式赋值
通过使用链式赋值(chained assignment)可以将一个值同时赋给多个变量,如下:
x = y = z = 1
print x,y,z # output: 1 1 1
1.3 增量赋值
将表达式运算符(+、-、*、%、/等)放置在赋值运算符(=)的左边,这些写法被称为增量赋值(augmented assignment),如下:
1 x = 6
2
3 x += 1
4 print x # output: 7
5
6 x *= 6
7 print x # output: 42
2. 缩进 —— Python语言的风格
Python和其他语言有一个很大的区别在于:Python 使用硬回车来分割语句,使用冒号(:)和缩进来分割代码块。同一层次的语句必须有相同的缩进(每一组这样的语句称为一个块),而C语言风格的编程语言(Java/C#/C++)则使用分号来分割语句,花括号来分割代码块。
正确的缩进
不要混合使用tab键和空格来进行缩进,这会使程序在跨平台时不能正常的工作。官方推荐的做法是使用四个空格
如下:
1 # --- coding: utf-8 ---
2
3 age = 20
4 if age < 21:
5 print '不能买酒'
6 print '但是你可以来块口香糖'
7
8 print '这句话处于If语句的外部'
3. 条件和条件语句
在Python中解释器认为标准值False、None和所有类型的数字0(浮点型,长整型等)、空序列(字符串、字典、列表等)都为假(False),如下所示:
1 print bool(False) # False
2 print bool(None) # False
3 print bool(0) # False
4 print bool("") # False
5 print bool(()) # False
6 print bool([]) # False
7 print bool({}) # False
3.2 条件执行和if语句
和C#中的If语句类似,如果if内的条件判定为真,则执行后面的语句块:
1 # -- coding: utf-8 --
2 age = 18
3
4 if age >= 18:
5 print '年龄超过18岁了'
3.3 else子句
else子句作为if语句的一部分,如果if语句的条件被判定为“False”则执行else子句后的语句块,如下:
1 # -- coding: utf-8 --
2 age = 16
3
4 if age >= 18:
5 print '年龄超过18岁了'
6 else:
7 print '未成年人'
3.4 elif子句
elif子句是“else if”的简写,通过elif子句可以检查更多的条件,如下:
1 num = input('Enter a number: ')
2
3 if num > 0:
4 print 'The number is positive'
5 elif num < 0:
6 print 'The number is negative'
7 else:
8 print 'The number is zero'
3.5 嵌套代码块
有时候我们需要更加复杂的条件分支判定,这时可以嵌套使用if语句来实现,如下:
1 num = raw_input('Enter a number: ')
2
3 if name.endswith('Gumby'):
4 if name.startswith('Mr.'):
5 print 'Hello. Mr.Gumby'
6 elif name.startswith('Mrs.'):
7 print 'Hello, Mrs. Gumby'
8 else:
9 print 'Hello,Gumby'
10 else:
11 print 'Hello,Stranger'
3.6 更复杂的条件
比较运算符
比较运算符时条件中最基本的运算符,详见下表:
[table]
[tr]
[td]表达式[/td]
[td]描述[/td]
[/tr]
[tr]
[td]x == y[/td]
[td]x等于y[/td]
[/tr]
[tr]
[td]x < y[/td]
[td]x小于y[/td]
[/tr]
[tr]
[td]x > y[/td]
[td]x大于y[/td]
[/tr]
[tr]
[td]x >= y[/td]
[td]x大于等于y[/td]
[/tr]
[tr]
[td]x [1,[2,4,5]] # False
布尔运算符
常用的布尔运算符有:
和在C#这些语言中不同,在Python中直接通过它们对应的单词使用,如:
1 age = 12
2
3 if age > 6 and age = 1
4 mylist.pop()
5 assert len(mylist) >= 1 '断言失败,程序终止运行'
5. 循环
while循环 中的表达式如果为True就会一直执行其后的语句块,如下打印0-100的值:
1 x = 0
2 while x 6 and age >> eval(raw_input("Enter an arithmetic expression: +"))
Enter an arithmetic expression: +16+16
32
>>>
我们在程序中输入了:16+16的表达式,通过eval执行后返值:32
为了提高程序的安全性,我们可以为exec语句和eval语句增加一点包装,将这些语句限制在特定的作用域中,如下:
1 scope = {}
2 exec 'sqrl = 6' in scope
3 print scope['sqrl'] # output: 6
4
5 scope = {}
6 scope['x'] = 2
7 scope['y'] = 3
8
9 print eval('x * y',scope) # output: 6
警告
在Python中使用exec执行Python代码字符串和通过eval语句计算Python表达式,这样的做法并不推荐,因为这样会有潜在的严重漏洞。 因为可能会有用户提供一些恶意的字符串作为代码或表达式来执行,这样程序会有潜在失去控制的危险。记住:在python中并没有任何执行不可信任代码的安全方式。
参考资料&进一步阅读
Python基础教程(第二版)
简明Python教程
深入 Python :Dive Into Python 中文版
Python 维基百科
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com