python学习07

本文详细介绍了Python中的函数,包括函数的定义、调用、参数类型(如必须参数、关键字参数、默认参数、不定长参数)、返回值、匿名函数(lambda表达式)、空函数和主函数。此外,还涉及到了偏函数、闭包以及列表生成式和生成器的概念和使用。
摘要由CSDN通过智能技术生成

一.函数

1.函数概述

#需求:半径分别为r1=10,r2=9.4,r3=22,求圆的面积
r1=10
r2=9.4
r3=22
s1=3.14*r1**2
s2=3.14*r2**2
s3=3.14*r3**2

#使用函数优化
def area(radius):
	s=3.14*radius**2

area(r1)
area(r2)
area(r3)

在一个完整的项目中,某些功能会被反复使用,那么就可以将该功能对应的代码封装成函数,当要再次使用这个功能的时候直接使用即可

本质:函数是对某个特殊功能的封装

优点:

a.简化代码结构

b.提高代码的复用性

c.提高代码的可维护性【如果需求发生变化,则只需要更改函数内部】

2.函数使用

定义函数:

语法:

def 函数名(参数1,参数2......)

函数体

return 函数表达式或者常量或者变量

说明:

a.一个完整的函数由两个部分组成:函数的声明和函数的实现

b.def:definition,定义,函数是以def定义的

c.函数名:标识符,只需要遵循标识符的规则即可,尽量做到见名知意

d.(参数1,参数2......):()表示参数的开始和结束,其中参数1,参数2......被称为参数列表,本质上就是一个变量,参数列表也可以为空

e.函数体:需要被封装的特殊功能

f.return:返回,一般用于结束函数,并将函数值携带给函数的调用者,不带有任何数据的return其实相当于返回None

2.1简单的函数

简单的函数;无参无返回值

代码演示:
#定义无参无返回值的函数
def myPrint():
	print("hello world")

#注意;函数定义好之后,不会自动执行,需要手动进行调用
"""
调用格式;函数名(实际参数)
说明:
a.出现在函数声明部分的参数被称为形式参数,简称形参,本质上是一个变量【形参=实参】
b.出现在函数调用部分的参数被称为实际参数,简称实参,本质上是一个数据

注意:
a.进行传参的时候,形参和实参需要保持匹配
b.如果形参为空,调用函数的时候,()也不能省略
c.函数调用的本质:实参给形参赋值的过程
"""

myPrint()

#注意:如果在同一个py文件中,出现同名的函数,则后出现的覆盖先出现的
def myPrint():
	print("hello python")
	
myPrint()

2.2函数的调用

代码演示:
#函数的调用

def show1():
    print("aaaaa")
    show2()

def show2():
    print("bbbbb")
    show3()

def show3():
    print("ccccc")

show1()
#show2()
#show3()

#函数入栈

2.3函数的参数

函数的调用:实参给形参赋值的过程,被称为传参

#定义一个有参的函数
def myFunc(str,age):
    print(str,age)  #str=s1 str=a1

s1="abc"
a1=10
myFunc(s1,a1)

#注意:形参的数据类型取决于:实参的类型,具体的需求

def myFunc1(str,age,hobby):
    print(str,age,hobby)
    age+=1

#注意:实参和形参要进行严格的匹配【类型和数量】
myFunc1("abc",10)   #TypeError: myFunc1() missing 1 required positional argument: 'hobby'

2.4参数的传递

1>值传递:传递的是不可变的数据类型,比如number,string,tuple

2>引用传递:传递的是可变的数据类型,比如list,dict,set

代码演示:
#值传递
def fun1(a):
    
    print(id(a))
    a=10
    print(id(a))
    
temp=20
print(id(temp))

#a=temp
fun1(temp)

print(temp)

#a的值发生改变,对te
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值