python学习笔记(函数)(*7)
第七篇(写于2020/1/7)
所用教材:python编程从入门到实践
命名一个函数
def exp(形参):
内容
return 参数
exp(实参)#调用函数
可以看到,运用def()命名了一个函数,并且括号里传形参,形参可以参与到运算中。调用时,传入实参,将实参的值赋给形参,并参与函数的运算,执行内容,返回参数。
传参时的几种方法
1.按位置一一对应
def use(age,sex):
print(age)
print(sex)
use('16','girl')
这里一一对应就对了,顺序一定要对应
2.关键字传参
def use(age,sex):
print(age)
print(sex)
use(sex='girl',age='16')
这里可以看到因为有了标识,所以位置反了都没关系
默认值
在命名函数时可以有默认值,如果没有传参,那么形参将保持默认值
def use(age,sex='boy'):
print(age)
print(sex)
use('16',)
这里只传了age没有传sex,但是sex有默认值,所以按默认值来
另外传参还可以传列表,字典之类的,具体操作也就是在函数中操作列表和字典
如果传列表只想传值而不像改变列表的话,可以用切片
传参的时候用切片
def use(list[:]):
相当于传递了副本
传递任意数量的参数(*号)
def cars(*type):
print(type)
cars('bwm','benci','suzuki','toyota')
结果:(‘bwm’, ‘benci’, ‘suzuki’, ‘toyota’)
用*号表示创建了一个元组,然后将获取的值存到元组中
传递任意数量的参数(**号)
def cars(**type):
print(type)
cars(one='bwm',two='benci',three='suzuki',four='toyota')
{'one': 'bwm', 'two': 'benci', 'three': 'suzuki','four': 'toyota'}
用**号创立了一个字典,这里可以看到传入的参数以键-值对的方式存到字典里面
函数模块化
将函数存到模块里
就是一个程序用另一个写好的程序里的函数的用法
pizza.py
def make_pizza(size)
print(size)
def make_ice(*items)
print(items)
另一程序要用到make_pizza()
1.导入整个模块,用import,可以用所有的函数;
将pizza.py与新建程序同一个文件夹
import pizza
#用的时候要
pizza.make_pizza()
pizza.make_ice()
这种引入整个模块,使用函数要带模块名
2.直接引入函数用 from *模块* import *函数名*
from pizza import make_pizza
#用的时候直接用
make_pizza()
#同在pizza中的make_ice就不能用了
3.第一种的改良版,from pizza import* 可以引用pizza中的所有函数,且不要加前缀
make.py
from pizza import*
#用的时候要
make_pizza()
make_ice()
使用as起别名
可以用as起别名,加到要起名的函数或模块的后面
如
import pizza as p
#用的时候要
p.make_pizza()
p.make_ice()
或
from pizza import make_pizza as mp
#用的时候直接用
mp()
可以使编程更简洁,但影响可读性,个人感觉没多大用