我想提出或处理异常时的否。是-ve或值是字符串。
def pallindrome(x):
try:
val=int(x)
except ValueError:
print("x must be integer")
return 0
try:
x<0
except TypeError:
print("x must be +ve integer")
return 0
temp=x
rev=0
while(x>0):
r=x%10
rev=rev*10+r
x=x/10
if(temp==rev):
print("pallindrome")
else:
print("ne")
pallindrome(-121) #o/p --ne
pallindrome("vikash") #o/p--x must be integer
这里是如何处理负整数的情况。 请提出建议。 预先感谢。
答案 0 :(得分:1)
代替以下try-except块进入函数内部:
try:
x<0
except TypeError:
print("x must be +ve integer")
return 0
尝试一下:
if x<0:
print("x must be +ve integer")
return 0
或者,如果您想引发一些异常,请尝试以下方法:
if x<0:
raise ValueError("x must be +ve integer")
return 0
答案 1 :(得分:1)
当数字为负数时,不需要引发异常,您可以使用简单的if
语句来检查以下内容:
def pallindrome(x):
try:
val=int(x)
if val<0:
print("x must be +ve integer")
return 0
rev=0
while val>0:
r = val%10
rev = rev*10+r
val = val/10
if temp == rev:
print("pallindrome")
else:
print("ne")
except ValueError:
print("x must be integer")
return 0
更新:如果您想在数字为负数时引发TypeError
异常,则可以这样更改代码:
...
if val<0:
raise TypeError("x must be +ve integer")
return 0
...
except ValueError:
print("x must be integer")
return 0