python 基础:函数参数,函数应用与工具

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_27295149/article/details/102658097

函数参数

函数参数的匹配方法

  1. 位置匹配 (默认)
  2. 键值匹配
  3. 默认值
# 键值匹配
 def hello(name=n, age=a)print('name:', name)
 	print('age:', age)
hello(name='tom', age=12) 
# name:tom 
# age:12

# 默认值
 def hello(name='tom', age=12)print('name:', name)
 	print('age:', age)
hello()
# name:tom 
# age:12

元祖传参,字典传参

元祖传参:传元祖作为变量

# 元祖 *awgs
def avg(*score):
	return sum(score)/len(score)

# 直接使用
result = avg(88,89,90)
# 传入 *元祖
socre = (88,89,90)
result = avg(*score)

字典传参:传字典作为变量

def display(**emp):
	print(emp)

# 直接使用
display(name='tom',age=12,job='dev')
# 传入 **字典
d ={name:'tom',age:12,job:'dev'}
display(**d)

lambda 表达式

lambda函数可以赋值给变量 不带括号 带括号表示立即执行。

l = lambda :print('hello')
l() # hello

n = lambda x:print('hello', x)
n('tom') # hello tom

# 取偶数应用
num = [1,2,3,4,5,6,7]
res = filter(lambda n:n%2==0,num)
print(list(res)) # [2, 4, 6]

lambda 实例

def hello_english(name):
	print('hello', name)

def hello_japanese(name):
	print('o ha yo', name)

# python字典模拟siwtch
operation = {
	'e': hello_english,
	'c': hello_chinese,
	'j': hello_japanese,
	'r': lambda name: print('привет', name)
}

while True:
	name = input('请输入姓名:\n')
	if name == 'stop':
		break
	language = input('请选择语言版本:\n c=> 中文版\n e=> 英文版\n j=> 日文版\n r=> 俄文版')

	f = lambda name: print('привет')
	if language == 'c':
		hello_chinese(name)
	elif language == 'e':
		hello_english(name)
	elif language == 'j':
		hello_english(name)
	elif language == 'r':
		# f(name) 
		(lambda name : print('привет', name))(name)
		operation.get(language, hello_chinese)(name)

# 可以直接传入函数
def hello(action, name):
	action(name)

hello(hello_english,'Tom')
# 传入lambda函数
hello(lambda name: print('привет', name),'Tom')

猜你喜欢

转载自blog.csdn.net/qq_27295149/article/details/102658097
今日推荐