python语句特点:
1.条件后面都以分号结尾
2.缩进问题:缩进是python表示语句块的唯一方法,一个语句快中的所有语句必须使用相同的缩进。关于缩进风格,标准python风格是每个缩进级别使用4个空格,最好不要使用Tab制表符,因为不同的编辑器处理制表符的方式不同。
条件判断
1.单分支if语句
if <条件判断>: <执行>
如果if语句判断是True,就把缩进的语句执行了,否则,什么也不做。也可以给if添加一个else语句,意思是,如果if判断是False,不要执行if的内容,去把else执行了。
例如:
a=10 if a>20: print "more than 20" else: print "less than 20"
很明显,执行程序后,在屏幕打印出了”less than 20”,有一种“三目表达式”可以简写if语句,例如:
a=10 result=("more than 20" if a>20 else "less than 20") print (result)
注意:如果我们把判断语句的小括号换成方括号,那么输出结果就是一个列表,即[‘less than 20‘]。
2.多分支if语句
if <条件判断1>: <执行1> elif <执行2> elif <执行3> else: <执行4>
if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else。
补充:
1.条件为True的情况,除了条件成立,还有就是:
if x: print(‘True‘)
只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。
2.input问题
执行程序后需要用户手动输入,这就需要使用”input”。在python3.5中,input会把所有输入的字符转为”str”数据类型吗,例如:
>>> a=input("number:") number:5 >>> type(a) <class ‘str‘> >>> b=int(input("number:")) number:10 >>> type(b) <class ‘int‘>
3.pass
pass语句作用是不执行当前代码块,例如:
a=10 if a>20: print "more than 20" else: pass
执行程序后,返回结果为空。
循环语句
1.for循环
(1)迭代对象
遍历字符串,每个字符当做单个遍历:
>>> for i in "abc": ... print i ... a b c
使用 range()函数生成一个数字序列列表,并遍历:
>>> for i in range(1,5): ... print i ... 1 2 3 4 #range()只有一个元素,从0开始遍历: >>> range(5) [0, 1, 2, 3, 4]
2)嵌套循环
逐个循环判断外层列表里元素是否存在内层列表:
>>> for i in range(1,6): ... for x in range(3,8): ... if i == x: ... print i ... 3 4 5
3)简写语句
简写 for 语句:
>>> result = (x for x in range(5)) >>> result <generator object <genexpr> at 0x030A4FD0> >>> type(result) <type ‘generator‘>
# 同样用中括号会以列表存储
>>> result = [ x for x in range(5)] >>> type(result) <type ‘list‘> >>> result [0, 1, 2, 3, 4]
for 和 if 语句写一行:
>>> result = [ x for x in range(5) if x % 2 == 0] >>> result [0, 2, 4]
这种使用中括号括起来的表达式称为列表解析表达式,每一次迭代,都会把迭代对象放到 x 变量中,最后表达式计算值生成一个列表。
2.while循环
1)输出序列
当条件不满足时,停止循环:
>>> count = 0 >>> while count < 5: ... print count ... count += 1 ... 0 1 2 3 4
2)死循环
>>> import time >>> i = 1 >>> while True: ... print i ... i += 1 ... time.sleep(0.5) ... 1 2 3 ......
注意:当表达式值为 true 或者非零时,都会一直循环。
补充:
break
在循环中,break语句可以提前退出循环。
continue
在循环过程中,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环。
,
编写python脚本时,有时候需要将输出的内容不换行,按一行输出,可以在语句末尾添加一个逗号,例如:
>>> for i in range(5): print i, 0 1 2 3 4
练习:
执行程序后,要求用户输入姓名和密码,正确则返回欢迎信息,错误返回提示信息,三次错误后退出程序。
#!/usr/bin/env python # -*- coding:utf-8 -*- a={‘zhangsan‘:‘123abc‘,‘lisi‘:‘2‘,‘wangwu‘:‘3‘} b=a.keys() for i in range(3): name=raw_input("please enter your name:") password=raw_input("please enter your password:") if name in b: if password==a[name]: print ("welcome!") break else: print ("your password is false!") else: print ("no this user!") else: print ("too much retry!")