前面,我们讲了常用的运算操作符和数据类型。今天,我们再来学习一下有关分支和循环的问题。
1)在开始之前,大家先用Python写一下这个问题:
按照百分制,90分以及90分以上成绩为A,80到90为B,70到80为C,60到70是D,60分及以下成绩是E写一个程序,当用户输入分数的时候,自动转化为ABCDE的形式:
代码如下:
score = int(input('请输入成绩:'))
if 90 <= score < 100:
print('A')
elif 80 <= score < 90:
print('B')
elif 70 <= score < 80:
print('C')
elif 60 <= score < 70:
print('D')
else:
print('E')
这个就是我们之前写的文字小游戏用到的分支结构,利用Python可以有效避免“悬挂else”——C语言新手出现的那个else,if匹配的问题(C语言是else离哪个if近一点,两者就是对应的一套结构),为什么Python不会出现这个问题呢?因为Python有着极强的缩进要求,强制我们必须有规范的代码书写方式。
2)大家再来看一下这个例子:
x,y = int(input('请输入第一个数字:')),int(input('请输入第二个数字:'))
print(x if x < y else y)
没错,这个(x if x < y else y)就是我们Python中唯一的一个三元操作符,它表达的内容其实是:
x,y = int(input('请输入第一个数字:')),int(input('请输入第二个数字:'))
if x < y:
print(x)
else:
print(y)
这个虽然好用,但是我们并不提倡这种用法,因为Python讲究的就是简洁,但是我们这个代码逻辑没有第二种清晰,所以大家以后尽量以第二种为准
3)现在介绍一个函数的方法——assert,没有参数的
assert这个关键字,叫作“断言”,当这个关键字后面的条件为假的时候,程序自动崩溃并抛出异常AssertionError,我们可以在程序中置入检查点,当需要确保程序中某个条件一定为真时才能让程序正常工作的话,assert关键字就非常有用了。
我们还是看一下例子吧:
guess = int(input('请输入一个数字:'))
assert guess >= 5
print(guess)
这个assert后面是不需要加上冒号的,当输入的值不小于2的时候,对程序是没有任何影响的,但是小于2的话,就会出现bug了
4)现在再来看一下while循环和for 循环(Python的for循环更加强大智能)
while 循环:
缩进 循环体
for 目标:
缩进 循环
看一下例子吧:
favourite = 'Fruit'
for i in favourite:
print(i)
这个程序实现的是打印Fruit的所有字母
下面再介绍一下range()函数:
语法是:range([start,] stop[,step = 1])其中start默认是0,step默认是1,两者都是可以更改的,作用是生成一个从start参数的值开始到stop参数的值结束的数字序列。
>>> range(5)
range(0, 5)
>>> for i in range(2,9):
print(i)
2
3
4
5
6
7
8
>>> for i in range(1,9,2):
print(i + 1)
2
4
6
8
既然我们已经知道了range()和for循环,那么我们就可以来实现一个小程序:
打印1到100之间的所有偶数:
for i in range(1,100):
if i % 2 == 0:
print(i)
5)两个关键字语句:
break:终止循环,跳出循环体
continue:终止本轮循环,开始下一轮循环
看一个小例子吧:
for i in range(0,10):
if i % 2 != 0:
print(i)
continue
i += 2
print(i)
如果没有continue的话,这个程序每个值最后都会加上2,但是有了continue之后,0到10之间的奇数就会跳过后面的步骤。
好了,本次的分享就到这里。