python3基础语法及实例demo 您所在的位置:网站首页 python函数通过函数名进行调用对吗 python3基础语法及实例demo

python3基础语法及实例demo

2023-07-21 01:17| 来源: 网络整理| 查看: 265

函数定义

① 表示事先把需要运行的逻辑存到函数中,提取变化的部分。用于封装一段逻辑; ② 作用:组织代码,提高代码复用率; ③ 格式,其中参数可为空或者多个

def 函数名(形参1,形参2,...): """注释,函数说明""" 函数体 return 返回值

④ 函数命名

函数名称是标识符的一种,字母数字下划线遵循蛇形(下划线)命名见名知意如果函数名称不能很好表达函数意义,可通过函数注 释说明意思

⑤ 函数定义的时候函数体中的代码不会执行

函数调用

① 使用函数的过程叫做调用函数 ② 格式:

函数名称(实参1,实参2,...)

#函数调用时才会执行函数体

TODO:注意事项 ① 一个模块(一个.py文件)中不要定义多个同名函数,同名的情况后面会把前面覆盖掉 ② 函数执行到return,会终止执行

函数传参

TODO:首先区分一个概念,函数定义的参数叫形参,函数调用的参数叫实参 ① 位置参数,实参按位置顺序和形参一一对应,不能交叉

>>> def sub(a,b): return a-b >>> sub(1,3) -2

② 关键字参数,函数调用时使用,直接通过=将实参赋值给形参,不考虑位置

>>> def sub(a,b): return a-b >>> sub(b=9,a=13) 4

tip:位置参数在前,关键字参数在后

>>> sub(b=3,1) #关键字和位置参数顺序不正确 SyntaxError: positional argument follows keyword argument >>> sub(1,b=3) -2

③ 默认参数,函数定义时给形参一个默认值,作用:函数调用时少写实参。函数调用时该参数不传参就用默认参数,有传参就用实参。

>>> def sub(b,a=10): return a-b >>> sub(3) #默认参数a不传参使用默认值10 7 >>> sub(3,11) #默认参数a传参使用实参11 8

tip:位置参数在前,默认参数在后 ④ 不定长参数 ‘*’ 和 ‘**’

在一个形参前面加*号,函数调用时收集所有没配对的实参集合为一个元组传参到该形参,只收集位置参数在一个形参前面加**号,函数调用时所有没配对的关键字实参集合为一个字典传参到该形参,只收集关键字参数 >>> def method(a,b,*c): print(a) print(b) print(c) >>> method(1,2,3,4,5,6) #没有配对的3,4,5,6 1 2 (3, 4, 5, 6) >>> def method(a,b,**c): print(a) print(b) print(c) >>> method(1,2,d=3,c=5) 1 2 {'d': 3, 'c': 5} >>> def method(a,b,*c,**d): # *和**可以组合使用 print(a) print(b) print(c) print(d) >>> method(1,2,3,4,5,d=10,e=100,f=9) #*收集 位置参数,**收集关键字参数 1 2 (3, 4, 5) {'d': 10, 'e': 100, 'f': 9}

⑤ 拆包,函数调用时使用。列表和元组实参通过*拆包为位置参数,字典实参通过**拆包为关键字参数

>>> def marry(male,female): print(f"""{male}和{female}结婚了""") >>> marry("王子","公主") #普通位置参数传参 王子和公主结婚了 >>> marry(*["王子","公主"]) #列表拆包传参 王子和公主结婚了 >>> marry(*("王子","公主")) #元组拆包传参 王子和公主结婚了 >>> marry(**{"female":"公主","male":"王子"}) #字典拆包传参,注意字典的key要和函数的形参对应 王子和公主结婚了 函数返回值 函数体执行以后得到函数返回值函数返回值有且只能由return决定return的值是给函数的调用方使用的,对函数自身的计算无影响函数体中return后面的语句不执行 内置函数

可通过官方文档查看所有内置参数及说明,以下只列举几个常用的 https://docs.python.org/zh-cn/3.8/library/functions.html

print() # 打印input() # 用户输入type() # 返回对象数据类型sorted() # 从小到大排序,返回一个排序后的列表max() # 求最大值min() # 求最小值sum() # 求和enumerate() # 获取列表索引和值eval # 去掉一个字符串的引号(俗称脱衣服),变成python可执行代码 >>> print(eval("4>5")) False range() # range 类型表示不可变的数字序列,通常用于在 for 循环中循环指定的次数。取头不取尾,第三个参数为步长,逻辑类比切片 >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list(range(1,50,5)) [1, 6, 11, 16, 21, 26, 31, 36, 41, 46] >>> list(range(0)) [] >>> list(range(0,-10,-1)) [0, -1, -2, -3, -4, -5, -6, -7, -8, -9] zip() #将2个序列(如列表、元组)元素一一对应起来,多余的去掉 >>> lst_1 = ["今天","明天","后天"] >>> lst_2=["9号","10号","11号","12号"] >>> zip(lst_1,lst_2) >>> list(zip(lst_1,lst_2)) [('今天', '9号'), ('明天', '10号'), ('后天', '11号')] >>> tuple(zip(lst_1,lst_2)) (('今天', '9号'), ('明天', '10号'), ('后天', '11号')) >>> dict(zip(lst_1,lst_2)) {'今天': '9号', '明天': '10号', '后天': '11号'}

作用域

① 函数内部叫局部作用域,函数外部叫全局作用域

局部变量不能在全局作用域获取局部作用域可以直接使用全局变量 >>> c=2 >>>> def mm(a,b): return a+b-c >>> mm(10,20) 28

② 函数内部可以修改全局变量,但需要先用global声明变量是全局变量

>>> c=2 >>>> def minus(a,b): ... global c ... c=a+b-1 ... return c >>> minus(2,4) 5 >>> c 5 函数相互调用 指在函数内部调用另一个函数,下面举个无营养的小demo >>> def max_(a,b,c): return max(a,b,c)+1 >>> def max_2(): print(max_(3,4,5),"给最大值加1") >>> max_2() 6 给最大值加1


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有