2013-12-12 4 views
2

Когда я запускаю программу с уже открытым IDLE, мне иногда нужно, чтобы я нажал . Введите текст, чтобы текст появился.Программа Python появляется только тогда, когда я нажимаю Enter

Как это сделать?

Код:

import random 

def var(): 

    dice_score = 0 
    repeat = "" 
    dicesides = input("Please enter the amount of sides you want the dice to have.\n The amounts you can have are as follows: 4, 6 or 12: ") 
    script(dice_score, dicesides, repeat) 

def script(dicescore, dicesides, repeat): 

    if dicesides in [4,6,12]: 
     dice_score = random.randrange(1, dicesides) 
     print(dicesides, " sided dice, score ", dice_score, "\n") 
    else: 
     print("Please Try Again. \n") 
     var() 
    repeat = str(input("Repeat? Simply put yes or no: ").lower()) 

    if repeat == "yes": 
     var() 
    else: 
     quit() 

var() 

Спасибо.

+0

Если вам нужен ответ или что-то еще, просьба указать соответствующую информацию. –

+0

Нет информации, когда я запускаю свой скрипт python, мне нужно нажать Enter, чтобы он появился. – user3092741

+0

Какой код вы используете? Похоже, вы ожидаете дополнительного ввода какого-то рода, когда программа запускается. –

ответ

0

Вы всегда должны попытаться включить любую пользовательскую входную переменную, требуемую вашей функцией в самой функции! Кроме того, вы забыли ввести тип dicesides в int, потому что input() возвращает строку. Кроме того, IMO, параметры функции довольно бесполезны, вы можете запросить их в самой функции.

Я бы сделал это следующим образом.

from random import randrange 

def script(): 

    dicesides = int(input("Please enter the amount of sides you want the dice to have.\n The amounts you can have are as follows: 4, 6 or 12: ")) 

    if dicesides in [4,6,12]: 
     dice_score = randrange(1, dicesides) 
     print(dicesides, " sided dice, score ", dice_score, "\n") 
     return True 
    else: 
     print("Please Try Again. \n") 
     return False 

repeat = "yes" 
yes = ["yes", "y", "YES", "Y"] 

while repeat in yes: 
    if not script(): 
     continue 
    repeat = input("Repeat? Simply put yes or no: ").lower() 

Что касается основного вопроса needing an extra enter, я не понимаю вас. С приведенным выше кодом это не произойдет.

Смежные вопросы