python笔记3

目录

1、顺序结构

2、选择结构

3、多个条件的链接

4、模式匹配

5、循环结构

1、遍历for循环

1. 遍历列表

2. 遍历字符串

3. 遍历范围

4. 遍历字典

5. 遍历集合

2、无限while循环

3、break在循环中的使用

4、continue在循环中的使用

5、空语句pass

6、使用while循环模拟用户登录

7、嵌套循环打印出长方形、三角形、棱形和空心棱形

打印长方形:

打印三角形:

打印棱形:

打印空心棱形:


1、顺序结构

在Python中,顺序结构是一种基本的程序执行结构,它按照代码的书写顺序一步一步执行。下面是一个简单的Python代码示例,展示了顺序结构的基本原理:

# 获取用户输入的数值 a
a = float(input("Enter a number: "))

# 获取用户输入的数值 b
b = float(input("Enter another number: "))

# 计算 a + b 的结果,得到 sum
sum_result = a + b

# 输出 sum 的值
print("The sum is:", sum_result)

在这个例子中,代码依次执行以下步骤:

  1. 使用input函数获取用户输入的数值 a。
  2. 使用input函数获取用户输入的数值 b。
  3. 计算 a + b 的结果,并将结果存储在变量 sum_result 中。
  4. 使用print函数输出 sum_result 的值。

这就是典型的顺序结构,每个语句按照它们在代码中的出现顺序被依次执行。在Python中,没有显式的结束语句,而是通过缩进来表示代码块。缩进的级别决定了代码的嵌套结构。

2、选择结构

选择结构是编程中常见的控制结构之一,它允许根据某个条件选择性地执行不同的代码块。在Python中,最常见的选择结构是使用 if 语句。

以下是一个简单的Python代码示例,展示了选择结构的使用:

# 获取用户输入的数值
number = int(input("Enter a number: "))

# 判断数值的正负性并输出对应的信息
if number > 0:
    print("The number is positive.")
elif number < 0:
    print("The number is negative.")
else:
    print("The number is zero.")

在这个例子中,if 语句用于根据用户输入的数值执行不同的代码块:

  • 如果 number 大于 0,则执行第一个 print 语句,输出 "The number is positive."。
  • 如果 number 小于 0,则执行 elif(else if)语句下的 print 语句,输出 "The number is negative."。
  • 如果上述条件都不满足,则执行 else 语句下的 print 语句,输出 "The number is zero."。

这种选择结构允许程序根据不同的条件执行不同的代码,从而使程序更加灵活和适应不同的情况。

除了 ifelifelse 的基本结构,Python还支持嵌套的选择结构,可以在一个条件语句内部包含另一个条件语句,形成更复杂的逻辑判断。

嵌套 if 是指在一个 if 语句的代码块内部包含另一个 if 语句。这种结构允许在某个条件成立时进一步进行更详细的条件判断。以下是一个简单的例子:

# 获取用户输入的数值
number = int(input("Enter a number: "))

# 判断数值的正负性和奇偶性并输出对应的信息
if number > 0:
    print("The number is positive.")
    
    # 如果数值为正,进一步判断奇偶性
    if number % 2 == 0:
        print("The positive number is even.")
    else:
        print("The positive number is odd.")
elif number < 0:
    print("The number is negative.")
else:
    print("The number is zero.")

在这个例子中,如果用户输入的数值为正数,首先输出 "The number is positive.",然后在嵌套的 if 语句中判断该正数是奇数还是偶数,并输出相应的信息。

嵌套 if 结构的缩进表示,内部的 if 语句相对于外部的 if 语句是缩进的。在Python中,缩进是非常重要的,它决定了代码块的范围。请确保使用一致的缩进风格,以避免引起语法错误。

尽管嵌套 if 结构在某些情况下可以提供更复杂的逻辑判断,但在设计时要注意保持代码的可读性,避免过度嵌套,以免使代码难以理解和维护。

3、多个条件的链接

在Python中,可以使用逻辑运算符将多个条件链接在一起,以构建更复杂的条件判断。主要的逻辑运算符包括 andornot

and 运算符: 如果两个条件都为 True,整个表达式才为 True

# 示例:同时判断两个条件
if condition1 and condition2:
    # 执行某些代码

or 运算符: 如果两个条件中至少有一个为 True,整个表达式就为 True

# 示例:判断两个条件中至少有一个成立
if condition1 or condition2:
    # 执行某些代码

not 运算符: 用于取反,将 True 变为 False,将 False 变为 True

# 示例:判断条件的相反情况
if not condition:
    # 执行某些代码

以下是一个综合运用多个条件链接的例子:

# 获取用户输入的年龄和性别
age = int(input("Enter your age: "))
gender = input("Enter your gender (M/F): ")

# 判断年龄和性别是否满足某个条件
if age >= 18 and gender == 'M':
    print("You are an adult male.")
elif age < 18 and gender == 'F':
    print("You are a female minor.")
else:
    print("You do not meet the specified conditions.")

在这个例子中,使用了 andor 运算符来组合多个条件,以便更灵活地判断不同情况。这种方式使得可以根据用户的年龄和性别输出不同的信息。

4、模式匹配

在Python中,模式匹配是指使用 match 语句进行结构化的条件匹配。Python 3.10 版本引入了 match 语句,它提供了一种更直观、更强大的方式来进行条件匹配。与传统的 ifelifelse 结构相比,match 语句更适用于处理多个可能的模式。

以下是一个简单的 match 语句的例子,使用 match 语句匹配不同的数据类型:

# 定义不同类型的数据
data = [1, "hello", 3.14, True, None]

# 使用 match 语句进行模式匹配
for item in data:
    match item:
        case int:
            print(f"Found an integer: {item}")
        case str:
            print(f"Found a string: {item}")
        case float:
            print(f"Found a float: {item}")
        case bool:
            print(f"Found a boolean: {item}")
        case None:
            print("Found None")
        case _:
            print("Found an item of unknown type")

在这个例子中,我们遍历一个包含不同数据类型的列表,使用 match 语句根据数据的类型进行匹配。每个 case 表达式都匹配特定的数据类型,最后的 case _: 是一个通配符,用于匹配任何未被前面模式匹配的情况。

5、循环结构

循环结构在编程中用于重复执行一段代码块,直到满足某个条件为止。在Python中,有两种常见的循环结构:for 循环和 while 循环。

1、遍历for循环

当使用 for 循环遍历时,你可以对可迭代对象中的每个元素执行一段代码。下面是一些示例,演示如何使用 for 循环进行遍历:

1. 遍历列表

fruits = ["apple", "banana", "orange"]
for fruit in fruits:
    print(fruit)

这个例子中,for 循环遍历列表 fruits 中的每个水果,并打印出水果的名称。

2. 遍历字符串

message = "Hello, World!"
for char in message:
    print(char)

3. 遍历范围

for i in range(5):
    print(i)

在这个例子中,for 循环遍历了范围 range(5) 中的每个整数,打印出整数的值。范围可以根据需要进行调整。

4. 遍历字典

person = {"name": "John", "age": 30, "city": "New York"}
for key, value in person.items():
    print(f"{key}: {value}")

在这个例子中,for 循环遍历字典 person 中的每一对键值对,并打印出键和对应的值。

5. 遍历集合

unique_numbers = {1, 2, 3, 4, 5}
for num in unique_numbers:
    print(num)

在这个例子中,for 循环遍历集合 unique_numbers 中的每个唯一的数字,并打印出数字。

2、无限while循环

无限循环是一种不会自动停止的循环,通常需要通过某种条件手动终止。在 Python 中,你可以使用 while True 来创建一个无限循环。以下是一个简单的示例:

while True:
    print("This is an infinite loop")
    # 在适当的条件下,使用 break 语句退出循环
    user_input = input("Do you want to exit? (yes/no): ")
    if user_input.lower() == "yes":
        break

在这个例子中,while True 创建了一个无限循环,不断打印消息。然后,通过接收用户输入,当用户输入 "yes" 时,使用 break 语句退出循环,从而结束无限循环。

请注意,无限循环需要在适当的时候终止,否则程序将一直执行下去。在实际应用中,通常会根据某个条件来判断是否需要终止循环。

3、break在循环中的使用

break 语句用于终止循环,即使循环条件仍然为真。它常用于循环中的某个条件满足时提前退出循环。以下是一个简单的例子:

# 使用 break 在循环中提前退出
for i in range(5):
    if i == 3:
        print("Breaking the loop at i =", i)
        break
    print(i)

在这个例子中,当 i 的值等于 3 时,break 被执行,导致提前退出循环。输出将是:

0
1
2
Breaking the loop at i = 3

在嵌套循环中,break 通常会终止最内层的循环。如果你希望退出外层循环,可以使用一些额外的技巧,如设置一个标志变量。以下是一个例子:

# 使用 break 终止外层循环
found = False
for i in range(3):
    for j in range(3):
        if i * j == 4:
            found = True
            break  # 终止内层循环
    if found:
        break  # 终止外层循环

print("Found at i, j =", i, j)

这里,当 i * j 的值等于 4 时,内层循环被终止,并通过设置 foundTrue 来终止外层循环。

break 的使用通常取决于具体的需求,但要注意过度使用它可能导致程序难以理解和维护。

4、continue在循环中的使用

continue 语句用于跳过循环体中余下的代码,直接进入下一次循环迭代。它通常用于在循环中某个条件满足时,跳过当前迭代,继续下一次迭代。以下是一个简单的例子:

# 使用 continue 跳过循环中的某次迭代
for i in range(5):
    if i == 2:
        print("Skipping iteration at i =", i)
        continue
    print(i)

在这个例子中,当 i 的值等于 2 时,continue 被执行,导致跳过当前迭代,直接进入下一次迭代。输出将是:

0
1
Skipping iteration at i = 2
3
4

continue 可以在任何类型的循环(for 循环或 while 循环)中使用。

以下是一个在嵌套循环中使用 continue 的例子:

# 使用 continue 跳过内层循环的某次迭代
for i in range(3):
    for j in range(3):
        if i == j:
            print(f"Skipping iteration at i = {i}, j = {j}")
            continue
        print(i, j)

在这个例子中,当 i 等于 j 时,内层循环中的 continue 跳过当前的内层迭代,直接进行下一次内层迭代。

continue 的使用通常根据具体需求,它可以帮助简化代码逻辑。

5、空语句pass

pass 是一个空语句,它在 Python 中用于占位,不执行任何操作。它通常用于语法上需要语句但逻辑上不需要执行任何操作的情况。以下是一个简单的例子:

for i in range(5):
    if i == 2:
        print("Skipping iteration at i =", i)
        pass  # 什么也不做,只是占位
    else:
        print(i)

在这个例子中,当 i 的值等于 2 时,pass 被执行,什么也不做,只是为了满足语法要求。输出将是:

0
1
Skipping iteration at i = 2
3
4

pass 的使用场景包括:

  1. 在占位时,避免因缺少语句而引发语法错误。
  2. 在占位时,作为将来可能添加代码的标记。
  3. 在类、函数或条件语句中,当你希望保持结构的完整性,但暂时不需要执行具体的操作。

请注意,过度使用 pass 可能导致代码难以理解。因此,在使用 pass 时应确保注释或其他方式明确说明为什么使用它。

6、使用while循环模拟用户登录

当模拟用户登录时,通常会使用 while 循环等待用户提供正确的凭据。以下是一个简单的示例,演示如何使用 while 循环模拟用户登录:

# 预设正确的用户名和密码
correct_username = "user123"
correct_password = "pass456"

# 最大登录尝试次数
max_attempts = 3

# 计数器初始化
attempts = 0

# 使用 while 循环模拟用户登录
while attempts < max_attempts:
    # 获取用户输入的用户名和密码
    username_input = input("Enter your username: ")
    password_input = input("Enter your password: ")

    # 检查用户名和密码是否正确
    if username_input == correct_username and password_input == correct_password:
        print("Login successful!")
        break  # 登录成功,退出循环
    else:
        attempts += 1
        remaining_attempts = max_attempts - attempts
        print(f"Incorrect username or password. {remaining_attempts} attempts remaining.")

# 检查是否达到最大尝试次数
if attempts == max_attempts:
    print(f"Too many unsuccessful login attempts. The system is now locked.")

在这个例子中,引入了 attempts 计数器来跟踪登录尝试次数。如果用户输入的用户名和密码不匹配,计数器会增加,并提示剩余尝试次数。当达到最大尝试次数时,系统将锁定。

7、嵌套循环打印出长方形、三角形、棱形和空心棱形

打印长方形:

def print_rectangle(rows, columns):
    for i in range(rows):
        for j in range(columns):
            print("*", end=" ")
        print()

# 调用函数打印长方形
print("Rectangle:")
print_rectangle(5, 7)
print("\n")

打印三角形:

def print_triangle(rows):
    for i in range(1, rows + 1):
        for j in range(1, i + 1):
            print("*", end=" ")
        print()

# 调用函数打印三角形
print("Triangle:")
print_triangle(5)
print("\n")

打印棱形:

def print_rhombus(rows):
    for i in range(rows):
        print(" " * (rows - i - 1) + "* " * (i + 1))

# 调用函数打印棱形
print("Rhombus:")
print_rhombus(5)
print("\n")

打印空心棱形:

def print_hollow_rhombus(rows):
    for i in range(rows):
        if i == 0 or i == rows - 1:
            print(" " * (rows - i - 1) + "* " * (i + 1))
        else:
            print(" " * (rows - i - 1) + "* " + " " * (2 * i - 1) + "*")

# 调用函数打印空心棱形
print("Hollow Rhombus:")
print_hollow_rhombus(5)

这些函数分别用于打印长方形、三角形、棱形和空心棱形的图案。你可以根据需要调整行数和列数。

你可能感兴趣的:(python学习笔记,python,笔记,开发语言)