Python тип данных явно меняется с "int" на "complex" между строками - PullRequest
1 голос
/ 14 апреля 2020

Я пытаюсь перечислить все числа от 0 до 500, которые можно получить, суммируя 25 и 40.

Это показывает мою проблему:

j = 1
i = 5

if type(i) == type(500):
    print("You're good to go!")
else:
    print("No dice.")

while i <= 500:
    j += 1
    i = 5j
You're good to go!
Traceback (most recent call last):
  File "C:/Users/Lyndon (default)/Desktop/test.py", line 9, in <module>
    while i <= 500:
TypeError: '<=' not supported between instances of 'complex' and 'int'

I ' m, используя IDLE (64-бит) для Python 3.8.1 на Windows 10 Professional. Первоначально я начал с i и j в 0, но изменил их, чтобы посмотреть, решит ли это проблему. (Разумеется, нет.)

Ответы [ 2 ]

3 голосов
/ 14 апреля 2020

Проблема здесь в том, что выражение i = 5j делает i комплексным числом, которое поддерживается по умолчанию в Python. Поэтому вместо этого используйте i = 5 * j

1 голос
/ 14 апреля 2020

Попробуйте (если это то, что вы пытаетесь):

j = 1
i = 5

if type(i) == type(500):
    print("You're good to go!")
else:
    print("No dice.")

while i <= 500:
    j += 1
    i = 5*j

В python комплексные числа имеют вид a + bj. Поэтому, когда вы даете 5j, теперь это комплексное число.

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