-3
number = input("Enter numbers separated by spaces: ")
if int(number)>5:
    print ('Invalid  Input')
elif int(number)<0:
        print ('Invalid  Input')
elif len(number) !=5 :
        print ('Invalid  Input')
elif len(number) == 5:
    for n in number:
        a = int(n)
        if 0< a <=5:
            print ('x'* a)
        elif a == 0:
            print ('.')

問題は、コードが 5 桁を 1 つの数字として扱うことです。プログラムは、入力された 5 つの数字がすべての条件を満たしているかどうかをチェックし、1 つでも満たしていない場合、プログラムは INVALID INPUT を出力し、プログラムを停止する必要があります。何かを実行する前に条件が満たされているかどうかをプログラムに確認してもらいたいのですが、条件が1桁でも満たされていなければ、プログラムは無効な入力を出力し、他には何も出力しません。入力した数値をリストに変換し、リストの各要素が条件を満たしているかどうかを確認するにはどうすればよいですか?

-プログラムは、何かを印刷する前に入力された数字をチェックする必要があります -プログラムは、入力が 0 から 5 の間の数字であることをチェックする必要があります。5 以外の桁数が入力された場合も失敗します。適切なエラー メッセージ。・入力した数字が重複している可能性があります。(例: 3, 3, 3, 0, 0 が入力可能です。)

4

1 に答える 1

0

各数値が分離されるように、入力を分割する必要があります。'3 0 3 3 0' の文字列を整数に変換しようとしていますが、これは不可能です。

In [1]: userInput = input().split()
3 0 3 3 0 # the input I gave

In [2]: userInput
Out[2]: ['3', '0', '3', '3', '0']

そこから、各数値を整数に変換し、必要な値のチェックを行うことができますが、これは文字列のリストでは不可能です。リスト内包表記を使用すると、その最初の部分を簡単に実行できます。

numbers = [int(number) for number in userInput]
于 2013-10-08T21:34:54.703 に答える