2016-06-29 7 views
0

私はプログラミングが本当に新しいです。私のプログラムは、ユーザーに「3桁の数字」を入力するように求めています。また、数字の長さを決定する必要があります(数字が3桁以下であることを確認してください)整数です。これは私が持っているものです:整数と長さを同時に入力する方法を教えてください。

while True: 
    try: 
     number = int(input("Please enter a (3 digit) number: ")) 
    except: 
     print('try again') 
    else: 
     break 

何か助けていただきありがとうございます! :)

+2

は '3桁の数字として012'count、または2をしていますか?あなたは常に数値を文字列にキャストして、長さ 'len(str(number))'を調べることができます。さらに、 '12.3'などの場合には追加検証を行う必要があります(' isdigit'が便利でしょう)。 – Bahrom

答えて

0

input()戻ります文字列でない場合にも例外を発生させるassertを使用することができ

number_string = input("Please enter a (3 digit) number: ") 
number_int = int(number_string) 
number_length = len(number_string) 
if number_length == 3: 
    break 

。したがって、最初にその番号の長さを確認し、長さが3ではない場合は、ユーザーに再度質問することができます。長さが3の場合は、その文字列をint()で数値として使用できます。 len()には文字列の長さが表示されます。

while True: 
    num = input('Enter a 3 digit number.') 
    if len(num) != 3: 
     print('Try again') 
    else: 
     num = int(num) 
     break 
+0

これはうまくいった! – Kody

+0

また、python 2.xで同じものを使いたい場合は、 'input()'の代わりに 'raw_input()'を使うべきです。 Pythonは後方互換性がないため、問題がよく発生します。それが助けられたら、あなたは答えを投票することもできます。 – GadaaDhaariGeek

1

try/except節でこれを試すことができます。必要に応じて変更します。数の長さが3

try: 
    assert number_length == 3 
except AssertionError: 
    print("Number Length not exactly 3") 
0

その長さをチェックするためにint型にそれをキャストする前に変数に入力してください:一人でexcept:bad practiceであることを

my_input = input("Please enter a (3 digit) number: ") 
if len(my_input) != 3: 
    raise ValueError() 
number = int(my_input) 

注意を。例外をターゲットにする必要があります。

0
while True: 
    inp = raw_input("Enter : ") 
    length = len(inp) 
    if(length!=3): 
     raise ValueError 
    num = int(inp) 

Python 2.xを使用している場合は、inputを使用しないでください。常にraw_inputを使用してください。

Python 3.xを使用している場合は問題ありません。

Read Here

0

これはそれを行う必要があります。

while True: 
    try: 
     string = input("Please enter a (3 digit) number: ") 
     number = int(string) 
     if len(string) != 3 or any(not c.isdigit() for c in string): 
      raise ValueError() 
    except ValueError: 
     print('try again') 
    else: 
     break 
関連する問題