##################################################
目录
##################################################
活动简介
活动地址:CSDN21天学习挑战赛
学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰;一个人摸索学习很难坚持,想组团高效学习;想写博客但无从下手,急需写作干货注入能量;热爱写作,愿意让自己成为更好的人…
…
欢迎参与CSDN学习挑战赛,成为更好的自己,请参考活动中各位优质专栏博主的免费高质量专栏资源(这部分优质资源是活动限时免费开放喔~),按照自身的学习领域和学习进度学习并记录自己的学习过程,或者按照自己的理解发布专栏学习作品!
##################################################
Python 函数参数
——————————
如何定义一个函数
语法如下:
def 函数名(参数列表):
函数体
在 Python 中函数通常是由
函数名
参数列表
一系列语句组成的函数体
构成的
若函数中不包含任何参数的话小括号也是不能省略的 此时为无参函数
复杂的函数通常都会包含一个或多个参数 此时为带参函数
Python 中函数定义规则:
函数代码块以 def 关键字开头 后面接函数标识符名称和形参列表
任何传入的参数和自变量必须放在圆括号内
函数的第一行语句可以选择性地使用 文档字符串 即函数说明
函数内容以冒号起始 并且严格统一缩进
函数都有返回值 默认返回 None
%%%%%
示例定义一个无参函数
下面自定义了一个函数 返回一个字符串 然后你可以调用这个函数来打印字符串:
Microsoft Windows [版本 6.3.9600]
(c) 2013 Microsoft Corporation。保留所有权利。
C:\Users\byme>python
Python 3.10.5 (tags/v3.10.5:f377153, Jun 6 2022, 16:14:13) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> def func():
... return "我饿死了.. .."
...
>>> print ( "%s" % func() )
我饿死了.. ..
>>> print ( func() )
我饿死了.. ..
>>> quit()
C:\Users\byme>
——————————
形参和实参的概念
在调用函数时 实参将赋值给形参
必须注意实参的个数、类型应与形参要一一对应
并且实参必须要有确定的值
形参的作用域一般仅限函数体内部
而实参的作用域根据实际情况而定
一句话:
函数定义时参数为形式参数
函数传递时参数为实际参数
形参/parameter:
形参不是实际存在的变量 又称虚拟变量
形参是在定义函数名和函数体的时候使用的参数 目的是用来接收调用该函数时传入的参数
也就是规定接收什么参数以及参数数量
实参/argument:
就是在传值调用时传递给函数的实际参数
实参可以是
常量
变量
表达式
函数
等 无论实参是何种类型的量 在进行函数调用时都必须具有确定的值 以便把这些值传送给形参
形参负责设置接受什么参数和参数数量
实参就是实际的数据传送值
%%%%%
示例定义一个带参函数
下面自定义了一个 cal 函数 计算 a + b 的值:
Microsoft Windows [版本 6.3.9600]
(c) 2013 Microsoft Corporation。保留所有权利。
C:\Users\byme>python
Python 3.10.5 (tags/v3.10.5:f377153, Jun 6 2022, 16:14:13) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 52
>>> b = 1314
>>> def cal ( a, b ):
... print ( "a = ", a, ", b = ", b, ", a + b = ", (a + b) )
...
>>> cal ( a, b )
a = 52 , b = 1314 , a + b = 1366
>>> cal ( 1, 2 )
a = 1 , b = 2 , a + b = 3
>>>
——————————
函数返回值
在 Python 语言中 当函数运行到 return 语句时即执行完毕!
同时将结果返回
因此可以在函数内部通过条件判断和循环设置实现较复杂的逻辑并返回预期的结果
如果没有 return 语句 函数体内所有语句执行完毕后默认返回 None
在实际开发中 有时不仅仅要执行某个函数的功能
还需要把该函数的执行结果作为其她函数或功能的计算单元
函数的返回值是函数执行完成后系统会根据函数的具体定义返回给调用者的值
一个函数可以有多个返回值!
%%%%%
多个函数返回值示例
下面定义了一个 add 函数 计算并返回多个值:
>>> def add(a, b):
... print ( "a + b = ", (a + b) )
... print ( "a * b = ", (a * b) )
... return (a + b), (a * b)
...
>>> a, b = add(a = 3, b = 5)
a + b = 8
a * b = 15
>>> print (a, b)
8 15
>>>
——————————
Python 常用内置函数
%%%%%
数字数据类型相关
数据类型:
bool() 测试一个对象是 True 还是 False bool 是 int 的子类
int() 用于将一个字符串或数字转换为整型 x 可能为字符串或数值 将 x 转换为一个普通整数 如果参数是字符串 那么可能包含符号和小数点 如果超出了普通整数的表示范围 一个长整数被返回
float() 将一个字符串或整数转换为浮点数
complex() 创建一个复数
进制转换:
bin() 返回一个整数 int 或者长整数 long int 的二进制表示 将十进制转换为二进制
oct() 将十进制转换为八进制 将给的参数转换成八进制
hex() 函数用于将 10 进制整数转换成 16 进制 以字符串形式表示
数学运算:
abs() 返回数字绝对值或复数的模
divmod() 函数把除数和余数运算结果结合起来 返回一个包含商和余数的元组 ( a // b, a % b )
round() 返回浮点数 x 的四舍五入值
pow() 函数是计算次方 例如 pow(x,y) 返回 x 的 y 次方的值 等价于 x**y
sum() 对系列进行求和计算
min() 返回给定参数的最小值 参数可以为序列
max() 返回给定参数的最大值 参数可以为序列
%%%%%
序列数据结构相关
列表和元组:
list() 创建列表或者用于将序列转换为列表
tuple() 将列表转换为元组
集合数据类型:
dict() 创建数据字典
set() 创建一个无序不重复元素集 可进行关系测试 删除重复数据 还可以计算 交集、差集、并集 等
frozenset() 返回一个冻结的集合 冻结后集合不能再添加或删除任何元素
字符串:
str() 函数将对象转化为适于人阅读的形式 将字符类型、数值类型等转换为字符串类型
format() 从 Python 2.6 开始新增了一种格式化字符串的函数 str.format() 增强了字符串格式化的功能 format 函数可以接受不限个参数 位置可以不按顺序
bytes() 将一个字符串转换成字节类型
bytearray() 返回一个新字节数组 这个数字的元素是可变的 并且每个元素的值得范围是 0 到 256
ord() 查看某个 ASCII 对应的十进制数
chr() 用一个范围在 range(256)/就是 0 到 255 内的整数作参数 返回一个对应的字符
ascii() 返回任何对象 字符串,元组,列表 等的可读版本
%%%%%
数据结构处理相关
len() 返回对象 字符、列表、元组等 长度或项目个数
sorted() 对所有可迭代的对象进行排序操作
reversed() 返回一个反转的迭代器
slice() 函数实现切片对象 主要用在切片操作函数里的参数传递 返回一个表示由 range(start, stop, step) 所指定索引集的 slice 对象
enumerate() 函数用于将一个可遍历的数据对象 如 列表、元组或字符串 组合为一个索引序列 同时列出数据和数据下标 一般用在 for 循环当中 返回一个可以枚举的对象 该对象的 next() 方法将返回一个元组 enumerate 在字典上是枚举、列举的意思
all() 接受一个迭代器 如果迭代器 元组或列表 的所有元素都为真 那么返回 True 否则返回 False 元素除了是 0、空、None、False 外都算 True 注意空元组、空列表返回值为 True 这里要特别注意
any() 接受一个迭代器 如果迭代器里有一个元素为真 那么返回 True 否则返回 False 元素除了是 0、空、None、False 外都算 True
zip() 用于将可迭代的对象作为参数 将对象中对应的元素打包成一个个元组 然后返回由这些元组组成的对象 这样做的好处是节约了不少的内存 我们可以使用 list() 转换来输出列表 如果各个迭代器的元素个数不一致 则返回列表长度与最短的对象相同 利用 * 号操作符 可以将元组解压为列表
filter() 用于过滤序列 过滤掉不符合条件的元素 返回由符合条件元素组成的新列表 该接收两个参数 第一个为函数 第二个为序列 序列的每个元素作为参数传递给函数进行判断 然后返回 True 或 False 最后将返回 True 的元素放到新列表中
map() 会根据提供的函数对指定序列做映射 返回一个将 function 应用于 iterable 中每一项并输出其结果的迭代器
%%%%%
作用域相关
locals() 会以字典类型返回当前位置的全部局部变量 对于 函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例 都返回 True
globals() 函数会以字典类型返回当前位置的全部全局变量
%%%%%
迭代器生成器相关
range() 可创建一个整数列表 一般用在 for 循环中
next() 返回迭代器的下一个项目 next() 要和生成迭代器的 iter() 函数一起使用
iter() 返回一个 iterator 对象
%%%%%
字符串类型代码的执行相关
eval() 将字符串 str 当成有效的表达式来求值并返回计算结果取出字符串中内容
exec() 执行储存在字符串或文件中的 Python 语句 相比于 eval,exec 可以执行更复杂的 Python 代码
compile() 将 source 编译成代码或 AST 对象 将字符串类型的代码编码 代码对象能够通过 exec 语句来执行或者 eval() 进行求值
%%%%%
输入输出相关
print() 用于打印输出 最常见的一个函数 在 Python 3.3 版增加了 flush 关键字参数 print 在 Python 3.x 是一个函数 但在 Python 2.x 版本不是一个函数 只是一个关键字
input() Python 3.x 中 input() 函数接受一个标准输入数据 返回为 string 类型 获取用户输入内容
%%%%%
内存相关
hash() 返回该对象的哈希值 如果有的话 哈希值是整数 在字典查找元素时用来快速比较字典的键 相同大小的数字变量有相同的哈希值 即使类型不同 如 1 和 1.0 ... hash 表用空间换的时间比较耗费内存 hash() 函数可以应用于数字、字符串和对象 不能直接应用于 list、set、dictionary 对象字符不管有多长 返回的 hash 值都是固定长度的 也用于校验程序在传输过程中是否被 第三方/木马 修改 如果 程序/字符 在传输过程中被修改 hash 值即发生变化 如果没有被修改则 hash 值和原始的 hash 值吻合 只要验证 hash 值是否匹配即可验证程序是否带 木马/病毒
memoryview() 返回给定参数的内存查看对象 Momory view 返回由给定实参创建的 内存视图 对象 Python 代码访问一个对象的内部数据 只要该对象支持缓冲区协议而无需进行拷贝
%%%%%
文件读写相关
open() 函数用于打开一个文件 创建一个 file 对象 相关的方法才可以调用进行读写 所以 open 函数读取文件分为两步
file 对象方法:
file.read([size]) size 未指定则返回整个文件 如果 文件大小 > 2 倍内存则有问题 f.read() 读到文件尾时返回 ""/空字串
file.readline() 返回一行
file.readlines([size]) 返回包含 size 行的列表 size 未指定则返回全部行
file.write() 如果要写入字符串以外的数据 先转换为字符串
file.tell() 返回一个整数 表示当前文件指针的位置 就是到文件头的比特数
file.seek() 用来移动文件指针
file.close() 关闭文件
%%%%%
模块相关
__ import__() 该函数会导入 name 模块 有可能使用给定的 globals 和 locals 来确定如何在包的上下文中解读名称 fromlist 给出了应该从由 name 指定的模块导入对象或子模块的名称 标准实现完全不使用其 locals 参数 而仅使用 globals 参数来确定 import 语句的包上下文 level 指定是使用绝对还是相对导入 0 默认值意味着仅执行绝对导入
%%%%%
获取帮助相关
help() 返回对象的帮助文档
%%%%%
对象调用相关
callable() 用于检查一个对象是否是可调用的 如果返回 True 则 object 仍然可能调用失败 但如果返回 False 调用对象 object 绝对不会成功 对于 函数、方法、lambda 函式、 类以及实现了 __call__ 方法的类实例 都返回 True 这个函数一开始在 Python 3.0 被移除了但在 Python 3.2 被重新加入
%%%%%
内置属性相关
dir() 查看对象的内置属性 访问的是对象中的 __dir__() 方法 函数不带参数时返回当前范围内的变量、方法和定义的类型列表 带参数时 返回参数的属性、方法列表 如果参数包含方法 __dir__() 该方法将被调用 如果参数不包含__dir__() 该方法将最大限度地收集参数信息 print(dir(str))、print(dir(list))、print(dir(dict)) 分别获取各个数据类型的方法 不带参数时返回当前范围内的变量 方法和定义的类型列表 带参数时返回参数的属性 方法列表
hasattr() 函数用于判断对象是否包含对应的属性