学会这两个符号*和**,你的 Python 编程水平会飞跃!

在Python中,星号(*)和双星号(**)是非常强大的工具,它们可以用来解包、传递可变数量的参数以及更多复杂的操作。理解和掌握它们的用法可以让你的代码更加简洁和高效。

基础概念

1. 星号(*)

星号在Python中有两种主要用法:

  • 解包(Unpacking): 将一个可迭代对象(如列表、元组)解包成单独的元素。
  • 可变数量参数: 在函数定义中,接收任意数量的位置参数。

2. 双星号(**)

双星号也有两种主要用法:

  • 解包字典(Unpacking Dictionaries): 将一个字典解包成关键字参数。
  • 可变数量关键字参数: 在函数定义中,接收任意数量的关键字参数。

详细案例

1. 星号(*)用法

解包可迭代对象

星号可以将一个可迭代对象解包成单独的元素,例如:

numbers = [1, 2, 3, 4]
print(*numbers)  # 输出:1 2 3 4
接收可变数量的位置参数

在函数定义中使用星号,可以让函数接收任意数量的位置参数:

def greet(*names):
    for name in names:
        print(f"Hello, {name}!")

greet("Alice", "Bob", "Charlie")  
# 输出:
# Hello, Alice!
# Hello, Bob!
# Hello, Charlie!

2. 双星号(**)用法

1 解包字典

双星号可以将一个字典解包成关键字参数:

def display_info(name, age):
    print(f"Name: {name}, Age: {age}")

person = {"name": "Alice", "age": 30}
display_info(**person)

image-20240525145455821

2 接收可变数量的关键字参数

在函数定义中使用双星号,可以让函数接收任意数量的关键字参数:

def show_details(**details):
    for key, value in details.items():
        print(f"{key}: {value}")

show_details(name="Bob", age=25, city="New York")

image-20240525145421042

组合使用

星号和双星号不仅可以单独使用,还可以组合使用,以实现更复杂的功能。

函数参数组合

你可以在同一个函数定义中同时使用星号和双星号,以接收不同类型的参数:

def mixed_args(arg1, arg2, *args, **kwargs):
    print(f"arg1: {arg1}")
    print(f"arg2: {arg2}")
    print("args:", args)
    print("kwargs:", kwargs)

mixed_args(1, 2, 3, 4, 5, name="Alice", age=30)

image-20240525145207810

函数调用时的解包

你可以在函数调用时同时解包多个可迭代对象和字典:

def func(a, b, c, d, e):
    print(a, b, c, d, e)

args = (1, 2)
kwargs = {'c': 3, 'd': 4, 'e': 5}
func(*args, **kwargs) 

image-20240525145331852

星号(*)和双星号(**)在Python中的用法十分灵活,它们不仅可以用于解包和传递可变数量的参数,还可以组合使用以处理复杂的函数参数。在编写Python代码时,熟练掌握这两种符号的用法可以显著提升你的代码效率和可读性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西坡不是东坡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值