首页 > 解决方案 > 如何添加浮动?

问题描述

所以,我试着做一个简单的计算,我想确保用户不能输入会导致错误的值。现在,我不知道为什么,但它给了我错误:

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”,它只会给我错误。

标签: pythonpython-3.x

解决方案


def a1():
    a = input("Wprowadz pierwszą liczbę: ")
    err = True
    while err == False:
        ...
    return a

这个函数有一个bug。 errTrue,所以while循环永远不会运行。的原始值a被返回(这是一个字符串)。


推荐阅读