《Python编程—从入门到实践》学习笔记(7)

函数

定义函数
定义

​ 定义函数用def语句。

def greet():		#定义了一个问候的函数
    print("Hello!")
greet()
向函数传递参数

​ 在函数的括号内设置相关参数。

def greet(name):
    print("Hello! "+name+"!")
name = input("Please input your name:")
greet(name)
形参和实参

​ 上面程序中,def greet(name)中的name就是形参,而最后一行greet(name)name就是实参。

传递实参
位置实参

​ 直接根据函数名中参数的位置来传递实参。函数按顺序把实参传递给函数,如果顺序改变就会使参数传递出错。

​ 下面是一个描述一个人信息的程序。

def describe(name,age):
    print(name+" is "+age+".")
user_name=input("Please input your name:")
user_age=input("Please input your age:")
describe(user_name,user_age)
describe(user_age,user_name)		#调整顺序
'''
结果:
Please input your name:Rick
Please input your age:19
Rick is 19.
19 is Rick.
'''
关键字实参

​ 关键字实参可以不受顺序限制。

def describe(name,age):
    print(name+" is "+age+".")
user_name=input("Please input your name:")
user_age=input("Please input your age:")
describe(name=user_name,age=user_age)
describe(age=user_age,name=user_name)		#调整顺序
'''
结果:
Please input your name:Rick
Please input your age:19
Rick is 19.
Rick is 19.
'''
默认值

​ 在定义函数的时候可以给形参设置默认值,如果没有实参传递进来,则这个形参就会变成默认值。

def describe(name='xxx',age='xx'):
    print(name+' is '+age+'.')
name='Rick'
age='19'
describe(name=name)
describe(age=age)
'''
结果:
Rick is xx.
xxx is 19.
'''
返回值

​ 在定义函数时,在函数的最后可以用return语句让函数返回一个值(也可以是字典、列表等变量类型)。

def fullname(firstname,lastname):
    fullname=firstname+'-'+lastname
    return fullname.title()		#让函数返回一个字符串
while True:
    firstname=input("Please input your firstname(input q to quit):")
    if firstname=='q':
        break
    lastname=input("Please input your lastname(input q to quit):")
    if lastname=='q':
        break
    print(fullname(firstname,lastname))
'''
结果:
Please input your firstname(input q to quit):chris
Please input your lastname(input q to quit):evens
Your fullname is: Chris-Evens.
Please input your firstname(input q to quit):q
'''

def fullname(firstname,lastname):
    person={'first':firstname,'last':lastname}
    return person		#让函数返回一个字典
print(fullname(firstname='Chris',lastname='Evens'))
'''
结果:
{'first': 'Chris', 'last': 'Evens'}
'''
传递列表

​ 向函数传递列表没有什么特别的方法,只是函数的参数为列表而已。

在函数中修改列表

​ 将列表传递给函数后,在函数中可以对它进行修改,这些修改均是永久性的。类似于C语言的函数中对数组的修改。

def func(list):
    list[-1]='null'
fruits = ['apple','banana','peach']
print(fruits)
func(fruits)
print(fruits)
'''
结果:
['apple', 'banana', 'peach']
['apple', 'banana', 'null']
'''
禁止函数修改列表

​ 如果想要函数不改变实际列表的值,可以在向函数传递列表时仅传递列表的副本,如fruits[:]

def func(list):
    list[-1]='null'
fruits = ['apple','banana','peach']
print(fruits)
func(fruits[:])
print(fruits)
'''
结果:
['apple', 'banana', 'peach']
['apple', 'banana', 'peach']
'''
传递任意数量的实参

​ 在函数的形参名前面加一个*,这时Python就会创建一个空的元组,并将收到的所有值都存在这个空元组中。

def func(*fruits):
    print(fruits)
func('pear')
func('apple','banana')
'''
结果:
('pear',)
('apple', 'banana')
'''

​ 在函数的形参名前面加两个*,这时Python就会创建一个空的字典,并将收到的所有名称-值对(关键字实参)都存在这个字典之中。

def func(**user_info):
    print(user_info)
func(name='Rick',location='ChongQing')
'''
结果:
{'location': 'ChongQing', 'name': 'Rick'}
'''
将函数存储在模块中
导入模块及其中函数

​ 函数可以储存在被称为模块的独立py文件中。可以使用import语句来使用模块中的代码。

​ 导入整个模块:import + 文件名,此时若要使用函数需要写成模块名.函数名()

​ 导入模块中特定函数:from + 模块名 + import + 函数名1(无括号),函数名2,……。这种情况下使用函数就只用指定其名称即可,不用再在前面加入模块名。

​ 导入模块中所有函数:from + 模块名 + import + *

使用as给函数和模块指定别名

​ 给函数指定别名:from + 模块名 + import + 函数名1 + as + 别名

​ 给模块指定别名:import + 模块名 + as +别名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值