为什么我们分支和循环了不起,而不说C,Python了不起呢?如果没有分支和循环,你说一百次 I Love You! 都要 打印100次,所以你知道有多了不起了1吧。
下面我们通过举例说明
例如:
按照100分制,90分以上成绩为A,80到90为B,60到80为C,60以下为D,写一个程序,当用户输入分数,自动转换为ABCD的形式打印。
解题方案:
method1.py
score = int(input("请输入一个分数:"))
if 100 >= score >=90:
print("A")
if 90 > score >= 80:
print("B")
if 80 > score >= 70:
print("C")
if 70 > score >= 60:
print("D")
if score < 0 or score > 100:
print("输出错误!")
method2.py
score = int(input("输入一个数:"))
if 100 >= score >= 90:
print("A")
else :
if 90 > score >= 80:
print("B")
else:
if 80 > score >= 70:
print("C")
else:
if 70 > score >= 60:
print("D")
else:
print("输入错误!")
method3.py
score = int(input("请输入一个分数:"))
if 100 >= score >= 90:
print("A")
elif 90 > score >= 80:
print("B")
elif 80 > score >= 70:
print("C")
elif 70 > score >= 60:
print("D")
else:
print("输入错误!")
我们比较一下上面的三种方法,它们执行的结果都是一样的,但是,第一种方法会占用cpu大量的空间,会造成浪费,所以说用后面两种方法更好,另外最后一种方法elif是 else、if的缩进,更加简单,并且更直观。
Python可以有效避免悬挂else
我们聚一个c语言中的列子:
if( a > 2)
if( a > 7)
printf("好棒!好棒!");
else
printf("切~");
如果在C中,else与它最近的那个if搭配,而在Python中,它与第一个if搭配,因为它们属于一个缩进。
条件表达式(三元操作符)、
Python中只有一个三元操作符,有了这个三元操作符的条件表达式,你可以使用一条语句来完成以下的条件判断和赋值操作:
x, y = 4, 5
if x < y:
small = x
else:
small = y
例子可以改进为:
small = x if x < y else y
断言(assert)
assert这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常。
举个例子:
>>> assert 3 > 4
结果会出现下面这种情况
assert 3 > 4
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
assert 3 > 4
AssertionError
而当判断为正常是则不会
>>> assert 4 > 3
一般来说我们可以用Ta再程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。
While循环体
语法如下:
while 条件:
循环体
只有当条件为假时退出循环
For循环
Python虽然从C语言编写而来,但是它的for循环和C的for循环不一样,Python的for循环显得更加智能和加大!
语法如下:
for 目标 in 表达式:
循环体
例:
>>> member = 'Fishc'
>>> for i in member:
print(i,end=' ')
结果为:
F i s h c
例:
>>> Name = ['马云','马化腾','雷军']
>>> for each in Name:
print(each,len(each))
结果为:
马云 2
马化腾 3
雷军 2
range()
它是for循环的一个小伙伴,它是一个BIF,一个内置函数
语法:range( [strat,] stop[, step=1] )
这个BIF有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。
step=1表示第三个参数的值默认值是1,它是步进。
range这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列。
例:
>>> range(5)
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> for i in range(5):
print(i)
0
1
2
3
4
>>> for i in range(2,9):
print(i)
2
3
4
5
6
7
8
>>> for i in range(1,10,2):
print(i)
1
3
5
7
9
break
bingo = '一介布衣是帅哥'
answer = input('请输入一介布衣最想听的一句话:')
while True:
if answer == bingo:
break
answer = input('抱歉,错了,请重新输入:')
print('哎呦,帅哦')
print('你真是我肚子里的蛔虫.')
continue
for i in range(10):
if i%2 != 0:
print(i)
continue
i+=2
print(i)
结果是:
2
1
4
3
6
5
8
7
10
9