一、使用
def getBook(bookOrder):
if(bookOrder == 1):
bookOrder = 2
return "高等数学"
else:
return "线性代数"
bookOrder = 1
print(getBook(bookOrder))
print(getBook(bookOrder))
注意:
①def和缩进确定函数范围
②传入形参不需要声明数据类型
③和C中同样,在函数中修改传进去的数值,不会影响原来变量的值。而修改传进去列表之类的,会改变其中的值(如果不想改变列表的值,传进去一个副本就可以了,列表那篇有写)
二、参数列表的特殊之处
1.给实参指定一个值
def point(x,y):
print(x)
print(y)
#下面三行效果一样
point(1,2)
point(x = 1,y = 2)
point(y = 2,x = 1)
2.参数默认值
def point(x,y = 2): #y的默认初始值是2
print(x)
print(y)
point(1)
point(1,3)
上面一行,相当于,把1作为实参传入给参数x,而默认值y还是2
后面一行,相当于,传入两个参数给x,y,默认值就不起作用了
*注意,函数的第一个参数不能设成有默认值
3.参数数量不定
def Poem(*sentences):
print(sentences)
Poem("苟利国家生死以")
Poem("苟利国家生死以","岂因祸福避趋之")
*sentences创建了一个名为sentences的元组,把参数列表的内容都放到这个元组里面
三、返回值
没什么好说的,C,Java怎么返回Python就怎么返回
但是有一点要注意,如果想一次性返回几个值,可以返回一个列表或字典
四、模块化
把某些功能相近的函数放在一个.py文件中,然后导入即可。这可以使程序结构清晰
1.
就比如:
模块函数中
#保存到Welcome.py中
def Welcome1():
print("fasd")
def Welcome2():
print("adsf")
主函数中
#方法1
import Welcome#导入模块
Welcome.Welcome1()#使用导入的函数
#方法2.1
from Welcome import Welcome1,Welcome2#导入模块中的某几个函数
Welcome2()#此时不需要句点号
#方法2.2
from Welcome import *#导入模块中所有的函数
3.
下面的代码则可以将导入的函数改变成as后的名字,避免和主函数中的重名
#如果担心导入函数与原来重名
from Welcome import Welcome2 as Wc2
#模块也可以更名
import Welcome as Wc