首页 > 编程语言 >【Python基础】函数基础

【Python基础】函数基础

时间:2024-01-10 13:55:37浏览次数:37  
标签:return 函数 Python 基础 参数 print def sub

简介

具有实现某种特定功能的代码块,当程序需要这个功能时,就可以直接调用这个函数,避免重复编写。
Python中函数可分为内建函数和自定义函数。内建函数是Python已经定义好的函数,可以直接使用。我们主要学习的是自定义函数。

函数定义

语法格式:

def 函数名(参数):
    函数体(功能代码)
  • def (define,定义) 为一个关键字,表示定义一个函数函数名是一个标识符,要符合基本的定义规则,注意不能和关键字重名
  • 小括号内用于定义参数,参数个数可自由选择个数,注意小括号不能省略
  • 函数体以冒号作为起始点,并且缩进函数体的第一行语句用来选择性地使用文档存放函数的说明(作者 ,函数描述,完成日期 ...)
  • return [表达式] 用来结束函数,将表达式的值返回给调用者,也可省略。
def sub(a,b):
    """
    求两数之和
    :param a: 相加的第一个数
    :param b: 相加的第二个数
    :return:  相加之和
    """
    c  = a+b
    return c
d =sub(2,6)
print(f"函数sub返回结果:{d}")

函数参数

参数列表是由一系列的参数组成,使用逗号分开,在调用函数时,需要向函数传递参数,被传入的参数称为实参,函数定义时的参数称为形参。

位置参数

def sub(a,b):
    """
    求两数之和
    :param a: 相加的第一个数
    :param b: 相加的第二个数
    :return:  相加之和
    """
    c  = a+b
    return c
d =sub(2,6)
print(f"函数sub返回结果:{d}")参数

调用函数时,根据函数定义的参数位置来传递函数

关键参数

关键参数指通过对形参赋值的方式传递参数,避免了传递实参过程中,与定义函数的形参顺序不一致的情况。

def sub(a,b):
    """
    求两数之和
    :param a: 相加的第一个数
    :param b: 相加的第二个数
    :return:  相加之和
    """
    c  = a+b
    return c
d =sub(a=2,b=89)

print(f"函数sub返回结果:{d}")

默认参数

在函数定义时参数列表中的某个形参有值,则这个参数为默认参数。默认参数必须放在非默认参数的右侧。否则函数将出错。

def sub(a,b,a1=56):
    """
    求两数之和
    :param a: 相加的第一个数
    :param b: 相加的第二个数
    :param c: 固定参数
    :return:  相加之和
    """
    c  = a+b+a1
    return c
# d =sub(2,6)
d =sub(a1=3,a=2,b=89)

print(f"函数sub返回结果:{d}")

不定长参数

提供不定长参数的方式有两种:*args和**kwargs
args 元组传值:多给的值,都会给到 *args 参数里,以元组形式:

def sub(a,b,*args):
    """
    :param a:
    :param b:
    :param args: 不定参数
    :return:
    """
    print(a,b,args)
sub(1,7)
sub(1,7,6)

不定长参数,除了将数据类型存在元组中,还可以将其存放在字典中,需要使用 **来实现

def sub(a,b,*args,**kwargs):
    """
    :param a:
    :param b:
    :param args: 不定参数
    :param kwargs: 不定参数
    :return:
    """
    print(a,b,args,kwargs)
sub(1,7)
sub(1,7,6,c=58)
#结果:
1 7 () {}
1 7 (6,) {'c': 58}

将列表、元组和字典中的元素传递给 形参 a,b,c * 和 ** 一起使用

def sum(a, b, c):
return a + b + c
print(sum(*(1,),**{'b': 2,'c': 3}))

函数返回值

调用函数的目的是为了实现某些特定的功能,有时候需要对结果数据进行返回。
return 语句实现了从函数内部向函数外部的输出数据
如果函数定义时省略return ,或者只有return,没有返回值,则Python默认该函数为 ”return None“ 。None代表没有值。

def print_out():
    print("小C学安全")

print(print_out())
#结果:
小C学安全
None

return可以放在函数中的任何位置,当执行到return 语句时,程序返回到调用程序处,执行后面的代码。而不会执行该函数中return 语句后面的代码。
如果函数的返回值有多个,使用一个变量来接收时,多个值实际上构成了一个元组

变量作用域

局部变量

在函数内部定义的普通变量,只在函数内部起作用,当函数执行结束后,局部变量自动删除,不能再使用。称为局部变量

def func1():
a = 2
print("func1函数中的a值为%d " % a)
def func2():
a = 8
print("func1函数中的a值为%d " % a)
func1()
func2()
#print(a) #程序执行报错

全局变量

变量可以同时被函数内外使用,称为全局变量。有些函数内部的变量想被函数外部使用,需要使用关键字 global 来修饰局部变量,使其变为全局变量。

a  =80  #全局变量
def func():
    a=89 #局部变量
    global b
    b=45
    print(a)
func()
print(a)
print(b)  #通过global将局部变量b转为全局变量

内置函数 globals() 和 locals()
这两个内置的可以查看局部变量和全局变量,分别返回一个字典,打印字典中的元素,可以查看全局变量与局部变量。

a  =80  #全局变量
def func():
    a=89 #局部变量
    global b
    b=45
    print(a)
    print(locals())
func()
print(a)
print(b)  #通过global将局部变量b转为全局变量
print(globals())  #打印全局变量

嵌套函数

Python中允许函数定义中出现函数的调用。形成函数的嵌套调用。

def func():
    print("第一个函数")
def func1():
    func()
    print("第二个函数")

func1()

递归函数

函数调自己
递归函数必须要有一个结束条件,否则会无限地递归。

def sum_recu(n):
    if n>0:
       return n +sum_recu(n-2)
    else:
        return 0

result =sum_recu(100)
print(result)

关注公共号

标签:return,函数,Python,基础,参数,print,def,sub
From: https://www.cnblogs.com/fuchangjiang/p/17956328

相关文章

  • 5分钟搞定vue3函数式弹窗
    前言最近接到一个需求,需要在一些敏感操作进行前要求输入账号和密码,然后将输入的账号和密码加到接口请求的header里面。如果每个页面都去手动导入弹窗组件,在点击按钮后弹出弹窗。再拿到弹窗返回的账号密码后去请求接口也太累了,那么有没有更简单的实现方式呢?函数式弹窗的使用场景......
  • 无涯教程-Redis - SCRIPT EXISTS 命令函数
    RedisSCRIPTEXISTS命令返回有关脚本高速缓存中脚本是否存在的信息,此命令接受一个或多个SHA1摘要,并返回一个1或0的列表,以信号指示脚本是否已在脚本缓存中定义。SCRIPTEXISTSscript-语法以下是RedisSCRIPTEXISTS命令的基本语法。redis127.0.0.1:6379>SCRIPTEXIST......
  • Python教程(22)——Python面向对象的属性和方法
    在Python面向对象编程中,属性和方法是类及其对象的重要组成部分。如果说封装、继承和多态是面向对象编程中的思想,那么类的属性和方法就是骨架,因为有属性和方法,面向对象编程才变的有血有肉。属性属性是类或对象所拥有的数据,它用于描述对象的特征和状态。属性可以是实例属性(对象特......
  • 【scikit-learn基础】--『监督学习』之 随机森林分类
    随机森林分类算法是一种基于集成学习(ensemblelearning)的机器学习算法,它的基本原理是通过对多个决策树的预测结果进行平均或投票,以产生最终的分类结果。随机森林算法可用于回归和分类问题。关于随机森林算法在回归问题上的应用可参考:TODO随机森林分类算法可以应用于各种需要进行......
  • str 系列字符串操作函数
    str系列字符串操作函数主要包括strlen、strcpy、strcmp、strcat等。strlen函数用于统计字符串长度,strcpy函数用于将某个字符串复制到字符数组中,strcmp函数用于比较两个字符串的大小,strcat函数用于将两个字符串连接到一起。各个函数的具体格式如下所示:1#include<string.......
  • 【Python基础】set(集合)
    简介集合跟我们学的列表有点像,也是可以存放一堆数据,不过集合有几个独特的特点,令其在整个Python语言中占有一席之地。相当于只有键没有值的字典(键则是集合的数据)。基本操作特点*里面的元素不可变,代表不能存储一个list、dict、在集合中,字符串、数字、元组等不可变类型可以存......
  • 回调函数
    两种不同机制的回调函数1. typedefvoid(*CallbackFunction)(int);    这个语句使用了指向函数的指针来定义回调函数类型。它表示一个接受一个`int`类型参数并且不返回任何值的函数指针类型。这种方式是C风格的函数指针,它可以用来定义简单的函数指针类型,但是在复......
  • Apache Doris 聚合函数源码阅读与解析|源码解读系列
    笔者最近由于工作需要开始调研ApacheDoris,通过阅读聚合函数代码切入ApacheDoris内核,同时也秉承着开源的精神,开发了array_agg函数并贡献给社区。笔者通过这篇文章记录下对源码的一些理解,同时也方便后面的新人更快速地上手源码开发。聚合函数,顾名思义,即对一组数据执行聚合计算......
  • WinDbg调试基础教程-用户模式
    在前面的文章中,介绍了如何使用WinDbg分析蓝屏原因https://www.cnblogs.com/zhaotianff/p/15150244.html 不过那会都是在网上找的资料,东拼西凑出来,并没有系统的去学习WinDbg。最近在学习内核开发这一块的内容,刚好要用到WinDbg,所以这里找资料进行系统的入门一下,做个总结。 ......
  • python通过snap7通讯西门子PLC仿真配置
     一、资料链接:https://pan1.baidu.com/s/1-Dt7yc8e4zEVC5ySqXMLXQ?pwd=1010 提取码:1010 --来自百度网盘超级会员V6的分享,俺的网盘到24年11月,过期自己网上搜吧二,准备工作1、安装python我用的是32位的,因为期间报了个这个错误,调试了好几次解释器才解决编辑正常安装python就行,很简......