python异或函数,Python中异或

python 写异或加密

from random import seed,randint

创新互联建站服务项目包括杭锦网站建设、杭锦网站制作、杭锦网页制作以及杭锦网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,杭锦网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到杭锦省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

str_in=input('请输入一个字符串:')

you_seed=input('请输入密码:')

you_seed=int(you_seed)

#lock

def my_lock(lock_str,lock_seed):

seed(lock_seed)

li_out=[]

for i in lock_str:

li_out.append(chr(ord(i)^randint(0,65535)))

return ''.join(li_out)

my_lock_str=my_lock(str_in,you_seed)

print('原字符串:',str_in)

print('加密字符串:',my_lock_str)

print('还原后字符串:',my_lock(my_lock_str,you_seed))

input()

#python 3.4

python中^是什么意思

在Python" // "表示整数除法。

Python其它表达式:

Python的表达式写法与C/C++类似。只是在某些写法有所差别。

主要的算术运算符与C/C++类似。+, -, *, /, //, **, ~, %分别表示加法或者取正、减法或者取负、乘法、除法、整除、乘方、取补、取余。

, 表示右移和左移。, |, ^表示二进制的AND, OR, XOR运算。, , ==, !=, =, =用于比较两个表达式的值,

分别表示大于、小于、等于、不等于、小于等于、大于等于。在这些运算符里面,~, |, ^, , , 必须应用于整数。

扩展资料:

Python使用and, or, not表示逻辑运算。

is, is not用于比较两个变量是否是同一个对象。in, not in用于判断一个对象是否属于另外一个对象。

Python支持“列表推导式”(list comprehension),比如计算0-9的平方和:

sum(x * x for x in range(10))

285

Python使用lambda表示匿名函数。匿名函数体只能是表达式。比如:

add=lambda x, y : x + y

add(3,2)

Python使用y if cond else x表示条件表达式。意思是当cond为真时,表达式的值为y,否则表达式的值为x。相当于C++和Java里的cond?y:x。

Python区分列表(list)和元组(tuple)两种类型。list的写法是[1,2,3],而tuple的写法是(1,2,3)。可以改变list中的元素,而不能改变tuple。

在某些情况下,tuple的括号可以省略。tuple对于赋值语句有特殊的处理。因此,可以同时赋值给多个变量,比如:

x, y=1,2 # 同时给x,y赋值,最终结果:x=1, y=2

特别地,可以使用以下这种形式来交换两个变量的值:

x, y=y, x #最终结果:y=1, x=2

Python使用'(单引号)和"(双引号)来表示字符串。与Perl、Unix Shell语言或者Ruby、Groovy等语言不一样,两种符号作用相同。一般地,如果字符串中出现了双引号,就使用单引号来表示字符串;反之则使用双引号。如果都没有出现,就依个人喜好选择。

出现在字符串中的\(反斜杠)被解释为特殊字符,比如\n表示换行符。表达式前加r指示Python不解释字符串中出现的\。这种写法通常用于编写正则表达式或者Windows文件路径。

Python支持列表切割(list slices),可以取得完整列表的一部分。支持切割操作的类型有str, bytes, list, tuple等。

它的语法是...[left:right]或者...[left:right:stride]。假定nums变量的值是[1, 3, 5, 7, 8, 13, 20],那么下面几个语句为真:

nums[2:5] == [5, 7, 8] 从下标为2的元素切割到下标为5的元素,但不包含下标为5的元素。

nums[1:] == [3, 5, 7, 8, 13, 20] 切割到最后一个元素。

nums[:-3] == [1, 3, 5, 7] 从最开始的元素一直切割到倒数第3个元素。

nums[:] == [1, 3, 5, 7, 8, 13, 20] 返回所有元素。改变新的列表不会影响到nums。

nums[1:5:2] == [3, 7] 从下标为1的元素切割到下标为5的元素但不包含下标为5的元素,且步长为2。

参考资料:

百度百科——Python(计算机程序设计语言)

python中的异或运算

leetcode上有这么一道题:【136. Single Number】

这个题是给出一个非空列表,里面的元素只有一个只出现了一次,其余都出现了两次,找出这个只出现了一次的元素。

这个题目很简单,写了一下直接提交:

翻了一下讨论,发现了一个很简单快速的方法:

查了一下异或运算,发现找到唯一值是异或运算在python中的主要用途之一。其原理是这样的:

输出:70

当a,b都转换为二进制:

输出:0b1010与0b1001100

异或运算是将两个数相同位置(长度不一时要对齐)的数值,不同为1时,结果为1,否则为0 。比如:(0101) ^ (0011) = 0110。

这里a ^ b = 0b1000110,即70。

当两个数相同时,异或运算结果为0.

在Python的进制数按位异或问题,怎么解决

按位与

|

按位或

^

按位异或

1.

按位与运算

按位与运算符""是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1

,否则为0。参与运算的数以补码方式出现。

例如:95可写算式如下:

00001001

(9的二进制补码)00000101

(5的二进制补码)

00000001

(1的二进制补码)可见95=1。

按位与运算通常用来对某些位清0或保留某些位。例如把a

的高八位清

保留低八位,

可作

a255

运算

(

255

的二进制数为0000000011111111)。

main(){

int

a=9,b=5,c;

c=ab;

printf("a=%d\nb=%d\nc=%d\n",a,b,c);

}

2.

按位或运算

按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。

例如:9|5可写算式如下:

00001001|00000101

00001101

(十进制为13)可见9|5=13

main(){

int

a=9,b=5,c;

c=a|b;

printf("a=%d\nb=%d\nc=%d\n",a,b,c);

}

3.

按位异或运算

按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现,例如9^5可写成算式如下:

00001001^00000101

00001100

(十进制为12)

main(){

int

a=9;

a=a^15;

printf("a=%d\n",a);

}


当前名称:python异或函数,Python中异或
网页地址:http://ybzwz.com/article/hcpcjh.html