2月17日总结
流程控制
一、顺序结构
说明:代码从上往下依次执行,每次语句只执行一次(默认从上往下执行)
二、分支结构:
说明:根据条件选择执行或者不执行代码,使用条件语句(if)
1.单分支结构
说明:一个条件语句,执行的结果达到的需求结果
语法要求:if 表达式 :
代码段缩进
2.双分支结构
说明:满足条件语句到达一个执行结果,不满足条件语句到达另一个执行结果
语法要求:if 表达式:
代码段缩进
else:
代码段缩进
3.多分支结构
说明:根据不同条件,执行不同结果
语法结构:if 表达式:
代码段
elif 表达式:
代码段
elif 表达式:
代码段
(根据条件数量定)
else
三、循环结构
for in 循环
说明:利用循环执行需要循环的代码
语法结构:
for 变量 in 序列(容器类型):
if 表达式 (有需要条件控制循环体可以加条件语句)
循环结束后打印结果
四、range 函数
说明:创建一个等差数列(容器类型)
作业:
基础题
-
根据输入的成绩的范围打印
及格
或者不及格
。score = int(input("请输入您的成绩:")) if score < 0 or score > 100: print("成绩无效") elif score > 60: print("及格") else: print("不及格")
-
根据输入的年纪范围打印
成年
或者未成年
,如果年龄不在正常范围内(0~150)打印这不是人!
。age = int(input("请输入您的年龄:")) if age < 0 or age > 150: print("这不是人") elif age > 18: print("成年") else: print("未成年")
-
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息
a-b的结果不是奇数
a = int(input("请输入一个正整数:")) b = int(input("请输入一个正整数:")) if (a - b) % 2: print("奇数") else: print("不是奇数")
-
使用for循环输出 0~100内所有3的倍数。
for i in range(3, 100, 3): print(i)
-
使用for循环输出100~200内个位数或者十位数能被3整除的数。
for i in range(100, 201): if (i % 10 % 3 == 0 and i % 10 > 3) or (i % 100 // 10 % 3 == 0 and i % 100 // 10 > 3): print(i)
-
使用for循环统计100~200中十位数是5的数的个数
count = 0 for i in range(100, 200): if i % 100 // 10 == 5: count += 1 print(count)
-
使用for循环打印50~150中所有能被3整除但是不能被5整除的数
for i in range(50, 150): if i % 3 == 0 and i % 5 != 0: print(i)
-
使用for循环计算50~150中所有能被3整除但是不能被5整除的数的和
total = 0 for i in range(50,150): if i % 3 == 0 and i % 5 != 0: total += i print(total)
-
统计100以内个位数是2并且能够被3整除的数的个数。
count = 0 for i in range(0, 100): if i % 3 == 0 and i % 10 == 2: count += 1 print(count)
进阶题
-
输入任意一个正整数,求他是几位数?
注意: 这儿不能使用字符串,只能用循环
count = 0 a = input("请输入一个正整数:") for i in a: count += 1 print(count)
-
打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是
⼀个⽔仙花数,因为
1³ + 5³ + 3³
等于 153。for i in range(100, 1000): if (i // 100)**3 + (i // 10 % 10)**3 + (i % 10)**3 == i: print(i)
-
判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)
-
输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
for j in range(1, 10): for i in range(1, j+1): x = i * j print(i,'*',j,'=',x, end=" ") print()
-
这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)
for x in range(1,34):
for y in range(1,51):
for z in range(1,101):
if 3*x +2*y + (1/2*z) == 100 and x + y + z ==100:
print(x,y,z)