Python中的循环

Python中的循环,python,Python,我正试图找到一种方法来循环这段代码,以便在所有三个计算完成后重新启动。我已经找到了一种方法来重新启动程序本身,但是我无法设法重新启动它,使它返回到第一个计算步骤。有人能帮兄弟吗?提前谢谢 我用于重新启动程序的代码: def restart_program(): python = sys.executable os.execl(python, python, * sys.argv) if __name__ == "__main__": answer = input("Do you wa

我正试图找到一种方法来循环这段代码,以便在所有三个计算完成后重新启动。我已经找到了一种方法来重新启动程序本身,但是我无法设法重新启动它,使它返回到第一个计算步骤。有人能帮兄弟吗?提前谢谢

我用于重新启动程序的代码:

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)
这应该可以

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()

您可以将所有内容放在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)

您还可以将其全部放入函数
defmain():
,然后执行某种形式的递归(调用函数本身)


这些只是一些方法。有很多方法可以满足您的需求。

只需将函数循环本身设置好即可。不需要重新启动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()
如果答案是“是”,则调用该函数并重复所有操作。如果答案不是“是”,则程序退出

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()