gpt4 book ai didi

Python 凯撒密码更改给定输入字符串的大小写

转载 作者:行者123 更新时间:2023-12-01 04:27:26 25 4
gpt4 key购买 nike

在凯撒密码中,我需要我的大写字符保持大写,非字母字符保持非字母/相同。我可以使用小写字母。

但是,大写字母会转换为小写字母和不同的字母。非字母字符也会转换为小写字母。大写字母必须移动但保持大写。非字母字符必须保留为非字母字符。

p = raw_input(("enter a word"))
n = input(("how many must it shift"))
a = 0
b = 0
c = 0
d = 0

for i in p:
if i.isupper():
a += 1
elif i.islower():
b += 1
elif i.isdigit():
c += 1
else:
d += 1
e = ""

for i in p:
if i == "":
e += i
else:
integerValue = ord(i)
integerValue-= 97
integerValue += n
integerValue %= 26
integerValue += 97
e += chr(integerValue)

print e

最佳答案

你可以使用i.isalpha()来检查当前字符是否是字母,你可以使用i.isupper()来检查当前字符是否为字母。字母是否大写。转换字母时,您需要将字母设为小写,然后再将其转换回大写。除了这些更改之外,您的输入还有太多括号。我使用 raw_input 因为我使用的是 python 2.7。您的格式设置如此之差,您发布的代码由于缩进错误而无法运行,并且您的行 if i == "" 检查空字符串而不是我假设您想要的空格。这里所说的就是我对您的代码所做的,以尝试使其与您的代码相似,同时删除无关的位。

p = raw_input("enter a word")
n = int(raw_input("how many must it shift"))
e = ''
for i in p:
if not i.isalpha():
e+=i
else:
integerValue = ord(i.lower())
integerValue-= 97
integerValue += n
integerValue %= 26
integerValue += 97
if i.isupper():
e += chr(integerValue).upper()
else:
e += chr(integerValue)

print e

关于Python 凯撒密码更改给定输入字符串的大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32892643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com