Как я могу исправить эту ошибку TypeError в Python относительно non-int и float? - PullRequest
0 голосов
/ 31 января 2020

Я работаю с Python 3 на Код Visual Studio , и проект, над которым я работаю, заключается в вычислении лунного веса пользователя после получения его земного веса, затем выведите, как их вес меняется с течением времени с учетом увеличения и периода времени.

Это сообщение об ошибке, которое я получил несколько раз, независимо от того, сколько раз я перекодировал:

TypeError: can't multiply sequence by non-int of type 'float'

Это, в частности, происходит всякий раз, когда я использую функции input () и / или sys.stdin.readline (), но все соответствующие переменные являются целыми числами или числами с плавающей запятой, независимо от того, пытаюсь ли я преобразовать их в числа с плавающей запятой, используя Функция float () для моих входов.


Вот мой код:

# this programs converts your terra weight to your lunar weight, then it takes increase over a period of time

# error whether I use float() or not
terraWeight = float(input("Terra Weight: "))

ask = input("Is this in LBS or KG? ")

# converts pounds to kilograms
# 2.204... is used to convert lbs to kgs
if ask == "lbs" or "LBS":
    initial = terraWeight / 2.2046223302272

# didn't need this, but assignment error popped up
x = 0

# or replace input() with sys.stdin.readline()
increase = input("Increase: ")
period = input("Period: ")

# gets lunar weight over time
def lunarWeight():
    global increase
    global period
    global x
    global initial

    print("Earth Weight = %s kgs." % terraWeight)
    year = 0
    lunarWeight = initial * 0.165
    print("Moon Weight = %s kgs. \n" % lunarWeight)
    postIncrease = lunarWeight * increase
    for x in range(0, period):
        year += 1
        lunarWeight += postIncrease
        print("Year %s = %s kgs." % (year, lunarWeight))

lunarWeight()

Терминал направляет в этот раздел моего кода:

postIncrease = lunarWeight * increase

Это в строке 28. Я не уверен, в чем проблема, и я попытался отладить, но я все еще получаю те же сообщения об ошибках. Я видел другие посты с той же проблемой, но у них были проблемы с использованием списков, которые, я уверен, я не использую. Любой совет, пожалуйста?

Скриншот

1 Ответ

0 голосов
/ 31 января 2020

Я думаю, вы должны написать следующие строки:

increase = float(input("Increase: "))
period = int(input("Period: "))


точка используется в range(), поэтому она должна быть целым числом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...