一、分支结构
1.if-elif-else结构
执行过程:先判断条件语句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-45),老年(>50)
age = eval(input('输入要判断的年龄'))
if age < 14:
print('少年')
elif 14 <= age <= 25: # 也可以直接<=25,因为前一个条件在不满足的情况下才会执行第二个if
print('青年')
elif 26 <= age <= 35:
print('壮年')
elif 36 <= age <= 50:
print('中年')
else:
print('老年')
2.if 嵌套
if结构中的代码块可以再出现其他的If语句
如:判断一个数是否是偶数,并再判断这个数是否是4的倍书
num = eval(input("请输入需要判断的数字"))
if num & 1 == 0:
print('%d是偶数' % num)
if num % 4 == 0:
print('%d是2的倍数也是4的倍数' % num)
else:
print('%d是2的倍数但是不是2的倍数' % num)
else:
print('%d是奇数' % num)
if num % 10 == 3:
print('个位数是3')
二、循环结构
1.for循环
语法:
for 变量 in 序列:
循环体
说明:
for - 关键字,固定写法
变量名 - 和声明变量的要求是一样的
in - 关键字,固定写法
序列: - 结果是容器型数据:字符串,列表,元组,字典,集合,迭代器,生成器 range
: - 固定写法
循环体 - 和for保持一个缩进的一条或者多条语句:需要重复执行的语句
执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值,执行一次循环体
通过控制序列中元素的个数来控制循环的个数
for i in 'python':
print(i)
'''
i == p,print(i)=p
i == y,print(i)=y
i == t,print(i)=t
i == h,print(i)=h
i == o,print(i)=o
i == n,print(i)=n
range函数:为了让for循环更方便的控制循环次数
range(N正整数) - 产生0~N-1的数据序列
range(4) -> 0,1,2,3
range(M,N) - 产生M~N-1的数据序列
range(3,10) -> 3,,4,5,6,7,8,9
range(m,n,step) - 产生m开始每次+step产生下一个数字到n前一个数为止的序列
range(0,10,2) -> 0,2,4,6,8
for x in range(4):
print(x)
for x in range(0, 10, 2):
print(x)
for x in range(3, 10):
print(x)
作用:产生指定的数字序列;控制循环次数
注意:如果for循环中取出来的变量在循环体中无用,这个变量可以直接用_命名
如:练习:打印0-100中能被3整除的数:
a = []
for i in range(101):
if i % 3 == 0:
a.append(i)
print(a)
for x in range(0, 101, 3):
print(x)
统计 1-100中能被4整除且个位数是2的数字的个数
b = []
for x in range(1, 101):
if x % 4 == 0 and x % 10 == 2:
b.append(x)
print('100以内能被4整除且个位数是2的数的个数为%d' % len(b))
print('他们分别是:', b)
运行结果为:
100以内能被4整除且个位数是2的数的个数为5
他们分别是: [12, 32, 52, 72, 92]
[Finished in 0.2s]
count = 0 # 计数的套路
for x in range(1, 101):
if x % 4 == 0 and x % 10 == 0:
print(x)
count += 1
print('一共有%d个' % count)
计算1+、、、、+100
x = 1
for i in range(1, 101):
sum1 += x
x += 1
print(sum1)
2.while循环
语法:
while 条件语句:
循环体
说明:
while - 关键字:固定写法
条件语句 - 任何有结果的表达式;数据、已经声明过的变量、运算符表达式(不能是赋值语句)等
: - 固定写法 缩进
循环体 - 和while保持一个缩进的一条或者多条语句;(需要重复执行的语句)
执行过程:
先判断条件语句是否是True,如果为True就执行循环体;执行完循环体再判断条件语句是否为True,
为True继续执行循环体,以此类推,直到条件语句的结果为False 循环结束。
num = 0
while num < 5:
print('2')
num += 1
# for 和 while的选择
使用for循环:
a.循环次数确定的时候
b.遍历序列
使用while循环:
a.死循环
b.循环次数不确定
如:不断输入数字,直到输入的数字是0为止
例如:猜数字游戏:游戏开始的时候随机产生一个100以内数字,不断输入数字直到输入的数字和产生的数字一致,游戏结束在没有猜对的情况下,给出大了或者小了的提示信息。
number = randint(0, 100)
value = eval(input('请输入您的数字'))
co = 0
while number != value:
if value > number:
print('您猜的数字大了')
value = eval(input('请再次输入您的数字'))
elif value < number:
print('您猜的数字小了')
value = eval(input('请再次输入您的数字'))
co += 1
print('猜对了,数字是%d' % number, '共猜%d次' % co)
while常见使用方法:
while True:
重复执行的代码
if 退出循环的代码
break
3.循环嵌套
循环嵌套:外面的循环执行一次,里面的循环要执行完
例如:计算1!+2!+3!+...+10!
sum1 = 0
# 将1~10取出来
for num in range(1, 11):
# 计算取出来的数的阶层
sum2 = 1
for x in range(1, num+1):
sum2 *= x # 循环:一直重复执行 乘以X之后再赋值给sum2
# 将阶乘值加起来
sum1 += sum2
print(sum2)
print(sum1)
4.循环中的关键字
1.continue
continue 是循环体内的关键字
作用是:当执行循环体的时候,如果遇到continue,当次循环结束,直接进入到下次循环的判断。
for x in range(4):
print('===')
continue
print('+++')
运行结果不会出现+++
2.break
break也是循环体中的关键字
continue是结束当次循环,
当执行循环体的时候,如果遇到break 那么整个循环直接结束
例如:不断输入数字,直到输入的0为止,然后将输入的所有奇数求和
sum1 = 0
while True:
value = eval(input('输入数字:'))
if value == 0:
break
if value % 2 == 0:
continue
sum1 += value
print(sum1)
3.else
for var in 序列:
循环体
else:
代码段
while 条件:
循环体
else:
代码段
else遇到break就不会执行
当循环自然死亡,(for 后的变量数据取完了或者while后的条件为false),else后面的代码段会在循环结束后执行
如果循环是因为遇到break而结束的,else后面的代码段就不会执行
else的意义:通过判断else中的代码有没有执行来判断循环有没有break
作业:
numbers=1
for i in range(0,20):
numbers*=2
print(numbers)
使numbers1累乘2,20次
summation=0
num=1
while num<=100:
if (num%3==0 or num%7==0) and num%21!=0:
summation += 1
num+=1
print(summation)
计算100以内能被3或者7整除和同时被21整除的数字的个数
编程实现题;
- 求1到100之间所有数的和、平均值
for 实现:
sum = 0
count = 0
for i in range(1,101):
sum+=i
count+=1
print(sum,sum/count)
while实现:
Sum = 0
count = 0
i = 1
while i <= 100:
Sum+=i
count+=1
i+=1
print(Sum,Sum/count)
- 计算1-100之间能3整除的数的和
for实现:
Sum = 0
for i in range(1,101):
if i % 3 ==0:
Sum = Sum + i
print(Sum)
while实现:
i=1
Sum = 0
while i<=100:
if i % 3 ==0:
Sum+=i
i+=1
print(Sum)
- 计算1-100之间不不能被7整除的数的和
while实现:
i=1
Sum = 0
while i<=100:
if i % 7 !=0:
Sum+=i
i+=1
print(Sum)
for实现:
Sum = 0
for i in range(1,101):
if i % 7 != 0:
Sum+=i
print(Sum)