分支结构
1.if-elif-else结构
1)语法:
if 条件1:
代码1
elif 条件2:
代码2
elif 条件3:
代码3
...
else:
代码N
2)执行过程:
判断1是否为True,如果是则执行1,整个if-elif-else结构结束:
如果1为False,判断2,依次类推
如果所有elif都不成立,执行else
根据年龄范围打印:少年(-14)、青年(14-25)、壮年(26-35)、中年(36-50)、老年(50-)
age = 26
if age < 14:
print('少年')
elif age <= 25: # 因为上级条件没执行,所以可以省略上级条件
print('青年')
elif age <= 35:
print('壮年')
elif age <= 50:
print('中年')
elif age > 50:
print('老年')
2. if嵌套
if结构中可以再出现其他if语句
判断一个数是否为偶数,并且再判断这个数是否是4的倍数;并打印结论
num = 13
if num & 1 == 0:
print('偶数')
if num % 4 == 0:
print('4的倍数')
else:
print('奇数')
if num % 10 == 3:
print('个位数是3')
for循环
循环结构:for循环和while循环
1.for循环
1)语法:
for 变量 in 序列:
循环体
2)说明:
for - 关键字,固定写法
变量名 - 和声明变量时的要求一样
in - 关键字,固定写法
序列 - 容器型数据:字符串、列表、字典、元组、集合、迭代器、生成器、range
: - 固定写法
循环体 - 和for保持一个缩进的一条或者多条语句;需要重复执行的语句
3)执行过程:
让变量取序列中取值,一个一个取,取完为止;每取一个值,执行一次循环体
(for循环通过控制序列中元素个数来控制循环次数)
for x in 'abc12':
print(x)
print('hello')
2.range函数 - 为了让for更加方便的控制次数
range(N) - 产生0~N-1的数字序列
range(M,N) - 产生M~N-1的数字序列
range(M,N,step) - 产生M~N-1,间隔step的数字学列
作用:
1.产生指定的数字序列
2.控制循环次数
如果只是为了控制循环次数,不需要变量的时候可以用_命名
for x in range(4):
print(x)
print('-----------------')
for x in range(3,10):
print(x)
print('-----------------')
for x in range(0,10,2):
print(x)
print('-----------------')
练习1:统计0~100中能被3整除的个数
# 方法一:
num_1 = 0
for i in range(101):
if i % 3 == 0:
num_1 += 1
print(i)
print(num_1)
print('-----------------')
# 方法二:
for i in range(0,101,3):
print(i)
练习2:统计1~100中能被4整除的并且个位数是2的数字的个数
num_2 = 0
for i in range(1, 101):
if i % 4 == 0 and i % 10 == 2:
print(i)
num_2 += 1
print(num_2)
练习3:计算1+2+3+.....+100
num_3 = 0
for i in range(1,101):
num_3 += i
print(num_3)
while循环
1.while循环
1)语法
while 条件:
循环体
2)说明
while - 关键字;固定写法
条件语句 - 任何有结果的表达式都可以;数据、已经声明过的变量、运算表达式(赋值语句除外)
: - 固定写法
循环体 - 和while保持一个缩进的一条或者多条语句;(需要重复执行的语句)
3)执行过程:
先判断条件语句是否为True,为True就执行循环体,然后再判断条件是否为True...依次类推,
直到条件为False循环结束
num = 0
while num < 5:
print('====')
num += 1
2.for循环和while的选择
1)什么时候用for循环
a.循环次数确定的时候
b.遍历序列
2)什么时候使用while循环
a.死循环
b.循环次数不确定的时候
# 不断输入数字,直到输入的值是0为止
value = 1
while value != '0':
value = input('请输入数字:')
1练习:猜数字游戏
2游戏开始的时候随机产生一个100以内的数字,直到猜对结束
3没猜对给出相应提示
number = randint(0, 100)
answer = -1
while answer != number:
answer = int(input('请输入你的答案:'))
if answer > number:
print('大了')
elif answer < number:
print('小了')
elif answer == number:
print('对了,答案就是', number)
循环关键字
1.continue
continue是循环体中的关键字
当执行循环体的时候,如果遇到continue,结束当次循环,直接进入下一次
for x in range(4):
print('hello')
if x % 2 == 0:
continue
print('Hi')
2.break
break是循环体中的关键字
当执行循环体的时候,如果遇到break,整个循环直接结束
for x in range(4):
print('===')
break
print('+++')
# 功能:不断输入数字直到输入为0,求出所有奇数的和
sum1 = 0
while True:
value = int(input('请输入数字:'))
if value == 0:
break
if value % 2 == 0:
continue
sum1 += value
print(sum1)
3.else
1)完整的for循环
for 变量 in 序列:
循环体
else:
代码段
2)完整的while循环
while 条件:
循环体
else:
代码段
else中的代码段:当循环自然结束的时候就执行,如果是break强制打断则不执行
else的意义:可以通过判断else中的代码有没有执行来判断有没有遇到break
for x in range(4):
print(x)
if x == 2:
break
else:
print('else')
循环嵌套
循环嵌套:外面的循环执行一次,里面的循环要执行完毕
练习:计算1!+2!+3!+....10!=
方法一:
num = 0
for i in range(1, 11):
num1 = 1
for j in range(1, i+1):
num1 *= j
num += num1
print(num1, num)
print(num)
方法二:
sum1 = 0
sum2 = 1
for num in range(1,11):
sum2 *= num
sum1 += sum2
print(sum1)