2016-04-09 3 views
0

Я новичок в python! Мои программы продолжают закрываться сразу после ввода некоторых данных. Так, например, я запускаю это:python закрывается после ввода?

def main(): 
    kilometers = eval(input("How many kilometers do you want to convert to miles?")) 
    miles = kilometers * 0.62 
    print(kilometers, "kilometers is", miles, "miles!") 
main() 

И после того, как я поставил в ряд, программа завершает работу без отображения ответа. Он отлично работает на компьютерах моей школы. Как я могу это исправить?

+0

Зачем использовать 'eval', когда вы не ожидаете выражения? У вас есть тот же ввод на вашем компьютере, что и на школьном компьютере? –

+0

как я уже сказал, я совершенно новый. Я буквально просто взял книгу на ней два дня назад. Это тот же код, который я ввел в python в моей школе, и он работает, но на моем ноутбуке программа сразу закрывается – plshelpme

ответ

0

Возможно, вы использовали Python 3 на компьютерах вашей школы. На Python 2 input уже делает eval на входе, введенном пользователем, где, как и на Python 3 input просто возвращает строку, которая так или иначе должна быть преобразована в число.

Если вы хотите преобразовать пример в работу с Python 2, я бы предположил, что вы используете raw_input, который возвращает пользовательский ввод в виде строки и преобразует его в число с float. Кроме того, необходимо использовать либо print заявление или импортировать print функцию из __future__, как я сделал в следующем примере:

from __future__ import print_function 

def main(): 
    kilometers = float(raw_input("How many kilometers do you want to convert to miles?")) 
    miles = kilometers * 0.62 

    print(kilometers, "kilometers is", miles, "miles!") 

main() 
0

Ваша программа выходит сразу после ввода. Вы можете заблокировать его просто с помощью «raw_input()» в конце. Если вы используете Python 2.7 (в отличие от 3.x), вы должны использовать raw_input() вместо input(). Использование eval здесь немного странно, поэтому давайте использовать float. Наконец, как это помечено Python 2.7, я сделал для печати использовать отформатированную строку, потому что он чувствует себя более 2,7, как:

def main(): 
    kilometers = float(raw_input("How many kilometers do you want to convert to miles? ")) 
    miles = kilometers * 0.62 
    print "%f kilometers is %f miles!" % (kilometers, miles) 
main() 
raw_input() 

Теперь ваша программа завершится после того, как вы нажмете Enter!

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