1

入力が単語か数字かを確認しようとしています。

var = input("var: ")

if isinstance(var, str):
    print "var = word"

else:
   print "var = number"

これは私が思いついたコードですが、残念ながら機能しません。私はPythonとプログラミング全般に慣れていないので、多くのコマンドを知りません。何か提案をいただければ幸いです^^

4

5 に答える 5

1

input()常に文字列(strtype )を返します。その文字列でできることはいくつかあります。int

  1. その文字列をintにキャストしてみることができます:

    var = input("var: ")
    try:
        var = int(var)
    except ValueError:
        print "var is a str"
    print "var is an int"
    
  2. 正規表現を使用して、文字列に数字のみが含まれているかどうかを確認できます ( int10 進数の場合、他の基数の場合は適切な記号を使用する必要があります)。

    import re
    var = input("var: ")
    if re.match(r'^\d+$', var):
        print "var is an int"
    else:
        print "var is a str"
    
于 2015-02-12T19:37:05.770 に答える
0

input()は、あなたの入力を受け取って評価してから、あなたに引き渡します。つまり、ユーザーが を入力するexit()と、アプリケーションは終了します。これは、セキュリティの観点から望ましくありません。raw_input()代わりに使用したいと思うでしょう。この場合、戻り値は文字列であると期待できます。

文字列の内容が (整数) 数値に変換可能かどうかを確認したい場合は、ここで説明する方法に従ってください。

簡単な概要: 数値に変換してみて、失敗するかどうかを確認してください。

例 (未テスト):

value = raw_input()
try:
    int(value)
    print "it's an integer number"
except ValueError:
    print "it's a string"

参考のため:

関数のセマンティクスがinput()Python 3 で変わることに注意してください。

于 2015-02-12T19:38:18.513 に答える
0

変数の型を確認するには、次のようにします。

>>> x = 10
>>> type(x)
<type 'int'>

文字列の場合:

>>> y = "hi"
>>> type(y)
<type 'str'>

使用isinstance:

x = raw_input("var: ")
try:
    int(x)
except ValueError:
    print "string"
else: 
    print "int"
于 2015-02-12T19:27:59.300 に答える