在Python中循环

时间:2016-02-28 21:39:56

标签: python

我正试图找到一种循环此代码的方法,以便在所有三个计算完成后重新启动它。我已经找到了重启程序本身的方法,但是我无法重新启动它以便它返回到第一个计算步骤。有谁可以帮助兄弟出去?提前谢谢。

我用来重启程序的代码:

def restart_program():

python = sys.executable
os.execl(python, python, * sys.argv)

if __name__ == "__main__":
    answer = input("Do you want to restart this program?")
    if answer.lower().strip() in "y, yes".split():
        restart_program()

没有重启代码的程序:

import math
import sys
import os


print ("This program will calculate the area, height and perimeter of the Triangles: Scalene, Isosceles, Equilateral and a Right Angled Triangle.")

# calculate the perimeter

print ("Please enter each side for the perimeter of the triangle")

a = float(input("Enter side a: "))
b = float(input("Enter side b: "))
c = float(input("Enter side c "))

perimeter = (a + b + c)

print ("The perimeter for this triangle is: " ,perimeter)


# calculate the area

print ("Please enter each side for the area of the triangle")

a = float(input("Enter side a: "))
b = float(input("Enter side b: "))
c = float(input("Enter side c "))

s = (a + b + c) / 2

sp = (a + b + c) / 2
area = (s*(s-a)*(s-b)*(s-c)) ** 0.5    #area = math.sqrt(sp*(sp - a)*(sp - b)*(sp - c))#

print ("The area for this triangle is %0.2f: " %area)


# calculate the height

height = area / 2

print ("The height of this triangle is: ", height)

3 个答案:

答案 0 :(得分:0)

您可以将所有内容放入while循环中,该循环可以永久重复或直到用户键入某个短语。

import math
import sys
import os


print ("This program will calculate the area, height and perimeter of the Triangles: Scalene, Isosceles, Equilateral and a Right Angled Triangle.")
while True:


    # calculate the perimeter

    print ("Please enter each side for the perimeter of the triangle")

    a = float(input("Enter side a: "))
    b = float(input("Enter side b: "))
    c = float(input("Enter side c "))

    perimeter = (a + b + c)

    print ("The perimeter for this triangle is: " ,perimeter)


    # calculate the area

    print ("Please enter each side for the area of the triangle")

    a = float(input("Enter side a: "))
    b = float(input("Enter side b: "))
    c = float(input("Enter side c "))

    s = (a + b + c) / 2

    sp = (a + b + c) / 2
    area = (s*(s-a)*(s-b)*(s-c)) ** 0.5    #area = math.sqrt(sp*(sp - a)*(sp - b)*(sp - c))#

    print ("The area for this triangle is %0.2f: " %area)


    # calculate the height

    height = area / 2

    print ("The height of this triangle is: ", height)

while answer.lower() in ("yes", "y"):
    //code
    answer = input("Would you like to repeat?")

您也可以将它全部放入函数def main():中,然后进行某种形式的递归(本身调用函数)。

这些只是一些方法。有很多方法可以让你得到你想要的东西。

答案 1 :(得分:-1)

让函数循环自己。重新启动shell是没有必要的。

import math
import sys
import os

def calc():
    print ("This program will calculate the area, height and perimeter of the Triangles: Scalene, Isosceles, Equilateral and a Right Angled Triangle.")

    # calculate the perimeter

    print ("Please enter each side for the perimeter of the triangle")

    a = float(input("Enter side a: "))
    b = float(input("Enter side b: "))
    c = float(input("Enter side c "))

    perimeter = (a + b + c)

    print ("The perimeter for this triangle is: " ,perimeter)


    # calculate the area

    print ("Please enter each side for the area of the triangle")

    a = float(input("Enter side a: "))
    b = float(input("Enter side b: "))
    c = float(input("Enter side c "))

    s = (a + b + c) / 2

    sp = (a + b + c) / 2
    area = (s*(s-a)*(s-b)*(s-c)) ** 0.5    #area = math.sqrt(sp*(sp - a)*(sp - b)*(sp - c))#

    print ("The area for this triangle is %0.2f: " %area)


    # calculate the height

    height = area / 2

    print ("The height of this triangle is: ", height)

    if __name__ == "__main__":
        answer = input("Do you want to restart this program?")
        if answer.lower().strip() in "y, yes".split():
            calc()
        else:
            exit()


calc()

如果答案是肯定的,则调用该函数并重复所有操作。如果答案不是,则程序退出。

答案 2 :(得分:-2)

这应该做。

def restart_program():

python = sys.executable
os.execl(python, python, * sys.argv)

if __name__ == "__main__":
    while input("Do you want to restart this program?").lower().strip() in "y, yes".split():
        restart_program()