2016-10-14 3 views
0

Ich lerne Python, und bei dem Versuch, die Min- und Max-Werte der Eingaben von Benutzerzahlen herauszufinden, kann ich es nicht herausfinden.Suche nach Min und Max der Benutzereingaben

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

Können Sie bitte eine typische Benutzereingabe und der entsprechenden erwarteten Ausgang zur Verfügung stellen? Was passiert gerade, was für dich nicht funktioniert? – idjaw

+1

Randbemerkung: Python benötigt keine bedingten/Schleifenkonstrukte, die in Parens eingeschlossen werden sollen. Verwenden Sie sie nicht, es sei denn, es gibt ein Vorrangproblem, das sie lösen. 'while True:' ist sauberer/mehr Pythonic als 'while (True):' und 'wenn x.isdigit():' ist ähnlich besser als 'if (x.isdigit()):'. – ShadowRanger

Antwort

1

Ihr Programm in kleine überschaubare Einheiten brechen mit nur einer einfachen Start-Funktion die Nummer

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!") 

dann schreibt eine Funktion erhalten Zahlen weiterhin von dem Benutzer erhalten, bis sie die Eingabe von Zahlen gemacht werden

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 

dann legte sie nur zusammen

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) 
1
inp=input("enter values seperated by space") 
x=[int(x) for x in inp.split(" ")] 
print (min(x)) 
print (max(x)) 

Ausgang:

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

er verwendet python3 ... raw_input funktioniert nicht in python3 –

+0

@JoranBeasley Fertig! –

0

x ist eine Liste, und ein Element in einer Liste anzuhängen, müssen Sie die append Methode auf der Liste aufrufen, anstatt direkt ein Element in der Liste zuweisen, die würde die Liste mit diesem Element überschreiben.

Code:

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