# 最简单的函数定义
def my_max():
print("其实我啥都不做")
# 调用上面自定义的函数
my_max()
# 带返回值的函数
def my_nothing():
return 23333
# 调用,并且将返回值赋值给变量
n = my_nothing()
n
# 带参数的函数
def real_max(a, b):
if a > b:
return a
else:
return b
# 按顺序进行形参实参结合
real_max(7, 8)
# 按名字进行结合,顺序可随意
real_max(b=999, a=321)
# 混合式
real_max(10, b=3)
# 错误的混合式,重复指定了a,而且b还漏了
# 注意:人工检查能发现多个错误,但是编译器在第一个就会停下报错
real_max(10, a=3)
# 漏了参数b
real_max(10)
# 带默认值的参数,在调用的时候,a b必须,而c可选
def max3(a, b, c=0):
if a > b and a > c:
print(a)
elif b > a and b > c:
print(b)
elif c > a and c > b:
print(c)
max3(1, 5, 3,)
max3(-9, -6)
max3(1, c=5, b=3)
max3(-9, b=-6)
# 使用可变个数参数的函数(知道就行,不要求熟悉这个)
def max00(
*args,
**kwargs
):
"""
doc-string
这是一个奇葩的求最大值函数
"""
print(args)
print(kwargs)
max00("o", 3, d=4)
# 在函数或者别的对象的前或者后加问号,可以查看该对象的说明
?max00
# 把函数写到 test.py 文件中,引入这个文件模块
import test
# 前者是来自模块test中的函数max00,后者是在本文件中定义的max00,不一样
test.max00, max00
# 把文件模块放在目录中
import t1207.test
t1207.test.max00
# import的时候可以给模块起别名,一方面是简略,一方面是避免重名
import test as te
%%time
# 加上%%time这个魔法指令,用于计算本单元格执行时间
from matplotlib import pyplot as plt
from astropy.io import fits, ascii
plt.plot(np.sin(np.arange(0, 10, 0.01)));
import sys
sys.path.insert(0, "../t1207")
import test