一、分支
1.if-elif-else
1)语法:
if 条件语句:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3
。。。
else:
代码段N
其他语句
2)执行过程:
先判读条件语句1是否为True,为True就执行代码段1,然后整个if-elif-else结构结束;
如果为False,就判断条件语句2是否为True,为True就执行代码段2,然后整个if-elif-else结构结束;
如果为False,就判断条件语句3是否为True,为True就执行代码段3,然后整个if-elif-else结构结束;
以此类推。。。
如果所有条件语句都不成立,执行else后面的代码段
例如: 根据年龄范围打印:少年(14以下)、青年(14~25)、壮年(26-35)、中年(36-50)、老年(59以上)。
age = 10
if age < 14:
print('少年')
elif 14 <= age <= 25:
print('青年')
elif 25 < age <= 35:
print('壮年')
elif 35 < age <= 50:
print('中年')
else:
print('老年')
2.if嵌套
if结构中的代码块中可以再出现其他的if语句
例如: 判断一个数是否是偶数,并且再判断这个数是否是4的倍数。
方法一:(一般不用)
num = 8
if num & 1 == 0:
print('偶数')
else:
print('奇数')
if num % 4 == 0:
print('是4的倍数!')
方法二:
num = 19
if num & 1 == 0:
print('偶数')
if num % 4 == 0:
print('是4的倍数')
else:
print('奇数')
2.for循环
1)语法:
for 变量 in 序列:
循环体
2)说明:
for —— 关键字,固定写法
变量 —— 和声明变量时的要求一样
in —— 关键字,固定写法
序列 —— 容器型数据:字符串、列表、字典、元组、集合、迭代器、生成器、range
: —— 固定写法
循环体 —— 和for保持一个缩进的一条或者多条语句;需要重复执行的语句
3)执行过程:
让变量去序列中取值,一个一个的取,取完为止;每取一个值,执行一次循环体。
(for循环可以通过控制序列中元素的个数来控制循环的次数)
例如:
for x in 'abc12':
print('=====')
print('+++++')
4).range函数 ——为了让for更加方便的控制次数
1)range(N) —— 产生0-N-1的数字序列
例如:range(4) —> 0,1,2,3
2)range(M,N) —— 产生M-N-1的数字序列
例如:range(3,10) —> 3,4,5,6,7,8,9
3)range(M,N,step) —— 从M开始每隔step产生下一个数字,到N前一个数位子
例如;range(0,10,2) —> 0,2,4,6,8
作用: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)
注意:如果for循环中变量取出来的值在循环体中无用,这个变量可以直接用_来命名.
练习1;打印0-100中所有能被3整除的数
for x in range(0, 101):
if x % 3 == 0:
print(x)
# 方法二
for x in range(0, 101, 3):
print(x)
练习2:统计1-100中能被4整除并且个位数是2的数字的个数
count = 0
for x in range(1, 101):
if (x % 4 == 0) and (x % 10 == 2):
count += 1
print('个数:', count)
练习3:计算1+2+3+4+...100
sum1 = 0
for x in range(1, 101):
sum1 += x
print('和:', sum1)
三、while循环
1)语法:
while 条件语句:
循环体
2)说明:
while — 关键字;固定写法
条件语句 — 任何有结果的表达式:数据、已经声明过的变量,运算表达式(不能是赋值语句)等
: — 固定写法
循环体 — 和while保持一个缩进的一条或者多条语句;需要重复执行的语句。
3)执行过程:
先判读条件语句是否为True,如果为True就执行循环体;执行完循环体再判断条件语句是否为True,
为True又执行循环体,以此类推,知道条件语句的结果是False循环就结束。
num = 0
while num < 5:
print('===')
num += 1
4).for循环和while的选择
(1)什么时候使用for循环:
①循环次数确定的时候
②遍历序列
(2)什么时候使用while循环:
①死循环
②循环次数不确定
练习1、 不断输入数字,直到输入的值是0为止
value = input('请输入数字:')
while value != '0':
value = input('请输入数字:')
练习2:猜数字游戏
游戏开始的时候随机产生一个数字,不断输入数字,直到输入的数字和产生的数字一致,游戏就结束。 在没有猜对的时候,给出‘大了’或者‘小了’的提示.
number = randint(0, 100) # 产生0-100的随机数,并且保存在number中
x = int(input('请输入数字:'))
while x != number:
x = int(input('请输入数字:'))
if x > number:
print('大了')
elif x < number:
print('小了')
print('游戏结束!')
四、循环关键字
1.continue
continue是循环体中的关键字.
作用:当执行循环体的时候,如果遇到continue,那么当次循环结束,直接进入下次循环的判断.
2.break
break是循环体中的关键字.
作用:当执行循环体的时候,如果遇到break,那么整个循环直接结束.
练习:不断输入数字直到输入的是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中的代码段:当循环自然死亡(for后的变量数据取完,while后面的条件为False),else后面的代码段会在循环结束后执行;如果循环是因为遇到break而结束的那么else后面代码段就不会执行。
else的意义:可以通过判断else中的代码有没有执行来判断循环有没有遇到break。
例如:
for x in range(4):
print(x)
else:
print('else')
4.while循环的用法
while True:
需要重复执行的代码段
if 退出循环的条件:
break
五、循环嵌套
循环嵌套:外面的循环执行一次,里面的循环要执行完。
例如:
for x in range(3):
for y in range(4):
print(x, y)
练习:计算1!+2!+3!+...10! (N!=1 * 2 * 3 * 4 * ...N)
方法一:
sum1 = 0
# 将1-10取出来
for x in range(1, 11):
# 计算取出来的数的阶层
sum2 = 1
for y in range(1, x+1):
sum2 *= y
# 将阶乘值加起来
sum1 += sum2
print(sum1)
方法二:
sum1 = 0
sum2 = 1
for num in range(1, 11):
sum2 *= num
sum1 += sum2
print(sum1)