如何编写返回python第一步的代码



输入:

val=input('Do you want to encrypt or decrypt a message or quit: ')
if val=="encrypt":
enr=input('Please enter a string: ')
for e in enr:
if "a"<=e<="z":
print(chr(ord("a")+(ord(e)-ord("a")+3)%26),end="")
elif "A"<=e<="Z":
print(chr(ord("A")+(ord(e)-ord("A")+3)%26),end="")
else:
print(e,end="")

if val=="decrypt":
dec=input('Please enter a string: ')
for d in dec:
if "a"<=d<="z":
print(chr(ord("a")+(ord(d)-ord("a")-3)%26),end="")
elif "A"<=d<="Z":
print(chr(ord("A")+(ord(d)-ord("A")-3)%26),end="")
else:
print(d,end="")

if val=="quit":
print('Thank you for using')

打印出加密或解密消息后,返回第一个输入问题:val=input("您想加密或解密一条消息还是退出:")如果退出,则停止循环

将加密/解密代码放入函数中;那么当该退出时,您可以在循环中轻松地调用它break

def shift_chars(msg: str, shift: int) -> str:
def shift_char(c: str) -> str:
if "a" <= c <= "z":
return chr(ord("a") + (ord(c) - ord("a") + shift) % 26)
elif "A" <= c <= "Z":
return chr(ord("A") + (ord(c) - ord("A") + shift) % 26)
else:
return c
return ''.join(shift_char(c) for c in msg)
while True:
val = input('Do you want to encrypt or decrypt a message or quit: ')
if val == "encrypt":
shift = 3
elif val == "decrypt":
shift = -3
elif val == "quit":
print('Thank you for using')
break
else:
continue
print(shift_chars(input('Please enter a string: '), shift))

这种方法应该会有所帮助:

我们首先使用input()函数收集用户的输入。

然后,我们将其他代码放入while循环中,该循环在每个循环中检查val的值。此外,我们在while循环的末尾添加一行,询问用户是否要加密/解密或退出。这会更新val的当前值,以触发while循环停止,如有必要:

val=input('Do you want to encrypt or decrypt a message or quit: ')
while val != 'quit':
if val=="encrypt":
enr=input('Please enter a string: ')
for e in enr:
if "a"<=e<="z":
print(chr(ord("a")+(ord(e)-ord("a")+3)%26),end="")
elif "A"<=e<="Z":
print(chr(ord("A")+(ord(e)-ord("A")+3)%26),end="")
else:
print(e,end="")

if val=="decrypt":
dec=input('Please enter a string: ')
for d in dec:
if "a"<=d<="z":
print(chr(ord("a")+(ord(d)-ord("a")-3)%26),end="")
elif "A"<=d<="Z":
print(chr(ord("A")+(ord(d)-ord("A")-3)%26),end="")
else:
print(d,end="")
val=input('Do you want to encrypt or decrypt a message or quit: ') 
print('Thank you for using')

稍微干净一点的版本

正如在一些评论/答案中所指出的,将一些代码封装到一个函数中可能会很有用,以使while循环更干净。

下面是一种实现这一点的方法,它与您的原始代码保持一致。我们添加了一个加密器/解密器功能,这样我们就可以减少一些重复的代码。我们确定这个移位是应该向上还是向下3或-3。然后我们使用shift_value来更改字符的值。

def enc_decryptor(transformation):
# Determine whether to shift up OR down
if transformation == 'encrypt':
shift_value = 3
elif transformation == 'decrypt':
shift_value = -3

# Perform the transformation
msg=input('Please enter a string: ')
for char in msg:
if "a" <= char <= "z":
print(chr(ord("a")+(ord(char)-ord("a") + shift_value)%26),end="")
elif "A" <= char <= "Z":
print(chr(ord("A")+(ord(char)-ord("A") + shift_value)%26),end="")
else:
print(char, end="")

我们需要修改while循环来考虑新代码,我们可以看到while循环现在简单多了。

val=input('Do you want to encrypt or decrypt a message or quit: ')
while val != 'quit':
if val=="encrypt":
enc_decryptor(transformation=val)

if val=="decrypt":
enc_decryptor(transformation=val)

val=input('Do you want to encrypt or decrypt a message or quit: ') 
print('Thank you for using')

最新更新