#python #python-3.x
#python #python-3.x
Вопрос:
В этом упражнении я получаю ошибку «Переопределенная «ОБЩАЯ», определенная выше, без использования» при компиляции этого кода, когда я использую Pycharm, но не при компиляции его с помощью Visual Studio.
Я понимаю, что означает ошибка, но я не понимаю, как это исправить, поэтому я не продолжаю получать ошибку.
Как бы вы переписали TOTAL = A int(B) int(C)
, чтобы получить доступ к ошибке, которую я получаю? Или я просто переосмысливаю все это, поскольку код работает нормально, несмотря на ошибку.
A, B, C = -5, '8', 7.6 # DO NOT MODIFY CONSTANT VALUES
TOTAL = int() # DO NOT MODIFY DATA TYPE
''' PSEUDO CODE
SUM given values of A, B and C as integers, CASTING where necessary.
STORE result in variable 'TOTAL'.
Expected output:
-5 8 7.6 = 10
'''
TOTAL = A int(B) int(C)
print("{} {} {} = {}".format(A, B, C, TOTAL)) # DO NOT MODIFY
Комментарии:
1. Тот, кто говорит вам начать
TOTAL = int()
и кричит# DO NOT MODIFY DATA TYPE
, не знает, как работает Python. Pycharm предупреждает этого человека о том, что Python работает не так.2. Для меня код работает нормально. Возможно, вам захочется реорганизовать код, чтобы он был функцией, в которой определен выходной тип данных.
3.
int()
это просто обходной способ записи0
4. Похоже, что какая-то проблема с кодированием была напрямую перенесена со статически типизированного языка на Python.
5. Проблема заключается в том, что ваш грейдер, вероятно, оштрафует вас за изменение, поэтому просто оставьте все как есть и не забудьте не делать этого позже, когда вы будете писать реальный код.
Ответ №1:
Просто избавьтесь от ненужного
TOTAL = int() # DO NOT MODIFY DATA TYPE
Я не уверен, чего это пытается достичь. Переменные не объявлены и могут быть присвоены любому типу. Эта строка не ограничивает то, что может быть учтено позже. Поскольку вы переназначаете TOTAL
, не используя 0
то, что вы в него вложили, pycharm помечает это.
Вы не слишком задумываетесь о проблеме, и вам следует избавиться от этой строки. Все, что он делает, это делает еще одно назначение, которое будущий читатель будет отслеживать, прежде чем осознает, что оно не требуется.
Python имеет принудительные аннотации типов. Если вам нужно дружеское напоминание о том, что такие ссылки, как pycharm, могут помочь в применении, измените его на
TOTAL: int
Вы все равно можете назначить ей все, что захотите, но gossipy IDE упомянет об этом.
Комментарии:
1. Возможно, строка может быть изменена на
TOTAL: int
Ответ №2:
Линтер правильно указывает на проблему, у вас есть строка без эффекта, TOTAL = int()
.
Если вам нужно указать тип данных, используйте аннотации типов:
TOTAL: int = A int(B) int(C)
Или не используйте аннотации, потому что в этом самом примере линтер может в любом случае получить тип.