Я получаю эту ошибку, но я попробовал все.Ошибка типа: не может умножить последовательность на не-int типа 'float' - PullRequest
0 голосов
/ 26 августа 2018

У меня проблема с запуском этого простого калькулятора.Каждый раз, когда я запускаю эту программу, я получаю эту ошибку:

f = a * l
TypeError: can't multiply sequence by non-int of type 'float'

Кто-нибудь замечает мою ошибку и как я могу ее исправить?

while True:
print("///Calculator///")
print("======================================")
mq = float(input("Market Quote: "))
if mq==0:
 break
a = input("Balance: ")

l = input("Lev: ")

if not l:
    l = 500
else:
    l = float(l)
    0
p = input("Other: ")

if not p:
    p = 70
else:
    p = float(p)
#-------------------------------------

f = a * l 

q = f / l 
mr = q * mq  
so = 0.40     
mm = mr * so  

k = p * 10    
b = a - mm  
x = b / k  
h = x / 8 
u = round(h, 2)

o = x * mq
j = o / l
c = round(j)

1 Ответ

0 голосов
/ 26 августа 2018

Вам необходимо преобразовать все числовые входные данные в числа с плавающей запятой или в целые числа, если вы хотите делать численные вычисления на них.Вы забыли a и p:

a = float(input("Balance: "))
...
p = float(input("Other: "))

Два общих совета на будущее: дайте своим переменным значимые имена (вы можете пропустить гласные или что угодно для скорости, но кроме индексов одинпеременные буквы не велики) и читайте сообщения об ошибках!Здесь 'can't multiply sequence by non-int of type 'float'' означает именно это!Результатом любого вызова input() является строка (тип последовательности), и когда вы умножаете последовательность на целое число, Python интерпретирует это так, как вы хотите повторить, например:

>>> 'a' * 4
'aaaa'

Ночто делать с поплавком?Я, конечно, не знаю, и при этом это не так:

>>> 'a' * 4.0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'float'

И если худшее подходит к худшему, и вы не можете интерпретировать жалобы Python, тогда у вас все еще есть номер строки - иди туда и посмотри, чтовсе, что делается: f = a * l, поэтому следующим шагом должен быть анализ a, l и почему Python не может их умножить!

Моя точка зрения - да, отладкаэто сложно, но это навык, и пробовать что-то не всегда правильно - иногда методичность ускоряет процесс.

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