本节所讲内容:
Python 流程控制语句的使用
python中比较运算符的使用
1 2 3 4 5 6 7 8 9 10 | x == y x 等于 y x < y x 小于 y x > y x 大于 y x >= y x 大于等于 y x <= y x 小于等于 y x != y x 不等于 y x is y x 和 y 是同一个对象 x is not y x 和 y 是不同的对象 x in y x 是 y 容器(例如,序列)的成员 x not in y x 不是 y 容器(例如,序列)的成员 |
注:如果偶然遇见 x<> y 这样的表达式,它的意思其实就是 x != y ,不建议使用 <> 运算符,应该尽量避免使用它。
在Python 中比较运算和赋值运算一样是可以是可以连接的——几个运算符可以连接在一起使用,比如:0<num<100,判断变量num的范围为0到100
1)相等运算符
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | >>> 'rm' == 'RM' False >>> 'rm' == 'rm' True >>> 'rm' != 'rm' False 2)大小运算符 >>> 2 > 3 False >>> 2 <= 3 True >>> 3 >= 3 True 3)同一性运算 >>> x = y =[1,2,3] >>> a = [1,2,3] >>> x is a False |
主要用来判断序列,字符串是不适用的。is 运算符是判断同一性而不是相等性。变量x和y都被绑定到同一个列表上,而变量z被绑定在另一个具有相同数值和顺序的列表上。它们的值可能相等,但是却不是同一个对象。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | >>> 'P' in'Python' True [root@localhost ~]# vimin.py #!/usr/bin/env python name =raw_input("What is your name? ") if 's' in name: print "Your name contain theletter 's'." else: print "Your name does not containthe letter 's'." [root@localhost ~]#./in.py What is your name?suwukong Your name contain theletter 's'. [root@localhost ~]#./in.py What is your name?Zhubajie Your name does notcontain the letter 's'. |
多条件运算
and 连接两个运算符都为真时返回为真,否者为假
or 连接两个运算符任一为真是返回为真,否者为假
not 取反
增量赋值
Python中没有使用shell的x=x+1,而是将表达式运算符放置在赋值运算符=的左边,写成x+=1。这种写法叫做增量赋值,对于* ,/ , % ,等标准运算符都适用
1 2 3 4 5 6 7 8 9 10 | >>> x = 2 >>> x += 1 >>> x *= 2 >>> x 6 >>> name = 'rm' >>> name += 'mk' >>> name *= 2 >>> name |
if语句的使用
语法格式
if 条件测试语句:
条件测试操作
1 2 3 4 | >>> if name =='rm': ... print "Hello,rm!!!" ... Hello,rm!!! |
2)双分支if语句
语法格式
if 条件测试语句1:
条件测试操作1
else:
条件测试操作2
1 2 3 4 5 6 | #!/usr/bin/env python name =raw_input("What is your name? ") if name.endswith('rm'): print 'Hello,Mr.rm' else: print 'Hello,stranger' |
注:endswith 是字符串的一种方法,用来判断字符串是否以某个字符串结尾
执行结果:
1 2 3 4 5 6 | [root@localhost ~]#./if.sh What is your name? rm Hello,Mr.rm [root@localhost ~]#./if.sh What is your name? mk Hello,stranger |
3)多分支if语句
语法格式
if 条件测试语句1:
条件测试操作1
elif 条件测试语句2:
条件测试操作2
……
else:
默认执行的操作
例:判断数字的正负
1 2 3 4 5 6 7 8 9 10 | #!/usr/bin/python num = input("Enter anumber: ") if num > 0: print "The number ispositive" elif num < 0: print "The number isnegative" else: print "The number is zero" |
4)if语句的嵌套
语法格式
if 条件测试1:
if 条件测试语句:
print 条件测试操作
……
else:
1 2 3 4 5 6 7 8 9 10 11 | #!/usr/bin/env python name =raw_input("What is your name? ") if name.endswith('rm'): if name.startswith('Mr.'): print "Hello,Mr.rm" elif name.startswith('Mrs.'): print "Hello,Mrs.rm" else: print "Hello,rm" else: print "Hello,stranger" |
注:startswith是字符串的一种方法,用来判断字符串是否以某个字符串开头
while循环语句的使用
例:打印100以内的数字
1 2 3 4 | >>> x = 1 >>> while x <=100: ... print x ... x += 1 |
编写登录信息验证程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #!/usr/bin/python width = 80 title = "Welcome to Heroalliance" len_width = len(title) margin_width = (width -len_width - 2 ) // 2 print '*' * width print '*' * margin_width + ' '+ title + ' ' + '*' * margin_width print '*' * width while True: input = raw_input("Please inputyour username: ") if input == 'RM': password =raw_input("Please input your password: ") p = '123' while password != p: print "Wrong password" password =raw_input("Please input your password again: ") else: print title break else: print "Sorry, user %s notfound" % input |
注:在Python中while循环也可以使用else语句进行流程控制
for循环的使用
语法格式
for 变量名 in 列表:
循环操作
1 2 3 4 5 6 7 | >>> message =['Good','morning','Sir'] >>> for word inmessage: ... print word ... Good morning Sir |
range 函数
用来定义一组数字,包含下限,不包含上限,例:range(1,5)代表从1到5(不包含5)
1 2 | >>> range(1,5) [1, 2, 3, 4] |
range函数可以手动指定数字间的间隔
1 2 3 4 5 | >>> range(1,10,2) #代表从1到10,间隔2(不包含10) [1, 3, 5, 7, 9] 其中上限可以省略 >>> range(5) [0, 1, 2, 3, 4] |
通常,for循环可以和range函数结合进行使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/usr/bin/env python round = [ 'first', 'second', 'third', 'fourth', 'fifth' ] for i in range(5): print i i += 2 print i num = i - 2 print "The " + round[num] +" round end." |
注:round[num]这是序列的一种表示方式,后期会讲到
执行的结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | [root@localhost ~]#python for_range.py 0 2 The first round end. 1 3 The second round end. 2 4 The third round end. 3 5 The fourth round end. 4 6 The fifth round end. |
扩展:
shell 中创建一组数字的方法
1 2 3 4 5 6 7 8 9 | [root@localhost ~]# seq 15 1 2 3 4 5 或者 [root@localhost ~]# echo{1..5} 1 2 3 4 5 |
跳出循环
break :跳出循环
continue :结束当前循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | >>> for i inrange(1,10): ... if i == 3: ... print "Great,you get yourlucky number,which is " + str(i) ... continue ... print "The number is : %d " % i ... The number is : 1 The number is : 2 Great,you get your luckynumber,which is 3 The number is : 4 The number is : 5 The number is : 6 The number is : 7 The number is : 8 The number is : 9 |
实战:通过字典创建一个查询公司内部员工信息的程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #!/usr/bin/env python people = { 'MK':{ 'phone': '110120', 'addr': 'HeBei' }, 'RM':{ 'phone': '119999', 'addr': 'HeNan' }, 'Find':{ 'phone': '111111', 'addr': 'SanDong' } } labels = { 'phone':'phone number', 'addr': 'address' } while True: name = raw_input('Name: ') while name in people: request = raw_input('Phonenumber (p) or address (a)?') if request == 'p' : key ='phone' if request == 'a' : key ='addr' print "%s's %s is%s." % (name,labels[key],people[name][key]) break else: YN = raw_input("The userdoes not exist,enter user name again?(Y/N)") if YN == 'N': print "Program isstopping!!!" break if YN == 'Y': continue |
学习过程中如果问题,请留言。更多内容请加:
学神IT-linux讲师-RM老师QQ:2805537762 学神IT-戚老师QQ:3341251313 学神IT-旭斌QQ:372469347学神IT教育RHEL7交流群:468845589本文出自 “” 博客,请务必保留此出处