0

我目前正在处理此代码..

message = input("Enter ASCII codes: ")

decodedMessage = ""

for item in message.split():
   decodedMessage += chr(int(item))   

print ("Decoded message:", decodedMessage)

#1st Run:
Enter ASCII codes: 97
Decoded message: a
#2nd Run:
Enter ASCII codes: 9797
Decoded message: ♅

我想要的结果是: aa 来自 97 和另外 97 个 ascii 代码。如何才能做到这一点?

我想要这样。

ord_username = input("Enter Username:")
letters = str(ord_username)
ordlist=[]
z=""

for letter in letters:
    number = ord(letter)
    ordlist.append(number)


for i in ordlist:
    z += str(i) + ""
print (z)

#1st Run:
Enter Username:a
97
#2nd Run:
Enter Username:ab
9798
4

1 回答 1

1

您希望将字符串解释为由以“1”开头的 3 位字符串或不能以 1 开头的 2 位字符串组成。因此,您可以从头到尾遍历字符串,拔出三个如果第一个是 1 个字符,则为字符,如果不是,则为两个字符。这只需要一个简单的方法:

def stringsplit(message):
    message_split = []
    while len(message) > 0:
        if message[0] == '1':
                message_split.append(message[:3])
                message = message[3:]
        else:
                message_split.append(message[:2])
                message = message[2:]
    return message_split

然后,替换for item in message.split():for item in stringsplit(message):

警告:Python 2.7 实现;您的里程可能会有所不同,但不应该。

于 2015-03-04T22:07:59.143 回答