points:

1.ASCII码的转换


2.对input函数的理解


3.append函数的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# import getch
def get_str(str):
print("please input plaintext:")
chars = input()
for char in chars:
str.append(char)


def get_secret_key(ints):
print("please input secret key:")
keys = input()
for key in keys:
int = ord(key) - 97
ints.append(int)


def encryption(str, ints, en_str):
ints_length = len(ints)
str_length = len(str)
a = int(str_length / ints_length)
for j in range(0, a):
for i in range(ints_length):
# if str[i * j] == "":
# break
temp_ascii = ord(str[i + j*(ints_length)])
temp_int = (temp_ascii + ints[i] - 97)%26
temp_char = chr(temp_int+65)
en_str.append(temp_char)
b=str_length-ints_length*a
for i in range(0,b):
temp_ascii = ord(str[ints_length*a+i])
temp_int = (temp_ascii + ints[i] - 97) % 26
temp_char = chr(temp_int + 65)
en_str.append(temp_char)
for element in en_str:
print(element, end=' ')


if __name__ == '__main__':
str = []
ints = []
en_str = []
get_str(str)
get_secret_key(ints)
encryption(str, ints, en_str)