简单的学习了变量的使用以及输入输出,现在就可以学习if…else、while、for了。
在python中,你将看不见大括号,取而代之的是缩进,缩进的严格要求使得python代码显得十分精简和富有层次,但是必须要特别小心的处理缩进,否则出现的结果就会和期望相差甚远。今天学习中的条件判断语句和循环语句将会体会到缩进是如何代替其他语言中的大括号。
条件语句
条件语句的使用结构如下:
if xxx:
语句
elif xxx:
语句
else:
语句
python中,语句后面是不带分号的,条件判断结束后需要添加冒号作为结束,执行语句要基于前面的判断语句进行缩进,在实际代码编写中可以发现,当在合适的位置添加冒号时按下回车会自动进行缩进。我们借助一个猜年龄的游戏试验一下条件判断的语法:
age = 50
guess_age = int(input("guess age:"))
if age == guess_age:
print("you got it.")
elif age > guess_age:
print("guess smaller")
else:
print("guess bigger")
代码很简单,需要提一下的是,python中的与或非分别为and、or、not,可以使用括号进行复杂的逻辑判断;真和假分别用True和False表示。
while循环
语法结构:
while 条件为真:
循环体
对于刚才的游戏有个缺陷,就是每猜一次就会结束,显示这样并不愉快,我们希望可以猜错了继续猜,并且猜错一定次数后就会退出,那么就可以使用while循环实现:
age = 50
count = 0
while count < 3: # while True while False 和C比较学习
guess_age = int(input("guess age:"))
if age == guess_age:
print("you got it.")
break
elif age > guess_age:
print("guess smaller")
else:
print("guess bigger")
count += 1
if count == 3:
ask = input("do you want try again?")
if ask == 'y':
count = 0
else:
print("you have tried too many")
else:
print("game over")
同样的,python中也是使用break退出当层循环,使用continue结束本次循环。
细心的我发现了个现象,while条件不成立时后面可以接else,这是在C/C++中不支持的。同样也很简单,有语言基础的这些理解起来是不成问题的。
for循环
for循环的语法结构如下:
for 循环变量1, 循环变量2 in 可迭代对象:
循环体
可迭代对象指的是那些元素可以被单独提取出来的对象,如字符串中的每个字符就属于可迭代对象中取出来的对象。但是针对数字进行for循环时需要借助一个BIF(Build In Functions)内置函数range(),它可以为整数生成一个数字序列,它有三种用法:
range(stop)
range(start, stop)
range(start, stop, step)
无论使用哪一种,它的参数只能是整数。下面分别举例:
- range(stop)
它将生成从0开始到stop-1的序列 - range(start, stop)
它将生成从start开始到stop-1的序列 - range(start, stop, step)
它将生成从start开始,stop-1结束,步长为step的序列
因此,我们可以使用for循环来改写猜年龄的游戏,代码如下:
age = 50
count = 0
for i in range(3):
guess_age = int(input("guess age:"))
if age == guess_age:
print("you got it.")
break
elif age > guess_age:
print("guess smaller")
else:
print("guess bigger")
else:
print("you have tried too many")
和while一样,条件为假的时候可以接else分支。
运行结果如下:
猜对了会提示相应信息。
猜错达到三次就会进入for的else分支。
三目运算符
三目运算符的用法如下:
a = b if True == 条件1 else c
等价于
if True == 条件1:
a = b
else:
a = c
上述公式可以这样理解:
1、a保存最终的结果
2、a的结果可以是b或者c
3、当条件1满足时a的结果是b,否则就是c
举例说明:
a, b, c = 1, 2, 3
print("a = {0}, b = {1}, c = {2}".format(a, b, c))
d = a if b > c else b # 等价于三目运算符
print("d = {0}".format(d))
结果输出如下:
虽然知识点比较简单,但是有些内容还是区别于C/C++,比如:条件不需要括号、条件需要以冒号结束、使用缩进确定作用域、for和while可以使用else分支。