Python学习第三天——条件分支和循环
1.if条件分支和while循环的应用
采用if,elif,else结构(不建议使用if,if,if的结构,因为当程序每次运行时,程序会对每一个if进行条件判断,产生不必要的资源浪费)
score=int(input("Please enter the score:")) #将输入的字符串型数字转化为整型
while True: #条件恒为真,可循环输入数字
if 90<=score<=100:
print('A')
elif 80<=score<90: #相当于c中的else if,体现了Python的简洁性
print('B')
elif 70<=score<80:
print('C')
elif 60<=score<70:
print('D')
elif score==0:
break #如果想结束输入,则输入0,break跳出循环
else:
print('Error!')
print("Enter 0 to exit.")
score=int(input("Please enter the score:"))
Please enter the score:56
Error!
Enter 0 to exit.
Please enter the score:67
D
Enter 0 to exit.
Please enter the score:78
C
Enter 0 to exit.
Please enter the score:89
B
Enter 0 to exit.
Please enter the score:90
A
Enter 0 to exit.
Please enter the score:0
>>>
Python的严格缩进可以有效避免“悬挂else”
c语言中的“悬挂else”:
if (i>2)
if(i>7)
printf("great!");
else #这里的else,c语言会采取就近原则与if(i>7)匹配,而不是和我们想要的if(i>2)匹配
printf("emmmm");
2.条件表达式(三元操作符)
x=int(input('x='))
y=int(input('y='))
small=x if x<=y else y #条件为真时执行的语句 if 条件 else 条件为假时执行的语句
print(small)
x=6
y=3
3
>>>
3.断言assert
- assert这个关键字我们称之为“断言”,当这个关键字后面的条件为假时,程序自动崩溃,并抛出AssertionError的异常。
- 一般来说,我们可以使用assert在程序中置入检查点,当需要确保程序中某个条件一定为真,才能让程序正常工作时,assert就派上用场了。
:
4.while循环和for循环
-
while循环结构:
while 条件:
循环体 -
for循环结构: 虽然Python是由c语言编写而来,但其for循环跟c语言不太一样,Python的for循环显得更加智能和强大
for 目标 in 表达式: 通过for循环可以迭代表达式(字符串、列表、数组)中的所有成员,并在迭代结束后,自动结束循环。
循环体
food = 'food'
for i in food:
print(i,end=' ') #每次迭代后打印一个空格
f o o d
>>> member = ['Lily','Bob','Amy','Mike']
>>> for each in member:
print(each,len(each)) #每次迭代后打印目标的长度
Lily 4
Bob 3
Amy 3
Mike 4
- range()的用法
range([start,] stop[, step=1])
三个参数,中括号中的两个参数是可选的,start表示开始的值(默认为0),step表示步长(默认值为1),stop表示结束的值。
range()生成一个数字序列。
>>> range(3,8,1)
range(3, 8)
>>> list(range(3,8,1))
[3, 4, 5, 6, 7]
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> for i in range(2,10,2):
print(i)
2
4
6
8
>>>
5.break和continue
- break:跳出循环。
bingo = 8
answer = int(input("Guess the number(0-10):"))
while True:
if answer == 8:
break #猜对为8则跳出循环
else:
if 10>=answer>8:
print("biger")
elif 8>answer>=0:
print("smaller")
else:
print("invalid enter !")
answer = int(input("Guess the number(0-10):")) #每次猜错后,经过提示重新输入数字
print("bingo!")
Guess the number(0-10):4
smaller
Guess the number(0-10):10
biger
Guess the number(0-10):33
invalid enter !
Guess the number(0-10):8
bingo!
>>>
- continue:跳出本次循环,开始下一轮循环。
for i in range(1,10): #对1~10,打印能被3整除的数,其他数加5后打印
if i%3 == 0:
print(i)
continue
i += 5
print(i)
6 #1不能被3整除,加5后为6
7
3 #3能被3整除,直接打印后跳出循环,不执行i +=5 和之后的语句,进行下一轮i = 4 的循环
9
10
6
12
13
9
>>>