我使用输入字创建了var,然后word的输出是十六进制编码,但我需要的是如果输入为10则输出另一个var,输出= 1,2,3,4,5,6 ,7,8,9,10,然后我需要加入每个数字的单词..所以输出将是,hexedWord1,hexedWord2,hexedWord3 ...等..这里是我的代码
num = raw_input("Inset the number of students. ")
for num in range(1, num + 1)
print num
word = raw_input("Insert the name of student to encrypt it to hex. ")
res = "0x" + word.encode('hex') + num
print res
答案 0 :(得分:0)
首先, 当您使用raw_input读取用户的输入时,该值存储在" num"作为字符串, 因此range(1,num + 1)会抛出错误。
所以要么使用
num = input("Inset the number of students. ")
或
num = int(raw_input("Inset the number of students. "))
其次,
结尾处缺少冒号(:)像这样解决:
for num in range(1, num + 1):
第三,你正在使用相同的变量" res"用于存储每个阶段的结果,因此它被覆盖。 我更喜欢使用列表来存储值
在for循环之前声明一个空列表,并在循环
中向其添加新结果最后,此语句抛出错误
res = "0x" + word.encode('hex') + num
修复:
res = "0x" + word.encode('hex') + str(num)
发生了什么事,你尝试使用" +"连接3个不同类型的对象。它在Python中生成TypeError
最终代码将是这样的:
num = input("Inset the number of students. ")
res = []
for num in range(1, num + 1):
print num
word = raw_input("Insert the name of student to encrypt it to hex. ")
res.append("0x" + word.encode('hex') + str(num))
for r in res:
print r
这应该有用(假设这是你所期望的)
答案 1 :(得分:0)
要告诉你的问题有点难,但据我所知,你加密的学生名字用逗号分隔,名字跟着他们的名字
您的代码存在一些错误。例如,raw_input("Inset the number of students. ")
返回一个字符串,但你像整数一样使用它。要解决这个问题,请执行num = int(raw_input("Inset the number of students. "))
还有一些事情可以阻止用户给你一些奇怪的东西,但这样做会有效。
另一个问题是res
。对于每个学生,res正在重置。您希望将信息添加到其中。这可以通过+ =运算符轻松完成,但是如果你想用逗号分隔它们,我能想到的最好的事情就是使用一个可以随后用逗号join
编写的数组。
总之,代码看起来像这样:
num = int(raw_input("Inset the number of students. "))
res = []
for num in range(1, num + 1):
print num
word = raw_input("Insert the name of student to encrypt it to hex. ")
res.append("0x" + word.encode('hex') + str(num))
print ",".join(res)
就个人而言,使用num作为for循环的迭代器以及num感觉很奇怪,但我会让你保留它。