loop =1
while loop==1:
x = input('Enter 1 for CI, 2 for SI, 3 for Area of cylinder and 4 for area of circle:')
if x==1:
from math import*
p = input('Enter Principal: ')
r = input('Enter rate: ')
n = input('Enter number of years: ')
CI = p*pow((1+r),n)
print 'The Compound Interest is:', CI
print '\n'
elif x==2:
from math import*
p = input('Enter Principal: ')
r = input('Enter rate: ')
n = input('Enter number of years: ')
SI = (p*n*r)/100.0
print 'The Simple Interest is:', SI
print '\n'
elif x==3:
from math import*
r = input('Enter radius of cylinder: ')
h = input('Enter height of cylinder: ')
A= 2*pi*r*(h+r)
print 'The Area of Cylinder is:', A
print '\n'
elif x==4:
from math import*
r = input('Enter radius of circle:')
A = pi*r*r
print 'The Area of circle is:', A
print '\n'
else:
print 'Enter 1,2,3 or 4:'
当用户输入字符串
时,这是错误Traceback (most recent call last):
line 3, in <module>
x = input('Enter 1 for CI, 2 for SI, 3 for Area of cylinder and 4 for area of circle:')
File "<string>", line 1, in <module>
NameError: name 'j' is not defined
答案 0 :(得分:2)
在Python 3之前,input
尝试将evaluate the input作为Python表达式。如果您输入j
,则会尝试找到失败的名称j
。
使用raw_input
代替,但不会进行评估,但会返回一个字符串:在这种情况下,您需要更改if
条件以测试字符串:
if x == '1':
...等
然后对于其他input()
调用你也可以这样做,然后将你得到的字符串转换为float:
p = float(raw_input('Enter Principal: '))
当然,如果用户输入非数字数据,那可能会失败,这实际上是一个错误条件。您可以将其放在try
块中并处理该错误情况。
查看在repl.it
上运行的更正后的脚本