单分支结构:
if condition:
代码块
condition 必须是一个bool类型,这个地方有一个隐式转换bool(condition)
if 1<2:
print('1 less than 2')
代码块
类似于if语句的冒号后面的就是一个语句块
在if、for、def、class等关键字后使用代码块
多分支:
if...elif...else语句
if condition1:
代码块1
elif condition2:
代码块2
elif condition3:
代码块3
...........
else:
代码块
---------------------
例子:
a=5
if a<0:
print('negative')
elif a==0:
print('zero')
elif a<6:
print('less than 6')
分支嵌套:
score = 80
if score < 0:
print('wrong')
else:
if score ==0:
print('egg')
elif score <= 100:
print('right')
else:
print('too big')
num = input('Please input a number:')
num = int(num)
---------------------------
输入2个数字,输出最大值(不考虑输入的不是数字)
---------------------------
num1 = int(input('Please input a number:'))
num2 = int(input('Please input a number:'))
if num1 > num2:
print(num1)
else:
print(num2)
练习:
给定一个不超过5位的正整数,判断其有几位
使用input函数
num1 = int(input('>>'))
if num1 >= 1000:
if num1 >= 10000:
print(5)
else:
print(4)
else:
if num1 >= 100:
print(3)
elif num1 >=10:
print(2)
else:
print(1)
循环---while语句
语法
while condition:
block
当条件满足,即conditione为Ture,进入循环体,执行block
flag=10
while flag:
print(flag)
flag -= 1
执行结果是什么?为什么?
10
9
8
7
6
5
4
3
2
1
如果flag=-10 可以吗?如何改造
flag +=1
循环---for语句*
语法
for element in iteratable:
block
当可迭代对象中有元素可以迭代,进入循环体,执行block
range函数
range(5)
0、1、2、3、4
range(1,5)
前包后不包原则:1、2、3、4
--------
for i in range(5):
print(i)
执行结果是什么,为什么?
如果想倒叙打印呢?
执行结果:
0
1
2
3
4
倒叙打印:
for i in range(5,1,-1):
print(i)
5
4
3
2
--------
for i in range(1,5):
print(i)
1
2
3
4
---------
range(开始 , 结束 ,【步长->默认不写为1】)
for i in range(5 , 1, -1):
print(i)
5
4
3
2
--------
循环continue语句
中断当前循环的当次执行,继续下一次循环
计算10以内的偶数(for循环)
--------
for i in range(10):
if not i%2:
print(i)
0
2
4
6
8
--------
for i in range(10):
if i & 1:
continue
print(i)
0
2
4
6
8
if 0 假,print打印输出; if 1 真,执行continue
--------
for i in range(0,10,2): #减小迭代次数
print(i)
0
2
4
6
8
--------
终止当前循环
计算1000以内的被7整除的前20个数(for循环)
count = 0
for i in range(0,1000,7):
print(i)
count+=1
if count >=20:
break
循环 continue、break语句
总结
continue和break是循环的控制语句,只影响当前循环,包括while、for循环
如果循环嵌套, continue和break也只影响语句所在的那一层循环
continue和break 不是跳出语句块,所以 if cond: break 不是跳出if,而是终止if外的break所 在的循环
网友评论