0

ユーザーに数値の入力を求め、数値の int を返し、ユーザーが "One" などの str を入力した場合、"Please input a int number" のようなエラー メッセージを返す Python コードの書き方は? どうすればそれができますか?

また、数字が奇数かどうかを確認する必要があるため、try と except でそれを実行できるかどうかわかりません。コードにそれを追加する方法がわかりません。

ありがとう。

def getnum(): 

    errormessage="Please input a odd number"

    asknum=raw_input("Please input a number: ")
    num=int(asknum)

    if num%2!=0:  #return num if it is odd number
        print num

    else:
        print errormessage
        return getnum()

getnum()
4

6 に答える 6

6
try:
    a = int(raw_input("Enter an integer: "))
    print a  # or do anything else with "a"
except ValueError:
    print "Please enter an integer."


EDIT OPのコメントに応じて:

try:
    a = int(raw_input("Enter an integer: "))
    if a % 2 == 1:
       print "Integer is odd"  # or do anything else
    else:
       print "Integer is even"  # or do anything else
except ValueError:
    print "Please enter an integer."
于 2012-09-21T03:31:40.350 に答える
1

raw_input() を使用すると変数が文字列として保存されることに注意してください。自動的に int として保存する場合は、input() を使用してください。これは 3 より前の Python バージョン用です。

于 2012-09-21T05:26:23.593 に答える
0

いろいろな方法がありますので、ぜひお試しください。

一つの方法は

userinput = raw_input()
if not all(x in string.digits for x in userinput):
     print 'Please enter an int number'

しかし、それは検証には少し弱いです-すべての入力文字が数字であることを確認するだけです.

または、試すことができます

userinput = raw_input()
try:
     asint = int(userinput)
except ValueError:
     print 'Please enter an int number'

ただし、単純な if/else であるべきものに対して try/except を使用します。

于 2012-09-21T03:34:38.327 に答える
0
s = input()
try:
    return int(s)
except:
    return 'Error'
于 2012-09-21T03:34:51.133 に答える
0

文字列オブジェクトには isdigit() 関数を使用します。

数値が false の場合は true を返します。

于 2012-09-21T03:35:16.687 に答える
0

言及されている他の回答を使用して、必要なことを行うことができます。追加情報として、Python の変数の型は、type()

>>> a = 1
>>> type(a)
<type 'int'>
>>> b = 'str'
<type 'str'>

で変数の型を確認できます

>>> if type(a) == int:
...     print 'a is integer'
... 
a is integer
于 2012-09-21T03:42:13.987 に答える