【Python】学习Python常用函数作用和用法

简介: 【Python】学习Python常用函数作用和用法
1.函数

函数就是把程序进行打包,封装到一个包中,使用时可以直接进行调用

1.创建函数和调用函数:
>>> def test():
  pass
>>> test()
>>> def test():
  for i in range(3):
    print("I love curry")
调用函数
>>> test
<function test at 0x000001B617CCF3A0>
>>> test()
I love curry
I love curry
I love curry
2.创建传参函数
>>> def test(times,name):
  for i in range(times):
    print(f"I love {name}")
>>> test(5,"Python")
I love Python
I love Python
I love Python
I love Python
I love Python
3.函数的返回值

return:直接返回值,不在理会后面的所有的代码

>>> def test(x,y):
  return x/y
>>> test(4,2)
2.0
>>> def test(x,y):
  if y == 0:
    return "不能为0"
  return x/y
>>> test(10,2)
5.0
4.位置参数

在使用传参函数中有两种关键称呼:

形式参数(形参):在创建函数时,预留的变量名被称为形参

实际参数(实参):在调用函数时,给于的参数被称为实参

>>> def test(a,b,c):
  return "".join((c,b,a))
位置参数传参
>>> test("我","爱","你")
'你爱我'
关键参数传参
>>> test(c="我",b="爱",a="你")
'我爱你'

默认参数:

>>> def test(a,b,c="她"):
  return "".join((c,b,a))
>>> test("我","爱")
'她爱我'
5.冷知识
>>> 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.

可以看到,使用格式中出现了一个 / 反斜杠,他是代表在它之前是不允许使用关键字参数的,只可以使用位置参数

在函数中也一样,但是我们可以使用*星号来代替,这样第一位可以为位置参数或关键参数,但是后面都要为关键字参数

>>> def test(a,*,b,c):
  return "".join((c,b,a))
>>> test(a="我",b="爱",c="她")
'她爱我'
>>> test("我",b="爱",c="她")
'她爱我'
>>> test("我","爱","她")
Traceback (most recent call last):
  File "<pyshell#181>", line 1, in <module>
    test("我","爱","她")
TypeError: test() takes 1 positional argument but 3 were given
6.多参参数

传入多个参数,是以元组的形式来进行打包的,只需要在变量名前面多加一个*星号即可

第二种理解:传入一个元组类型的变量,将多个值放到一个元组中

>>> def test(*args):
  print(f"一共多少个参数{len(args)}")
  print(f"第2个参数是什么:{args[1]}")
>>> test(1,2,3,4,5)
一共多少个参数5
第2个参数是什么:2

如果使用了多参赋值,后面的其他变量,必须使用关键字参数来进行赋值了

>>> def test(*args,a,b):
  print(args,a,b)
>>> test(1,2,3,4,5,a=6,b=7)
(1, 2, 3, 4, 5) 6 7
字典函数

在声明一个函数中,可以同时声明一个字典类型的变量来存储数据

>>> def test(**args):
  print(args)
>>> test(a=1,b=2,c=3)
{'a': 1, 'b': 2, 'c': 3}
>>> def test(a,*b,**args):
  print(a,b,args)
>>> test(1,2,3,4,5,d=1,b=2,c=3)
1 (2, 3, 4, 5) {'d': 1, 'b': 2, 'c': 3}
解包参数

元组的解包

>>> args=(1,2,3,4)
>>> def test(a,b,c,d):
  print(a,b,c,d)
>>> test(*args)
1 2 3 4

字典的解包

>>> args={'a':1,'b':2,'c':3,'d':4}
>>> test(**args)
1 2 3 4
7.作用域
1.局部作用域
>>> def test():
  x=520
  return x
>>> test()
520
>>> print (x)
Traceback (most recent call last):
  File "<pyshell#266>", line 1, in <module>
    print (x)
NameError: name 'x' is not defined
2.全局作用域
>>> x = 888
>>> def test():
  return x
>>> test()
888

如果在函数的局部变量中与全局变量的名称相同,那么局部变量会代替全局变量,仅限于在当前函数中使用

>>> x = 888
>>> def test():
  return x
>>> test()
888
>>> def test():
  x = 666
  return x
>>> test()
666
3.global语句

使用global来进行声明变量为全局变量

>>> x = 888
>>> def test():
  global x
  x = 520
  return x
>>> x
888
>>> test()
520
>>> x
520
4.嵌套函数
>>> def funA():
  x = 520
  def funB():
    x = 666
    print (f"FunB:{x}")
  funB()
  return f"funA:{x}"
>>> funA()
FunB:666
'funA:520'
5.nonlocal语句

作用:可以将变量申明为外部变量

>>> def funA():
  x = 520
  def funB():
    nonlocal x
    x = 666
    print (f"FunB:{x}")
  funB()
  return f"funA:{x}"
>>> funA()
FunB:666
'funA:666'
6.LEGB规则

L:local(局部作用域)E:enclosed(嵌套函数的外层函数作用域)G:global(全局作用域)B:build-ln(内置作用yu)

当一个局部变量与全局变量相同时,这个局部变量就会代替全局变量来进行被调用使用

>>> str(123)
'123'
>>> str="123"
>>> str(123)
Traceback (most recent call last):
  File "<pyshell#313>", line 1, in <module>
    str(123)
TypeError: 'str' object is not callable
>>> del str
>>> str(123)
'123'

注意:为了避免这种情况发生,在声明变量时,尽量不要出现与python中的内置函数名冲突

1,2,3,4,5,a=6,b=7)

(1, 2, 3, 4, 5) 6 7

######  字典函数
    在声明一个函数中,可以同时声明一个字典类型的变量来存储数据
```py
>>> def test(**args):
  print(args)
>>> test(a=1,b=2,c=3)
{'a': 1, 'b': 2, 'c': 3}
>>> def test(a,*b,**args):
  print(a,b,args)
>>> test(1,2,3,4,5,d=1,b=2,c=3)
1 (2, 3, 4, 5) {'d': 1, 'b': 2, 'c': 3}
解包参数

元组的解包

>>> args=(1,2,3,4)
>>> def test(a,b,c,d):
  print(a,b,c,d)
>>> test(*args)
1 2 3 4

字典的解包

>>> args={'a':1,'b':2,'c':3,'d':4}
>>> test(**args)
1 2 3 4
7.作用域
1.局部作用域
>>> def test():
  x=520
  return x
>>> test()
520
>>> print (x)
Traceback (most recent call last):
  File "<pyshell#266>", line 1, in <module>
    print (x)
NameError: name 'x' is not defined
2.全局作用域
>>> x = 888
>>> def test():
  return x
>>> test()
888

如果在函数的局部变量中与全局变量的名称相同,那么局部变量会代替全局变量,仅限于在当前函数中使用

>>> x = 888
>>> def test():
  return x
>>> test()
888
>>> def test():
  x = 666
  return x
>>> test()
666
3.global语句

使用global来进行声明变量为全局变量

>>> x = 888
>>> def test():
  global x
  x = 520
  return x
>>> x
888
>>> test()
520
>>> x
520
4.嵌套函数
>>> def funA():
  x = 520
  def funB():
    x = 666
    print (f"FunB:{x}")
  funB()
  return f"funA:{x}"
>>> funA()
FunB:666
'funA:520'
5.nonlocal语句

作用:可以将变量申明为外部变量

>>> def funA():
  x = 520
  def funB():
    nonlocal x
    x = 666
    print (f"FunB:{x}")
  funB()
  return f"funA:{x}"
>>> funA()
FunB:666
'funA:666'
6.LEGB规则

L:local(局部作用域)E:enclosed(嵌套函数的外层函数作用域)G:global(全局作用域)B:build-ln(内置作用yu)

当一个局部变量与全局变量相同时,这个局部变量就会代替全局变量来进行被调用使用

>>> str(123)
'123'
>>> str="123"
>>> str(123)
Traceback (most recent call last):
  File "<pyshell#313>", line 1, in <module>
    str(123)
TypeError: 'str' object is not callable
>>> del str
>>> str(123)
'123'

注意:为了避免这种情况发生,在声明变量时,尽量不要出现与python中的内置函数名冲突

目录
相关文章
|
2月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
342 1
|
2月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
199 1
|
2月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
300 1
|
2月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
182 0
|
2月前
|
机器学习/深度学习 PyTorch 算法框架/工具
python torch基础用法
本教程系统讲解PyTorch基础,涵盖张量操作、自动求导、神经网络构建、训练流程、GPU加速及模型保存等核心内容,结合代码实例帮助初学者快速掌握深度学习开发基础,是入门PyTorch的实用指南。
500 6
|
2月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
177 4
|
10月前
|
C语言 Python
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
207 2
|
存储 算法 API
Python学习五:函数、参数(必选、可选、可变)、变量、lambda表达式、内置函数总结、案例
这篇文章是关于Python函数、参数、变量、lambda表达式、内置函数的详细总结,包含了基础知识点和相关作业练习。
201 0
|
存储 Python Windows
【Python学习篇】Python实验小练习——函数(十)
【Python学习篇】Python实验小练习——函数(十)
133 1
|
存储 Python
【Python学习篇】Python——函数(九)
【Python学习篇】Python——函数(九)
181 1

推荐镜像

更多