Python按位取反揭秘:9变-10的奥秘及计算步骤
python按位取反运算符?
为什么Python按位反转9时得到-10?计算步骤是什么?~9的计算步骤:
转换为二进制:01001
计算补码:01001
按位求反:10110
转换为原码:10110
按位取反:11001补码
最后一位加一:11010补码
符号位1为负数,即-10
规则:~x=-(x+1);
因此,t=~9(1001)不能输出6(0110),而是-10;
python中按位转换旋转是什么意思?公式是这个[1变成0,0变成1]。
例如:0010101~1101010是一个值得注意的数字。
~运算符与-运算符不同,~21≠-21。
原码:原码是二进制数的简单表示。
二进制数的第一位是符号位,1代表负数,0代表正数。
反码:由原码可以得到反码。
如果是正数,则补码与原码相同;如果是负数,则将原码的各位(符号位除外)反转得到补码。
补码:由原码可以得到补码。
如果是正数,则补码与原码相同;如果是负数,则将原码所有位(符号位除外)取反,最后一位加1(有进位则进位,但不改变符号位))。
Python有一个按位否定运算符:~?但操作负整数时要小心,因为在计算机系统中,值总是以二进制补码表示和存储。
Python运算符总结
第一类:Python算术运算符
算术运算符主要对两个对象进行算术运算的符号计算具有与数学概念类似的运算逻辑,因此更容易理解。
常见的算术运算符有:
+:相加,两个对象相加;
-:减法,一个数字减另一个数字,或者是负数;
/:除法,一个数字除以另一个数字;
*:乘法,两个数字相乘,或返回重复多次的字符串;
%:取模除法并返回二除法的余数Numbers;
//:取整数,返回两个数相除所得商的整数部分;
**:幂运算,返回X的Y次方。
第二种:Python比较关系运算符
用于比较两个对象,操作数可以是数值,也可以是字符串。
==:相等,判断两个对象是否相等。
这里的相等是指两个变量的值相等但是两个变量不相同;
此外,其他比较操作符号还包括:!=notequal来判断两个对象是否相等等于、大于、小于、=大于或等于、=小于或等于。
第三种:Python赋值运算符
赋值运算符是编程开发中最常用的运算符,即给一个对象赋值,将值赋值在右边运算符的一侧连接到左侧的变量。
=:简单赋值运算符,用于变量赋值;
+=:加法赋值运算符;
另外,-=、*=、/=、/=、%=、//=等。
第四种:Python逻辑运算符
用于逻辑预算的符号。
一般用于判断两个变量的交集和并集。
它通常返回一个布尔值。
其运算原理与数学中的逻辑运算相同,包括:
和:列表中的值,可以截取对应的列表。
从左到右的索引默认为0,从右到左的索引默认为-从1开始,下标可以为空,表示到达开头或结尾。
加号+是列表连接操作符,星号*是重复操作。
元组是另一种数据类型,类似于列表。
元组用“()”标记。
内部元素用逗号分隔。
然而,元组不能被赋值两次,相当于只读列表。
字典是Python中除了列表之外最灵活的内置数据结构类型。
列表是对象的有序组合,字典是对象的无序集合。
两者的区别在于字典中的元素是通过key来访问的,而不是通过offset来访问的。
字典用“{}”标识。
字典由索引(键)及其对应的值组成。
3.Python数据类型转换
有时候,我们需要对内置的数据类型进行转换。
要转换数据类型,只需使用数据类型作为函数名即可。
以下内置函数可以执行数据类型之间的转换。
这些函数返回一个表示转换值的新对象。
函数说明
int(x[,base])
将x转换为整数
long(x[,base])
将x转换为长整型
float(x)
将x转换为浮点数
complex(real[,imag])
创建一个复杂的number
str(x)
将对象x转换为字符串
repr(x)
将对象x转换为表达式字符串
repr(x)
将对象x转换为表达式字符串
repr(x)
将对象x转换为表达式字符串
eval(str)
用于计算字符串中有效的Python表达式并返回一个对象
tuple(s)
转换序列s进入一个tuple
list(s)
将序列s转换为列表
set(s)
转换为可变set<计算值。
(aorb)返回10。
notnotx布尔值“not”-如果x为True,则返回False。
如果x为False,则返回True。
not(aandb)返回False
⑤:Python成员运算符
除了上述一些运算符之外,Python还支持成员运算符。
测试示例包括一系列成员,包括字符串、列表或元组。
运算符描述实例
in如果在指定序列中找到该值,则返回True,否则返回False。
x在y序列中,如果x在y序列中,则返回True。
notin如果在指定序列中没有找到该值则返回True,否则返回False。
x不在y序列中,如果x不在y序列中,则返回True。
⑥:Python恒等运算符
恒等运算符用于比较两个对象的存储单元
运算符描述示例
Isis判断两个标识符是否引用一个对象xisy,类似id(x)==id(y),如果引用同一个对象则返回True,否则返回False
isnotis不是判断两个标识符是否引用不同的对象xisnoty,类似于id(a)!=id(b)。
如果引用不是同一个对象,则结果为True,否则为False。
#数据类型
print(0xff00);?#十六进制用0x前缀和0-9、a-f表示
print(1.23e9);?#for大或小的浮点数必须用科学计数法表示。
将10替换为e。
1.23x10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,以此类推。
#在Python中,可以直接使用True和False来表示布尔值(请注意大小写)。
布尔值可以用and、or和not进行运算。
#null值是Python中的一个特殊值,用None表示。
None不能理解为0,因为0是有意义的,None是一个特殊的空值。
#----------------------------------------------------
#打印语句
print('hello,world')
print('Thequickbrownfox','jumpsover','thelazydog')#遇到逗号“,”时会出现空格输出
print('100+200=',100+200)?#计算100+200的结果
#-----------------------------------------------------------
#变量
a=1?#变量由变量名表示。
变量名必须是大小写英文、数字和_的组合,并且不能以数字开头
#可以为变量赋值任何数据类型。
一个变量可以重复赋值,可以是不同类型的变量,这就是动态语言
#-------------------------------------------
#可以使用转义字符\、\n、\t等
#-------------------------------------------
#原始字符串和多行字符串
print(r'\(~_~)/\(~_~)/');?#我们可以在字符串前面添加前缀r,表示这是一个原始字符串,里面的字符不需要转义
#但是r'...'表示法不能表达多行字符串不能表示包含'和"的字符串
#如果要表示多行字符串,可以使用'''...'''
print('''Pythononiscreatedby“Guido”。
它是免费且易于学习的。
让我们开始学习Pythoninimooc!''');?#相当于'Line1\nLine2\nLine3'
#----------------------------------------------------
#Python后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,对于例如:
print(u'中文')
#------------------------------------------------
#布尔类型
a=True
打印(aand'a=T'或'a=F',a)
aand'a=T'
#计算结果不是布尔类型,而是字符串'。
a=T',
#因为Python将0、空字符串''和None视为False,而将其他值和非空字符串视为True,所以:
aand'a=T'#计算结果为'a=T'
print(aand'a=T'or'a=F')#计算结果仍为'a=T'
#创建tuple
#tuple是另一个有序列表,翻译成中文就是“元组”。
元组与列表非常相似,但元组一旦创建就无法修改。
t=('Adam','Lisa','Bart')?#创建元组和创建列表唯一的区别是使用了()而不是[]
print(t)
#list是一个有序集合,其中可以随时添加和删除元素。
Element
L=['Adam',95.5,'Lisa',85,'Bart',59]
#根据索引访问列表
#输出Bart,下标从0开始
print(L[4])
#ReverseorderAccesslist
#OutputBart,下标从0开始0
print(L[-2])
#dict的特点
#dict的第一个特点就是查找速度快。
无论dict有10个元素还是10万个元素,搜索速度都是一样的(而list的搜索速度是一样的)随着元素数量的增加,搜索速度逐渐降低。
然而dict的快速搜索速度并不是没有代价的。
dict的缺点是占用大量内存,浪费大量内容。
相反,list占用内存少,但查找速度慢)<。
/p>
#由于dict是按key查找的,所以dict中key不能重复。
#dict的第二个特点是存储的键值对是无序的
#dict的第三个特点是作为键的元素必须是不可变的,Python基本类型例如字符串、整数和浮点数都是不可变的,可以用作键。
但列表是可变的,因此不能用作键
d={'Adam':95,'Lisa':85,'Bart':59}
#更新dict
d['Paul']=72?#如果key已经存在,则赋值会用新值替换原值
#遍历dict
论坛ind:
print(i,':',d[i])
#------------------------------------------------------
#set持有一个一系列的元素,这和list很相似,但是set的元素不重复,而且是无序的,这和dict的key很相似。
#Create
s=set(['A','B','C'])
#Traverse
#更新集合
s.add(4)#元素已存在集合中,add()不会报错,但不会添加
s.remove(4)#集合中不存在该元素,remove()会报告错误,所以需要在remove()之前进行判断。
fornameins:
print(name)
Python中的按位翻转是什么意思?公式为x=按位取反即“按位取反”,具体指的是按位取反运算符~,它是一种一元运算,将数据的每个二进制位取反,从而[1变成0,0变成1]。
例如:0010101~1101010值得注意的数字,~运算符与-运算符不同,~21≠-21。
reverse在python中的用法
Python中的反向使用是通过列表直接调用它。
Reverse是Python中用于反转列表的方法之一,它可以反转列表中元素的顺序;那是,您可以将最后一个元素放在列表的前面和最后一个元素。
直到第一个元素被放置在最终位置。
该元素将被放置在第二位。
可以使用reverse函数来分割表中的元素,以获得更好的调试结果。
它还可以在其他应用程序中用于反转字符串或顺序列表;可以使用检查异常等。
使用字符串反转器是避免使用技巧或创建新列表来反转字符串的有效方法。
此外,如果列表中的元素是数字或字符串;需要注意的是reverse只是对元素进行反转,并不是对元素进行排序。
反向的具体应用:
1.在类中使用:如果您正在编写一个类并且想要包含一个可以反转的方法。
然后你可以使用“reverse()”。
2.用于文件操作:filesesp处理文本文件时;您可能需要按特定顺序阅读或写句子。
在这种情况下,你可以先将所有行读入一个列表;然后,您可以使用“reverse()”以相反的顺序运行行。
3.在数据结构中的应用:对于复杂的数据结构,如双向链表;用户需要使用“reverse()”方法来改变节点的方向。
4.在函数中使用:如果您需要一个函数来反转列表。
您可以在自定义函数中使用“reverse()”。