Python控制结构实践之五
【摘要】 条件语句if else可以单独只写if 也可以写if else 还可以有多个条件if elif elif elif else从上面可以看出来,else不是必须的,只是当条件都不符合时可以执行的代码。# 条件并不是必须得时布尔值,这里的条件会进行隐式的数据类型转换,哪怕是数字 字符串也可以进行判断。if 条件: 条件为True执行的语句else: 条件为False执行的语句if 条...
条件语句
if else
可以单独只写
if
也可以写if else
还可以有多个条件if elif elif elif else
从上面可以看出来,else不是必须的,只是当条件都不符合时可以执行的代码。
# 条件并不是必须得时布尔值,这里的条件会进行隐式的数据类型转换,哪怕是数字 字符串也可以进行判断。
if 条件:
条件为True执行的语句
else:
条件为False执行的语句
if 条件:
条件为True执行的语句
if 条件1:
条件1为True执行的语句
elif 条件2:
条件2为True执行的语句
elif 条件n:
条件n为True执行的语句
else:
都不符合条件时执行的语句
如果说对应的elif写的太多,整个条件判断就会很丑陋,那么就可以使用match case代替
match case
match subject:
case <pattern_1>:
<action_1>
case <pattern_2>:
<action_2>
case <pattern_3>:
<action_3>
case _:
<action_wildcard>
case _
当前面的条件都不匹配时,则执行最后的语句day = 4
match day:
case 0:
print('周日')
case 1:
print('周一')
case 2:
print('周二')
case 3:
print('周三')
case 4:
print("周四")
case 5:
print('周五')
case 6:
print('周六')
case _:
print("输入错误")
import datetime
import calendar
today = datetime.datetime.now().weekday()
# 获取到今天是周几的英文单词
day = calendar.day_name[today]
match day:
case "Monday":
print('周一')
case "Tuesday":
print('周二')
case "Wednesday":
print('周三')
case "Thursday":
print('周四')
case "Friday":
print('周五')
case "Saturday":
print('周六')
case "Sunday":
print('周日')
case _:
print("输入错误")
import datetime
today = datetime.datetime.now().weekday() # 获取到今天是周几用 0 - 6表示 python中默认0代表周一
print(today) # 0 - 6
match today:
case 6:
print('周日')
case 0:
print('周一')
case 1:
print('周二')
case 2:
print('周三')
case 3:
print("周四")
case 4:
print('周五')
case 5:
print('周六')
case _:
print("输入错误")
循环语句
重复的执行某些代码,如果有一系列的代码需要被执行多次时,可以使用循环。
range()
range可以生成一个由数字组成的列表。可以写两个参数,如果只写一个参数,则生成一个列表[0, 1, 2, 3, 4, 5,……n]
range(10) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(5, 7) # [5, 6]
range(5, 10) # [5, 6, 7, 8, 9]
for
利用range可以快速进行循环操作,并且可以定义的循环次数
for i in range(参数): # i就是对应的range中的每个值
代码
else:
# 循环结束后执行else
判断1-100之间能同时被3和5整除的数字
for i in range(1, 101):
if i % 3 == 0 and i % 5 == 0:
print(i)
99乘法表
i = 1
for j in range(1, 10):
print(i, j)
i2 = 2
for j in range(1, 10):
print(i2, j)
for i in range(1, 10):
for j in range(1, 10):
print(i, j)
#-----------------
for i in range(1, 10):
for j in range(1, 10):
# print(str(i) + "x" + str(j) + '=' + str(i * j))
print("{}x{}={}".format(j, i, i * j), end="\t")
print()
#-------------------
for i in range(1, 10):
for j in range(1, i + 1):
# print(str(i) + "x" + str(j) + '=' + str(i * j))
print("{}x{}={}".format(j, i, i * j), end="\t")
print()
输出100以内的质数
# 什么是质数
# 想要判断一个数是不是质数,就要拿这个数和 2 - (数 -1)的所有数字进行比较
# 比如要判断10 (2 3 4 5 6 7 8 9)
# 判断2 - 100有多少个质数
for i in range(2, 101):
# print("判断的数字是{}".format(i))
for j in range(2, i):
# print("{}是否能被{}整除".format(i, j), i % j == 0)
if i % j == 0: # 如果判断过程中有一个能被某个数字整除则直接break
break # 结束该循环 下面代码不再执行
# 如果j是最后一个数 i - 1并且没有被break 说明这个数是质数
if j == i - 1:
print(i)
# AI
# 100以内的质数
for i in range(2, 101):
for j in range(2, i):
if i % j == 0:
break
else:
print(i)
# ⭐⭐⭐⭐⭐
# ⭐⭐⭐⭐⭐
# ⭐⭐⭐⭐⭐
# ⭐⭐⭐⭐⭐
# ⭐⭐⭐⭐⭐
for i in range(5):
for j in range(5):
print('⭐', end="")
print()
print("\n")
# ⭐
# ⭐⭐
# ⭐⭐⭐
# ⭐⭐⭐⭐
# ⭐⭐⭐⭐⭐
for i in range(5):
for j in range(0, i + 1):
print('⭐', end="")
print()
print()
# ⭐⭐⭐⭐⭐ 0 1 2 3 4 range(0, 5)
# ⭐⭐⭐⭐ 1 2 3 4 range(1, 5)
# ⭐⭐⭐ 2 3 4 range(2, 5)
# ⭐⭐ 3 4 range(3, 5)
# ⭐ 4 range(4, 5)
for i in range(5):
for j in range(i, 5):
print('⭐', end="")
print()
print()
# ⭐ 4空1星
# ⭐⭐ 3空2星
# ⭐⭐⭐ 2空3星
# ⭐⭐⭐⭐ 1空4星
# ⭐⭐⭐⭐⭐ 0空5星
for i in range(5):
num = 4 - i
for j in range(5):
# 在j < num 时输出空格 j >= 输出 星
if j < num:
print(' ', end="")
else:
print('⭐', end="")
print()
while
while使用更灵活,没有那么多的约束,但是在大部分情况下,用for循环会更方便
i = 0
while i < 10:
执行的代码
i += 1
else:
# 条件不满足的执行else (循环结束后)
# while 循环 0 - 5
i = 0
while i < 5: # 不包含5
print(i)
i += 1
# while循环 3 - 10
i = 3
while i < 10: # 不包含10
print(i)
i += 1
# whil 循环 10 - 3
i = 10
while i > 3:
print(i)
i -= 1
i = 0
while i < 5:
# 再来一个循环生成j
j = 0
while j < 5:
print('⭐', end="")
j += 1
print()
i += 1
for i in range(5):
for j in range(5):
print('⭐', end="")
print()
break
当在循环中使用break时,那么当前循环就会被结束
for i in range(10):
if i == 5:
break
print(i) # 0 1 2 3 4
continue
当在循环中使用时,结束当前的这一次循环进入到下一次循环中。(用的不多)
for i in range(10):
if i == 5:
continue
print(i) # 0 1 2 3 4 6 7 8 9
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)