首页 > 编程语言 >python学习自用(其五)

python学习自用(其五)

时间:2024-11-28 22:05:30浏览次数:7  
标签:其五 name python args Alice 自用 kwargs print 参数

函数

系统函数:内主函数,模块中的类

自定义函数:根据需要自定义的功能

格式:def 函数名(形参):

调用:函数名(实参)

def sum(*args):
    total=0
    for i in args:
        total+=i
    return total
print(f'{sum(1,6,-1,-3)}')

*args**kwargs 是 Python 中用于函数定义的特殊语法,它们用于接受可变数量的参数,方便实现函数的灵活性和扩展性。

*args

  • 作用:接收任意数量的位置参数,并将其存储为一个元组
  • 用法
    • * 表示接收多个参数。
    • 参数名称通常为 args,但也可以是其他合法的变量名。
示例 1:基本用法
def my_function(*args):
    print(args)

my_function(1, 2, 3, "hello")  
# 输出:(1, 2, 3, 'hello')
示例 2:遍历 *args
def print_numbers(*args):
    for num in args:
        print(num)

print_numbers(10, 20, 30)
# 输出:
# 10
# 20
# 30
示例 3:结合其他参数
def greet(greeting, *names):
    for name in names:
        print(f"{greeting}, {name}!")

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

**kwargs

  • 作用:接收任意数量的关键字参数,并将其存储为一个字典
  • 用法
    • ** 表示接收多个键值对参数。
    • 参数名称通常为 kwargs,但也可以是其他合法的变量名。
示例 1:基本用法
def my_function(**kwargs):
    print(kwargs)

my_function(name="Alice", age=25, job="Engineer")  
# 输出:{'name': 'Alice', 'age': 25, 'job': 'Engineer'}
示例 2:遍历 **kwargs
def display_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

display_info(name="Alice", age=25, job="Engineer")
# 输出:
# name: Alice
# age: 25
# job: Engineer
示例 3:结合其他参数
def introduce(person, **details):
    print(f"Introducing {person}:")
    for key, value in details.items():
        print(f"{key.capitalize()}: {value}")

introduce("Alice", age=25, job="Engineer", hobby="Reading")
# 输出:
# Introducing Alice:
# Age: 25
# Job: Engineer
# Hobby: Reading

*args**kwargs 的组合使用

  • 可以同时在函数中使用 *args**kwargs,顺序为:普通参数 > *args > **kwargs
示例:
def combined_function(greeting, *args, **kwargs):
    print(f"{greeting}!")
    print("Positional arguments:", args)
    print("Keyword arguments:", kwargs)

combined_function("Hello", "Alice", "Bob", age=25, city="New York")
# 输出:
# Hello!
# Positional arguments: ('Alice', 'Bob')
# Keyword arguments: {'age': 25, 'city': 'New York'}

解包(Unpacking)操作

*** 也可以用于函数调用时,解包参数。

示例 1:解包列表或元组
def add(a, b, c):
    return a + b + c

numbers = [1, 2, 3]
print(add(*numbers))  # 输出:6
示例 2:解包字典
def describe_person(name, age, job):
    print(f"{name} is {age} years old and works as a {job}.")

person = {"name": "Alice", "age": 25, "job": "Engineer"}
describe_person(**person)
# 输出:Alice is 25 years old and works as a Engineer.

总结

  • *args:用于接收任意数量的位置参数,结果是一个元组。
  • **kwargs:用于接收任意数量的关键字参数,结果是一个字典。
  • 可以同时使用,支持动态和灵活的函数参数传递

关键字参数

 Python 中的一种函数参数传递方式,允许通过参数名直接为函数参数赋值,而不是按照参数的位置顺序。这样可以让代码更加清晰易读,同时也避免了参数顺序导致的错误。

关键字参数的特点

  1. 以“参数名=值”的形式传递: 调用函数时,明确指定参数名称及其对应的值,避免混淆。

  2. 顺序可以随意: 因为参数是通过名称匹配的,调用时参数的顺序不再重要。

  3. 可以与位置参数混用: 但是,关键字参数必须在位置参数之后。

  4. 默认值支持: 函数定义时可以为关键字参数设置默认值,调用时如果未传递该参数,则使用默认值。


关键字参数示例

# 定义函数,带默认值的关键字参数
def greet(name, age=18, city='Beijing'):
    print(f"Hello, {name}! You are {age} years old and live in {city}.")

# 调用函数时使用关键字参数
greet(name="Alice", city="Shanghai", age=25)
# 输出:Hello, Alice! You are 25 years old and live in Shanghai.

# 使用位置参数和关键字参数混合
greet("Bob", city="Guangzhou")
# 输出:Hello, Bob! You are 18 years old and live in Guangzhou.

# 只使用位置参数(使用默认值)
greet("Charlie")
# 输出:Hello, Charlie! You are 18 years old and live in Beijing.

可变数量的关键字参数(**kwargs

如果函数需要接受不确定数量的关键字参数,可以使用 **kwargs,它会将多余的关键字参数以字典形式接收。

def describe_person(name, **kwargs):
    print(f"Name: {name}")
    for key, value in kwargs.items():
        print(f"{key.capitalize()}: {value}")

# 调用函数时传递多个关键字参数
describe_person("Diana", age=30, city="New York", profession="Engineer")
# 输出:
# Name: Diana
# Age: 30
# City: New York
# Profession: Engineer

标签:其五,name,python,args,Alice,自用,kwargs,print,参数
From: https://blog.csdn.net/Der_ek__/article/details/144008666

相关文章

  • python语言识别简体中文图片代码QZQ
    pipinstallpytesseractpipinstallpytesseractPillowpipinstallopencv-pythonpyautogui需要安装上面模块需要安装这个软件:tesseract-ocr-w64-setup-5.5.0.20241111.exeC:\ProgramFiles\Tesseract-OCR\tessdata\chi_sim.traineddata需要设置环境变量:C:\Program......
  • python语言识别图片内容代码QZQ
    importpytesseractfromPILimportImagedefimage_recognition(image_path):try:text=pytesseract.image_to_string(Image.open(image_path))iftext.strip():#如果识别出的文本去除空白字符后不为空,说明识别到了有效内容print(“识别成功”)print(text)else:......
  • python语言碰撞游戏代码
    importtkinterastkimportkeyboardimportrandomimportsysdefmove_label(event):globallabel_bifevent.name==‘w’:label.place(y=label.winfo_y()-10)root.update()#每次移动后更新布局,确保位置信息准确elifevent.name==‘a’:label.place(x=la......
  • 聪明办法学Python chap 0 chap 1
    Chap0安装一、Conda环境配置:为什么要使用conda,或者说为什么要配环境我之前在贴吧上看到过一个乐子图片:十三合一洗发水相信我,你不会想使用这样的一瓶洗发水1,换源阿里巴巴开源镜像站https://developer.aliyun.com/mirror/清华大学开源软件镜像站:https://help.mirrors.......
  • 聪明办法学python task01&task02
    什么是PythonPython是一种高级编程语言,它具有简洁、易读的语法。其代码风格注重可读性,通过使用缩进来表示代码块,而不是像其他语言(如C、Java)使用大括号。python的安装-抖音视频链接:9.25复制打开抖音,看看【玩转PC的作品】Python的下载与安装#电脑技巧#电脑#...https://v.......
  • python基础学习五
    数学类函数abs()求绝对值n=-12print(abs(n))sum()求和字符串类型的元素不行list1=[11,22,33,44,55]res1=sum(list1)print(res1)divmod()传入两个数值,前一个除以后一个,得到两个值:一个商,一个是余数s,y=divmod(16,5)print(s)print(y)round()......
  • PythonDay5Advance
    PythonDay5Advance函数和模块main函数要有,用户自己选择要做的功能,根据选择调用不同的函数用户注册的信息需要使用一个文件存储,登录需要判断用户是否存在,密码是否正确注册的时候,需要发送邮件内置函数数学类函数abs()求绝对值n=-12print(abs(n))sum()求和......
  • Python讲解(第八篇)
    这篇主要讲解字符串的格式化方式2快速字符串格式化方式目前我们透过学习了%符号占位已经很方便了,还能进行精度控制。可是为了追求效率,能否有更加效率的方式解决问题呢?那当然有,我们可以使用语法f"内容{变量}"的格式来快速格式化在Python中,f{} 是格式化字符串(也称为f......
  • Python机器学习笔记(二、监督学习算法基础)
    一、分类与回归监督机器学习问题主要有两种,分别叫作分类(classification)与回归(regression)。区分分类任务和回归任务有一个简单方法,就是问一个问题:输出是否具有某种连续性。如果在可能的结果之间具有连续性,那么它就是一个回归问题;不存在连续性,则一般是分类问题。二、泛化、......
  • C# 与 Python 代码互相调用的实践
    一、引言在当今的软件开发领域,不同的编程语言都有其独特的优势和适用场景。C#是一种功能强大、面向对象的编程语言,主要应用于Windows平台开发、企业级应用开发以及游戏开发(借助Unity引擎等)等领域;而Python则以其简洁的语法、丰富的库以及在数据科学、机器学习、自动化脚......