環境:Mac OS,Python3系
前回の質問に用いたコードにご回答通り編集を加え、改良してそこからさらに、
「ユーザーが入力した文字列が整数出ない場合を判定するようにtry~except文を追加し、
通常、int('puppy')のようにint()関数に非整数の文字列を渡すと、ValueError例外が起きるので、
except節では、整数値を入力するように示すメッセージを表示させる」
上記のようになるようコードを下記のように打ち込みましたが、
def collatz(number): if number % 2 == 0: return int(number / 2) elif number % 2 == 1: return int(3 * number + 1) print('整数を入力してください。') try: number = int(input()) #シェルに表示される。 except ValueError: print('正しく整数を入力してください。') number = int(input()) while True: number = collatz(number) print(number) if number == 1: break
RUN結果は例えば最初に「2.3」と打ち、次に「3」打つと下記のようになります。
整数を入力してください。
2.3
正しく整数を入力してください。
3
10
5
16
8
4
2
1
しかし、2回連続整数を入力しないでやると下記のようになります。
整数を入力してください。
2.3
正しく整数を入力してください。
2,
Traceback (most recent call last):
File "/Users/kyohei/Desktop/311prooject2.py", line 10, in <module>
number = int(input()) #シェルに表示される。
ValueError: invalid literal for int() with base 10: '2.3'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/kyohei/Desktop/311prooject2.py", line 14, in <module>
number = int(input())
ValueError: invalid literal for int() with base 10: '2,'
☆整数を入力するまで何度も整数を正しく入力するように促し、かつ整数が入力されると通常運転する
コードをご教授くださいませ。
説明が下手で申し訳ありません。。。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/02 01:22