2016-04-26 16 views
-2

私はPython 3.4で電卓を作っています。電卓はユーザーに番号を入力するよう求めます。私はこれを制限したいので、数字を入力するだけです(私は大丈夫です)か、 "C"キーを押して計算機をクリアすることができます。私はCだけでなく、任意の整数を許可して立ち往生しているようだ。誰でもこれについて行く方法を示唆している?整数と1文字のアルファベットを許可するPython入力

おかげ

+2

これまでに何がありますか?おそらく、最初からすべてを作成するのではなく、その上に構築することができます – Mathias711

+0

あなたの質問を編集して、試したコードを追加してください。 –

+1

一度に1桁を入力するか、1337のように整数を入力してからEnterキーを押しますか?また、ユーザーがたとえば"42C" - 有効な番号42、有効なコマンド "C"または無効ですか?小数点はどうですか?それらをサポートするか、または整数への入力を制限しますか? –

答えて

0

ユーザーは、1337のようないくつかの数字からなる数字を入力できると仮定して、このコードを使用できますが、小数点は使用できません。数字と "C"が混在する入力は無効です。入力に文字 "C"だけが含まれていれば "C"が検出されます。先頭と末尾の空白は無視されます。入力が無効であった場合

def get_input(): 
    inp = input("Enter a number or 'C' to clear: ").strip() 
    if inp.upper() == "C": 
     return "C" 
    if inp.isdigit(): 
     return int(inp) 
    else 
     return None 

この関数は、整数として入力された番号、または文字列「C」、またはNoneを返します。

-1

を使用すると、ユーザ入力に一つずつを取っていると仮定:

import string 
allowed = string.digits+'C' 
if input in allowed: 
    doSomethingWith(input) 

は、あなたが探しているものを、このですか?

+0

入力が1桁の場合にのみ機能します。 '42'のような入力は許されません。 –

+0

それは実際に彼がそれをどのように実装しているかによって異なります。この計算機では、入力を1つずつ読み込んで表示するために文字列に追加すると仮定しています。 – plsnoban

関連する問題