流程控制
1.条件判断
1-1 条件判断语句(if语句)
- 执行的流程:
if 条件语句在执行时,会先对条件表达式进行求值判断(区别于条件运算符的是没有返值,而条件运算符是有返回值的)
语法:if 条件表达式:
代码块
a = int(input('请输入012三个数字'))
if a == 0:
print(1111)
if a == 1:
print('dfsfsdf')
if a == 2:
print(888)
- 代码块中保存着一组代码,同一个代码中的代码,要么都执行要么都不执行
- 代码块以缩进开始,直到代码恢复到之前的缩进级别进结束
- 代码块就是一种为代码分组的机制
1-2 input()函数
- 该函数用来获取用户的输入
- input()调用后,程序会立即暂停,等待用户输入
- 用户输入完内容后,点击回车程序才会继续向下执行
- 用户输入完成以后,其所输入的内容会以返回值的形式返回
# input接收到的数据一定是一个字符串,要想和int类型的数据进行比较,一定要转换类型
a = int(input('请输入012三个数字')) # int()将字符串强制转换int类型
print(type(a))
if a == 0:
print(1111)
if a == 1:
print('dfsfsdf')
if a == 2:
print(888)
print(111)
input() # 阻塞程序的作用
print(222)
1-3 if-else 语句
语 法:
if 条件表达式
代码块
else:
代码块
执行流程
- if-else语句在执行时,先对if后的条件表达式进行求值判断
- 如果为True,则执行if后的代码块
- 如果为False,则执行else后的代码块
a = int(input('请输入012三个数字'))
if a == 0:
print(1111)
else:
print(222)
1-4 if-elif-else 语句
# value = 15000
# if value >= 30000:
# print('有钱任性')
# elif value >= 20000 and value <= 30000:
# print('有钱真好')
# elif value >= 5000 and value <= 10000:
# print('工资还说的过去')
# elif value >= 10000:
# print('哥也月薪上万')
# elif value >= 2000:
# print('能养活自己了')
# else:
# print('吃土去吧!')
# if-elif-else 语句,和if-else语名一样,永远会有一个代码块会执行,代码是从上往下进行判断,
# 如果没有为True的条件表达式,直到判断else为止,然后执行else后面的代码块
# 指定输入的月份是都季节
month = float(input('请输入月份')) # 同上原理
if 0 <= month <= 12:
print('春季')
if month == 3 or month == 4 or month == 5:
print('春季')
elif month == 6 or month == 7 or month == 8:
print('夏季')
elif month == 9 or month == 10 or month == 11:
print('秋季')
elif month == 12 or month == 1 or month == 2:
print('冬季')
else:
print("你输入的月份是火星上的吧!")
3.循环控制
3-1 while 循环语句
i = 0
while i < 5:
i += 1 # 对i 进行自增长加1
print(i)
else:
print('循环正常结束')
# 死循环 首先是判断while句 为True 就执行结果,然后又去判断又执行一直重复这个过程
# while True < 10:
# print(11111)
#
# i = 0
# while i < 5:
# print((11111))
# while 循环三要素
# ① 设定一个初始值
# ② 对初始值进行条件判断,增加一个条件语句,对初始值进行一个条件表达式的限制
# ③ 初始值的自增长
# while True 控制打5次
# 打印5次的过程 当i=0时打印1次,然后自增长加1后i=1执行第2次,依次类推,当i=4时打印第5次,
# i再次自增长为i=5 判断while语句为false 跳出程序
# i = 0
# while i < 5:
# print(11111)
# i += 1 # 对i 进行自增长加1
# 以后同上 只是先进行了i的自增长 其打印结果一样 因此print的位置在那无关
i = 0
while i < 5:
i += 1 # 对i 进行自增长加1
print(11111)
# 完整的while循环语句的语法:当while循环正常执行结束,else语句就会执行,否则就不会执行
# while 条件表达式:
# 代码块
# else:
# 代码块
i = 0
while i < 5:
i += 1 # 对i 进行自增长加1
print(i)
else:
print('循环正常结束')
# 求100以内的偶数之和
# ① 获取1-100的数
# ② 筛选出1到100的数里面的偶数
# ③ 偶数相加
i = 0
r = 0
while i < 100:
i += 1
# print(i)
if i % 2 == 0:
r += i
print(r)
print(r)
4.循环嵌套
"""
*****
*****
*****
*****
*****
"""
# i = 0
# while i < 5:
# print('*',end='')
# print('*',end='')
# print('*',end='')
# print('*',end='')
# print('*',end='')
# i += 1
#
#
# i = 0
# while i < 5:
# print('*',end='')
# print('*',end='')
# print('*',end='')
# print('*',end='')
# print('*')
# i += 1
i = 0
while i < 5:
j = 0
while j < 5:
print('*',end='')
j += 1
print()
i += 1
[]
"""
* i行打印i+1个 i= 0 打印1个
** 1 打印2个
*** 2 打印3个 由此可知 j < i + 1
****
*****
"""
i = 0
while i < 5:
j = 0
while j < i + 1:
print('*',end='')
j += 1
print()
i += 1
"""
***** i 行打印5-i i = 0 打印5个
**** i = 1 打印4个
*** i = 2 打印3个
**
*
"""
i = 0
while i < 5:
j = 0
while j < 5 - i:
print('*',end='')
j += 1
print()
i += 1
第五讲作业
① 求1000以内所有水仙花数
水仙花数:水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
1,先获取到100到1000的三位数,
2,找出个位、十位、百位分别对应的数字
3,根据水仙花数的原理条件 打印输出
for i in range(100,1000):
a = i//100
b = i//10%10
c = i%10
if a ** 3 + b ** 3 + c ** 3 == i:
print(i)
D:\yiyong\venv\Scripts\python.exe D:/yiyong/homeowrk/第五讲作业.py
153
370
371
407
② 获取用户输入的任意数,判断其是否是质数
质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数
本质:质数首先是大于1的自然数,且只有1和他自己两个因数,也就是只能被1和他本身整除
z = int(input('请输入一个任意数:'))
if z > 1:
for i in range(2,z):
if z % i == 0 and z != i:
print(z,'不是质数')
break
else:
print(z,'是质数')
else:
print(z,'不是质数')