天天看点

Python字符串连接,恺撒加密

用 + 可以连接字符串

“hello” + “python”

#“连接符”.join(序列)

ls = [ "apple","pear","peach","banana"]	#列表
s = "+",join(ls)
print(s)

ls1 = ("apple","pear","peach","banana")	#元组
s1 = "-",join(ls1)
print(ls)

ls2 = {"apple","pear","peach","banana"}	#集合
s2 = ",",join(ls2)
print(s2)

ls3 = {"apple":1,"pear":2,"peach":3,"banana":4}
s3 = ":",join(ls3)
print(s3)
           

字符映射和转换 maketrank( ) 和 translate( )

字符串对象的 maketrans() 方法用来生成字符映射表,而 translate() 方法用来根据映射表中定义的对应关系转换字符串并替换其中的字符,使用这两个方法的组合可以同时处理多个字符。

#创建映射表
table = "".maketrank("landef","123456")
s = "python is a great language"
s1 = s.translate(table)
print(s1)
           

import string

string.digits

‘0123456789’

string.punctuation

‘!"#$%&’()*+,-./:;<=>[email protected][\]^_`{|}~’

string.ascii_letters

#‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’

string.ascii_lowercase

#‘abcdefghijklmnopqrstuvwxyz’

string.ascii_uppercase

#‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’

random.choice( seq )方法-----返回一个列表,元组或字符串的随机项

import random
print(random.choice([1, 2, 3, 5, 9]))
           

实例—凯撒加密】:每个字母替换为后面第k个。

提示:用maketrans()和translate()

import string
lower = string.ascii_lowercase
print(lower)
upper = string.ascii_uppercase
print(upper)
before = string.ascii_letters
print(before)
k = int(input("请输入密钥:"))
after = lower[k:] + lower[:k] + upper[k:] + upper[:k]
table = "".maketrans(before, after)
plaintext = input("输入要加密的明文:")
ciphertext = plaintext.translate(table)
print("加密后的密文为:", ciphertext)