Python控制结构实践之五

举报
tea_year 发表于 2024/11/09 08:41:14 2024/11/09
【摘要】 条件语句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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。