我可以在不删除 for 循环本身的情况下停止给定代码中的 for 循环打印不正确的次数吗?
Can I stop my for loop in the given code from printing the incorrect number of times without getting rid of the for loop itself?
codeword = input('Enter codeword : ')
codeword = codeword.lower().replace(" ", "")
for i in codeword:
old = (chr(ord(i)))
encrypt = input('Enter text to encrypt : ')
encrypt = encrypt.lower().replace(" ", "")
for i in encrypt:
new = (chr(ord(i)))
for i in encrypt:
out = ord(old) + ord(new) -96
print(chr(out))
以上是我到目前为止的完整代码。但是,如果我为代码字和加密输入 'hi',则打印的所有内容都是 'r'。有没有人能指出我的错误,因为我已经尝试了我能想到的一切,我相当确定我的错误在于 for 循环,但是如果我这样做 'for i in encrypt + codeword' 它仍然打印 'r' 。我从来不知道这么简单的事情一旦解释清楚,就能解决这么多困难。
非常感谢。
我已经编辑了代码并在下面显示了它,但我仍然在挣扎。我知道外面有很多人知道这个,但我是新手,我试图研究但我没有找到任何东西
codeword = input('Enter codeword : ')
codeword = codeword.lower().replace(" ", "")
old = codeword[-1]
encrypt = input('Enter text to encrypt : ')
encrypt = encrypt.lower().replace(" ", "")
new = encrypt[-1]
for i in new:
print(chr(ord(old)+ ord(new)-96))
*我再次进行了进一步的编辑并制作了一个程序,它的功能足够接近我想要的,但是有一个小问题,它打印了两次,但是如果我摆脱了 for loop
我将阻止程序打印任何东西。
codeword = input('Enter codeword : ')
codeword = codeword.lower().replace(" ", "")
encrypt = input('Enter text to encrypt : ')
encrypt = encrypt.lower().replace(" ", "")
for i in codeword+encrypt:
print(chr(ord(i)+ ord(i)-96))
不幸的是,如果我将 'hi' 同时作为密码和加密,它会打印出来,
p
r
p
r
你的问题在第三个for循环中不存在。它存在于前两个。您将 old 和 new 设置为 codeword
和 encrypt
的最后一个字符。然后你循环加密第三个。 old
和 new
只有一个值,因此您执行相同的操作 length of encrypt
次,这将给您一个字符或可能出现错误。
codeword = input('Enter codeword : ')
codeword = codeword.lower().replace(" ", "")
old = codeword[-1]
print (old)
encrypt = input('Enter text to encrypt : ')
encrypt = encrypt.lower().replace(" ", "")
new = encrypt[-1]
print (new)
for i in encrypt:
out = ord(old) + ord(new) - 96
print (out, old, new, i)
print(chr(out))
Enter codeword : Hello
o
Enter text to encrypt : Hello
o
126 o o h
126 o o e
126 o o l
126 o o l
126 o o o
~
你没有描述问题,我也无能为力了。
codeword = input('Enter codeword : ')
codeword = codeword.lower().replace(" ", "")
for i in codeword:
old = (chr(ord(i)))
encrypt = input('Enter text to encrypt : ')
encrypt = encrypt.lower().replace(" ", "")
for i in encrypt:
new = (chr(ord(i)))
for i in encrypt:
out = ord(old) + ord(new) -96
print(chr(out))
以上是我到目前为止的完整代码。但是,如果我为代码字和加密输入 'hi',则打印的所有内容都是 'r'。有没有人能指出我的错误,因为我已经尝试了我能想到的一切,我相当确定我的错误在于 for 循环,但是如果我这样做 'for i in encrypt + codeword' 它仍然打印 'r' 。我从来不知道这么简单的事情一旦解释清楚,就能解决这么多困难。
非常感谢。
我已经编辑了代码并在下面显示了它,但我仍然在挣扎。我知道外面有很多人知道这个,但我是新手,我试图研究但我没有找到任何东西
codeword = input('Enter codeword : ')
codeword = codeword.lower().replace(" ", "")
old = codeword[-1]
encrypt = input('Enter text to encrypt : ')
encrypt = encrypt.lower().replace(" ", "")
new = encrypt[-1]
for i in new:
print(chr(ord(old)+ ord(new)-96))
*我再次进行了进一步的编辑并制作了一个程序,它的功能足够接近我想要的,但是有一个小问题,它打印了两次,但是如果我摆脱了 for loop
我将阻止程序打印任何东西。
codeword = input('Enter codeword : ')
codeword = codeword.lower().replace(" ", "")
encrypt = input('Enter text to encrypt : ')
encrypt = encrypt.lower().replace(" ", "")
for i in codeword+encrypt:
print(chr(ord(i)+ ord(i)-96))
不幸的是,如果我将 'hi' 同时作为密码和加密,它会打印出来, p r p r
你的问题在第三个for循环中不存在。它存在于前两个。您将 old 和 new 设置为 codeword
和 encrypt
的最后一个字符。然后你循环加密第三个。 old
和 new
只有一个值,因此您执行相同的操作 length of encrypt
次,这将给您一个字符或可能出现错误。
codeword = input('Enter codeword : ')
codeword = codeword.lower().replace(" ", "")
old = codeword[-1]
print (old)
encrypt = input('Enter text to encrypt : ')
encrypt = encrypt.lower().replace(" ", "")
new = encrypt[-1]
print (new)
for i in encrypt:
out = ord(old) + ord(new) - 96
print (out, old, new, i)
print(chr(out))
Enter codeword : Hello
o
Enter text to encrypt : Hello
o
126 o o h
126 o o e
126 o o l
126 o o l
126 o o o
~
你没有描述问题,我也无能为力了。