猿问

在Python 3.8中将不同行上的字符打印到字符串中

这是我的代码,目前它在单独的行上打印解密的凯撒密码字符。有什么方法可以将它们作为字符串添加到一行上吗?此外,是否有一种可能的方法来实现 .isalpha() 来解释未加密消息中的空格和问号等。


"""Cypher program."""

import string


alphabet = string.ascii_lowercase

message = "thequickbrownfoxjumpsoverthelazydog"

key = 7

for char in message:

    new_char = key + (alphabet.index(char))

    if new_char > 25:

        new_char = new_char % 26

    print(alphabet[new_char])


我对 Python 很陌生,如果这是一个新手问题,我很抱歉。


非常感谢任何好心人的帮助。


30秒到达战场
浏览 116回答 2
2回答

慕少森

您可以将alphabet[new_char]追加到列表中,然后使用 join 将其打印为字符串。下面的示例代码(经过编辑以让非字母数字的字符保留在原处):import stringalphabet = string.ascii_lowercasemessage = "the quick brow???nxa2 fox jumps over the lazy dog"key = 7lst=[]for char in message:    if char.isalpha() is True:        new_char = key + (alphabet.index(char))        if new_char > 25:            new_char = new_char % 26        lst.append(alphabet[new_char])    else:        lst.append(char)print(''.join(i for i in lst))

波斯汪

"""Cypher program."""import stringalphabet = string.ascii_lowercasemessage = "thequick0brownfox jumpsoverthelazydog"def transform(char,key):    if char.isalpha():       new_char = key + (alphabet.index(char))       if new_char > 25:           new_char = new_char % 26       return alphabet[new_char]    return charkey = 7# faster string comprehensiondecripted = [transform(char,key) for char in message]  print(decripted)# or # "".join - puts all elements of an array toghether in a string using a separatorprint("".join(decripted))
随时随地看视频慕课网APP

相关分类

Python
我要回答