代码笔记:
'''
函数:将独立的代码块组成一个整体,使其具有特定功能;需要使用时可供调用。
作用:提高代码复用性,使代码整体更加简练。
基本格式:
定义函数:
def 函数名():
函数体
调用函数:
函数名()
注意:调用函数之前,必须保证函数已经被定义。
'''
def HelloWorld(): # 定义一个HelloWorld函数
print('Hello World!')
HelloWorld() # 调用HelloWorld函数
def Say_hello():
name = input('请输入你的名字:')
print(f'Hello! {name}')
print('你好! %s' % name)
# Say_hello()
'''
返回值(return):函数调用后,给调用者返回的一个结果。
注意:
函数中遇到return表示此函数结束,不会执行后续代码。
return 返回多个值时,以元组(tuple)的形式返回。
没有返回值,会返回 None。
'''
def click_buy():
return '购买成功!'
click_buy() # 单独调用不会在控制台显示任何结果
print(click_buy()) # 购买成功!
def click_buy1():
return 0,'购买失败!'
# return '购买失败'
# return # None
print(click_buy1()) # (0, '购买失败!') 只显示第一个return返回的结果
'''
形参 & 实参:
形参:定义函数时,写入的变量。
实参:调用函数时,传入给变量的赋值。
函数传参相当于是一个赋值的过程。
定义格式:
def 函数名(形参a, 形参b):
函数体
调用格式:
函数名(实参1, 实参2)
'''
def add(a, b):
return a + b
print(add(7, 8)) # 15
print(add('Hello', 'World')) # HelloWorld
'''
函数参数分类:
必备参数(位置参数):传递和定义的参数的顺序和个数必须一致。
默认参数:为参数提供默认值,调用函数时可不传该默认参数的值。
注意:所有位置参数必须出现在默认参数之前,包括函数的定义和调用。
'''
def fun1(b, a = 'World'): # 位置参数b,默认参数 a = 'World'
print(b, 'Hello %s!' % a)
fun1(2) # 2 Hello World!
fun1(1,'Python') # 1 Hello Python!
'''
可变参数:传入参数的数量可以改变,可以传入多个参数,也可以不传入参数。
格式:
def 函数名(*args): 其中*代表可变参数,args(arguments缩写)约定俗成(为了代码的规范性)的一个通用参数。
注意:可变参数以元组(tuple)形式接收的。
'''
def fun2(*args):
print(args)
fun2() # ()
fun2(1, 'hello', [1,2,3]) # (1, 'hello', [1, 2, 3])
'''
关键字参数:传入参数的数量可以改变,可以传入多个参数,也可以不传入参数。
格式:
def fun3(**kwargs): 其中**代表关键字参数,kwargs(keyword arguments缩写)约定俗成(为了代码的规范性)的一个通用参数。
注意:
可变参数以字典(dict)形式接收的。
传值的时候需要以 键=值 的形式传值。
作用:能够扩展函数的功能。
'''
def fun3(**kwargs):
print(kwargs)
fun3() # {} 空字典
fun3(name='Mike', age=20) # {'name': 'Mike', 'age': 20}
'''
函数嵌套:分为函数的嵌套调用和嵌套定义。
嵌套调用:在一个函数里面调用另外一个函数。
'''
import time # 导入时间函数
import calendar # 导入日历函数
def output_time():
day_of_week = calendar.day_name[time.localtime().tm_wday] # 获取星期几的英文
days_in_chinese = { # 英文星期映射到中文星期,字典(dict)
'Monday': '星期一',
'Tuesday': '星期二',
'Wednesday': '星期三',
'Thursday': '星期四',
'Friday': '星期五',
'Saturday': '星期六',
'Sunday': '星期日'
}
chinese_day_of_week = days_in_chinese[day_of_week] # 转换为中文
formatted_time = time.strftime(f'%Y年%m月%d日%H时%M分%S秒 {chinese_day_of_week}',time.localtime()) # 格式化输出
print('现在是:',formatted_time,end=',')
def study_course():
output_time() # 在study_course()中嵌套调用output_time()
print('我学习 Python 基础!')
study_course() # 现在是: 2024年09月06日20时20分42秒 星期五,我学习 Python 基础!
'''
嵌套定义:在一个函数中定义一个函数。
注意:不要在内层函数中调用外层函数,否则会陷入死循环,直到超出递归的最大深度。
'''
import time
def output_chinese(): # 外函数
print('现在是:',end='')
def output_time(): # 内函数,在output_chinese()中定义了一个output_time()函数
print(time.strftime('%Y-%m-%d %H:%M:%S %A',time.localtime()))
output_time() # 外函数调用内函数,注意缩进:内函数的定义和调用在外函数中是同级的。
output_chinese() # 现在是:2024-09-06 20:32:55 Friday
运行结果:
Hello World!
购买成功!
(0, '购买失败!')
15
HelloWorld
2 Hello World!
1 Hello Python!
()
(1, 'hello', [1, 2, 3])
{}
{'name': 'Mike', 'age': 20}
现在是: 2024年09月06日20时39分14秒 星期五,我学习 Python 基础!
现在是:2024-09-06 20:39:14 Friday
Process finished with exit code 0