首先让我解释一下代码:我的代码是一个加密代码。首先,它给出两个数字,然后它具有两个加密阶段。 第一步,将文本反转直到其索引与第一个数字相等的字符。 第二阶段,会将前阶段输出的字符按其新位置的数量乘以第二个数字。最后打印加密的内容。 在这段代码中,我对第七行代码有疑问。 不知道我应该为第7行中的变量使用哪种类型。无论使用str还是int,我都会收到错误消息。
first_num=int(input("Fnum: "))
second_num=input("Snum: ")
encrypt_stage1="".join(name[first_num-1::-1])+"".join(name[first_num::])
for place,char in enumerate(encrypt_stage1):
ascii_code=ord(char)
encryption_stage2=""
encryption_stage2 += chr(str(int(ascii_code)+place*second_num))
print(encryption_stage2)
>>>TypeError: unsupported operand type(s) for +: 'int' and 'str'
----------
example of input: name=vahid, first_num=1, second_num=3
output will be: ygqus
答案 0 :(得分:0)
至少存在三个问题:
second_num
转换为int
chr()
应用于str()
,我删除了chr()
通话encryption_stage2=""
移到循环外,以免每次迭代都重新分配它。处理完这些问题后,代码如下:
name = 'name'
first_num=int(input("Fnum: "))
second_num=int(input("Snum: "))
encrypt_stage1="".join(name[first_num-1::-1])+"".join(name[first_num::])
encryption_stage2=""
for place,char in enumerate(encrypt_stage1):
ascii_code=ord(char)
encryption_stage2 += str(int(ascii_code)+place*second_num)
print(encryption_stage2)