2016-10-14 22 views
0

私はPythonを学んでおり、ユーザ番号入力の最小値と最大値を調べるために、私はそれを理解できないようです。ユーザ入力の最小値と最大値を見つける

count = 0 
x = [] 
while(True): 
    x = input('Enter a Number: ') 
    high = max(x) 
    low = min(x) 
    if(x.isdigit()): 
     count += 1 
    else: 
     print("Your Highest Number is: " + high) 
     print("Your Lowest Number is: " + low) 
     break 
+0

あなたは典型的なユーザ入力とそれぞれの予想される出力を提供していただけますか?あなたのために働いていない現在起こっていることは何ですか? – idjaw

+1

サイドノート:Pythonは条件付き/ループ構造を括弧で囲む必要はありません。解決する優先順位の問題がない限り、それらを使用しないでください。 while True: 'と' if x.isdigit(): 'は' if(x.isdigit()): 'と同様に優れています。 – ShadowRanger

答えて

1
は、彼らが入る数字

を完了するまで、ユーザーからの番号を引き続き入手するために関数を記述数

def input_number(prompt="Enter A Number:"): 
    while True: 
     try: return int(input(prompt)) 
     except ValueError: 
      if not input: return None #user is done 
      else: print("That's not an integer!") 

に取得するだけのシンプルな機能で始まる小さな扱いやすい塊にあなたのプログラムを破る

def get_minmax_numbers(prompt="Enter A Number: "): 
    maxN = None 
    minN = None 
    tmp = input_number(prompt) 
    while tmp is not None: #keep asking until the user enters nothing 
     maxN = tmp if maxN is None else max(tmp,maxN) 
     minN = tmp if minN is None else min(tmp,minN) 
     tmp = input_number(prompt) # get next number 
    return minN, maxN 

は、ただ一緒に

print("Enter Nothing when you are finished!") 
min_and_max = get_numbers() 
print("You entered Min of {0} and Max of {1}".format(*min_and_max) 
012を入れて
1
inp=input("enter values seperated by space") 
x=[int(x) for x in inp.split(" ")] 
print (min(x)) 
print (max(x)) 

出力:

Python 3.5.2 (default, Dec 2015, 13:05:11) 
[GCC 4.8.2] on linux 

enter values seperated by space 20 1 55 90 44 
1 
90 
+1

彼はpython3を使っています... raw_inputはpython3で動作しません –

+0

@JoranBeasley完了! –

0

xがリストされ、リストに項目を追加するために、あなたは直接リストに項目を割り当てるのではなく、リストにappendメソッドを呼び出す必要がありますその項目でリストをオーバーライドします。

コード:

count = 0 
x = [] 
while(True): 
    num = input('Enter a Number: ') 
    if(num.isdigit()): 
     x.append(int(num)) 
     count += 1 
    elif(x): 
     high = max(x) 
     low = min(x) 
     print("Your Highest Number is: " + str(high)) 
     print("Your Lowest Number is: " + str(low)) 
     break 
    else: 
     print("Please enter some numbers") 
     break 
関連する問題