python“加密和解密”之“字符串转二进制” 和 “二进制转字符串”
学习编程前,先了解基础数据类型如数字、字符串和布尔值 #生活知识# #科技生活# #编程学习#
def encode(s):
tmp = []
for c in s:
tmp.append(bin(ord(c)).replace('0b', ''))
str_bin = ' '.join(tmp)
print(str_bin)
'def decode(s):
bin_str = ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]])
return bin_str
'
一:python中函数:string.join()
Python中有join()和os.path.join()两个函数,具体作用如下:
join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
os.path.join(): 将多个路径组合后返回
二、join()函数说明
1、join()函数
语法: 'sep'.join(seq)
参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
2、os.path.join()函数
语法: os.path.join(path1[,path2[,......]])
返回值:将多个路径组合后返回
注:第一个绝对路径之前的参数将被忽略
三 join()函数程序例子
#对序列进行操作(分别使用' '与':'作为分隔符)
>>> seq1 = ['hello','good','boy','doiido']
>>> print ' '.join(seq1)
hello good boy doiido
>>> print ':'.join(seq1)
hello:good:boy:doiido
#对字符串进行操作
>>> seq2 = "hello good boy doiido"
>>> print ':'.join(seq2)
h:e:l:l:o: :g:o:o:d: :b:o:y: :d:o:i:i:d:o
#对元组进行操作
>>> seq3 = ('hello','good','boy','doiido')
>>> print ':'.join(seq3)
hello:good:boy:doiido
#对字典进行操作
>>> seq4 = {'hello':1,'good':2,'boy':3,'doiido':4}
>>> print ':'.join(seq4)
boy:good:doiido:hello
#合并目录
>>> import os
>>> os.path.join('/hello/','good/boy/','doiido')
'/hello/good/boy/doiido'
四. Python bin() 函数
bin() 返回一个整数 int 或者长整数 long int 的二进制表示
>>>bin(10)
'0b1010'
>>> bin(20)
'0b10100'
五. Python ord() 函数
ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
ord()函数的返回值是对应的十进制整数。
>>>ord('a')
97
>>> ord('b')
98
>>> ord('c')
99
六 加密循环体 for c in s
' '.join([bin(ord(c)).replace('0b', '') for c in s])中[bin(ord(c)).replace('0b', '') for c in s] 等价于
tmp = []
for c in s :
tmp.append(bin(ord(c)).replace('0b', ''))
七. Python chr() 函数
chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。
返回值是当前整数对应的 ASCII 字符。
例如
>>>print chr(0x30), chr(0x31), chr(0x61)
0 1 a
>>> print chr(48), chr(49), chr(97)
0 1 a
八. Python split() 函数
Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
split() 方法语法:
str.split(str="", num=string.count(str)). str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。num -- 分割次数。默认为 -1, 即分隔所有。返回分割后的字符串列表
实例:
str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print str.split( );
print str.split(' ', 1 );
txt = "Google#Runoob#Taobao#Facebook"
x = txt.split("#", 1)
print x
九. Python int() 函数
int() 函数用于将一个字符串或数字转换为整型。
以下是 int() 方法的语法:
int(x, base=10) x -- 字符串或数字。base -- 进制数,默认十进制。返回整数型数据
实例:
>>>int()
0
>>> int(3)
3
>>> int(3.6)
3
>>> int('12',16)
18
>>> int('0xa',16)
10
>>> int('10',8)
8
十. 解密循环体解析
bin_str = ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]])
等价于:
bin_tmp = []
str_tmp = []
for b in s.split(' '):
bin_tmp.append(int(b, 2))
for i in bin_tmp:
str_tmp.append(chr(i))
bin_str = ''.join(str_tmp)
十一. 执行效果
网址:python“加密和解密”之“字符串转二进制” 和 “二进制转字符串” https://www.yuejiaxmz.com/news/view/439775
相关内容
用PHP中的 == 运算符进行字符串比较String.format()字符串格式化
( )函数用于将一个整数转换为一个八进制字符串。
Python文本加密 或 文本文件加密
JavaScript学习笔记(2):字符串
python 判断字符串是否相等 ==,is, in 误区。
string.Compare字符串比较函数中文详解以及与Equal、==的区别
python知识快速补充4——集合,序列(元组,列表,字符串),字典说它们想一起学
【Java数据结构】字符串常量池
用运算符“ == ”比较字符串对象时,只要两个字符串包含的是同一个值,结果便为