def afin(day,month,text):
for i in range(len(text)):
ascii = text[i] - 96
y = (day * ascii) + month;
while(y > 26):
y -= 26
sifrelenmiş_harf = y + 96
sifrelimesaj += sifrelenmiş_harf
text = input("Enter Text:")
day = input("Birth Day:")
month = input("Birth Month:")
print(afin(day,month,text))但是,每当我运行此脚本时,它都会出现以下错误:
ascii = text[i] - 96
TypeError: unsupported operand type(s) for -: 'str' and 'int'我该如何修复这个错误?
发布于 2020-05-03 09:22:12
我相信您正在尝试获取文本中每个元素的asci值。要执行任何数值操作,首先需要将字符转换为整数值。一种方法是使用以下代码:
ord(text[i]) ### get the ascii character of your text一旦你有了这个,你就可以做如下操作:
ascii = ord(text[i]) - 96How to get the ASCII value of a character
希望这能有所帮助
发布于 2020-05-03 09:40:33
我想你看到的可能是这样的东西:
def afin(day,month,text):
x = ""
for i in range(len(text)):
y = (int(day) * ord(text[i])) + int(month);
y %= 26
x += chr(y+ord('a'))
return x
text = input("Enter Text:")
day = input("Birth Day:")
month = input("Birth Month:")
print(afin(day,month,text))我在这里所做的一些更改包括
<代码>G210
请注意,您的值将与大多数值不同,因为您的mod val为26,但算法仍应与上面的算法有点类似。
https://stackoverflow.com/questions/61568356
复制相似问题