流程控制语句

发布时间 2023-11-29 21:27:21作者: 小满三岁啦

if elif else

在 Python 中,条件语句 if 可以有不同的分支形式,包括单分支、双分支和多分支。

  1. 单分支:只有一个条件判断,只有在条件为真时执行相应的代码块。
if condition:
    # 当条件为真时执行的代码
  1. 双分支:有两个条件判断,根据条件的真假执行不同的代码块。
if condition1:
    # 当条件1为真时执行的代码
else:
    # 当条件1为假时执行的代码
  1. 多分支:有多个条件判断,根据不同的条件执行对应的代码块。
if condition1:
    # 当条件1为真时执行的代码
elif condition2:
    # 当条件2为真时执行的代码
elif condition3:
    # 当条件3为真时执行的代码
...
else:
    # 当以上条件都不满足时执行的代码

在多分支语句中,条件按顺序逐个判断,一旦条件为真,相应的代码块将会执行,后续的条件将不再判断。

这些不同的分支形式使得条件语句 if 更加灵活,可以根据具体的需求选择适合的分支形式来控制代码的执行流程。

score = input("请输入你的分数:")
score = int(score)

if score > 100:
    print("请检查输入, 分数只有100分.")
elif score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 70:
    print("还有上升空间")
elif score >= 60:
    print("一般")
else:
    print("不及格!等着挨揍吧!")

for循环

for variable in sequence:
    # 循环体

for 是循环的关键字。

variable 是循环变量,它会在每次循环中取 sequence 中的一个值。

sequence 是一个序列,任何一个可迭代对象。

hero_list = ["小满", "王昭君", "大乔", "小乔"]

for hero in hero_list:
    print(hero)
小满
王昭君
大乔
小乔
hero_set = {"小满", "王昭君", "大乔", "小乔"}

for hero in hero_set:
    print(hero)
    
# 因为是集合,所以结果会乱
小满
小乔
大乔
王昭君
hero_tuple = ("小满", "王昭君", "大乔", "小乔")

for hero in hero_tuple:
    print(hero)
小满
王昭君
大乔
小乔
hero_dict = {
    "小满": 3,
    "王昭君": 4,
    "小乔": 5
}

for hero in hero_dict:
    print(hero)
小满
王昭君
小乔
content = "你是年少的欢喜"
print(content[::-1])  # 喜欢的少年是你  
content = "你是年少的欢喜"
for word in content:
    print(word)
你
是
年
少
的
欢
喜

while循环

while condition:
    # code block

condition是一个布尔表达式,当condition的值为True时,循环会继续执行。每次循环执行完毕后,会再次检查condition的值,如果仍然为True则继续循环,否则跳出循环。

total = 0  # 初始化变量
i = 1  # 初始化计数器

while i <= 10:
    total += i
    i += 1

print("Sum of 1 to 10 is:", total)  
# Sum of 1 to 10 is: 55

while循环标志位

在Python的while循环中,你可以使用一个标志位(flag)来控制循环的执行。标志位是一个变量,当满足某个条件时,将其设置为TrueFalse,从而决定是否继续循环。

下面是一个使用标志位的while循环的示例:

flag = True  # 设置初始标志位为True

while flag:
    # 循环执行的代码

    if condition:
        flag = False  # 当满足某个条件时,将标志位设置为False

在这个示例中,循环会一直执行,直到满足某个条件时,将标志位flag设置为False,从而终止循环。

你可以根据具体的需求和条件,在循环体内部使用if语句来判断是否需要将标志位设置为False,从而退出循环。

count = 1
total = 0

# count就是标志位
while count:
    total += 1
    if total == 5:
        # 不满足条件,执行完当次循环就结束整个循环
        count = 0
    print(total)
1
2
3
4
5

break语法

在Python中,break是一个控制流语句,用于终止当前的循环(for循环或while循环)并跳出循环体。当break被执行时,程序将立即跳出当前循环,继续执行循环之后的代码。

下面是break语法的示例:

for item in iterable:
    if condition:
        break
    # 在满足条件时执行的代码

while condition:
    if condition:
        break
    # 在满足条件时执行的代码

在这两个示例中,当某个条件满足时,break语句将会执行,终止当前的循环,并跳出循环体。

需要注意的是,break语句只能用于循环结构中,如果在没有嵌套循环的情况下使用break,将会导致SyntaxError错误。

hero_list = ["小满", "王昭君", "小乔", "大乔", "阿珂"]
for hero in hero_list:
    if hero == "大乔":
        break
    print(hero)
小满
王昭君
小乔

continue语法

在Python中,continue是一个控制流语句,用于跳过当前循环中的剩余代码,并继续下一次循环的执行。当continue被执行时,程序将会跳过当前迭代中的剩余代码,直接开始下一次迭代。

下面是continue语法的示例:

for item in iterable:
    if condition:
        continue
    # 在不满足条件时执行的代码

while condition:
    if condition:
        continue
    # 在不满足条件时执行的代码

在这两个示例中,当某个条件满足时,continue语句将会执行,跳过当前迭代的剩余代码,并直接进入下一次迭代。

需要注意的是,continue语句只能用于循环结构中,如果在没有嵌套循环的情况下使用continue,将会导致SyntaxError错误。

hero_list = ["小满", "王昭君", "小乔", "大乔", "阿珂"]
for hero in hero_list:
    if hero == "大乔":
        continue
        # 遇到了continue 下面的代码不会被执行了
    print(hero)
小满
王昭君
小乔
阿珂

循环之后的else

一言以蔽之:

当循环没有被break结束,而是正常走完整个循环,就会执行else的代码

如果循环没有走完,被break打断了,那么else的代码就不会被执行到

hero_list = ["小满", "王昭君", "小乔", "大乔", "阿珂"]
for hero in hero_list:
    if hero == "大乔":
        break
    print(hero)
else:
    print("这句话不会被打印,因为循环内部有break")
小满
王昭君
小乔
hero_list = ["小满", "王昭君", "小乔", "大乔", "阿珂"]
for hero in hero_list:
    print(hero)
else:
    print("循环正常结束,我被打印啦!")
小满
王昭君
小乔
大乔
阿珂
循环正常结束,我被打印啦!
hero_list = ["小满", "王昭君", "小乔", "大乔", "阿珂"]
count = len(hero_list)

while count > 0:
    count -= 1
    print(hero_list[count])
else:
    print("循环正常结束,我被打印啦!")
阿珂
大乔
小乔
王昭君
小满
循环正常结束,我被打印啦!
hero_list = ["小满", "王昭君", "小乔", "大乔", "阿珂"]
count = len(hero_list)

while count > 0:
    count -= 1
    if count == 1:
        break
    print(hero_list[count])
else:
    print("这句话不会被打印,因为循环内部有break")
阿珂
大乔
小乔

嵌套循环

嵌套循环在Python中是指在一个循环内部包含另一个循环。嵌套循环允许您在循环的每个迭代中执行多个操作。

下面是一个简单的示例,说明什么是Python的嵌套循环:

for i in range(3):  # 外层循环
   for j in range(2):  # 内层循环
       print(i, j)

在这个例子中,外层循环将执行3次,内层循环将在每次外层循环迭代时执行2次。因此,这个嵌套循环将打印出6行输出,分别是(0, 0), (0, 1), (1, 0), (1, 1), (2, 0)(2, 1)

# 登录功能
# ---> 存储 字典存储用户的登录信息
# 输入框输入 用户名和密码
# 可以尝试 3 次 ----> 用户名或Miami错误的话就要重新输入了!
# 第一次的时候告诉你还有两次
# 最后一次的时候告诉你还愿意继续尝试吗?
# 如果选择继续尝试的话 ---> 继续尝试

user_dict = {"amigo": "123"}

number = 3
# 这里不用写 >= 
while number > 0: 
    username = input("请输入您的用户名: >> ".strip())
    password = input("请输入您的密码: >>>".strip())

    number -= 1
    
    if username in user_dict and password == user_dict.get(username):
        print(f"登录成功,{username} 欢迎您!")
        break
    else:
        print(f"用户名或者密码错误,你还有{number}次机会")
        if number != 0:
            continue
        else:
            again = input("是否继续尝试,继续尝试输入q: >>> ")
            if again.casefold() == "q":
                number = 3
            else:
                print("感谢使用")
                # 这里不用写break
                # break

range

在Python中,range()是一个内置函数,用于生成一个整数序列。它常用于循环中,用于指定循环的次数或迭代特定范围的值。

range()函数可以使用不同的参数来生成不同的整数序列。它可以接受一个、两个或三个参数:

  • range(stop):生成从0到stop-1的整数序列。
  • range(start, stop):生成从startstop-1的整数序列。
  • range(start, stop, step):生成从startstop-1的整数序列,步长为step

下面是一些使用range()函数的示例:

for i in range(5):
    print(i)  # 输出:0, 1, 2, 3, 4

for i in range(1, 6):
    print(i)  # 输出:1, 2, 3, 4, 5

for i in range(1, 10, 2):
    print(i)  # 输出:1, 3, 5, 7, 9

你也可以将range()函数的结果转换为一个列表,以便随后使用:

numbers = list(range(1, 6))
print(numbers)  # 输出:[1, 2, 3, 4, 5]

需要注意的是,range()函数的起始值是包含在序列中的,而结束值是不包含在序列中的。因此,在使用range()函数时,循环的终止条件通常是stop的值。

拓展:参数可以为负数

是的,range()函数的第三个参数可以是负数,并且前面两个参数也可以是负数。

当第三个参数为负数时,range()函数将生成递减的整数序列。起始值应大于结束值,并且步长值为负数。下面是一个使用负数步长的示例:

for i in range(10, 0, -2):
    print(i)  # 输出:10, 8, 6, 4, 2

在这个示例中,range(10, 0, -2)将生成从10递减到1的整数序列,步长为-2。

同样,起始值和结束值也可以是负数,只需满足起始值大于结束值,并且步长值为正数或负数。下面是一个使用负数起始值和结束值的示例:

for i in range(-5, -10, -1):
    print(i)  # 输出:-5, -6, -7, -8, -9

在这个示例中,range(-5, -10, -1)将生成从-5递减到-9的整数序列,步长为-1。