python入门002

循环与判断

在Python中,循环和判断是编写程序的两个基本结构。以下是它们的基本用法:

循环:

  1. for 循环:用于迭代一个可迭代对象(比如列表、元组、字符串等)中的元素。

    for item in iterable:
        # 在循环中执行的代码

    示例:

    numbers = [1, 2, 3, 4, 5]
    for num in numbers:
        print(num)
  2. while 循环:在条件为真时重复执行代码块,直到条件不再为真。

    while condition:
        # 在循环中执行的代码

    示例:

    count = 0
    while count < 5:
        print(count)
        count += 1

判断:

  1. if 语句:用于在条件为真时执行代码块。

    if condition:
        # 如果条件为真,则执行此处的代码

    示例:

    x = 10
    if x > 5:
        print("x 大于 5")
  2. if-else 语句:在条件为真时执行一个代码块,在条件为假时执行另一个代码块。

    if condition:
        # 如果条件为真,则执行此处的代码
    else:
        # 如果条件为假,则执行此处的代码

    示例:

    x = 3
    if x % 2 == 0:
        print("x 是偶数")
    else:
        print("x 是奇数")
  3. if-elif-else 语句:当有多个条件需要判断时,可以使用多个 elif 子句。

    if condition1:
        # 如果条件1为真,则执行此处的代码
    elif condition2:
        # 如果条件2为真,则执行此处的代码
    else:
        # 如果以上条件都不为真,则执行此处的代码

    示例:

    score = 85
    if score >= 90:
        print("优秀")
    elif score >= 70:
        print("良好")
    elif score >= 60:
        print("及格")
    else:
        print("不及格")

以上是 Python 中循环和判断的基本用法。通过这些结构,你可以控制程序的流程,并根据条件重复执行特定的代码块。

循环与判断的高级用法

在Python中,除了基本的循环和判断结构之外,还有一些高级用法可以帮助你更有效地编写代码。

  1. 循环控制语句:在循环中使用 breakcontinuepass 语句来控制循环的行为。

    • break 用于跳出循环。

    • continue 用于跳过当前循环的剩余代码,继续执行下一次循环。

    • pass 用于在循环中占位,表示不执行任何操作。

    示例:

    for i in range(10):
        if i == 5:
            break  # 当 i 等于 5 时跳出循环
        if i % 2 == 0:
            continue  # 当 i 是偶数时跳过当前循环,继续下一次循环
        print(i)
  2. 循环嵌套:在循环内部使用另一个循环。

    示例:

    for i in range(3):
        for j in range(2):
            print(i, j)

  1. 三元运算符:简化 if-else 结构的表达式。

    示例:

    x = 5
    y = "Even" if x % 2 == 0 else "Odd"
    print(y)
  2. 链式比较:在单个 if 语句中执行多个比较操作。

    示例:

    x = 10
    if 0 < x < 20:
        print("x 是一个介于 0 和 20 之间的数")
  3. 条件表达式:在一行中使用 if-else 结构,类似于三元运算符,但更适合更复杂的条件逻辑。

    示例:

    ​
    result = "positive" if x > 0 else ("negative" if x < 0 else "zero")

以上是一些Python中循环和判断的高级用法。这些技巧可以帮助你更加灵活地处理循环和条件,提高代码的简洁性和可读性。

函数

正如前文所言,python中的函数和数学上的函数可以进行类别。在Python中,函数是一段可重复使用的代码块,它接收输入参数、执行特定任务,并返回结果。以下是函数的基本用法:

定义函数:

在Python中,使用 def 关键字定义函数,后面跟着函数名、参数列表和冒号。函数体缩进的代码块是函数的主体,它包含了函数的执行逻辑。

def function_name(parameters):
    # 函数体
    # 执行任务
    return result

示例:

def greet(name):
    return f"Hello, {name}!"
​
def add(x, y):
    return x + y

调用函数:

调用函数时,只需提供与函数定义中参数列表相匹配的参数即可。可以将函数的返回值赋给变量,也可以直接使用函数的返回值。

​
result = function_name(arguments)

示例:

greeting = greet("Alice")
print(greeting)
​
sum_result = add(3, 5)
print(sum_result)

参数传递:

函数可以接受零个或多个参数。这里详细介绍一下函数的各种参数

以及各种参数的使用规则以及功能。

在Python中,函数的参数可以分为四种类型:位置参数、默认参数、可变位置参数和可变关键字参数。下面我将详细介绍每种参数类型的使用规则和功能。

1位置参数

位置参数是最常见的参数类型,在调用函数时,根据函数定义中参数的位置顺序传递参数值。

示例:

def greet(name, greeting):
    return f"{greeting}, {name}!"
​
print(greet("Alice", "Hello"))  # 位置参数传递

在上面的例子中,"Alice" 是函数 greet 的第一个位置参数,"Hello" 是第二个位置参数。

2默认参数

默认参数允许你为函数参数指定默认值,如果调用函数时未提供参数值,则使用默认值。

示例:

def greet(name, greeting="Hello"):
    return f"{greeting}, {name}!"
​
print(greet("Alice"))  # 使用默认参数值
print(greet("Bob", "Hi"))  # 传递非默认参数值

在上面的例子中,greeting 参数有一个默认值 "Hello"。如果调用 greet 函数时不提供 greeting 参数,将使用默认值。

3可变位置参数

可变位置参数允许函数接受任意数量的位置参数,这些参数被收集到一个元组中。

使用 * 符号来表示可变位置参数。

示例:

def sum_all(*args):
    total = 0
    for num in args:
        total += num
    return total
​
print(sum_all(1, 2, 3, 4, 5))  # 任意数量的参数

在上面的例子中,*args 接受任意数量的位置参数,并将它们打包成一个元组 args

4可变关键字参数

可变关键字参数允许函数接受任意数量的关键字参数,这些参数被收集到一个字典中。

使用 ** 符号来表示可变关键字参数。

示例:

def display_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")
​
display_info(name="Alice", age=30, city="New York")

在上面的例子中,**kwargs 接受任意数量的关键字参数,并将它们打包成一个字典 kwargs

参数使用规则和功能:
  • 参数顺序:位置参数必须在默认参数之前,可变位置参数必须在可变关键字参数之前。

  • 参数传递:可以混合使用位置参数、默认参数、可变位置参数和可变关键字参数,但是调用函数时需要遵循参数传递顺序。

  • 参数解包:可以使用 *** 运算符来解包列表或字典,然后将解包后的值作为参数传递给函数。

  • 参数收集:可变位置参数和可变关键字参数可以在函数中收集多余的参数,使函数更加灵活。

以上是Python中函数的各种参数类型及其使用规则和功能。通过灵活地使用这些参数类型,你可以编写更加通用和功能强大的函数。

递归函数:

函数的递归是指函数调用自身的过程。递归是一种强大的编程技巧,用于解决那些可以分解为相似子问题的问题。在使用递归时,需要注意限制条件,以避免无限递归导致程序崩溃。

def recursive_function(parameters):
    # 递归终止条件
    if base_case_condition:
        return base_case_result
    
    # 递归调用
    return recursive_function(modified_parameters)
  1. 递归终止条件(Base Case):这是递归函数中最关键的部分。它定义了递归调用何时结束,以避免无限递归。通常情况下,基本情况是简单的问题或可以直接求解的情况。

  2. 递归调用:在递归函数内部,调用自身,并传递一些修改后的参数。通过每次调用递归函数来解决更小的问题,最终达到解决原始问题的目的。

下面是一个计算阶乘的递归函数的示例:

def factorial(n):
    # 基本情况:n等于1时,返回1
    if n == 1:
        return 1
    # 递归调用:计算n-1的阶乘,并与n相乘
    return n * factorial(n-1)
​
result = factorial(5)
print(result)  # 输出:120
限制条件的重要性:

递归必须具有终止条件,否则将会导致无限递归,最终耗尽计算机的内存资源,导致栈溢出错误。因此,编写递归函数时,务必确保设置了适当的终止条件。

错误的递归函数:
def faulty_recursive_function(n):
    # 错误的终止条件:缺少基本情况
    return faulty_recursive_function(n+1)
​
# 无限递归,最终导致栈溢出错误
faulty_recursive_function(1)

在上面的示例中,由于缺少递归终止条件,函数将无限调用自身,导致栈溢出错误。

小结:
  • 递归是一种强大的编程技巧,用于解决可分解为相似子问题的问题。

  • 递归函数必须具有适当的终止条件,以避免无限递归。

  • 限制条件是递归函数中最重要的部分之一,务必确保设置了正确的终止条件。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值