python函数

一 定义函数:

def greet_user():
    print("Hello")

greet_user()

函数由关键字def,函数名greet_user(),()内可添加需要添加上才能完成工作的参数。

greet_user()即调用函数,括号内一般需要加上需要传递的参数。

二 传递参数:

向函数传递实参的方式多样,可使用位置参数,关键字参数,列表字典等。

1. 位置实参:位置参数在传递实参时要求与形参顺序相同。

def describe_pet(pet_type, pet_name):
    print("The " + pet_type + "'s name is " + pet_name.title() + ".")

describe_pet('dog','haha')

2. 关键字实参:关键字实参传递的是名称-值,不需要考虑顺序。

def describe_pet(pet_type, pet_name):
    print("The " + pet_type + "'s name is " + pet_name.title() + ".")

describe_pet(pet_name = 'haha', pet_type = 'dog')

 3. 默认值:很多情况下会为形参设置默认值,在实参没有给值的情况下,直接使用默认值。

def describe_pet(pet_name, pet_type='dog'):
    print("The " + pet_type + "'s name is " + pet_name.title() + ".")

describe_pet('haha')

上面的例子中也将得到与1 2 相同的结果。

需要注意的是:在使用默认值的情况下,需要在形参列表中先列出没有默认值的形参,最后再列出有默认值的,从而避免python无法正确解读出对应的位置参数。

 

三 返回值:

函数并非总是直接显示输出,它可以处理一些数据之后返回一个或是一组值,称为返回值,一般使用return 语句将值返回到函数的代码行中。

在调用函数的返回值时,需要提供一个变量,用于存储返回的值。

实例:

def city_country(city_name, country_name):
    print(country_name + ":" + city_name)

while True:
    print("Please input country name and city name:")
    country = input("Please input country name: ")
    if country == 'q':
        break
    city = input("Please input city name: ")
    if city == 'q':
        break
    
    name = city_country(country,city)
    print(name)

 

四、 将函数存储在模块中

将函数存储在模块中,可以隐藏代码细节,还能在不同程序中重用函数。

模块就是扩展名为.py的文件,文件里只包含函数。

比如在模块a 中有函数b c d等,那么在其他程序中导入该模块及函数的的方式有以下各种:

1. 导入整个模块:import a

调用: a.b(参数1,参数2,……)

2. 导入特定的函数:

from a import b

调用: b(参数1,参数2,……)

3. 使用as 给函数指定别名:

from a import b as B

B(参数1,参数2,……)

使用as 给模块指定别名:

import a as A

4. 导入模块中的所有函数:

import * from a

B(参数1,参数2,……)

一般不要使用这种调用方式,因为当模块中有函数名称跟自己的项目中使用的名称相同时。可能会有意想之外的结果。

 

五:函数编写时需要注意的问题

1. 给函数或模块命名为描述性的名称,并且只在其中使用小写字母和下划线。

2. 给函数添加简要的功能注释。

3. 给形参设置默认值时,等号两边不要有空格。

4. 对于函数调用中的关键字参数,也要注意等号两边不要有空格。

5. 当文件开头没有使用注释来描述整个程序时,所有的import 语句必须放在文件开头。

 

参考自《Python编程从入门到实践》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值