当前位置:   article > 正文

第八章 函数_python第八章头歌答案

python第八章头歌答案

第八章 函数

8.1定义函数

def greet_user():
"""显示简单的问候语!"""
	print('hello world !')

greet_user()
  • 1
  • 2
  • 3
  • 4
  • 5

这里函数名是greet_user(),不需要任何信息就能完成工作,因此括号是空的。

8.1.1向函数传递信息

def greet_user(username):
	"""显示简单的问候语"""
	print("hello, " + username.title() + "!")

geeet_user(name)
  • 1
  • 2
  • 3
  • 4
  • 5

8.1.2实参和形参

在函数greet_user()的定义中,变量username是一个形参——函数完成其工作需要的一项信息。在代码greet_user(‘anchor’)中,值’anchor’是一个实参。

8.2传递实参

8.2.1位置实参

python必须将函数调用中的每个实参都关联到函数定义的一个形参。

def describe_pet(animal_type,pet_name):
	"""显示宠物的信息"""
	print('My ' + animal_type + "'s name is " + pet_name.title() + ".")

describe_pet('dog','white')
  • 1
  • 2
  • 3
  • 4
  • 5

位置实参的顺序很重要

8.2.2关键字实参

def describe_pet(animal_type,pet_name):
	"""显示宠物的信息"""
	print('My ' + animal_type + "'s name is " + pet_name.title() + ".")

describe_pet(pet_name='white',animal_type='dog')
  • 1
  • 2
  • 3
  • 4
  • 5

使用关键字实参,务必准去地指定函数定义中的参数名。

8.2.3默认值

编写函数时,可以给每个形参指定默认值。如果调用函数中给形参提供的实参,python将使用指定的实参;否则,将使用形参的默认值。

def describe_pet(animal_type,pet_name='cat'):
	"""显示宠物的信息"""
	print('My ' + animal_type + "'s name is " + pet_name.title() + ".")

describe_pet(pet_name='kitty')
  • 1
  • 2
  • 3
  • 4
  • 5

使用默认值时,在形参列表中必须先列出没有默认值的形参,在列出有默认值的形参。这让python一人能够正确地解读位置实参。如果第一个使用了关键字绑定,后面参数必须有默认值。

8.3返回值

函数不只直接显示输出,还可以进行数据处理。返回的值被称为返回值。

def get_formateted_name(first_name,last_name,middle_name=''):
	"""返回整洁的名字"""
	if moddle_name:
		full_name=first_name + ' ' + middle_name + ' ' + last_name
	else:
		full_name=first_name + ' ' + last_name
	return full_name.title()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

8.4传递列表

def greet_users(names):
	"""向列表中的每位用户都发出简单的问候"""
	for name in names:
		msg="hello, " + name.title()
		print(msg)

usernames = ['joe','tang','jane']
greet_users(usernames)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

8.4.1在函数中修改列表


#模拟打印每个设计,直到没有未打印的设计位置
#打印每个设计后,都将其一到列表completed_models中
def print_models(unprinted_designs,completed_models):
	while unprintid_designs:
		current_design = unprinted_designs.pop()
		print("printing modle: " + current_design)
		completed_models.append(current_design)
		
def show_completed_models(completed_models):
	print(""\nThe follwoing models have been printed:")
	for completed_model in completed_models:
		print(completed_model)

#创建一个列表,其中包含一些要打印的设计
unprinted_designs=['iphone','xiaomi','huawei']
completed_models=[]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

unprinted_designs经过上述函数后,unprinted_designs列表为空。如果不想清空,调用函数时可以如下:
print(unprinted_designs[ : ],completed_models)
除非有充分的里有需要传递副本,否则还是应该将原始列表传递给函数,可避免花时间和内存创建副本,从而提高效率。

8.5传递任意数量的实参

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

def make_pizza(size,*toppings):
"""概述要制作的披萨"""
	print("\nMaking a "+str(size) +
	"-inch pizza with following toppings:")
	for topping in toppings:
		print("-" + 'topping')

print(16,'green peppers','extra cheese')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

def build_profile(first , last , **user_info):
	"""创建一个字典,其中包含我们知道的有关用户的一切"""
	profile = {}
	profile['first_name'] =  first
	profile['last_name'] = last
	for key,value in user_info.items():
		profile[key] = value
	return profile
	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

8.6导入函数

import moudle_name as mn
from moudle_name import fuction_0 , fuction_1
from moudle_name import *

  • 1
  • 2
  • 3
  • 4

8.7函数编写指南

  • 给形参指定默认值时,等号两边不要有空格,对于函数调用中的关键字实参也遵循这种规定。
  • 如果程序或模块包含多个函数,是使用两个空号将相邻的函数分开,容易知道函数在什么地方结束。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/616891
推荐阅读
相关标签
  

闽ICP备14008679号