python学习笔记-函数

本文探讨了Python中的函数概念,包括函数的基础定义、代码复用、内建函数与自定义函数的区别。通过实例介绍了如何定义和调用函数,强调了参数传递、默认参数和关键字参数的使用。同时,提到了函数返回值以及变量作用域,特别是局部变量和全局变量的区分和交互。

函数基础

函数是一种方法,可以用来实现特定的功能。

数学中的定义:函数是给定一个数集A,假设其中的元素为x,对A中的元素x施加对应法则f,记作f(x),得到另一数集B,假设B中的元素为y,则y与x之间的等量关系可以用y=f(x)表示。

在这里插入图片描述
计算机函数:代码片段

  • 一段具有特定功能,可重复使用的代码
  • 用函数名来表示并通过函数名完成功能调用

使用函数的意义:

  • 代码的重复利用;
  • 减少程序中的代码重复量,使代码更加容易被理解;
  • 让代码更易于维护与更新。
  • 主程序结构更清晰

函数分为内建函数和自定义函数

内建函数:python自带的函数称为内建函数,在写程序时直接按照规则调用即可。比如print(),int(),input()等。除了内置函数,python还有内置的标准函数库,当我们把这些额外的函数库导入到程序里时,可以用这些函数库中提供的方法,访问这些函数时需要以库名.函数名的方式来应用。

比如:
import math #导入数学函数
a=math.sqrt(2) #a等于2开平方根
print(a)#输出a
结果:1.4142135623730951

标准库函数可参见https://docs.python.org/zh-cn/3/library/
自定义函数:函数的功能和使用方法都由用户决定。

函数的定义与调用

def是define的缩写,表示定义一个函数格式:
def函数名称():
函数内的语句
当我们需要用这个函数时,直接写“函数名称+()”即可
注意:函数名称中不能有空格,可以用下划线代替

利用参数可以向函数传递信息,比如:

def hello_user(user_name):#user_name是参数
    print('Hello'+user_name)
hello_user('Mike')#调用函数,'Mike'类似于变量赋值
结果:HelloMike

如果要传递两个以及以上参数,只需要使用逗号分割:
def hello_user(user_name, age)
参数没有数量限制,但是参数传输的位置和设定时一一对应。

def user(user_name,age):
    print(user_name+'的年龄是'+age)    
user('Mike','25')
结果:Mike的年龄是25

关键字参数(关键字参数类似于变量赋值)

def user(user_name,age):
    print(user_name+'的年龄是'+age)    
user(age='25',user_name='Mike')
结果:Mike的年龄是25

默认参数。如果在调用函数时,不定义参数值,则输出默认参数。定义后,输出的是新值。

def user(user_name='John',age='28'):#John和28是默认参数
    print(user_name+'的年龄是'+age)    
user(age='25',user_name='Mike')
结果:Mike的年龄是25

如果函数要返回一个结果的话,可以使用 return 关键词,在使用函数的时候就可以指定一个变量接收。

def add(a,b):
    sum=a+b
    return sum
c=add(3,5)
print(c)
结果:8

python可以返回多个值,从本质来说是返回了一个包含多个值的元组。
在这里插入图片描述
变量的作用域是有分区的,函数内定义的变量只在函数内起作用。变量的作用域遵循从上到下的原则,最开始定义的变量在它之下的代码都起作用,不过可以被覆盖。不过值得注意的是,函数内部定义的变量只在函数内部起作用,脱离函数代码块之后,在全局是不存在的。

a=1
def hello():
    a=2
    print(a)
hello()
print(a)
结果:2,1
a=1
def hello():
    print(a)
hello()
print(a)
结果:1,1

优先在函数内寻找变量,如果函数内未定义,会从函数外部寻找变量。

a=1
def hello():
    print(a)
    a=2
hello()
print(a)
结果:报错,因为未创立先使用了。

如果要使得函数内部定义的变量可以全局使用,可以使用关键词 global 。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值