回文程序无法识别其他



我目前正在努力解决一个家庭作业问题,我需要一些帮助,因为我觉得我有点困惑。我致力于创建一个程序,该程序仅在整数中查找回文。我所编写的程序可以准确地识别整数中的回文,但是我无法让程序识别输入不是整数(float, bool, str等)。我特别希望程序注意到当一个整数不是输入并打印"输入不是整数";打破之前。下面是我的代码:

def Palindrome(n):
return n == n[::-1]
n = input("Please enter an integer: ")
ans = Palindrome(n)
if ans == True:
print("The number " + n + " is a palindrome")
elif ans == False:
print("The number " + n + " is NOT a palindrome")

我知道这是基本的,但每个人都需要从某个地方开始!如果有人能解释一下我能做什么来创建这个程序,并理解它是如何工作的,那将是非常感激的:)

您的palindrome()函数有一些缩进问题。

def palindrome(n):
return n == n[::-1]

这个函数基本上可以检查字符串str是否为回文,而不仅仅局限于整数。

n = input("Please enter anything: ")
is_palindrome = palindrome(n)
if is_palindrome:
print(n + " is a palindrome.")
else:
print(n + " is not a palindrome.")

输出racecar的测试用例A

Please enter anything: racecar
racecar is a palindrome.

123的测试用例B。

Please enter anything: 123
123 is not a palindrome.

当你得到一个输入时,它总是一个字符串值,所以一个可能的解决方案是修改Palindrome。首先,尝试将输入强制转换为int,然后打印并退出,如果它以这种方式抛出ValueException。

def Palindrome(n):
try:
int(n)
except ValueError as e:
raise ValueError('The value must be an integer')
return n == n[::-1]
if __name__ == "__main__":

try:
n = input("Please enter an integer: ")
ans = Palindrome(n)
if ans == True:
print("The number " + n + " is a palindrome")
elif ans == False:
print("The number " + n + " is NOT a palindrome")

except ValueError as e:
print(str(e))

最新更新