我的代码没有在Python中显示。有什么问题?
offset_factor = math.floor(number[0]+number[1]+number[2]+number[3]+number[4]+number[5]+number[6]+number[7])
total = offset_factor
total = total / 8 - 32
total = round(total)
print("This is your offset factor: ")
print(total)
string = ''.join(str(e) for e in text_read)
nospace = string.replace(" ", "")
print(nospace)
for b in (nospace):
string = ""
ASCII = ord(b)
result = ASCII + total
if result > 126:
result - 96
else:
result = result
result_ascii = chr(result)
string += result_ascii
for b in nospace:
string = ""
ASCII = ord(b)
result = ASCII + total
if result > 126:
result - 96
else:
result = result
result_ascii = chr(result)
string += result_ascii
print(result_ascii)
此代码没有显示,我不知道为什么不,它只加密八个字符,但我不知道如何加密所有字符。
答案 0 :(得分:0)
for b in nospace:
string = ""
ASCII = ord(b)
result = ASCII + total
if result > 126:
result - 96
else:
result = result
result_ascii = chr(result)
string += result_ascii
print(result_ascii)
我在这里看到了几个问题。
string
在循环结束时包含result_ascii
的累计值,则不应在每次迭代中将其重置为空字符串。你应该只在开始时做一次。result
在大于126时变小,则必须将result - 96
分配给某些内容。string +=
块执行if
块,则不应使用else
块。print
每个字符。尝试:
string = ""
for b in (nospace):
ASCII = ord(b)
result = ASCII + total
if result > 126:
result = result - 96
result = result
result_ascii = chr(result)
string += result_ascii
print(string)