2017-03-20 5 views
0

Wie würde man Code erzeugen, der mit einer for-Schleife im Gegensatz zu einer while-Schleife hochzählt? Mein Code ist wie folgt;Verwenden von for-Schleifen über while-Schleifen

def square(): 
    count = 1 
    number = input("How far?") 
    number = int(number) 
    if number < 1: 
     print ("broken") 
    elif number >= 1: 
     while count <= number: 
      square = count*count 
      print ("{0}*{0}={1}".format(count, square)) 
      count = count+1 
square() 
+3

Haben u in Python-Dokumentation über 'for' Schleifen lesen? –

Antwort

1

Sie können es so machen:

def square(): 
    number = input("How far?") 
    number = int(number) 
    if number < 1: 
     print ("broken") 
    elif number >= 1: 
     for count in range(1,number+1): 
      square = count*count 
      print ("{0}*{0}={1}".format(count, square)) 
square() 

Mit der Linie

for count in range(1,number+1): 

counts iteriert über den Werten 1,2,...,number.

0

U kann es mit Listenkomprehensionen wie tun:

def square(): 
    number = int(input("How far?")) 
    # range will be from 1 to number +1, and will proceed square for all 
    return [val ** 2 for val in range (1, number+1)] 

squares = square() 
if not squares: 
    print('broken') 
# u can iterate over result even if list is empty(if u pass broken number) 
for val in squares: 
    print ("{0}*{0}={1}".format(count, square)) 
Verwandte Themen