def greet_user():"""显示简单的问候语。""" // A处print("Hello!")greet_user()
def greet_user(username): """显示简单的问候语。"""print(f"Hello, {username.title()}!") greet_user('jesse')
向函数传递实参的方式很多:可使用位置实参,这要求实参的顺序与形参的顺序相同;也可使用关键字实参,其中每个实参都由变量名和值组成;还可使用列表和字典。
调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此,最简单的关联方式是基于实参的顺序。这种关联方式称为位置实参。
def describe_pet(animal_type, pet_name): """显示宠物的信息。"""print(f"\nI have a {animal_type}.")print(f"My {animal_type}'s name is {pet_name.title()}.")describe_pet('hamster', 'harry')
describe_pet('dog', 'willie')
def describe_pet(animal_type, pet_name): """显示宠物的信息。"""print(f"\nI have a {animal_type}.")print(f"My {animal_type}'s name is {pet_name.title()}.") describe_pet(animal_type='hamster', pet_name='harry')
def describe_pet(pet_name, animal_type='dog'): """显示宠物的信息。"""print(f"\nI have a {animal_type}.")print(f"My {animal_type}'s name is {pet_name.title()}.") describe_pet(pet_name='willie')
describe_pet('willie')// 等效的函数调用
describe_pet(pet_name='harry', animal_type='hamster')
describe_pet(animal_type='hamster', pet_name='harry')
describe_pet('harry', 'hamster')
def get_formatted_name(first_name, last_name):"""返回整洁的姓名。"""full_name = f"{first_name} {last_name}"return full_name.title()musician = get_formatted_name('jimi', 'hendrix')
print(musician) // Jimi Hendrix
def get_formatted_name(first_name, last_name, middle_name=''):"""返回整洁的姓名。"""if middle_name:full_name = f"{first_name} {middle_name} {last_name}"else:full_name = f"{first_name} {last_name}" return full_name.title()musician = get_formatted_name('jimi', 'hendrix')
print(musician)musician = get_formatted_name('john', 'hooker', 'lee')
print(musician)
// 例子1:
def build_person(first_name, last_name): """返回一个字典,其中包含有关一个人的信息。"""person = {'first': first_name, 'last': last_name}return personmusician = build_person('jimi', 'hendrix')
print(musician) // {'first': 'jimi', 'last': 'hendrix'}// 例子2:
def build_person(first_name, last_name, age=None): """返回一个字典,其中包含有关一个人的信息。"""person = {'first': first_name, 'last': last_name}if age:person['age'] = age return personmusician = build_person('jimi', 'hendrix', age=27)
print(musician)
def greet_users(names):"""向列表中的每位用户发出简单的问候。""" for name in names:msg = f"Hello, {name.title()}!" print(msg)usernames = ['hannah', 'ty', 'margot']
greet_users(usernames)
def print_models(unprinted_designs, completed_models): """模拟打印每个设计,直到没有未打印的设计为止。打印每个设计后,都将其移到列表completed_models中。"""while unprinted_designs:current_design = unprinted_designs.pop() print(f"Printing model: {current_design}") completed_models.append(current_design)def show_completed_models(completed_models): """显示打印好的所有模型。"""print("\nThe following models have been printed:") for completed_model in completed_models:print(completed_model)unprinted_designs = ['phone case', 'robot pendant', 'dodecahedron']
completed_models = []print_models(unprinted_designs, completed_models)
show_completed_models(completed_models)
function_name(list_name_[:])例如 unprinted_designs 需要传递副本:
print_models(unprinted_designs[:], completed_models)
def make_pizza(*toppings): """打印顾客点的所有配料。""" print(toppings)make_pizza('pepperoni') // ('pepperoni',)
make_pizza('mushrooms', 'green peppers', 'extra cheese') // ('mushrooms', 'green peppers', 'extra cheese')
def make_pizza(size, *toppings): """概述要制作的比萨。"""print(f"\nMaking a {size}-inch pizza with the following toppings:") for topping in toppings:print(f"- {topping}")make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
def build_profile(first, last, **user_info):"""创建一个字典,其中包含我们知道的有关用户的一切。"""user_info['first_name'] = first user_info['last_name'] = last return user_infouser_profile = build_profile('albert', 'einstein',location='princeton', field='physics')
print(user_profile) // {'location': 'princeton', 'field': 'physics', 'first_name': 'albert', 'last_name': 'einstein'}
// pizza.py 文件
def make_pizza(size, *toppings): """概述要制作的比萨。"""print(f"\nMaking a {size}-inch pizza with the following toppings:") for topping in toppings:print(f"- {topping}")// 在pizza.py所在的目录中创建一个名为making_pizzas.py的文件。这个文件导入刚创建的模块,再调用make_pizza() 两次:
import pizzapizza.make_pizza(16, 'pepperoni')
pizza.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
from pizza import make_pizzamake_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
from pizza import make_pizza as mpmp(16, 'pepperoni')
mp(12, 'mushrooms', 'green peppers', 'extra cheese')
import pizza as pp.make_pizza(16, 'pepperoni')
p.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
from pizza import *make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
def function_name(parameter_0, parameter_1='default value')
function_name(value_0, parameter_1='value')
def function_name(parameter_0, parameter_1, parameter_2, parameter_3, parameter_4, parameter_5):
function body...