今日份总结
一、流程控制
-
顺序结构:代码从上往下依次执行,每天语句只执行一次。(默认) print('hello')
print('word')
-
分支结构:根据条件选择执行或者不执行部分代码(使用if) age = 10
if age >= 18:
print('成年')
else:
print('未成年')
-
循环结构:让代码重复执行(for、while)
for i in range(5):
print(i)
二、if分支结构
1、if单分支结构 - 如果… 就…
解决的问题:满足条件执行某个操作,添加不满足的时候就不执行
语法:
if 条件语句:
? 代码段(满足条件才会执行的代码)
if - 关键字;固定写法
条件语句 - 可以任何有结果的表达式,包括:具体的数据、运算表达式(赋值运算例外)、已经赋值过的
变量、函数调用表达式等
-
代码段 - 从结构上就是和if保持一个缩进的一条或者多条语句(至少一条);逻辑上,代码段就是条件成立
的时候才会执行的代码
age = 20
if age >= 18:
print('成年')
2、if双分支结构 - 如果…就…否则…
语法:
if 条件语句:
? 代码段1(满足条件需要执行的代码)
else:
? 代码段2(条件不满足的时候需要执行的代码)
代码段3(不管条件成不成立都执行)
year = 2001
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
print('闰年')
else:
print('非闰年')
3、if多分支结构 - 如果…就…如果…就…如果…就…否则…
语法:
if 条件1:
? 代码段1
elif 条件2:
? 代码段2
elif 条件3:
? 代码段3
…
else:
? 代码段N
注意:elif可以是任意多个,else可以有也可以没有
score = 83
if score >= 90:
print('优秀')
elif score >= 80:
print('良好')
elif score >= 70:
print('中等')
elif score >= 60:
print('及格')
else:
print('不及格')
三、for循环
1、for循环
1)语法:
for 变量 in 序列:
? 循环体(需要重复执行的代码)
2)说明:
for - 关键字;固定写法
变量 - 有效变量名(可以是已经定义的,也可以是没有定义的)
in - 关键字;固定写法
序列 - 容器类数据类型的数据,容器型数据类型包括:字符串、列表、字典、集合、元组、迭代器、生成器、range等
-
循环体 - 和for保持一个缩进的一条或者多条语句,循环体就是需要重复执行的代码
3)执行过程
让变量去序列中取值,一个一个的取,取完为止;取一个值就执行一次循环体
for循环的循环次数和序列中的元素的个数有关
2、range函数 - 创建等差数列(整数)
1)range(N) - 产生[0,N)的等差数列,差是1
2)range(M,N) - 产生[M,N)的等差数列,差是1
3)range(M,N,step) - 产生[0,N)的等差数列,差是step
3、应用场景
1)累计求和
第一步:定义变量保存结果,变量的初始值一般是零(求和)或者1(求乘积)
第二步:用循环一个一个的获取累计数据
第三步:在循环体将取到的每一个数据合并到结果对应的变量中
result = 0
for i in range(1,101):
result += i
print(result)
2)统计个数
第一步:定义变量保存最后的个数,变量默认内置是0
第二步:使用循环获取统计对象
第三步:遇到一个满足统计条件的数据个数就加1
count = 0
for i in range(1000):
if i % 2 == 1:
count += 1
print(count)
作业
基础题
-
根据输入的成绩的范围打印及格 或者不及格 。 score = float(input('请输入分数:'))
if score >= 60:
print('及格')
else:
print('不及格')
-
根据输入的年纪范围打印成年 或者未成年 ,如果年龄不在正常范围内(0~150)打印这不是人! 。 age = int(input('请输入年龄:'))
if age <= 18:
print('未成年')
elif age <= 150:
print('成年')
else:
print('这不是人!')
-
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数 a = int(input('请输入a的值:'))
b = int(input('请输入b的值:'))
if (a - b) % 2 == 1:
print(a - b)
else:
print('a-b的结果不是奇数')
-
使用for循环输出 0~100内所有3的倍数。 for i in range(0,101,3):
print(i)
-
使用for循环输出100~200内个位数或者十位数能被3整除的数。 for i in range(100,201):
if (i % 10 % 3) == 0 or (i // 10 % 10 % 3) == 0:
print(i)
-
使用for循环统计100~200中十位数是5的数的个数 count = 0
for i in range(100,201):
if i // 10 % 10 == 5:
count += 1
print(count)
-
使用for循环打印50~150中所有能被3整除但是不能被5整除的数 for i in range(50,151):
if i % 3 == 0 and i % 5 != 0:
print(i)
-
使用for循环计算50~150中所有能被3整除但是不能被5整除的数的和 sum = 0
for i in range(50,151):
if i % 3 == 0 and i % 5 != 0:
sum += i
print(sum)
-
统计100以内个位数是2并且能够被3整除的数的个数。 count = 0
for i in range(3,100,3):
if i % 10 == 2:
count += 1
print(count)
进阶题
-
输入任意一个正整数,求他是几位数?
注意: 这儿不能使用字符串,只能用循环
count = 0
num = input('请输入一个整数:')
for i in num:
if i != '':
count += 1
print(count)
-
打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字?方和等于该数本身。例如:153是 ?个?仙花数,因为 13 + 53 + 33 等于 153。 for num in range(100,1000):
if ((num // 100)**3 + (num // 10 % 10)**3 + (num % 10)**3) == num:
print(num)
-
判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数) num = int(input('请输入一个数字:'))
for i in range(2, num):
if num % i == 0:
print('不是素数')
break
else:
print('是素数')
break
-
输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 for i in range(1, 10):
for j in range(1, i+1):
print(j,'x',i,'=',i*j,end=' ')
print()
-
这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)
big_horse = 0
medium_horse = 0
small_horse = 0
for big_horse in range(34):
for medium_horse in range(51):
for small_horse in range(200):
if big_horse * 3 + medium_horse * 2 + small_horse * 0.5 == 100 and big_horse + medium_horse + small_horse == 100 :
print(big_horse,medium_horse,small_horse)
|