Скрипт Python не может быть запущен из консоли, но нормально работает в режиме ожидания

После F5 в Idle появляется запрос на ввод, ввожу число файл генерируется - все работает.

Если я пытаюсь выполнить скрипт прямо из файла, консоль открывается и закрывается безрезультатно.

Если я передвину f = open("galaxies.txt","w+")перед самым внешним циклом FOR скрипт вообще не работает.

Любые предложения по исправлению и причинам, почему он ведет себя так?

      import string, random

f = open("galaxies.txt","w+")

def inputNumber(message):
    while True:
        try:
            howmany = int(input(message))       
        except ValueError:
            print("Not an integer! Try again.")
            continue
        else:
            return howmany 
            break 

string.ascii_letters

type_galaxy = ['elliptical','spiral','irregular']

howmany = inputNumber('How many galaxies to generate? ')

for i in range(howmany):
    planet_names = []
    
    pos_0 = 'g' + random.choice(string.ascii_letters).upper() + random.choice(string.ascii_letters).upper() + random.choice(string.ascii_letters).upper() + '-' + random.choice(string.ascii_letters).upper() + str(random.randint(1, 9999))
    gal_type = type_galaxy[random.randint(0,2)]
    num_of_planets = random.randint(1,43)
    for k in range(num_of_planets):
        pos_1 = 'p' + random.choice(string.ascii_letters).upper() + random.choice(string.ascii_letters).upper() + '-' + random.choice(string.ascii_letters).upper() + str(random.randint(1, 99))
        planet_names.append(pos_1)
    if i < 1:
      f.write('-----Galaxy '+pos_0+'----- \n')
    else:
      f.write('\n-----Galaxy '+pos_0+'----- \n')
    
    f.write('Type: '+gal_type + ' \n')
    f.write('There are '+str(num_of_planets)+' planets in the galaxy. Their names are: \n')
    for x in planet_names:
        f.write (x + ' and it has ' + str(random.randint(0,56)) + 'moons \n')

    f.write('-----Thats all from Galaxy '+pos_0+'----- \n')

f.close() 

0 ответов

Другие вопросы по тегам