因此,我尝试进行一个简单的计算,我想确保用户将无法输入会导致错误的值。现在,我不知道为什么,但是它给了我错误:
ID InputFood InputDate Total
335 Rice 2018-11-01 $10.00
443 Cookies 2018-05-03 $6.00
856 Tea 2018-02-10 $2.00
尝试使用ValueError代替,而不是制作if和抛出每个参数,并且它可以工作,但是代码很混乱,所以我尝试将其清理一些/以其他方式进行简化。
Traceback (most recent call last):
File "ct.py", line 50, in <module>
p = a + b
TypeError: can only concatenate str (not "float") to str
我希望它只添加a和b“ p = a + b”,这只会给我带来错误。
答案 0 :(得分:2)
def a1():
a = input("Wprowadz pierwszą liczbę: ")
err = True
while err == False:
...
return a
此功能有一个错误。 err
是True
,因此while
循环永远不会运行。返回a
的原始值(它是一个字符串)。
答案 1 :(得分:1)
与juanpa.arrivillaga commented一样,其中一个是字符串存在问题。正确的解决方案是在while循环之后而不是在循环中添加a = float(a)
:
def a1():
a = input("Wprowadz pierwszą liczbę: ")
err = True
while err == False:
if ll(a)== True and a != "." and a != "-" and a != "+" and countdot(a) <= 1 and countminus(a) <= 1:
err = True
else:
print("To nie liczba!")
b = input("Wprowadz pierwszą liczbę: ")
a = float(a)
return a