用Python怎么编代码?

img


学习Python后,小明和小亮开发了一个即时通讯工具。为了防止发送的消息被截取破译,他们对发送的消息进行了简单加密,具体为:在两个字母之间加入一个随机字母。比如原消息为I love python'.进行加密后为In ulbosvleaopayjtchsohnb'。现给定一个根据此规则加密后的字符串,对其进行解密,然后分别统计字母、空格、字符的数量。s='Llixfaeu miksc Ismhcozrcte,k sycoauv unaeqewdx ppuyatohcodns.m'

img

img


# s = 'Llixfaeu miksc Ismhcozrcte,k sycoauv unaeqewdx ppuyatohcodns.m'
s = 'In ulbosvlea opayjtchsohnb'
i = 1

list_s = list(s)
for char in list_s:
    if i % 2 != 0 and i < len(s):
        list_s[i] = ''
    i += 1

blank = 0  # 空格
var = 0   # 字母
sign = 0  # 字符
res = ''.join(list_s)
for j in list(res):
    if j == ' ':
        blank += 1
    elif j.isalpha():
        var += 1
    else:
        sign += 1

print("破解字符串:", res)
print("空格数量:", blank)
print("字母数量:", var)
print("字符数量:", sign)



s = input()
v = s[0::2] # 还原后的字符串
str_count = 0
sp_count = 0
si_count = 0
for i in v:
    if i == ' ':
        sp_count+=1
    elif i.isalpha():
        str_count+=1
    else:
        si_count+=1
print(str_count,sp_count,si_count)

Life is short, you need python.
其实就是将加密字符串中下标(从1开始)为偶数的字符替换为空字符即可。
另外,你给出的第一个加密字符串为‘In ulbosvlea opayjtchsohnb’
参考代码如下:




def to_decode(encode_str):
    encode_list = list(encode_str)
    n = len(encode_list)
    for i in range(n):
        if (i+1)%2 == 0:
            encode_list[i] = ''

    return ''.join(encode_list)


encode_str = 'Llixfaeu miksc Ismhcozrcte,k sycoauv unaeqewdx ppuyatohcodns.m'
decode_str = to_decode(encode_str)
print(decode_str)
num_1 = 0
num_2 = 0
for c in decode_str:
    if c.isalpha():
        # 判断字符是否为字母
        num_1 += 1

    if c.isspace():
        # 判断字符是否为空白字符
        num_2 += 1

print('字母个数:',num_1)
print('空格个数:',num_2)
print('字符个数:',len(decode_str))

'''
Life is short, you need python.
字母个数: 24
空格个数: 5
字符个数: 31
'''

确定是字符数量,如果是字符数量,的确是31