2017-01-03 3 views
-1

ユーザが数字を入力するためにこのコードを書いたので、コンピュータはユーザが選択した小数点以下の数字の数をpiに返します。ユーザーがプログラムを終了するために「Q」を入力したかどうか確認したい。問題は、15を超えないようにその数値を整数に変換すると、その数値がqかどうかを確認できないことです。同時に、その入力をstrに変換すると、その数値が15より大きいかどうかを確認することができなくなります。何か助けていただければ幸いです。入力中の文字のチェック

import math 
import sys 


def piee(): 
    pie = str(math.pi) 
    pi_list = list(pie) 

    print(pie) 

    try: 
     num = int(input("How many numbers after the decimal do I show?, max is 15 - ")) 
    except ValueError: 
     print("That's not a number!") 
     sys.exit() 

    if num > 15: 
     print("That's too large of a number!") 
     sys.exit() 
    elif num < 1: 
     print("That's too small of a number!") 
     sys.exit() 

    new_num = num + 2 
    del pi_list[new_num:] 
    final = ''.join(pi_list) 
    print(final) 
    again = input("Again? [Y/N] ").lower() 
    if again == 'y': 
     print('+' * 25) 
     piee() 
    else: 
     sys.exit() 
piee() 
+1

'num = input()'と 'num == 'q'の場合:sys.exit()'をしないのはなぜですか? –

+0

整数に変換する前に "q"であることを確認してください... – TigerhawkT3

答えて

1

try: 
    inp = input("How many numbers after the decimal do I show?, max is 15 - ") 
    num = int(inp) 
except ValueError: 
    if inp == 'Q': 
     sys.exit() 
    else: 
     print("That's not a number!") 

かなり近いがsys.exit()があらゆる場所に散在し、あなたが得た注意してください。彼らの大部分はただ帰ってください。

関連する問題