python 函数调用

1 定义函数
1.1 向函数传递信息(在所定义的函数括号中,添加变量,使之为函数传递信息)
example 1
python
  
  
def greet_user ( username ) :
  
  
print ( "Hello," + username . title ( ) + "!" )
  
  
greet_user ( "Jerry" )
输出如下
语言
  
  
Hello,Jerry
1.2 实参和形参
变量username是一个形参-----完成其工作所需的一项信息
变量Jerry是一个实参-----调用函数时传递给函数的信息
2 传递实参
2.1 位置实参
将函数调用的每个实参都关联到函数定义的一个形参,关联方式是基于实参的顺序,即位置实参。
2.2 关键词实参
关键词实参是传递给函数的名称-值对。在调用函数时,直接使用关键词指明实参对应的形参。
2.3 默认值
在编写函数时,可给每个形参指定默认值。
example 2
python
  
  
def describe_pet ( pet_name , animal_type = 'dog' ) :
  
  
print ( "\nI have a" + animal_type + "." )
  
  
print ( "My" + animal_type + "'s name is " + pet_name . title ( ) + "." )
  
  
describle_pet ( pet_name = "willie" )
调用这个函数时,如果没有给animal_type指定值,Python将把这个形参设置为"dog"
而如果给animal-type提供了实参,因此python将忽略这个形参的默认值。
3 返回值
3.1 返回简单值
函数并非总是直接显示输出,可使用return语句将返回到调用函数的代码行。
example 3
python
  
  
def get_formatted_name ( first_name , last_name ) :
  
  
full_name = first_name + ' ' + last_name
  
  
return full_name . title ( )
  
  
musician = get_formatted_name ( 'jimi' , 'hendrix' )
  
  
print ( musician )
在调用函数时,需要提供一个变量(full_name),用于存储返回的值。
3.2 让实参变成可选的
提供额外信息,使得使用默认值让实参变成可选的。
3.3 返回字典
将接收到的形参封装到字典中去,将其返回。
3.4 结合函数和while 循环
python
  
  
def get_formatted_name ( first_name , last_name ) :
  
  
full_name = first_name + ' ' + last_name
  
  
return full_name . title ( )
  
  
while True :
  
  
print ( "\nPlease tell me your name:" )
  
  
print ( "(enter 'q' at any time to quit)" )
  
  
  
  
f_name = input ( "First_time: " )
  
  
if f_name == 'q' :
  
  
break
  
  
  
  
l_name = input ( "Last_time: " )
  
  
if l_name == 'q' :
  
  
break
  
  
  
  
formatted_name = get_formatted_name ( f_name , l_name )
  
  
print ( "\nHello," + formatted_name + "!" )
4 传递列表
向函数传递列表很有用,这种列表包含的是可能是名字,数字或复杂的对象(如字典)。将列表传递给函数后,函数就能直接访问其内容。
4.1 在函数中修改列表
将列表传递给函数后,函数就能对其进行修改。在函数中对这个列表所做的任何修改都是永久性的,这让你能够高效地处理大量的数据。
python
  
  
unprinted_designs = [ 'iphone case' , 'robot pendent' , 'dodecahedron' ]
  
  
complecated_models = [ ]
  
  
while unprinted_designs :
  
  
current_design = unprinted_designs . pop ( )
  
  
print ( "Printing model:" + current_design )
  
  
completed_models . append ( current_design )
  
  
print ( "\nThe following models have been printed:" )
  
  
for completed_model in completed_models :
  
  
print ( completed_model )
重新组织代码(使用函数)
python
  
  
def print_models ( unprinted_designs , completed_models ) :
  
  
while unprinted_design :
  
  
current_design = unprinted_designs . pop ( )
  
  
print ( "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 = [ 'iphone case' , 'robot pendent' , 'dodecahedron' ]
  
  
complecated_models = [ ]
  
  

  
  
print_models ( unprinted_models , completed_models )
  
  
show-completed_models(completed_models)
  
  

5 传递任意数量的实参
5.1 结合使用位置参数和任意数量的数量参数
5.2 使用任意数量的关键词实参
可将函数编成成能够接受任意数量的键-值对————调用语句提供了多少就接受多少。
python
  
  
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
  
  
user_profile = build_profile ( 'albert' , 'einstein' , lcocation = 'princeton' , field = 'physics' )
  
  
print ( user_profile )
形参**user_info中的两个星号让python创建一个名为user_info的空字典,并将收到的所有键-值对都封装到这个字典中。
6 将函数存储在模块中(使用import导入模块)
6.1 导入整个模块
import module_name.py的整个模块
6.2 导入特定的函数
from module_name import function_name
6.3 使用as给函数指定别名
from module_name import function_name as fn
6.4 使用as给模块指定别名
import module_name as mn
6.5 导入模块中的所有函数
import module_name import *

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒冰团长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值