一、分支:
1.C语言中的if...else if...else...在python中写为if...elif...else...:
score=input("请输入成绩:")
score=score.strip() #去除字符串两端的空格
if score.isdigit(): #判断输入的字符串是否只含有数字
score=int(score)
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("不及格")
else:
print("输入格式错误!")
运行结果:
请输入成绩:65
D
注:python中去掉字符串中空格的方法
2.python可以有效避免悬挂else:什么是悬挂else?
例如下面C语言中的代码,这个else应该是和第二个if匹配的,但是用户可能因为代码的格式将程序错认为else是和第一个if匹配的,这就是悬挂else问题。而python的缩进有效的避免了这个问题
if (i>2)
if(i>7)
print("这是一个不小的数!")
else
print("这个数有点小")
3.三元操作符的使用:
下来看一个例子:
x,y=4,5
if x<y:
small=x
else:
small=y
print(small)
上面这个例子可以简化为:
x,y=4,5
small=x if x<y else y
print(small)
运行结果为:4
(4)断言:assert:
assert这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常
一般来说我们可以用assert在程序中置入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就显得非常有用了。assert可以用在程序的测试中,因为与其让错误的条件导致程序今后莫名其妙的崩溃,不如在出现错误的那一瞬间我们实现“自爆”。
>>> assert 3>4
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
assert 3>4
AssertionError
>>> assert 3<4
>>>
二、循环:
1.while循环太简单,前面提过,这里不再赘述
2.for循环:python中的for循环比C语言中的for循环显得更加智能和强大:
#for循环的使用
'''
for 变量 in 列表:
循环体
'''
#example1
list_string='IloveU'
for i in list_string:
print(i)
for i in list_string:
print(i,end=" ")
结果:
I
l
o
v
e
U
I l o v e U
#example2
list2=['Jasper','阿拉蕾','小山竹','诺一']
for name in list2:
print(name,len(name)) #len(name):求变量的长度
结果:
Jasper 6
阿拉蕾 3
小山竹 3
诺一 2
拓展:什么是成员资格运算符?python中有一个成员资格运算符:in,用于检查一个值是否在序列中,如果在序列中返回True,否则返回False。
>>> st="我爱你"
>>> '爱'in st
True
>>> '不爱'in st
False
3.range():这个python的内置函数经常搭配for一起使用:
'''语法'''
range([start,]stop[,step=1])
- 这个BIF有三个参数,其中用中括号括起来的两个表示这两个参数是可选的
- step=1表示第三个参数的默认值是1
- range这个BIF的作用是生成一个从start参数的值开始到stop参数的值(不包括stop)结束的数字序列
>>> range(5)
range(0, 5)
>>> list(range(5)) #range(stop)默认是从0开始,生成一个数字序列
[0, 1, 2, 3, 4]
>>> list(range(3,7)) #range(start,stop)从start开始,到stop结束(不包括stop)
[3, 4, 5, 6]
>>> list(range(3,7,2))#range(start,stop,step),生成的数字序列从start开始,每次增加step(step默认为1)
[3, 5]
- range()与for的搭配使用
>>> for num in range(3):
print(num)
0
1
2
>>> for num in range(1,4):
print(num)
1
2
3
>>> for num in range(1,5,2): #step=2表示生成的数列从第一个数开始每次增加2
print(num)
1
3
4.break,continue:
break:跳出循环
name=input("请输入你的名字:")
while(True):
if not name.isalpha(): #判断字符串中是否全部都是字母
name=input("输入格式不正确,请仔细输入:")
else:
break
print("这下我知道你的名字了")
结果:
请输入你的名字:123
输入格式不正确,请仔细输入:whajs2
输入格式不正确,请仔细输入:Swan
这下我知道你的名字了
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