首页 > 其他分享 >函数的多返回值、函数多种传参方式 学会啦!继续学习~

函数的多返回值、函数多种传参方式 学会啦!继续学习~

时间:2024-06-04 15:00:41浏览次数:16  
标签:传参 info 函数 欣欣 gender 参数 user 11 返回值

1.函数的多返回值

如果一个函数要有多个返回值,该如何书写代码?

 按照返回值的顺序,写对应顺序的多个变量接收即可,

变量之间用逗号隔开,

支持不同类型的数据return

# 演示使用多个变量,接受多个返回值
def test_return():
    return 1, 2, 3
x, y ,z = test_return()
print(x)
print(y)
print(z)

# 1
# 2
# 3

#类型不受限
def test_return():
    return 1, "hi", True
x, y ,z = test_return()
print(x)
print(y)
print(z)

# 1
# hi
# True

2.函数多种传参方式

1)函数参数种类

使用方式上的不同,函数有4种常见参数使用方式:

·位置参数

·关键字参数

·缺省参数

·不定长参数

2)函数多种传参操作

a.位置参数

定义:即调用函数时根据函数定义的参数位置来传递参数。

# 位置参数
def user_info(name, age, gender):
    print(f"您的名字是:{name}, 年龄是:{age}, 性别是:{gender}")

user_info("Tom", 20, "男")

# 您的名字是:Tom, 年龄是:20, 性别是:男

⚠️传递的参数和定义的参数的顺序及个数必须一致。

b.关键字参数

定义:即函数调用时通过“键 = 值”形式传递参数。

作用:可以让函数更加清晰,容易使用,同时也清除了参数的顺序需求。

# 位置参数
def user_info(name, age, gender):
    print(f"您的名字是:{name}, 年龄是:{age}, 性别是:{gender}")

user_info("欣欣", 11, "女")
# 关键字参数
user_info(name="欣欣", age=11, gender="女")
user_info(age=11, gender="女", name="欣欣")  # 可以不按照参数的定义顺序传参
user_info("欣欣", gender="女", age=11)


# 您的名字是:欣欣, 年龄是:11, 性别是:女
# 您的名字是:欣欣, 年龄是:11, 性别是:女
# 您的名字是:欣欣, 年龄是:11, 性别是:女
# 您的名字是:欣欣, 年龄是:11, 性别是:女

c.缺省参数

定义:也叫默认参数 用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值。

⚠️所有位置参数必须出现在默认参数前,包括函数定义和调用。

作用:当调用函数时没有传递参数就会使用默认使用缺省参数对应的值。

# 缺省参数(默认值)
def user_info(name, age, gender="女"):  # 设置默认值必须在最后,并统一都在最后
    print(f"您的名字是:{name}, 年龄是:{age}, 性别是:{gender}")

user_info("欣欣", 11)
user_info("欣欣", 11, gender="男")

# 您的名字是:欣欣, 年龄是:11, 性别是:女
# 您的名字是:欣欣, 年龄是:11, 性别是:男

d.不定长参数

定义:也叫可变参数 用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。

作用:当调用函数不确定参数个数时,可以使用不定长参数。

类型:位置传递、关键字传递

位置传递:

定义:传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型,这就是位置传递

关键字传递:

⚠️参数是“键 = 值”形式的形式情况下,所有的“键 = 值”都会被kwargs接受,同时会根据“键 = 值”组成字典。

# 不定长-位置不定长 *号
# 不定长定义的形式参数会作为元组存在,接收不定长数量的参数传入
def user_info(*args):
    print(f"args参数的类型是:{type(args)}, 内容是:{args}")

user_info(1, 2, 3, "欣欣", "女孩")
# 不定长-关键字不定长 **号
def user_info(**kwargs):
    print(f"args参数的类型是:{type(kwargs)}, 内容是:{kwargs}")

user_info(name="欣欣", age=11, gender="女")

# args参数的类型是:<class 'tuple'>, 内容是:(1, 2, 3, '欣欣', '女孩')
# args参数的类型是:<class 'dict'>, 内容是:{'name': '欣欣', 'age': 11, 'gender': '女'}

3)函数多种传参方式总结

·位置参数:根据参数位置传递参数

·关键字参数:通过“键 = 值”形式传递参数,可以不限参数顺序,可以和位置参数混用,位置参数需在前

·缺省参数:不传递参数值时会使用默认的参数值,默认值的参数必须定义在最后

·不定长参数:位置不定长传递以*号标记一个形式参数,以元组的形式接受参数,形式参数一般命名为args,关键字不定长传递以**号标记一个形式参数,以字典的形式接受参数,形式参数一般命名为kwargs

完结

标签:传参,info,函数,欣欣,gender,参数,user,11,返回值
From: https://blog.csdn.net/weixin_47515798/article/details/139440189

相关文章

  • 7 | 史上最全大数据笔记-Hive函数
    第八章Hive函数在Hive中,函数主要分两大类型,一种是内置函数,一种是用户自定义函数。8.1Hive内置函数8.1.1函数查看 showfunctions; descfunctionfunctionName;8.1.2日期函数1)当前系统时间函数:current_date()、current_timestamp()、unix_timestamp() --函......
  • 【算法】字符串函数
    今天讲讲字符串函数。//C++标凇库提供了丰富的字符串操作函数,下面介绍一些常用的函数。//备注:位置可以看成是字符串的下标,从0开始//获取字符串长度//使用length或size函数来获取字符串的长度。#include<iostream>#include<string>#include<algorithm>#include<......
  • 在JavaScript中,函数前加`async`和不加`async`的区别
    在JavaScript中,函数前加async和不加async主要有以下区别:返回值类型:加async:使用async关键字声明的函数总是返回一个Promise对象。这意味着,无论函数中返回的是什么值,它都会被自动包装在一个Promise中。不加async:普通函数返回的是其执行结果,它不会自动包装在Promise中。如果需......
  • 淘宝商品搜索API返回值解析:关键字搜索如何优化商品推荐
    淘宝商品搜索API的返回值通常包含了大量的商品信息,这些信息对于优化商品推荐至关重要。以下是一些建议,帮助你基于关键字搜索优化商品推荐:理解API返回值:首先,确保你完全理解API返回的数据结构。通常,这包括商品ID、标题、价格、图片URL、销售数量、评分等。分析这些字段,确定哪......
  • 玩转淘宝/天猫店铺商品API,taobao.item_search_shop返回值解析
    在使用淘宝或天猫的API时,特别是针对店铺内商品搜索的API(虽然淘宝的官方API可能已经更新或变更了具体接口名称,但我们可以基于一个假设的接口taobao.item_search_shop来进行解析),返回值通常会包含与搜索到的商品相关的信息。以下是一个假设的taobao.item_search_shop API返回值......
  • 数据库(20)——日期函数
    常见函数函数功能CURDATE()返回当前日期CURTIME()返回当前时间NOW()返回当前日期和时间YEAR(date)获取指定date的年份MONTH(date)获取指定date的月份DAY(date)获取指定date的日期DATE_ADD(date,INTERVALexprtype)返回一个日期/时间值加上一个时间间隔expr后的时间值DATEDIFF......
  • MySql 使用 NOT IN 返回值包含null值,返回数据不全
      mysqlnotin()找不到nullstatusnin('100','200','300','500')换成statusin('400')isnottrue      来源:https://blog.csdn.net/qq_35387940/article/details/127959272?spm=1001.2101.3001.6650.17&......
  • 进程间通信函数接口及应用模板小结
    进程间通信方式1.无名管道/有名管道2.信号3.共享队列(systemV-IPC)4.共享内存(systemV-IPC)5.信号量(systemV-IPC)6.套接字无名管道特征1.文件没有名字,无法使用open2.只能用于亲缘进程间3.半双工工作方式:读写端分开4.写入操作不具有原子性,会被打断,因此只能用于一对一的简......
  • allure的suites(测试套)中未显示返回值参数,显示No information about test execution is
    转自大佬:https://blog.csdn.net/sbdxmnz/article/details/137016423 ExecutionNoinformationabouttestexecutionisavailable.  解决方法:添加代码,因为pytest输出文本形式测试报告时未存储响应内容#将接口响应的文本内容附加到Allure报告中allure.attach(接口响......
  • 前端记忆函数和LRU缓存
    在Js中,“记忆化(Memoization)”是一种优化技术,它通过存储昂贵函数的结果,并复用这些结果以避免重复执行,从而可以加快代码执行速度。这种技术在处理递归和迭代问题时尤其有用。下面是一个记忆化函数的一般实现:functionmemoize(fn){letcache={}returnfunction(.......