(Python)编码新手,找不到为什么我的代码没有退出循环和打印

问题描述 投票:0回答:1

我正在尝试用 python 编写代码来根据半径计算面积和周长。 每当我运行代码时,它只会返回“请输入计算半径”。就像它永远不会中断循环并从 while true 开始返回一样。

import math

radius = input()
    #Area
x = math.pi*radius**2
    #Circumference
y = 2*math.pi*radius**2

while True:
    print('Enter a radius for calculation: ')
    try:
        radius = int(radius)
    except:
        print('Please use numeric digit.')
        continue
    if radius < 1:
        print('Please enter a positive number.')
        continue
    break
print ('The area is', x)
print ('The circumference is', y)

我期待面积和周长的输出。据我所知,break 应该结束循环并立即运行打印语句。但是,它立即又回到了我只是无言以对的状态。

python while-loop
1个回答
0
投票

您在代码顶部接受用户输入

radius = input()
,该代码只会运行一次。 因此
radius
在循环中保持不变,如果输入无效值,它将继续显示
print('Enter a radius for calculation: ')

尝试在 try-catch 块内获取用户输入:

import math

while True:
    print('Enter a radius for calculation: ')
    try:
        radius = float(input())  # Get user input and convert to a float
        if radius < 1:  # Check for positive radius
            print('Please enter a positive number.')
            continue
    except ValueError:  # Catch invalid numeric input
        print('Please use numeric digits.')
        continue

    # If input is valid, calculate area and circumference
    area = math.pi * radius**2
    circumference = 2 * math.pi * radius

    # Print results
    print(f'The area is {area:.2f}')
    print(f'The circumference is {circumference:.2f}')
    break
© www.soinside.com 2019 - 2024. All rights reserved.