鱼C论坛

 找回密码
 立即注册
查看: 1303|回复: 2

[学习笔记] 函数-Ⅱ

[复制链接]
发表于 2023-3-11 16:21:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> # 散列表(Hash table)也称为哈希表,其实就是一个稀疏数组(总是有空白元素的数组称为稀疏数组)
>>> # 将要存储的数据是先通过哈希函数(在 Python 中,这个函数是 hash())进行计算,获得一个哈希值,这个值决定了数据将存放在什么位置:
>>> # 位置参数 ,实参是按照形参定义的顺序进行传递的:

>>> def myfunc(s, vt , o):
...         return "".join((o, vt, s))
...
>>> myfunc("我", "打了", "小甲鱼")
'小甲鱼打了我'
>>> myfunc("小甲鱼", "打了", "我")
'我打了小甲鱼'

>>> # 使用关键字参数,我们只需要知道形参的名字就可以:
>>> myfunc(o="你", vt="打了", s="我")
'你打了我'

>>> # 位置参数必须是在关键字参数之前,之间也不行哈。
>>> # Python 还允许函数的参数在定义的时候指定默认值,这样以来,在函数调用的时候,如果没有传入实参,那么将采用默认的参数值代替
>>> def myfunc(s, vt, o="小甲鱼"):
...         return "".join((o, vt, s))
...
>>> myfunc("香蕉", "吃")
'小甲鱼吃香蕉'

>>> # 默认参数的意义就是当用户没有输入该参数的时候,有一个默认值可以使用,不至于造成错误。
>>> # 如果用户指定了该参数值,那么默认的值就会被覆盖:
>>> myfunc("香蕉", "吃", "不二")
'不二吃香蕉'

>>> # 如果要使用默认参数,那么应该把它们摆在最后:
>>> # 使用 help() 函数查看函数文档的时候呢,经常会在函数原型的参数中发现一个斜杠(/),
>>> # 这表示斜杠左侧的参数必须传递位置参数,不能是关键字参数,举个例子:
>>> help(sum)
Help on built-in function sum in module builtins:

sum(iterable, /, start=0)
    Return the sum of a 'start' value (default: 0) plus an iterable of numbers
   
    When the iterable is empty, return the start value.
    This function is intended specifically for use with numeric values and may
    reject non-numeric types.

>>> sum([1, 2, 3], start=6)
12
>>> sum([1, 2, 3], start=7)
13
>>> # 限制 “只能使用关键字参数” 的语法
>>> def abc(a, *, b, c):
...         print(a, b, c)
...
>>> # 参数 a 既可以是位置参数也可以是关键字参数,但参数 b 和参数 c 就必须是关键字参数,才不会报错:
>>> abc(1, 2, 3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: abc() takes 1 positional argument but 3 were given
>>> abc(1, b=2, c=3)
1 2 3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-31 17:03:19 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-31 21:16:30 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 02:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表