我正在尝试用 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 应该结束循环并立即运行打印语句。但是,它立即又回到了我只是无言以对的状态。
您在代码顶部接受用户输入
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