大家早上好! 我是编程新手,正在学习python。我正在尝试创建一个函数,将字符串中的每个单个char转换为每个相应的int并逐个显示它们。它产生的第一个错误是“未定义c”。
c=''
def encode(secret_message):
for c in secret_message:
int_message=+ord(c)
return int_message
Example of what I want it to do:
secret_message='You' (this is a string)
return: 89 111 117 (this should be an int, not a list)
note: 'Y'=89, 'o'=111, 'u'=117
这个想法是编码接受一个参数秘密消息。然后,它遍历c中的每个字符,并将每个字符从字符串转换为int。然后以int格式返回整个消息。
我也不确定如何使每个字符都出现在int_message中。截至目前,它似乎将所有int加在一起。我希望它只是将它们放在一起(像一个字符串)。获得int值然后进行连接后,是否需要将其转换回字符串?
答案 0 :(得分:0)
这是一个示例,我建议不要将编码后的消息作为list
返回,但是您应该将消息转换为list
以获取各个字符,并以string
,但留出空格以分隔代码,否则您将无法解释回一个长数字,然后在解码消息时,可以将其输入为84 105 102 102 97 110 121
,然后将其拆分并解码单个{ {1}}
ints
def encode(s): s = [str((ord(i))) for i in list(s)] return ' '.join(s) def decode(s): s = [(chr(int(i))) for i in s.split()] return ''.join(s) print(encode('Tiffany')) print(decode('84 105 102 102 97 110 121'))
答案 1 :(得分:0)
这应该做您想要的:
def encode(s):
return int(''.join([str(ord(char)) for char in s]))
或者这个:
def encode_2(s):
return int(''.join(map(str, [ord(char) for char in s])))
答案 2 :(得分:0)
我不知道为什么您没有得到关于c的错误定义,但是您只需要对代码进行几处修改。
def encode(secret_message):
message = ""
for c in secret_message:
message += str(ord(c))
int_message = int(message)
bin_message = bin(int_message)
return bin_message