python“加密和解密”之“字符串转二进制” 和 “二进制转字符串”

发布时间:2024-12-11 03:40

学习编程前,先了解基础数据类型如数字、字符串和布尔值 #生活知识# #科技生活# #编程学习#

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数据结构】字符串常量池
用运算符“ == ”比较字符串对象时,只要两个字符串包含的是同一个值,结果便为

随便看看