当前位置:首页 » 编程语言 » python取反

python取反

发布时间: 2022-01-25 16:35:45

A. 我想问下python中 逻辑与:“&”和“and”的区别

1、“&”和“and”有本质区别,属于不同类型的运行符号。& 是位运算;and 是逻辑运算。

2、首先是&:该运输符属于字符串的连接运算符,例如,“w“&”c“结果为字符串”wc“。

3、and属于逻辑运算符,表示逻辑与运算,其规则是有假取假,全真为真。例如,true and false结果为false,true and true结果为true。

(1)python取反扩展阅读

Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。

在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确的没有或者很少有歧义的语法。

由于这种设计观念的差异,Python源代码通常被认为比Perl具备更好的可读性,并且能够支撑大规模的软件开发。这些准则被称为Python格言。在Python解释器内运行import this可以获得完整的列表。

Python开发人员尽量避开不成熟或者不重要的优化。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python内。所以很多人认为Python很慢。

不过,根据二八定律,大多数程序对速度要求不高。在某些对运行速度要求很高的情况,Python设计师倾向于使用JIT技术,或者用使用C/C++语言改写这部分程序。可用的JIT技术是PyPy。

Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。

Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。

虽然Python可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发计划例如Zope、Mnet及BitTorrent,Google也广泛地使用它。

Python的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shellscript、VBScript等只能处理简单任务的编程语言,并不能与Python相提并论。

Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。

因此,很多人还把Python作为一种“胶水语言”(glue language)使用。使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目,例如Google Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。

《Python技术手册》的作者马特利(Alex Martelli)说:“这很难讲,不过,2004 年,Python 已在Google内部使用,Google 召募许多 Python 高手,但在这之前就已决定使用Python,

他们的目的是 Python where we can, C++ where we must,在操控硬件的场合使用 C++,在快速开发时候使用 Python。”

B. python中的if not 怎么用

python中的if not的用法说明如下:

1、if的语法为:if 条件为真:执行语句,而not是取反的意思。

2、从上面的解释可理解为:if not 条件为真:执行语句<==>if 条件不为真:执行语句。

3、举例:if n>3:print "True",假如n=3,就打印“True”。如果加上not,即为if not n>3:print “True”,就有:n<=3,才会打印“True"。

(2)python取反扩展阅读:

python中的“if not 1”:

if条件语句后面需要跟随bool类型的数据,即True或者False。然而,如果不是bool类型的数据,可以将其转换成bool类型的数据,转换的过程是隐式的。

在Python中,None、空列表[]、空字典{}、空元组()、0等一系列代表空和无的对象会被转换成False。除此之外的其它对象都会被转化成True。

在命令“if not 1”中,1便会转换为bool类型的True。not是逻辑运算符非,not 1则恒为False。因此if语句if not 1之下的语句,永远不会执行。

C. python中两个等号符号,怎么用键盘打出来

Python中提供了各种各样的运算符帮助我们解决各种实际问题。Python中的运算符主要包括算术运算符、比较运算符、位运算符、逻辑运算符和赋值运算符。下面将一一介绍这些运算符的具体种类和使用方法。

算术运算符

算术运算符帮助我们完成各种各样的算术运算,如加减乘除等。Python中的算术运算符的种类如下表所示:

下面在Python中演示一个例子看看其具体输出情况:

x = 7
y = 3
print(x+y)
print(x-y)
print(x*y)
print(x/y)
print(x**y)
print(x//y)
print(7.0/3)
print(7.0//3)
print(7//3.0)
print(7.0//3.0)

上面程序在Python自带的IDLE中的运行情况如下图所示:

比较运算符

比较运算符的作用是对变量或表达式的结果进行大小或真假的比较。其计算结果有两种:True或False。

下表中给出了Python中所有的比较运算符的形式以及其含义。

表中的x、y、a和b的取值:x = 7, y = 8,a = 4, b = 7

在Python3.8.2Shell中运行上面的例子,其结果如下图所示:

赋值运算符

Python中,变量无须定义,可以直接使用,即在使用时,可以直接把基本赋值运算符“=”右边的值赋给左边的变量,也可以进行某些运算后再赋值给左边的变量。

Python中的赋值运算符有两种形式:

(1)基本的赋值运算符,即单个“=”,其把右边的值或运算结果赋给左边的变量;

(2)复合的赋值运算符,即由算术运算符和“=”组合成的赋值运算符,其兼有运算和赋值的功能,如+=,相当于左边的操作数加上右边的操作数后,再赋值给左边的操作数。

在Python中常用的赋值运算符如下表所示。

在Python IDLE中使用上面赋值运算符操作的例子如下图所示:

上面的例子中要注意 c=-13,c //=3 这个结果,//相当于向下取整。

最后一个例子中x %= 3,由于前面运算完毕后,x的值为4.8,这里进行取模运算后,结果应该是1.8,但由于精度问题,显示成了图所示的结果。

逻辑运算符

Python有三种逻辑运算符:逻辑与,逻辑或和逻辑非。

一、基本用法

(1)and : 逻辑与

and运算需要两个操作数,如果参与运算的两个操作数都为True,则结果为True,否则运算结果为False。

b1 = True
b2 = True
b3 = False
b4 = False
print( b1 and b2)
print( b1 and b3)
print( b3 and b1)
print( b3 and b4)

其运行结果如下:

从运算结果可以总结出:如果and左侧操作数为False,则结果为False,否则为右侧操作数的值。

(2)or : 逻辑或

逻辑or运算也需要两个操作数,如果参与or运算的两个操作数有一个为True,则运算结果为True;两个操作数都False时,则返回结果False.

b1 = True
b2 = True
b3 = False
b4 = False
print( b1 or b2)
print( b2 or b3)
print( b3 or b4)
print( b3 or b1)

其运算结果如下:

可以看出,如果or左侧操作数的值为True,则结果为True,否则为右侧操作数的结果。

(3)not : 逻辑非

not只需要一个操作数,它对原值取反,即操作数为True时,非运算完后为False;原操作数为False时,非运算完后True。

b1 = True
b2 = False
print( not b1)
print( not b2)

其运算结果如下:

在Python中,逻辑运算符可以运用到非逻辑类型的数据中。

二、用于非逻辑数据类型

Python中,非0的数值类型被视为True,0被视为False;非空字符串被视True,空字符串被视为False。

1、and:逻辑与

(1)数字参与的运算

b1 = 2
b2 = 3
b3 = 0
print(b1 and b2)
print(b1 and b3)
print(b3 and b1)

其运算结果如下:

可以简单的概括为:如果and左侧为0,则结果为0,否则返回右侧操作数的值。

(2)字符串运算

s1 = "百家号"
s2 = "翔宇亭IT乐园"
s3 = ''
s4 = ''
print( s1 and s2)
print( s1 and s3)
print( s3 and s2)
print( s3 and s4)

其运算结果如下:

从运算结果可以简单总结:左操作数如果为空字符串,则返回空,否则为右侧操作数的值。

2、or:逻辑或

(1)数字参与的运算

b1 = 2
b2 = 3
b3 = 0
b4 = 0
print( b1 or b2)
print( b2 or b1)
print( b2 or b3)
print( b3 or b2)
print( b3 or b4)

其在Python3.8.2中的运算结果如下:

从上面的运算结果可以总结:如果or左侧的操作数是非0值,则返回左侧的数值,否则返回右侧操作数的值。

(2)字符串参与的运算

s1 = "翔宇亭IT乐园"
s2 = "biye5ucom"
s3 = ''
s4 = ''
print( s1 or s2)
print( s2 or s1)
print( s1 or s3)
print( s3 or s2)
print( s3 or s4)

其在Python3.8.2中的运算结果如下:

从上面结果可以总结:如果or左侧操作数为非空字符串,则返回左操作数的值,否则返回右侧操作数的值。

3、not:逻辑非

(1)有数字参与的运算

从上面可以看出:非0值取反后结果为False,0值取反后结果为True。

(2)有字符串参与的运算

从上面的运算结果来看:非空字符串取反后结果为False,空字符串取反后结果为True。

位运算符

位运算符也称二进制运算符,并且这些运算符只用于对整型数进行运算。

进行位运算时,整型数被转换为二进制形式,然后位运算符对每位执行有关运算后,将结果再转换回十进制形式,并返回给用户。

Python中共有6种位运算符:

(1)&:按位与运算

对应位上的二进制数进行与运算,如果参加位运算的两个二进制数为1,则结果为1,只要有一个为0,则结果为0,如10和4进行按位与运算,他们对应的二进制形式分别为:1010 和 100,则:

1 0 1 0
& 0 1 0 0
-----------
0 0 0 0

即10和4按位与运算的结果为二进制的0,也对应着10进制的0,最终结果即为0,即 10 & 4 = 0

再如,5和6进行按位与运算,其对应的二进制形式分别为: 101 和 110,

0 1 0 1
& 0 1 1 0
-------------
0 1 0 0

其运算结果为二进制的100,即十进制的4,也就是说: 5 & 6 = 4

在Python中的运行结果如下:

(2)按位或运算

按位或运算是二进制对应的每位进行或运算。如果对应的两位都为0,则结果为0,只要有一个为1,则结果为1。

10 和 4的或运算:

1 0 1 0
| 0 1 0 0
------------
1 1 1 0

其或运算的结果为二进制的 1110,对应着十进制的 14,即 10 | 4 = 14.

5 和 6的或运算:

0 1 0 1
| 0 1 1 0
------------
0 1 1 1

5 和 6的按位或运算结果为 0111,对应的十进制为 7 ,即 5 | 6 = 7.

在Python中的运行结果:

(3)按位异或运算

按位异或运算,即对应的两个二进制位不同时,结果为1,否则为0.

10 和 4 的按位异或运算:

1 0 1 0
^ 0 1 0 0
------------
1 1 1 0

即,结果为二进制1110,对应的十进制为14,亦即: 10 ^ 4 = 14

5 和 6 的按位异或运算:

0 1 0 1
^0 1 1 0
------------
0 0 1 1

0011对应的十进制数为3,也就是说: 5 ^ 6 = 3

在Python中的运行结果:

(4)按位取反运算符

该运算是单操作数运算符,即其只需要一个操作数参与运算。运算时,二进制数上的每位取反,即1变为0, 0变为1.

这里涉及到数字在计算机中的存储形式,在计算机中,最高位为符号位,符号位为0时表示正数,符号位为1时表示负数。

数字在计算机中是以补码的形式进行存储的,整数的补码与原码相同,负数的补码是在原码的基础上除符号位外,按位取反后,再加1.

如 +1,原码为0 0001,补码为 0 0001.

-1 ,原码为1 0001,补码为:1 1111。

再如:+2 ,原码为: 0 0010,补码为:0 0010.

-2,原码为:1 0010,补码为:1 1110

10按位取反运算(第1位为符号位):

~ 0 1 0 1 0
--------------
1 0 1 0 1

结果最高位为1,为负数,因为负数在计算机中以补码形式存储,转换为原码(先减1,再按位反)为:

1 1011

即对应的十进制数为 -11,即: ~10 = -11.

5 按位取反运算:

~ 0 0 1 0 1
---------------
1 1 0 1 0

结果对应的原码为: 1 0110,对应的十进制数为:-6

在Python中的运行结果:

(5)<<:按位左移运算符

其形式为:m<<n

按位左移运算,m对应的二进制数的每位向左移动n位,后面补0.

如10的二进制数 1010 向左移动两位后为:10 1000,其对应的十进制数为:40.

5的二进制数:0101,向左移动两位后为:1 0100,其对应的十进制数为:20

也就是说,一个整数左移n位相当于这个数 m×2n

在Python中的运算结果:

(6)>>:按位右移运算符

其形式为:m >> n

即m对应的二进制数每位向右移动n位,移出的二进制数字去掉,最左边空出的变为0.

10的二进制 1010 向右移动1位为:0101,即变为十进制的5;再移动1位变为0010,变为2,再移动1位变为0001,变为1,再移动就一直为0了。

即每向右移动1位,相当于原数除以2,只保留整数部分;移动n位,相当于原数除以2n,只保留整数部分。

在Python中的运算结果:

以上详细讲解了Python中各种运算符的使用方法,如果你对Python、R等感兴趣,欢迎关注我,本号将持续更新相关内容的文章。

D. python在通过opencv调用摄像头实时显示的时候如何取反色

感觉只能自己写个函数,把视频的每一帧图像按像素值计算。

E. python按位取反9为什么会得到-10计算步骤是什么啊

~9的计算步骤:

转二进制:0 1001

计算补码:0 1001

按位取反:1 0110

转为原码:1 0110

按位取反:1 1001 反码

末位加一:1 1010 补码

符号位为1是负数,即-10

规律:~x=-(x+1);

因此,t=~9(1001)并不能输出6(0110),而是-10;

F. 在python中为什么不能对字符取反

python 3的整型以16bit递增。
0xf0 =0b 0000 0000 1111 0000
~0xf0之后得到1111 1111 0000 1111
[1][111 1111 0000 1111]
确定是负数,有负数等于绝对值反码加一。求补码形式。
绝对值减1得:111 1111 0000 1110
反码得:000 0000 1111 0001
得-0xf1即-241(你那的~a[0]得-241)
要求得到[0,256),限定一下范围即可。

G. 请问python中为什么~True等于-2另外除了~还有没有其他取反操作符

去反是按位去反?那只有这个符号“~”

True是一个bit,bool型,按位去反会扩展成int型,True的默认值是1即0x0000_0001( 假设int为32位)
所以~True为0xffff_fffe, 也就是-2 ( 补码-2)

如果不是按位去反的操作可以直接用not, not True

H. python中按位翻转是什么意思 公式是~x = -(x+1) 不明白

就是按二进制位翻转而已,知道原码、反码、补码、移码吗?

是计算机基础课的内容,如果你都不知道,那就很难说了

简单的说例如1用32位二进制存储的结果是

这是二进制,不是十进制哦,那么求反,或者说按位求反,或者说按位翻转都一样,结果就是

1变0,0变1能理解吧?
那么-(x+1)是为什么呢,是这样假设x还是1,那么x+1就是

不要奇怪,这是二进制哦
那么取-呢,就是取负呢,一般计算机用补码,表示,补码的取负就是按位取反之后再加1,先取反结果就是

最后再加个1就是


是不是和1直接取反的结果一样?公式就是这样

但是如果你说你对补码原码一点概念都没有,这个你就会很难理解,建议去网络里面先学学,参考“参考资料”

I. 求python取原码、补码、反码的方法或函数

  • 原码:原码是二进制数字的一种简单的表示法。二进制首位为符号位,1代表负,0代表正。

  • 反码:反码可由原码得到。如果是正数,反码与原码相同;如果是负数,反码是其原码(符号位除外)各位取反而得到的。

  • 补码:补码可由原码得到。如果是正数,补码与原码相同;如果是负数,补码是对其原码(除符号位外)各位取反,并在末位加1而得到的(有进位则进位,但不改变符号位)。

python有按位取反的操作符:~ 但是对负整数要小心操作,因为在计算机系统中,数值一律用补码来表示和存储的。

热点内容
为什么安卓没法下载神武4 发布:2024-11-15 23:46:18 浏览:335
巫师3和英雄联盟哪个吃配置 发布:2024-11-15 23:46:10 浏览:805
qt文件加密 发布:2024-11-15 23:40:35 浏览:738
咸阳做脚本的 发布:2024-11-15 23:38:57 浏览:773
途观与探岳哪个配置高 发布:2024-11-15 23:30:39 浏览:518
dhcp服务器如何更新ip地址 发布:2024-11-15 23:18:40 浏览:126
ai清除缓存 发布:2024-11-15 23:12:38 浏览:603
电脑版我的世界如何退出服务器 发布:2024-11-15 23:00:39 浏览:313
哪里有存储器零售商 发布:2024-11-15 22:55:42 浏览:47
手机如何设置锁屏密码个性 发布:2024-11-15 22:44:08 浏览:418