1、使用函数列表模拟switch语句
程序提供了一个用户选择菜单,它提示用户输入一个整数,然后使用该整数来确定要调用哪个函数。实现此逻辑一个明显的方法是使用一系列if/elif语句。
if n==1:
do_plot(stockdf)
elif n==2:
do_high_plot(stockdf)
elif n==3:
do_volumn_plot(stockdf)
elif n==4:
do_movin_plot(stockdf)
python函数是对象,可以像其他任何类型的对象一样将它们放置在列表中,然后可以引用其中一个函数并调用它
fn=[do_plot,do_high_plot,do_volumn_plot,do_movin_plot][n-1]
fn(stockdf)
可以对n-1进行求值,如果该值为0(即n等于1),则执行列出的第一个函数do_plot,此代码根据n的值调用不同的函数。
2、用range函数创建枚举值
red,blue,green,black,white=range(5)
red,blue,green,black,white=range(1,6)
3、软件包
re:正则表达式软件包。使用该软件包可以创建匹配许多不同单词、短语或句子的文本模式。这种模式规范语言可以高效地执行复杂的搜索
math:数学软件包。包含有用的标准数学函数,包括三角函数、双曲函数、指数函数和对数函数,以及常数e和pi
random:包含一组用于生成伪随机数的函数。伪随机数表现为随机的,这意味着用户实际上无法预测它们
arry:数组软件包支持arry类
4、可变长度参数列表
1)*args列表参数
*称为位置展开运算符,它的用途是表示一个“展开的列表”
def func_name([ordinary_args,]*args):
*args语法可用于访问任意长度的参数列表
def avg(*args):
return sum(args)/len(args)
avg(11,22,33)
#输出22
前面提到的普通参数,即未包含在列表args中的其他参数,必须在列表参数args之前或者关键字参数。
def avg(units,*args):
print (sum(args)/len(args),units)
avg('inches',11,22,33)
#输出22.0 inches
2)*kwargs列表参数
def fun_name([ordinary_args,]*args,**kwargs):
kwargs指的是一个字典,其中每个键值对都是一个包含参数名称(键)和参数值(值)的字符串。
def pr(*args,**kwargs):
for i in args:
print(i)
for k in kwargs:
print(k,':',kwargs[k])
pr(1,2,3,4,a=100,b=200)
#输出
1
2
3
4
a : 100
b : 200
尽管args和kwargs分别被扩展为列表和字典,但也可以将这些符号传递给另一个函数