目录
1.凯撒密码
ord()函数和chr函数
ord函数将字符转换为ASCII值
例:
ord('a')
97
ord('b')
98
ord('c')
99
chr()函数将数值转换为ASCII对应的字符
print chr(0x30), chr(0x31), chr(0x61) # 十六进制
0 1 a
print chr(48), chr(49), chr(97) # 十进制
0 1 a
1.1题解
password = input("input password:\n")
k=int(input("input number:\n"))
while(k>26):
k-=26
for i in password:
s=ord(i)+k
s1=s
s2=s
if i == ' ':
print(" ",end='')
elif ord('z')>=ord(i)>=ord('a'):
while(s1>ord('z')):
s1-=26
print(chr(s1),end='')
elif ord('Z')>=ord(i)>=ord('A'):
while(s2>=ord('Z')):
s2-=26
print(chr(s2),end='')
else:
print(i,end='')
unword=input("\nplease input unword:")
for i in unword:
ss=ord(i)-k
s3=ss
s4=ss
if i == ' ':
print(" ",end='')
elif ord('z')>=ord(i)>=ord('a'):
while(s3<ord('a')):
s3+=26
print(chr(s3),end='')
elif ord('Z')>=ord(i)>=ord('A'):
while(s4<ord('A')):
s4+=26
print(chr(s4),end='')
else:
print(i,end='')
2.秘钥
所需要的知识
2.1切片
【start: end: step】
切片的start 和end 中指的是索引,step指的是间隔。
list[::-1]反向打印
list=[1,2,3,'a',5]
print(list[:-1] )
print(list[-1:] )
print(list[1:4] )
print(list[-4:-1] )
print(list[4:1:-1] )
print(list[-1:-4:-1] )
print(list[0:4:2] )
output:
[1, 2, 3, ‘a’]
[5]
[2, 3, ‘a’]
[2, 3, ‘a’]
[5, ‘a’, 3]
[5, ‘a’, 3]
[1, 3]
2.2删除字符
2.2.1.replace函数
s=‘AABX-125’
s.replace(‘A’,’’)
output: BX-125
s.relplace(‘A’,’’,1)
output : ABX-125
2.2.2.translate函数
s=‘ABX-125’
s.translate({ord(‘A’):None for in ‘’})
2.2.3.remove函数(处理列表)
s[1,2,3,4]
s.remove(1)
output :[2,3,4]
2.2.4.pop
s=[1,2,3]
a.pop(0)
output [2,3]
2.3题解
s=input()
k=int(input())
s=s.translate({ord("-"):None}).upper()
x=len(s)%k
string=s[:x]
for i in range(x,len(s),k):
if string:
string +="-"+s[i:i+k]
else:
string +=s[i:i+k]
print(string)
3.transform
3.1函数
3.1.1 split函数
split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
input函数输入值为字符
split可将其分为列表
3.2 题解
s=input().split()
l=len(s)
a=0
if l==1:
print(0)
else:
for i in range(0, l ):
a=int(min(s))*(i)+a
s.remove(min(s))
print("\n",a)