from math import *
a = input("A= ")
b = input("B= ")
c = input("C= ")
d = b*b-(4*a*c)
print "The discriminent is: %s!" %d
if d >= 0:
x1 = (0-b+sqrt(d))/2*a
x2 = (0-b-sqrt(d))/2*a
print "First answer is: %s!" %x1
print "Second answer is: %s!" %x2
else:
print "X can't be resolved!"
在我尝试这些参数之前一直工作正常。
A= 0,5
B= -2
C= 2
然后打印出这个
Traceback (most recent call last):
File "C:/Users/Mathias/Documents/Projects/Skole/project/test/Math.py", line 9, in <module>
d = b*b-(4*a*c)
TypeError: unsupported operand type(s) for -: 'int' and 'tuple'
我似乎无法弄清楚如何解决这个问题,有人可以帮助我吗?
答案 0 :(得分:2)
Python使用句点.
表示小数点,不表示逗号,
;您的输入应为0.5
。
如果你使用了推荐的话,这会给你一个错误:
a = float(raw_input("A= "))
而不是input
(相当于eval(raw_input())
并且将0,5
解释为两元组(0, 5)
):
>>> eval("0,5")
(0, 5)
>>> float("0,5")
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
float("0,5")
ValueError: invalid literal for float(): 0,5
考虑将
raw_input()
函数用于用户的一般输入。