23
#!/usr/bin/python
#coding=utf8
importnumpy as np
deff(data):
forval indata:
ifval <=0.6:
r1=val*1
print"this is <= 0.6 numbers", r1
ifval > 4:
r1=val*1
print"this is > 4 numbers ", r1
defmain():
data=(0.1,5.1,0.5)
(data > 0.3)(data <=1):
r1=data *1
printr1
f(data)
if__name__=='__main__':
main()
对应的输出是:
?
1
2
3
4
5
[0.1 0.6 1.1 1.6 2.1 2.6 3.1 3.6 4.1 4.6]
thisis<=0.6 numbers 0.1
thisis<=0.6 numbers 0.6
thisis> 4numbers 4.1
thisis> 4numbers 4.6
在()中,只要满足条件,整个list就是true的。而我在分段函数计算时,恰恰使用到了()来判断list的范围,在后面的计算中,其实是整个list同时运算然后赋值了,也就将分段函数结果简化成了某一段的所有值。正确的计算分段函数有两中策略,要么像上面的函数f(),要么将list分段带入运算。
这个问题我纠结了一个晚上,最后才发现是()的问题。最开始使用的时候,其真正的用法没有具体熟悉,同时我也该反省我自己,对python语言掌握的实在太菜了!
路漫漫其修远兮,吾将上下而求索~ 添加vx号 hailou166 一起学习,海量资料和视频直播