首页 > 编程语言 >Python入门系列7-函数进阶

Python入门系列7-函数进阶

时间:2023-10-03 23:32:58浏览次数:50  
标签:进阶 Python 函数 list test num 参数 print 入门

一、函数参数和返回值的作用

函数根据有没有参数以及有没有返回值,可以相互组合一共有4种组合方式:

1.无参数,无返回值

2.无参数,有返回值

3.有参数,无返回值

4.有参数,有返回值

如果函数内部处理的数据不确定,就可以将外界的数据以参数传递到函数内部,如果希望一个函数执行完成后,向外界汇报执行结果,就可以增加函数的返回值。

代码示例如下:

# 无参数 无返回值
def test1():
    print('hello')


# 无参数 有返回值
def test2():
    return 'hello'


# 有参数 无返回值
def test3(num):
    print(num)


# 有参数,有返回值
def test4(num):
    num += 1
    return num


test1()
print(test2())
test3(2)
print(test4(2))

输出:

hello
hello
2
3

二、函数的参数

1.不可变和可变参数

无论传递的参数是可变还是不可变,只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用。

代码示例如下:

def test(num, list):
    num = 100
    list = [1, 2, 3]

    print(num)
    print(list)


num = 10
list = [4, 5, 6]

test(num, list)
# 打印全局变量
print(num)
print(list)

输出:

100
[1, 2, 3]
10
[4, 5, 6]

如果传递的参数可变类型,在函数内部使用方法修改了数据,同样会影响到外部的数据。

代码示例如下:

def test(num, list):
    num = 100
    # 修改数据会影响外部的数据
    list[0] = 1

    print(num)
    print(list)


num = 10
list = [4, 5, 6]

test(num, list)
# 打印全局变量
print(num)
print(list)

输出:

100
[1, 5, 6]
10
[1, 5, 6]

2.缺省参数

定义函数的时候,可以给某个参数指定一个默认值,具有默认值的参数就叫缺省参数。调用函数时如果没有传入缺省参数的值,则在函数内部使用定义函数时指定的参数默认值。

代码示例如下:

def test(name, status=1):
    print('我的姓名:%s,状态:%d' % (name, status))


# 调用函数 没有传入缺省参数 使用参数默认值
test('qx')

输出:

我的姓名:qx,状态:1

注意事项:

缺省参数必须在参数列表末尾。

3.不定长参数

有时候函数需要处理参数个数不确定的情况,这个时候我们可以使用多值参数。参数名前加一个可以接收元组,参数名前添加两个可以接收字典。

代码示例如下:

def test(*num):
    for i in num:
        print(i)


# 调用函数 没有传入缺省参数 使用参数默认值
test(1, 2, 3, 4)

输出:

1
2
3
4

三、函数的递归

函数的递归就是在函数内部调用自己,函数内部的代码是相同的只是针对参数不同处理的结果不同,当参数满足一个条件时,函数不再执行。

代码示例如下:

# 定义递归函数
def test(num):
    # 满足条件 退出递归
    if num == 1:
        return 1
    return num + test(num - 1)


print(test(4))

输出:

10

标签:进阶,Python,函数,list,test,num,参数,print,入门
From: https://blog.51cto.com/u_13312531/7696088

相关文章

  • Spring Boot 入门教程
    大家好,我是深码青年,作为一名迄今为止已经有四年码龄的人来说,springboot已经深入了自己的脑子里面,所以借此机会,我们来仔细说一说关于springboot2.0的那些事儿一、SpringBoot是什么以下截图自[SpringBoot官方文档](https://spring.io/projects/spring-boot"SpringBoot官方......
  • Python中的四种推导式
    推导式列表推导式这是一种最常见的推导式,相比有不少人都用过,至少也见过,减少了了编写Python代码的代码长度语法结构是这样的[out_exp_resforout_expininput_list][out_exp_resforout_expininput_listifcondition]给出一个实例就是x=[x*2forxin[1,2,3]]......
  • vim python 取消变量名自动提示
    vim 配置了python补全插件coc.nvim,linux没事,只有mac会自动添加变量名提示。取消变量名自动提示 设置方法,CocConfig,添加如下:{"inlayHint.enable":false}......
  • Python 列表操作指南1
    Python列表mylist=["apple","banana","cherry"]列表用于在单个变量中存储多个项目。列表是Python中的4种内置数据类型之一,用于存储数据集合,其他3种分别是元组(Tuple)、集合(Set)和字典(Dictionary),它们具有不同的特性和用途。使用方括号创建列表:#创建一个列表thislist......
  • Python 列表操作指南2
    将元组的元素添加到列表中:thislist=["apple","banana","cherry"]thistuple=("kiwi","orange")thislist.extend(thistuple)print(thislist)remove()方法用于移除指定的项目。示例,移除"banana":thislist=["apple&quo......
  • python3 番外篇之pyenv安装python遇到的ssl问题
    最近在学爬虫,在Linux中通过pyenv安装3.9.10,安装时也没有问题,问题就出在安装完requests模块后,引用requests模块报错。(reptile)root@localhost:/data/reptile#pythonPython3.9.10(main,Aug102023,01:32:05)[GCC7.3.0]onlinuxType"help","copyright","credits"......
  • 第03章 Python的数据结构、函数和文件
    本章讨论Python的内置功能,这些功能本书会用到很多。虽然扩展库,比如pandas和Numpy,使处理大数据集很方便,但它们是和Python的内置数据处理工具一同使用的。我们会从Python最基础的数据结构开始:元组、列表、字典和集合。然后会讨论创建你自己的、可重复使用的Python函数。最后,会学习P......
  • 第02章 Python语法基础,IPython和Jupyter Notebooks
    第2章Python语法基础,IPython和JupyterNotebooks当我在2011年和2012年写作本书的第一版时,可用的学习Python数据分析的资源很少。这部分上是一个鸡和蛋的问题:我们现在使用的库,比如pandas、scikit-learn和statsmodels,那时相对来说并不成熟。2017年,数据科学、数据分析和机器学习的......
  • Python类的内置成员方法 __init__, __new__ 和 __call__
    __init__和__new__这个方法想必大家平常也用的很多,这个方法负责对象的初始化。什么是初始化呢?就是对已经存在的东西赋若干个初始值。所以我们可以知道当我们调用__init__()方法的时候,这个类已经被实例化了。我们可以运行一下如下代码classA():def__new__(cls,*ar......
  • Vue进阶(幺捌肆):CodeMirror 应用小结
    (文章目录)一、前言CodeMirror支持在线编辑代码,风格包括js,java,php,c++等等100多种语言。能够做到代码自动补全,代码折叠,可配置键盘事件,支持vim,emacs,sublimetext编码风格、能完成查找替换,括号匹配,分栏显示,显示行号,自行配置字体大小和风格等。二、应用下载codemirror......