-1

我一直在编写代码,其中一部分给我带来了很多麻烦。就是这个。

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 中,每当我输入一个数字时,都不会打印任何内容。我在编辑器中检查了语法错误和缩进,并修复了所有这些错误。

4

2 回答 2

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
于 2013-04-15T10:47:16.907 回答
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)
于 2013-04-15T10:55:03.593 回答