2016-04-18 7 views
0

Ich brauche die Benutzereingabe, um die Anzahl der zu druckenden Zahlen im Bereich anzugeben.
Ich habe den folgenden Code dafür:So geben Sie die Anzahl der benötigten Nummern in einem Bereich mit Benutzereingabe an

i = 0; 
start_char = 65 
end_char = 65 
x = input("Enter numbers of plates:") 
while (i < int(x)): 
    if i%26 == 0 and i!= 0: 
      end_char = (65) 
      start_char += 1 

      print((chr(start_char))+(chr(end_char))) 
      end_char =end_char + 1 
      i = i + 1 
    for plate_code in (range(1000)): 
     print(str(plate_code) + ((chr(start_char))+(chr(end_char)))) 
+1

What't das Problem, dass du bist haben? –

+0

Vielleicht möchten Sie ein wenig mehr High-Level-Ansatz mit 'ascii_uppercase' aus dem' string' Modul und 'product()' und 'islice()' aus dem 'itertools' Modul versuchen. Die äußere Schleife beginnt dann mit 'for start_char, end_char in islice (Produkt (ascii_uppercase, ascii_uppercase), int (x)):'. – BlackJack

Antwort

1

Sie Inkrementieren i nur innerhalb von if und da i = 0 zunächst Ihr Code eingibt nie if und klemmt in einer Endlosschleife.

Verschieben i = i + 1 außerhalb if.

while (i < int(x)): 
    if i%26 == 0 and i!= 0: 
      end_char = (65) 
      start_char += 1 

      print((chr(start_char))+(chr(end_char))) 
      end_char =end_char + 1 
    i = i + 1 #move incrementation outside of if 
    for plate_code in (range(1000)): 
     print(str(plate_code) + ((chr(start_char))+(chr(end_char)))) 
+0

Ich bin mir ziemlich sicher, dass das nicht genug ist und inkrementieren 'end_char' sollte auch außerhalb des' 'if'' sein. Außerdem erfindet es die 'for' -Schleife immer noch mit' while'. – BlackJack

0

Nur nicht versuchen, for Loops neu zu erfinden:

def main(): 
    start_char = end_char = 65 
    plate_count = int(input('Enter numbers of plates:')) 
    for i in range(plate_count): 
     if i and i % 26 == 0: 
      end_char = 65 
      start_char += 1 
     print(chr(start_char) + chr(end_char)) 
     end_char += 1 
     for plate_code in range(1000): 
      print('{}{}{}'.format(plate_code, chr(start_char), chr(end_char))) 


if __name__ == '__main__': 
    main() 

Alternativly Nutzung der Kraft der Standardbibliothek machen:

from itertools import islice, product 
from string import ascii_uppercase 


def main(): 
    plate_count = int(input('Enter numbers of plates: ')) 
    for start_char, end_char in islice(
     product(ascii_uppercase, ascii_uppercase), plate_count 
    ): 
     print('{}{}'.format(start_char, end_char)) 
     for plate_code in range(1000): 
      print('{}{}{}'.format(plate_code, start_char, end_char)) 


if __name__ == '__main__': 
    main()