首页 > 解决方案 > 无法打破 Python 中的回文循环

问题描述

我只是一个使用 Python 的初学者,并创建了代码来打印 1-1000 范围内的所有回文数。然而,在我的 print 语句之后,代码只是不断地循环和打印从 1 到 99 的数字。我试过使用 break; 在 print(i) 语句之后,但它会导致控制台在循环中打印 1 和 * Palindromes而不是回文数。有什么打破循环的建议吗?

    pi = 3.14159
area = 0

def areaSquare(squareWidth):
    return squareWidth * squareWidth

def areaCircle(radius):
    return pi *(radius * radius)

   
def menu():     #Creat the menu for user to see
    print("\nCalculations")
    print("1. Calculate area of a square\n2. Calculate the area of a circle\n3. Display palindromes up to 1,000\n4. Exit programme.")


menu()  # call the menu
option = int(input("Enter an option: "))

while option != 4:   #create a loop
    if option == 1:
            print("***Area of a square***") 
            squareWidth = float(input("Enter width of square(cm): "))
            print("The area of the square of width ",squareWidth, "cm = ", areaSquare(squareWidth), "cm squared")
            menu()
            option = int(input("Enter an option: "))
    elif option == 2:
            print("***Area of a circle***");
            radius = float(input("Enter radius of circle(cm): "))
            print("The area of a circle of " , radius , "cm = ", areaCircle(radius), " round")
            menu()
            option = int(input("Enter an option: "))
    elif option == 3:
           for i in range(1, 1000): 
              if str(i) == str(i)[::-1]:
                  print(i,)
    else:   
        print("Invlid entry, please select a number between 1 and 4.")

        menu()
        option = int(input("Enter an option: "))     

print("Goodbye!")  

标签: pythonfor-looppalindrome

解决方案


蟒蛇 3

print("**Palindromes***");
for i in range(1, 1000): 
    if str(i) == str(i)[::-1]:
        print(i,)

在线尝试!

这应该可以解决问题。我认为您有一个导致代码缩进的外部循环,这就是您的循环没有中断的原因。


推荐阅读