专栏首页python3python-函数基础

python-函数基础

函数基础

函数简介

  • 定义:就是具有特定功能的一段代码
  • 优点:
    • 解决代码的重复书写
    • 可以将功能的实现着和使用者分开,提高开发效率
  • 分类:
    • 库函数:print、input、abs等
    • 自定义:用户自己封装的函数

函数使用

  • 定义函数格式 def 函数名([参数列表]): 函数体 []表示可选,参数可以有,也可以没有,也可以是多个。
  • 函数名:
    • 与变量一样,只要遵循标识符的命名规范即可。
  • 函数调用:
    • 函数定以后不会执行,需要调用才会执行
    • 调用格式:函数名([参数])

函数分类(参数与返回值)

  • # 无参无返回值 def print_hello(): for i in range(10): print('Hello world!') ​ # print_hello() # 带参数无返回值 def print_n_hello(n): for i in range(n): print('Hello world!') # print_n_hello(5) ​ # 带参有返回值 def add(m, n): c = m + n # 使用return返回需要返回的值,不返回默认为None return c ​ print(add(3, 5))

分类的标准是按照有无参数,以及有无返回值。

函数参数

  • 形参:形式参数,就是写在函数定义出的参数
  • 实参:实际参数,就是在函数调用时传递的参数
  • 位置参数:也叫必传参数,没有默认值的参数
  • 默认参数:定义时有默认值,调用时可以不传,必须写在最后
  • 关键字参数:在函数调用时指定参数名字,参数的位置就无所谓。
  • 可变长度参数:函数调用时可以传递比定义处更多的参数,多出来的参数会保存在args和kwargs中 def var_len_args(a, b, name='goudan', *args, **kwargs): print(a, b) print(name) # 是一个元组,保存多传的位置参数 print(args) # 是一个字典,保存多传的关键字参数 print(kwargs) ​ var_len_args(1, 2, 3, 4, age=10)
  • *的使用: def show(a, b): print(a, b) ​ lt = [1, 2] # 需要从列表根据下表获取元素,然后作为参数传递 # show(lt[0], lt[1]) show(*lt) ​ def show2(aa=11, bb=22): print(aa, bb) d = {'aa': 123, 'bb': 456} # show2(aa=d['aa'], bb=d['bb']) # 上下等价 show2(**d)

函数进阶

  • 函数的定义位置是随意的?
    • 不是,一定是先定义后调用,函数的调用一定要放在定义之后。
  • 函数的名字可以相同吗?
    • 不可以,若出现同名函数,后者会覆盖前者。
  • 函数内容能否再定义函数?
    • 可以,定义在函数内部的函数叫内部函数,它是很多高级功能实现的基础。

变量的作用域

  • 块级作用域 if True: name = 'ergou' ​ # 能够在块的外部使用,说明没有块级作用域 print(name)
  • 局部作用域
    • 局部变量:定义在函数内部的变量叫局部变量,只能在函数内部使用。

    def test(): a = 10 ​ # 不能再函数外部使用,此处会报错 print(a)

  • 全局作用域
    • 全局变量:定义在函数外部的变量叫全局变量,哪里都可以使用

    num = 10 ​ def show(): # 声明使用的时外部的同名变量 global num # 只能使用,不能修改,若想修改协议进行全局声明 num = 20 print(num) ​ show() print(num)

    1. 函数内部可以使用外部变量,但是不能修改
    2. 若修改需要使用global进行全局声明
    3. 当函数内部与外部出现同名变量,默认使用的时内部变量
  • nonlocal使用
    • 说明:内部函数使用外部函数的局部变量,需要使用nonlocal进行声明

    def wai(): n = 10 def nei(): # 声明使用非本地变量,外部函数的局部变量 nonlocal n n = 20 print(n) nei() print(n) ​ wai()

递归函数(了解)

  • 定义:函数内部调用函数本身的函数叫递归函数。
  • 组成:
    • 函数内部调用自己
    • 终止条件(停止调用自己的条件)
    • 核心算法(具体功能)
  • 特点:
    • 代码简洁
    • 可读性差(不易理解)
    • 瞬间占用内存较大,没有终止条件立即崩溃
    • 有些领域是禁止使用的(安全领域:汽车电子)
    • 只有在不得不使用的时候才使用(遍历目录)
  • 练习:
    • 求n的阶乘
    • 斐波那契数列的第n项
      • 前两项都为1,从第三项开始,每一项都等于前两项的和
      • 如:1,1,2,3,5,8,13,21,...

常用函数

  • 内置函数(无需导入) print:打印,输出 input:输入 abs:求绝对值 type:获取变量的类型 chr:将ASCII数值转换为字符 ord:将字符转换为对应的ASCII id:获取变量地址 len:统计元素个数 range:产生连续整数的可迭代对象 enumerate:枚举可迭代对象 ​ 强制类型转换: int float str list tuple set dict ​ max:求多个参数的最大值,或可迭代对象中的最大元素 min:最小值 sum:求和,可迭代对象元素求和 pow:求幂,pow(2, 3)等价于2 ** 3 round:四舍五入,可以指定保留位数 ​ hex:16进制 oct:8进制 bin:2进制
  • 模块函数(需要导入) time: sleep:休眠指定的秒数,可以是小数 math: e:自然对数 pi:圆周率 ceil:向上取整 floor:向下取整 sqrt:开方(请平方根) degrees:弧度转换为度 radians:度转换为弧度 sys: argv:运行程序时所有的命令行参数列表,第一个是程序文件名 练习:完成一个计算器,支持加、减、乘、除运算

练习:

  • 前面练习全部以函数形式进行封装
  • 终端计算器
  • 删除列表中的重复元素
  • 统计一个字符串中字母、数字及其他字符的个数,返回一个元组即可
  • 返回一个列表中第二大的数
  • 完整列表的排序函数(sort),支持逆序
  • 号码归属地查询: '''5582|1860101|010|北京市|北京联通GSM卡 5583|1860100|010|北京市|北京联通GSM卡 5584|1368141|010|北京市|北京移动神州行卡 5585|1860111|010|北京市|北京联通GSM卡 5586|1358198|010|北京市|北京移动动感地带卡 5587|1361139|010|北京市|北京移动预付费卡 5588|1361138|010|北京市|北京移动神州行卡 5591|1360110|010|北京市|北京移动全球通卡 5748|1364110|010|北京市|北京移动神州行卡 10186|1581584|020|广东省广州市|广东移动全球通卡 15046|1391897|021|上海市|上海移动全球通卡 17250|1502207|022|天津市|天津移动全球通卡 21137|1345272|023|重庆市万州|重庆移动大众卡 22700|1347812|024|辽宁省沈阳市|辽宁移动大众卡 24256|1377065|025|江苏省南京市|江苏移动全球通卡 26360|1898606|027|湖北省武汉市|湖北电信CDMA卡 28709|1860802|028|四川省成都市|四川联通GSM卡 30641|1552961|029|陕西省西安市|陕西联通GSM卡 31700|1563007|0310|河北省邯郸市|河北联通GSM卡 33360|1583396|0311|河北省石家庄市|河北移动全球通卡 34825|1508122|0312|河北省保定市|河北移动全球通卡 35363|1551235|0313|河北省张家口|河北联通GSM卡 37700|1331326|0316|河北省廊坊市|河北电信CDMA卡 43500|1350358|0358|山西省吕梁市|山西移动全球通卡 43908|1553625|0359|山西省运城市|山西联通GSM卡 44521|1335360|0370|河南省商丘市|河南电信CDMA卡 50078|1509369|0378|河南省开封市|河南移动全球通卡 53603|1583981|0398|河南省三门峡|河南移动全球通卡 53916|1335897|0410|辽宁省铁岭市|辽宁电信CDMA卡 55248|1554254|0411|辽宁省大连市|辽宁联通GSM卡 58618|1374272|0427|辽宁省盘锦市|辽宁移动全球通卡 58932|1554183|0429|辽宁省葫芦岛|辽宁联通GSM卡 60268|1340475|0431|吉林省长春市|吉林移动大众卡''' ​

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python函数基础

    函数是一种设计工具,它能让程序员将复杂的系统分解为可管理的部件 函数用于将相关功能打包并参数化 在Python中可以创建4种函数 全局函数:定义在模块中 //...

    企鹅号小编
  • Python函数基础

    函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运行。Python中的函数在其他语言中也叫做过程或子例程,那么这些被包...

    1846122963
  • Python函数基础

    如果函数体body语句只有一行,或者可以简写为一行,则可以写在def的同行。例如:

    py3study
  • python函数基础

    函数中的username为形参,用来让函数完成工作所需要的一些信息,greet_user('devilf')中的devilf为实参,实参是调用函数时传递给函数的...

    dogfei
  • python函数基础学习

    按关键字传值接收多个关键字参数,由 kwargs 接收,保存为一个字典(dict)的形式

    Mirror王宇阳
  • Python函数基础知多少

    函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运行。Python中的函数在其他语言中也叫做过程或子例程,那么这些被...

    1846122963
  • Python函数基础知识梳理

    (1)分而治之:通过函数将程序分一个个小模块,如果代码出现了问题调试起来要容易得多,否则写在一个代码块里会很麻烦

    小雨编程
  • 10分钟学会 Python 函数基础知识

    简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运行。Python中的函数在其他语言中也叫做过程或子例程,那么这些被包装起来的语...

    马哥linux运维
  • Python函数基础 - 胖子老板,来包烟

    可以从上面执行的代码看出来,binlang的变量并没有被更改。这里需要用return方法来传递参数。

    Devops海洋的渔夫
  • 20分钟搞定Python 函数基础知识

    简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运行。Python中的函数在其他语言中也叫做过程或子例程,那么这些被包装起来的语...

    一墨编程学习
  • Python之函数基础

    1、函数的定义与调用 函数从大方针上考虑总共分为两种:一种是内置函数,另一种是自定义函数。今天主要讲的是自定义函数。 s = '金老板小护士' #len(s) ...

    新人小试
  • python函数基础-参数-返回值-注释-01

    函数就是有特定功能的工具 # python中有内置函数(python解释器预先封装好的)与自定义函数(用户自定义封装的)之分

    suwanbin
  • python函数基础字符串操作numpy 和list互相转换

    list 转 numpy np.array(a) ndarray 转 list a.tolist() 写入文件必须是字符

    DC童生
  • Python 基础 函数

    python 什么是函数   Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用。 python 函数的调用   Python内置...

    用户1197315
  • Python基础-函数

    把实现某一功能的相同代码,封装到一起。在下次需要使用时,就不需要再进行代码编写,直接调用即可。

    小团子
  • Python基础函数

    join()函数连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串

    py3study
  • python基础—函数

    函数是组织好的,可重复使用的,具有一定功能的代码段,函数能提高应用的模块性和代码的重复利用率。

    dogfei
  • python中函数的基础用法

    python中的内置函数提供了基础功能,在实际开发中,我们需要将这些基础功能进行搭配组合,来有效解决我们的问题。如何将我们自己构建的代码作为一个可复用的工具,最...

    生信修炼手册
  • python基础-函数(9)

    如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数

    Se7eN_HOU

扫码关注云+社区

领取腾讯云代金券