小白教程

 找回密码
 立即注册
查看: 5695|回复: 0

小白教程:python中的&&及||

[复制链接]

176

主题

185

帖子

663

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
663
发表于 2021-4-4 11:01:48 | 显示全部楼层 |阅读模式

首先说明一下,在python中是没有&&及||这两个运算符的,取而代之的是英文and和or。其他运算符没有变动。

  接着重点要说明的是python中的a.any(),我之所以会涉及到这个函数,是因为我在设计某个分段数值函数时由于不细心犯的错误引起的。a.any(),根据官方解释:

  Test whether any elements of an array evaluate to True along an axis.

即针对的是一个list,判断list中的某个元素是否为真,此时只要有一个元素为真,list元素全部输出。下面一个例子更直观的做了解释:

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=np.arange(0.1,5.1,0.5)
    ifnp.any(data > 0.3)andnp.any(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
  在a.any()中,只要满足条件,整个list就是true的。而我在分段函数计算时,恰恰使用到了a.any()来判断list的范围,在后面的计算中,其实是整个list同时运算然后赋值了,也就将分段函数结果简化成了某一段的所有值。正确的计算分段函数有两中策略,要么像上面的函数f(),要么将list分段带入运算。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )

GMT+8, 2024-11-24 15:21 , Processed in 0.022817 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表