Python函数基础
Python函数基础
本文综合讲解Python函数的基础知识。
一、函数基础
1.1 标准函数定义
-
Python中函数必须先调用才能再使用,参数可有可无,根据需求,如果不调用函数,函数里的代码不会执行。
-
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
-
return后面的代码不会执行
# 定义函数格式
def 函数名(参数):
代码1
代码2
。。。
案例:
def sel_func():
print('显示余额')
1.2 返回值
函数使用返回值后可以作为数据被引用
def convert_temperature(celsius):
"""摄氏温度转华氏温度"""
fahrenheit = celsius * 9/5 + 32
return fahrenheit
print(convert_temperature(25)) # 输出:77.0
print(convert_temperature(0)) # 输出:32.0
1.3 多返回值处理
return a,b写法,返回多个数据的时候,默认是元组类型
return 后面可以返回列表、元组、字典,以返回多个值
def test4():
return 1,2
print(test4()) # (1, 2)
多个返回值的赋值:
def analyze_string(s):
return len(s), s.upper(), s.lower()
length, upper, lower = analyze_string("Hello")
print(f"长度:{length}, 大写:{upper}, 小写:{lower}")
# 输出:长度:5, 大写:HELLO, 小写:hello
二、参数传递大全
2.1 位置参数
调用函数时根据函数定义的参数位置来传递参数,传递的参数和定义的参数顺序和个数必须一致。
def describe_pet(animal, name):
print(f"I have a {animal} named {name}")
describe_pet('hamster', 'Harry') # 正确顺序
describe_pet('Harry', 'hamster') # 错误顺序
2.2 默认参数
- 默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值
- 所有位置参数必须出现在默认参数前,包括函数定义和调用
- 函数调用时,如果缺省参数传值则修默认参数值,否则使用这个默认值
def make_shirt(size='L', text='I Love Python'):
print(f"Size: {size}, Text: {text}")
make_shirt() # 使用默认值
make_shirt('M') # 修改size
make_shirt(text='Hello') # 修改text
2.3 可变参数
用于不确定调用时会传递多少个参数(不传参也可以)的场景。此时,可用包裹(packing)位置参数,或者包裹关键字参数,来进行参数传递,会显得非常方便,包裹位置传递,传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型,这就是包裹位置传递
def sum_numbers(*numbers):
total = 0
for n in numbers:
total += n
return total
print(sum_numbers(1, 2, 3)) # 输出6
print(sum_numbers(5, 10)) # 输出15
包裹关键字传递:都是组包的过程,返回一个字典
def user_info4(**kwargs):
print(kwargs)
user_info4(name='tom', age=29, gender='男') #{'name': 'tom', 'age': 29, 'gender': '男'}
3. 函数的返回值
3.1 返回简单值
def get_full_name(first, last):
return f"{first} {last}"
name = get_full_name('Ada', 'Lovelace')
print(name) # 输出:Ada Lovelace
3.2 返回多个值
def calculate(x, y):
add = x + y
sub = x - y
return add, sub
a, s = calculate(10, 5)
print(f"Add: {a}, Sub: {s}") # 输出:Add: 15, Sub: 5