续第八章 (即补自己落下的代码)
8.4 传递列表
- 8.4.1
- 8.4.2 禁止函数修改列表
8.4 动手试一试
- 8-9 魔术师
#8-9 魔术师
def magician_names(names):
for name in names:
msg = "Hello , " + name.title() + "!"
print (msg)
show_magicians = ['yc' , 'yyc' , 'ycc']
magician_names(show_magicians)
- 8-10 了不起的魔术师
names = ['liu qian' , 'liu liu' , 'liu liang']
greatnames = []
def magician_names(names):
for name in names:
msg = "Hello , " + name.title() + "!"
print (msg)
greatnames.append(name)
def make_great(greatnames):
for greatname in greatnames:
msg = "\nHello , great " + greatname.title() + "!"
print (msg)
show_magicians = ['yc' , 'yyc' , 'ycc']
make_great(show_magicians)
show_magicians = ['yy' , 'yyy' , 'y']
magician_names(show_magicians)
#8-10 了不起的魔术师
def magicians(names , greatnames):
while names:
print_name = names.pop()
print ("The magician's name : " + print_name.title())
greatnames.append(print_name)
def show_print_name(greatnames):
print ("\nThe great magician's name :")
for great_names in greatnames:
print (great_names.title())
names = ['liu qian' , 'liu liu' , 'liu liang']
greatnames = []
magicians(names , greatnames)
show_print_name(greatnames)
- 8-11 不变的魔术师
#8-11 不变的魔术师
def make_great(magicians_name , great_magicians_name):
while magicians_name:
names = magicians_name.pop()
print ("The great magician's name is:" + names.title())
great_magicians_name.append(names)
def show_great(great_magicians_name):
print("The magician's name is:")
for greatname in great_magicians_name:
print(greatname.title())
magicians_name = ['ycc' , 'yc' , 'yyc']
great_magicians_name = []
make_great(magicians_name, great_magicians_name)
show_great(magicians_name)
make_great(magicians_name[:] , great_magicians_name)
show_great(great_magicians_name)
8.5 传递任意数量的实参
8.5.1 结合使用位置实参和任意数量实参
8.5.2 使用任意数量的关键字实参
8.5 动手试一试
- 8-12 三明治
def make_sanwich (*toppings):
print("This sanwich adds : " + str(toppings))
make_sanwich("1")
make_sanwich("22","33","44")
- 8-13 用户简介
def build_profile(first , last , **user_info):
"""创建一个字典 其中包含我们知道的有关用户的一切"""
profile = {}
profile['first_name'] = first.title()
profile['last_name'] = last.title()
for key,value in user_info.items():
profile[key] = value.title()
return profile
user_profile = build_profile ('zi' , 'yi' ,
location = 'kun ming' ,
field = 'physics')
print (user_profile)
- 8-14 汽车
def car_information (zhizaoshang , xinghao , **car_info):
information = {}
information['zhizaoshang'] = zhizaoshang.title()
information['xinghao'] = xinghao.title()
for key,value in car_info.items():
profile[key] = value.title()
return information
car_profile = car_information ('japan' , 'xx' , )
print (car_profile)
8.6 将函数存储在模块中
- 8.6.1 导入整个模块
语法 module_name.function_name()
- 8.6.2 导入特定的函数
#导入特定的函数#
导入模块中的特定函数 语法:
from module_name import function_name
通过用逗号分隔函数名 可根据需要从模块中导入任意数量的函数 语法:
from module_name import function_0 , function_1 , function_2
对于前面 making_pizzas.py为例。如果只想导入任意数量的函数:
from pizza import make_pizza
make_pizza( )
make_pizza( )
- 8.6.3 使用as给函数指定别名
别名 通用语法:
from module_name import function_name as fn
from pizza import make_pizza as mp
mp( )
mp( )
- 8.6.4 使用as给模块指定别名
通过给模块指定简短的别名 即可轻松调用模块中的函数
import module_name as mn
import pizza as p
p.make_pizza( )
p.make_pizza( )
- 8.6.5 导入模块中的所有函数
#使用星号(*)运算符可让Python导入模块中的所有函数
from pizza import *
make_pizza ( )
make_pizza ( )
语法:
from moudle_name import *
- 8.7 函数编写指南
#函数编写指南
给形参指定默认值时 等号两边不要有空格:
def function_name (parameter_0 , parameter_1 = 'default value')
对于函数调用中的关键字实参 也应遵循这种约定
function_name(value_0 , parameter_1 = 'value')
如果形参很多,可在函数定义中输入左括号后按回车键,
并在下一行按两次Tab键,从而将形参列表和只缩进一层的函数体区分开来
def function_name (
parameter_0 , parameter_1 , parameter_2 ,
parameter_3 , parameter_4 , parameter_5 , ):
function body...