这是我的源代码:
def farmer_johns():
r = int(input('Enter the radius of the circle in feet:'))
#check for valid input
try:
while input >= 0 :
# area of brown
#area of square - area of circle
import math
pi = math.pi
area_square = (r+r)**2
area_circle = pi* r**2
area_brown = area_square - area_circle
print('The area of the brown shaded region is {:.2f} feet^2.'.format(area_brown))
#turtle graphics set up
import turtle
wn = turtle.Screen()
a = turtle.Turtle()
a.pensize(5)
#draw circles
a.pencolor('green')
a.penup()
a.goto(r,r)
a.pendown()
a.circle(r)
a.penup()
a.goto(r,-r)
a.pendown()
a.circle(r)
a.penup()
a.goto(-r,-r)
a.pendown()
a.circle(r)
a.penup()
a.goto(-r,r)
a.pendown()
a.circle(r)
#square
a.pencolor('blue')
a.penup()
a.goto(r,r+r)
a.pendown()
a.goto(-r,r+r)
a.goto(-r,-r+r)
a.goto(r,-r+r)
a.goto(r,r+r)
#middle region
a.pencolor('#654321')
a.fillcolor('#b5651d')
a.begin_fill()
a.penup()
a.goto(r,r)
a.pendown()
a.circle(r,-90)
a.penup()
a.goto(0,r+r)
a.right(180)
a.pendown()
a.circle(r,-90)
a.penup()
a.goto(-r,r)
a.left(-180)
a.pendown()
a.circle(r,-90)
a.penup()
a.goto(0,0)
a.left(180)
a.pendown()
a.circle(r,-90)
a.end_fill()
#writing
# a.write('The area of the brown shaded region is {:.2f} feet^2.'.format(area_brown))
except ValueError:
print('invaild input')
except TypeError:
print('invaild input')
问题是当我输入字母作为输入时,我得到了:
farmer_johns() 以英尺为单位输入圆的半径:Ee 追溯(最近一次通话): 文件“”,第1行,位于 文件“ C:\ Users \ SueAnn \ Desktop \ Comp Sci \ Projects \ project_3 \ farmer john again.py”,第19行,位于farmer_johns r = int(input('以英尺为单位输入圆的半径:')) ValueError:int()以10为底的无效文字:“ Ee”
代码“ Except:TypeError”行有效,但“ Except:ValueError”
答案 0 :(得分:0)
问题:为什么Except:ValueError在我的代码中不起作用?
正如“迈克·斯科蒂”所指出的那样,您是try .. except
错误的代码行!
注意:
try .. except
只有一行代码!
这使您可以控制哪一行代码引发Exception。
更改为以下内容:
def farmer_johns():
#check for valid input
# This try ... except catches: input value != integer
try:
r = int(input('Enter the radius of the circle in feet:'))
except ValueError as e:
print('invaild input: {}'.format(e)
## Other code follows
这将引发错误,因为未定义 变量
input
!while input >= 0 :
您可以将while True:
与break
结合使用。