-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):

しかし、 stringraw_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 returns a string. You need to convert the input to an number

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 に答える