随笔 - 404  文章 - 4  评论 - 0  阅读 - 25万

day03-Python基础

1:函数

定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可

特性:

  1. 减少重复代码
  2. 使程序变的可扩展
  3. 使程序变得易维护

函数定义:

1
2
3
def sayhi():  #函数名
    print("Hello,I'm nobody!")
sayhi()  #调用函数

2:函数参数与局部变量

形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量

实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值

1
2
3
4
5
6
def calc(x,y):  #x,y形参
    res = x**y
    return res
 
c = calc(a,b)  #a,b实参
print(c)

默认参数

1
2
3
4
5
6
7
8
9
def stu_register(name,age,country,course):
    print("------学生信息---------")
    print("姓名:",name)
    print("age:",age)
    print("国籍:",country)
    print("课程:",course)
 
stu_register("Guido",54,"CN","Python")
stu_register("Scott",54,"CN","SQL")

 发现 country 这个参数 基本都 是"CN",通过默认参数实现

1
2
3
4
5
6
7
8
def stu_register(name,age,course,country="CN"):
    print("------学生信息---------")
    print("姓名:",name)
    print("age:",age)
    print("国籍:",country)
    print("课程:",course)
 
stu_register("linus",54,"Linux")

 关键参数:

正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可,但记住一个要求就是,关键参数必须放在位置参数之后。 

1
stu_register(age=56,name="james",course="Java")

 非固定参数

若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数

1
2
3
def stu_register(name,age,*args):  # *args 会把多传入的参数变成一个元组形式
    print(name,age,args)
stu_register("Guido",32)<br>#输出Guido 32 ()   #后面这个()就是args,只是因为没传值,所以为空<br>stu_register("Guido",32,"Python","IT")<br>#输出:Guido 32 ('Python', 'IT')

另一个**kwargs

1
2
3
4
5
def stu_register(name,age,*args,**kwargs): # *kwargs 会把多传入的参数变成一个dict形式
    print(name,age,args,kwargs)
 
stu_register("Guido",32)<br>#输出:Guido 32 () {}  #后面这个{}就是kwargs,只是因为没传值,所以为空
stu_register("James",64,"US","Java",gender="male",hobby="IT")<br>#输出:James 64 ('US', 'Java') {'gender': 'male', 'hobby': 'IT'}

局部变量

1
2
3
4
5
6
7
8
name = "Guido"
def change_name(name):
    print("before change:",name)
    name = "龟叔"
    print("after change",name)
 
change_name(name)
print("在外面看看name改了吗?",name)<br>输出:

before change: Guido
after change 龟叔
在外面看看name改了吗? Guido

全局与局部变量

在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

3:返回值

要想获取函数的执行结果,就可以用return语句把结果返回

注意:

  1. 函数在执行过程中只要遇到return语句,就会停止执行并返回结果,so 也可以理解为 return 语句代表着函数的结束
  2. 如果未在函数中指定return,那这个函数的返回值为None 

嵌套函数

复制代码
name = "Guido"
def change_name():
    name = "Guido2"

    def change_name2():
        name = "Guido3"
        print("第3层打印",name)
    change_name2()
    print("第2层打印",name)

change_name()
print("最外层打印",name)
View Code
复制代码

4:递归

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

1
2
3
4
5
6
7
def calc(n):
    print(n)
    if int(n/2) == 0:
        return n
    return calc(int(n/2))
 
calc(10)

 

posted on   HelonTian  阅读(121)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示