python - 如何添加浮动?
问题描述
所以,我试着做一个简单的计算,我想确保用户不能输入会导致错误的值。现在,我不知道为什么,但它给了我错误:
Traceback (most recent call last):
File "ct.py", line 50, in <module>
p = a + b
TypeError: can only concatenate str (not "float") to str
尝试使用 except ValueError 而不是创建 if 并抛出每个参数,它确实有效,但是代码很混乱,所以我尝试稍微清理一下/做其他更简单的方法。
import time
def ll(a):
return all(x in "0123456789.+-" for x in a)
def countdot(text):
count = 0
for c in text:
if c == '.':
count = count + 1
return count
def countminus(text):
count = 0
for c in text:
if c == '-':
count = count + 1
return count
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:
a = float(a)
err = True
else:
print("To nie liczba!")
b = input("Wprowadz pierwszą liczbę: ")
return a
def b1():
err = True
b = input("Wprowadz drugą liczbę: ")
while err == True:
if ll(b)== True and b != "." and b != "-" and b != "+" and countdot(b) <= 1 and countminus(b) <= 1:
b = float(b)
err = False
else:
print("To nie liczba!")
b = input("Wprowadz drugą liczbę: ")
return b
repeat = True
while repeat == True:
print("Prosty Kalukator. Wybierz działanie: ")
print("Dodawanie: +, Odejmowanie: -, Mnożenie: *, Dzielenie: /")
d = input()
while d != "+" and d != "-" and d != "*" and d != "/" :
print("Błąd! Dodawanie: +, Odejmowanie: -, Mnożenie: *, Dzielenie: /")
d = input()
if d == "+" :
a = a1()
b = b1()
print("Wynik działania to: ")
p = a + b
p = float(p)
print(p)
我希望它只添加 a 和 b“p = a + b”,它只会给我错误。
解决方案
def a1():
a = input("Wprowadz pierwszą liczbę: ")
err = True
while err == False:
...
return a
这个函数有一个bug。 err
是True
,所以while
循环永远不会运行。的原始值a
被返回(这是一个字符串)。
推荐阅读
- javascript - 谷歌地球引擎 Python API,图像 .and(image2) 函数
- javascript - 带有枚举的 Angular 接口
- java - 我有两个hashmap HashMap
> 在这种格式下,如何比较两个值是否相同或不同的键 - c - 在什么时候库函数的效率不值得调用它们的开销?
- list - 在 prolog 中绑定一个列表
- process - 了解 waitpid 如何处理信号
- javascript - 为什么这个表单提交两次
- javascript - 从 div 和 textarea 中删除图像
- graphql - 如何在 Hotchocolate 10.4.3 中设置执行超时
- python - 为 pytorch.nn.lstm 批量训练创建批处理的正确方法