第四天:Python基础练习:数据结构大汇总

  1. 简介

  2. 函数

    1. 函数的定义

    2. 函数的调用

    3. 函数文档

    4. 函数参数

    5. 函数的返回值

    6. 变量作用域

  3. Lambda-表达式

    1. 匿名函数的定义

    2. 匿名函数的应用

  4. 类与对象

    1. 属性和方法组成对象

    2. self是什么?

    3. Python的魔法方法

    4. 公有和私有

    5. 继承

    6. 组合

    7. 类、类对象和实例对象

    8. 什么是绑定?

    9. 一些相关的内置函数(BIF)

  5. 魔法方法

    1. 基本的魔法方法

    2. 算术运算符

    3. 反算术运算符

    4. 增量赋值运算

    5. 一元运算符

    6. 属性访问

    7. 描述符

    8. 定制序列

    9. 迭代器

4. 关键字参数

def functionname(arg1, arg2=v, *args, **kw):

       “函数_文档字符串”

       function_suite

       return [expression]

  • **kw - 关键字参数,可以是从零个到任意个,自动组装成字典。

【例子】

#%%

def printinfo(arg1, *args, **kwargs):
print(arg1)
print(args)
print(kwargs)

printinfo(70, 60, 50)

70

(60, 50)

{}

printinfo(70, 60, 50, a=1, b=2)

70

(60, 50)

{‘a’: 1, ‘b’: 2}

#%% md

「可变参数」和「关键字参数」的同异总结如下:

  • 可变参数允许传入零个到任意个参数,它们在函数调用时自动组装为一个元组 (tuple)。
  • 关键字参数允许传入零个到任意个参数,它们在函数内部自动组装为一个字典 (dict)。

5. 命名关键字参数

def functionname(arg1, arg2=v, *args, *, nkw, **kw):

       “函数_文档字符串”

       function_suite

       return [expression]

  • *, nkw - 命名关键字参数,用户想要输入的关键字参数,定义方式是在nkw 前面加个分隔符 *
  • 如果要限制关键字参数的名字,就可以用「命名关键字参数」
  • 使用命名关键字参数时,要特别注意不能缺少参数名。

【例子】

#%%

def printinfo(arg1, *, nkw, **kwargs):
print(arg1)
print(nkw)
print(kwargs)

printinfo(70, nkw=10, a=1, b=2)

70

10

{‘a’: 1, ‘b’: 2}

printinfo(70, 10, a=1, b=2)

TypeError: printinfo() takes 1 positional argument but 2 were given

#%% md

  • 没有写参数名nwk,因此 10 被当成「位置参数」,而原函数只有 1 个位置函数,现在调用了 2 个,因此程序会报错。

6. 参数组合

在 Python 中定义函数,可以用位置参数、默认参数、可变参数、命名关键字参数和关键字参数,这 5 种参数中的 4 个都可以一起使用,但是注意,参数定义的顺序必须是:

  • 位置参数、默认参数、可变参数和关键字参数。
  • 位置参数、默认参数、命名关键字参数和关键字参数。

要注意定义可变参数和关键字参数的语法:

  • *args 是可变参数,args 接收的是一个 tuple
  • **kw 是关键字参数,kw 接收的是一个 dict

命名关键字参数是为了限制调用者可以传入的参数名,同时可以提供默认值。定义命名关键字参数不要忘了写分隔符 *,否则定义的是位置参数。

警告:虽然可以组合多达 5 种参数,但不要同时使用太多的组合,否则函数很难懂。

函数的返回值

【例子】

#%%

def add(a, b):
return a + b

print(add(1, 2)) # 3
print(add([1, 2, 3], [4, 5, 6])) # [1, 2, 3, 4, 5, 6]

#%% md

【例子】

#%%

def back():
return [1, ‘小马的程序人生’, 3.14]

print(back()) # [1, ‘小马的程序人生’, 3.14]

#%% md

【例子】

#%%

def back():
return 1, ‘小马的程序人生’, 3.14

print(back()) # (1, ‘小马的程序人生’, 3.14)

#%% md

【例子】

#%%

def printme(str):
print(str)

temp = printme(‘hello’) # hello
print(temp) # None
print(type(temp)) # <class ‘NoneType’>

#%% md

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值