2014-02-13 3 views
0

Я хотел был бы сбросить/перезапустить мою программу, но на основе пользовательского ввода. Скажите, если пользователь наберет «да» и нажимает кнопку, программа перезагрузится/перезапустится и запустится. Я делаю калькулятор для энергии; Проблемы физики. Выходы - это механическая энергия, кинетическая энергия и потенциальная энергия. Все формулы закодированы правильно, все работает должным образом, за исключением того, что у меня нет возможности перезапустить программу, не нажимая на файл и не открывая его снова.Как сбросить/перезапустить программу в Python с пользовательского ввода?

#Importing "time" and "math" so I can use the time.sleep and rounding functions 
import time 
import math 
restart=1 
user_r1=float(input ("What is the mass of your object (kg) = ")) 
print ("") 
user_r2=float(input ("Whats is the height you are dropping from (m) = ")) 
print ("") 
user_r3=float(input ("What is the velocity (m/s) = ")) 
#Formulas that solve from the inputs given 
EKinetic = 0.5 * user_r1 * user_r3 * user_r3 
EPotential = user_r1 * 9.81 * user_r2 
MechEnergy = (EPotential) + (EKinetic) 
#Rounding - To change the ammount of sigdigs change the # infront of the f' 
EKinetic='%.1f' % EKinetic 
EPotential='%.1f' % EPotential 
MechEnergy='%.1f' % MechEnergy 
#Spitting out the info the user will see 
print ("") 
print ("===============================================================================") 
print ("Kinetic Energy = ",EKinetic,"J") 
print ("") 
print ("Potential Energy = ",EPotential,"J") 
print ("") 
print ("Mechanical Energy = ",MechEnergy,"J") 
print ("===============================================================================") 
print ("") 
#This time.sleep will make the program pause for (x# of seconds) 
time.sleep(3) 
user_r4=(input ("To do another calculation type yes and hit enter = ")) 
if user_r4 == ("yes"): 
    print ("YAY") 
    ###PUT RESTART CODE HERE### 
    ###EVERYTHING DOWN ARE JUST PLACE HOLDERS FOR THE RESTART CODE### 
else: 
    print ("Please type yes to continue") 
time.sleep(1) 
user_r4=(input ("To do another calculation type yes and hit enter = ")) 
if user_r4 == ("yes"): 
    print ("YAY") 
    ###PUT RESTART CODE HERE### 
else: print ("Thats enough!!!") 
time.sleep(3) 
+1

Есть ли причина, по которой вы не можете использовать простой цикл? – Nabla

+0

Или вы используете ['goto'] (http://entrian.com/goto/). –

ответ

3

Что вы ищете простой входной контур

while True: 
    # Existing code here 

    user_r4= input ("To do another calculation type yes and hit enter = ") 

    # Exit the loop if the user does not want to proceed 
    if len(user_r4) and user_r4[0] in "Yy": 
     break 
+1

'if user_r4 [0] в 'Yy':' часто работает достаточно хорошо –

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