2016-04-17 12 views
0

so weit, was ich getan habe, ist dies:Wie kann ich wissen, was die größte Zahl von einer While-Schleife in Python ist?

from random import randint  
def num_random(): 
    counter = 0 
    while (counter <= 99): 
     counter=counter+1 
     base=randint(1,100) 
     height=randint(1,100) 
     area = base*height/2 
     data(area) 

def data(area): 
    print("area=",area) 

num_random() 

aber ich will bestimmt was Dreieck die größte Fläche hat.

Ich thnik Ich könnte den Wert von jedem Bereich in einer Liste speichern und dann Max (Liste) verwenden, damit ich wissen kann, was der größte ist. Das Problem ist, dass ich nicht sicher bin, wie man die Werte von der While-Schleife in einer Liste speichert.

Vielen Dank im Voraus!

Antwort

0

Sie haben Recht, einfach anhängen area auf eine Liste, dann rufen Sie die max Funktion:

from random import randint  
def num_random(): 
    counter = 0 
    areas = [] 
    while (counter <= 99): 
     counter=counter+1 
     base=randint(1,100) 
     height=randint(1,100) 
     area = base*height/2 
     areas.append(area) 
    data(max(areas)) 

def data(area): 
    print("area=",area) 

num_random() 

>>> num_random() 
('area=', 4140) 
>>> num_random() 
('area=', 4464) 
1

Sie könnten einfach tun

max(randint(1,100)*randint(1,100)/2 for i in range(100)) 

oder wenn Sie wollen, es machen ein wenig klarer,

def area_triangle(base, height): 
    return base*height/2 

def max_rand_area(num_trials=100): 
    return max(area_triangle(randint(1,100), randint(1,100)) for i in range(num_trials)) 
0

Hier ist, wie ich den ursprünglichen Code schreiben würde, und in Listenform zu sein:

from random import randint 
def num_random(): 
    base = [] 
    height = [] 
    area = [] 
    for i in range(99): #Use For Loop rather than while loop with counter 
     base.append(randint(1,100))  #Add value to "base" list 
     height.append(randint(1,100))  #Add value to "height" list 
     area.append(base[i]*height[i]/2)   #Calculate Area h*b/2 
     print("Area = {}".format(area))  #Print Area Value to Terminal 
    print("Max Area = {}".format(max(area)) 
num_random() #call the function 

Zusätzlich können Sie jetzt Index i verwenden, um indizierte Werte aus den erstellten Listen zu ziehen.

Verwandte Themen