-1

入力 1 が入力 2 と等しくないことを確認するにはどうすればよいですか? その場合、エラーを表示しますか? 入力された入力が数値ではなく文字列であることを確認するために、コードで既に def ステートメントを使用していますが、実際にそれを組み合わせることができないと思うので、def ステートメントは両方のことを行います..何か方法はありますか?

4

1 に答える 1

2

入力が有効であることを確認する関数:

def isvalid(*values):
    for value in values:
        #check a value is invalid 
        if not value in ['pound', 'euro', 'dollar', 'yen']: #etc...
            return False
    return True

メインループ:

def get_input():
    a = raw_input("A: ")
    b = raw_input("B: ")
    while (not isvalid(a,b) or a != b):
        print("The inputs were not identical! Please try again.")
        a = raw_input("A: ")
        b = raw_input("B: ") 
    print("{0} = {1}".format(a,b))

get_input()

または、同じ機能を実現する関数を 1 つだけ持つこともできます。

def get_input():
    valid_values = ['pound', 'euro', 'dollar', 'yen'] #etc...
    a = raw_input("A: ")
    b = raw_input("B: ")
    while (not (a in valid_values and b in valid_values) or a != b):
        print("The inputs were not valid! Please try again")
        a = raw_input("A: ")
        b = raw_input("B: ") 
    print("{0} = {1}".format(a,b))

注: これnot (a in valid_values and b in valid_values)ド・モルガンの法則の場合です。と書き換えることができますnot (a in valid_values) or not (b in valid_values)

例として、次のように生成します。

A: pound
B: orange
The inputs were not valid! Please try again
A: pound
B: euro
The inputs were not valid! Please try again
A: pound
B: pound
pound = pound
>>> 

外部で入力された値にアクセスするには、get_inputこれを行うことができます

def get_input():
        valid_values = ['pound', 'euro', 'dollar', 'yen'] #etc...
        a = raw_input("A: ")
        b = raw_input("B: ")
        while (not (a in valid_values and b in valid_values) or a != b):
            print("The inputs were not valid! Please try again")
            a = raw_input("A: ")
            b = raw_input("B: ") 
        print("{0} = {1}".format(a,b))
            return a,b #THIS WAS THE CHANGE

そして、次のように呼び出します。

print("CALLING get_input")
A,B = get_input()
print("CALLED get_input")
#we can now access the result outside of get_input
print(A)
print(B)

生産します:

>>> 
CALLING get_input
A: pound
B: pound
pound = pound
CALLED get_input
pound
pound

Python 3.xinputの代わりに使用raw_input

于 2013-04-30T00:20:33.963 に答える