Skip to main content
 首页 » 编程设计

Python if else 条件错误

2025年05月04日17落叶

这是我的代码片段,但它没有按照我想要的方式执行。如果输入是非负值/字符值,第一个 if 语句会成功执行,但如果它是负值,它会忽略 elif 语句。有什么问题。我正在使用 Python 2.6

from math import sqrt 
import cmath 
y = raw_input("Enter your number:") 
if y.isdigit(): 
     x = int(sqrt(float(y))) 
     print "Answer is", x 
elif y < 0: 
     print "Negative number", cmath.sqrt(y) 
else: 
     print "Not a valid number" 
 
raw_input("Press <enter> to Exit") 

请您参考如下方法:

s.isdigit() 字符串方法的意思是“字符串 s 是一个或多个字符长,所有字符都是数字”,意思是每个字符都是 0123456789 之一。请注意其他字符(如 + 和 -)如何明显地不存在于该集合中;-)。

您的 elif y < 0: 测试应用于 string y,因此是无意义的。如果你想检查用户输入的是不是数字,正确的方法与你所拥有的完全不同......:

try: 
  thenum = float(y) 
except ValueError: 
  print "Not a valid number" 
else: 
  if thenum >= 0: 
     x = int(sqrt(thenum)) 
     print "Answer is", x 
  else: 
     print "Negative number", cmath.sqrt(thenum)