《Python编程:从入门到实践》第8章学习小结

学习笔记:

传递实参:

位置实参、关键词实参(名称-值对:describe_pet(animal_type='hamster', pet_name='harry'))、默认值(:def describe_pet(pet_name, animal_type='dog'):)

传递任意数量的实参:

形参名*toppings中的星号让Python创建一个名为toppings的空元组,并将收到的所有值都封装到这个元组中。
问题:形参不就是一个元组吗,为什么这样就说是接纳任意数量实参的形参?(通过一个元组来接纳任意数量实参的形参?那为什么不通过传递列表的方式?)

注:如果要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后。Python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中。

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

形参**user_info中的两个星号让Python创建一个名为user_info的空字典,并将收到的所有名称—值对都封装到这个字典中。在这个函数中,可以像访问其他字典那样访问user_info中的名称—值对。

将函数存储在模块中:

将函数存储在被称为模块的独立文件中,再将模块导入到主程序中。import语句允许在当前运行的程序文件中使用模块中的代码。
注:1.模块和主程序应在一个目录下;2.在将模块导入主程序之前,要先编译生成,否则主程序无法调用到模块。
导入一个函数:module_name.function_name()
导入特定的函数:from module_name import function_name(此时调用函数时就无需使用句点)
导入任意数量的函数:from module_name import function_0, function_1, function_2
给函数指定别名:from module_name import function_name as fn
给模块指定别名:import module_name as mn
导入模块中的所有函数:使用星号(*)运算符可让Python导入模块中的所有函数(此时调用函数时就无需使用句点)
注:要么只导入你需要使用的函数,要么导入整个模块并使用句点表示法。

★在python中函数必须先定义后调用!

★关于while循环:如果至少要执行一次循环,那么可以设置flag=True,然后while flag:……当满足退出条件时设置flag为False

★如果要复制列表,不可以用friend_foods = my_foods,这种语法实际上是让Python将新变量friend_foods关联到包含在my_foods中的列表,因此这两个变量都指向同一个列表。在改变friend_foods时,my_foods也会改变。要:friend_foods = my_foods[:](切片表示法)(可从指针考虑)

★如果在for循环中需要i从0取到m-1,则for i in range(0,m):……注意:range是从0到m-1的,不能写成range(0,m-1)

看书随手写的代码:

def print_greet(username):
	"""显示简单的问候语"""#文档字符串
	print('hello '+username)

prompt='please type in your name: '
username=input(prompt)
print_greet(username)
def print_information(a,b):
	print(name+"'s score is "+score)
information={'chency':'100','eva':'1000'}

for name,score in information.items():
	print_information(name,score)

prompt1="please type in a new student's name: "
name_new=input(prompt1)
prompt2="please type in a new student's score: "
score_new=input(prompt2)
information[name_new]=str(score_new)
for name,score in information.items():
	print_information(name,score)
def name(in_name):
	return in_name.title()
prompt = "what's your name? "
in_name=input(prompt)
print(name(in_name))
def person_name(first_name,last_name,age=' '):
	person={'first':first_name,'last':last_name}
	if age!=' ':
		person['age']=age
	return person
a=input()
b=input()
print(person_name(a,b,age=20))
print(person_name(a,b))
def type_name(name):#要先定义函数
	print(name)
	
while True:
	prompt="please type in your name and if you want to quit you can type in 'q' :"
	name=input(prompt)
	if name != 'q':
		type_name(name)#后调用函数
	else:
		break

def friend(*names):
	print(names)

friend('a','b')
friend('s','d','x')

def persons(first,last,**other):
	pro={}
	pro['first_name']=first
	pro['last_name']=last
	for k,v in other.items():
		pro[k]=v
	return pro

pro=persons('chency','chen',location='nanjing',age='20')
print(pro)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值