我一直在研究代码,其中一部分给我带来了很多麻烦。就是这样。
import math
number=raw_input("Enter the number you wish to find its square root: ")
word=number
if type(word)==type(int):
print sqrt(word)
在IDLE中,每当我键入数字时,都不会打印任何内容。我在编辑器中检查了语法错误和缩进,并修复了所有错误。
答案 0 :(得分:4)
您正在寻找isinstance()
:
if isinstance(word, int):
但这不起作用,因为raw_input()
会返回字符串。您可能需要异常处理:
try:
word = int(word)
except ValueError:
print 'not a number!'
else:
print sqrt(word)
对于您的具体错误,type(word) is int
可能也有效,但这不是非常pythonic。 type(int)
会返回int
类型的类型,即<type 'type'>
:
>>> type(42)
<type 'int'>
>>> type(42) is int
True
>>> type(int)
<type 'type'>
>>> type(int) is type
True
答案 1 :(得分:1)
raw_input返回一个字符串。 您需要将输入转换为数字
in_string = raw_input("...")
try:
number = float(in_string)
print math.sqrt(number)
except ValueError as e:
print "Sorry, {} is not a number".format(in_string)