2022年 11月 9日

python字典调用键值对作为函数的形参_前端如何学习Python——字典和函数|七日打卡…

字典

Python 中的字典和 Javascript的对象基本是一样的。

添加键值对

user = {}

user[‘name’] = ‘david’

user[‘age’] = 18

print(user)

复制代码

{‘name’: ‘david’, ‘age’: 18}

复制代码

删除键值对

user = { ‘name’: ‘david’ }

del user[‘name’]

print(user)

复制代码

{}

复制代码

修改键值对

user = { ‘name’: ‘david’ }

user[‘name’] = ‘tom’

print(user)

复制代码

{‘name’: ‘tom’}

复制代码

函数

定义函数

def greet_user():

print(‘Hello’)

greet_user()

复制代码

向函数传递信息

def greet_user(username):

print(‘Heelo ‘ + username )

print(greet_user(‘Tom’))

复制代码

Hello Tom

复制代码

实参和形参

前面定义了 greet_user 函数,username 是形参,greet_user(‘Tom’) 的 ‘Tom’ 是实参。

传递实参

鉴于函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参。向函数传递实参的方式很多,可使用位置实参,这要求实参的顺序与形参的顺序相同;也可使用关键字实参,其中每个实参都由变量名和值组成;还可使用列表和字典。下面来依次介绍这些方式。

位置实参

你调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此,最简单的关联方式是基于实参的顺序。这种关联方式被称为位置实参。为明白其中的工作原理,来看一个显示宠物信息的函数。这个函数指出一个宠物属于哪种动物以及它叫什么名字,如下所示:

def describe_pet(animal_type, pet_name):

print(‘animal_type ‘ + animal_type)

print(‘pet_name is ‘ + pet_name)

describe_pet(‘cat’, ‘candy’)

复制代码

关键字实参数

def describe_pet(animal_type, pet_name):

print(‘animal_type ‘ + animal_type)

print(‘pet_name is ‘ + pet_name)

describe_pet(animal_type=’cat’, pet_name=’candy’)

复制代码

形参默认值

def describe_pet(animal_type, pet_name = ‘candy’):

print(‘animal_type ‘ + animal_type)

print(‘pet_name is ‘ + pet_name)

describe_pet(‘cat’)

复制代码

animal_type cat

pet_name is candy

复制代码

传递任意数量的实参

有时候,你预先不知道函数需要接受多少个实参,好在Python允许函数从调用语句中收集任意数量的实参。例如,来看一个制作比萨的函数,它需要接受很多配料,但你无法预先确定顾客要多少种配料。下面的函数只有一个形参*toppings,但不管调用语句提供了多少实参,这个形参都将它们统统收入囊中:

def make_pizza(*toppings):

print(toppings)

make_pizza(‘pepperoni’)

make_pizza(‘mushrooms’, ‘green peppers’, ‘cheese’)

复制代码

(‘pepperoni’,)

(‘mushrooms’, ‘green peppers’, ‘cheese’)

复制代码

结合使用位置实参和任意数量实参

如果要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后。Python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中。例如,如果前面的函数还需要一个表示比萨尺寸的实参,必须将该形参放在形参*toppings的前面:

def make_pizza(size, *toppings):

print(toppings)

print(8, ‘mushrooms’, ‘green peppers’, ‘cheese’)

复制代码

基于上述函数定义,Python将收到的第一个值存储在形参size中,并将其他的所有值都存储在元组toppings中。在函数调用中,首先指定表示比萨尺寸的实参,然后根据需要指定任意数量的配料。

使用任意数量的关键字实参

有时候,需要接受任意数量的实参,但预先不知道传递给函数的会是什么样的信息。在这种情况下,可将函数编写成能够接受任意数量的键—值对——调用语句提供了多少就接受多少。一个这样的示例是创建用户简介:你知道你将收到有关用户的信息,但不确定会是什么样的信息。在下面的示例中,函数build_profile()接受名和姓,同时还接受任意数量的关键字实参:

def build_profile(first_name, last_name, **user_info):

user_profile = {};

user_profile[‘first_name’] = first_name

user_profile[‘last_name’] = last_name

for key, value in user_info.items():

user_profile[key] = value;

return user_profile

user = build_profile(‘aaa’, ‘bbb’, age=18, height=185)

print(user)

复制代码

{‘first_name’: ‘aaa’, ‘last_name’: ‘bbb’, ‘age’: 18, ‘height’: 185}

复制代码