Хорошо, здесь есть что распаковать.
Во-первых, чего вы ожидаете от ваших переменных, таких как map8
et c. выглядеть как? Это списки, потому что вы окружили значения в [
]
, но они списки двух значений, потому что сложение строк вместе приводит к новой строке с объединенным содержимым. Попробуйте это в python REPL:
>>> map8_1 = [" " + " " + " " + " " + " " + " " + " "]
>>> map8_2 = [" " + " " + " " + " " + " " + " " + " " + " "]
>>> map8 = map8_1 + map8_2
>>> print(map8)
[' ', ' ']
Учитывая, что некоторые из этих переменных вы хотите обновить отдельные элементы позже, я подозреваю, что вам нужны списки отдельных символов:
>>> map8_1 = [" ", " ", " ", " ", " ", " ", " "]
>>> map8_2 = [" ", " ", " ", " ", " ", " ", " ", " "]
>>> map8 = map8_1 + map8_2
>>> print(map8)
[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']
Или, более кратко:
>>> map8 = [" "] * 15
>>> print(map8)
[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']
Ваш код для обновления плеера:
if player_pos == 1:
player[0] == "#"
if player_pos == 2:
player[1] == "#"
... repeat lots
Вы используете ==
в условии if, что правильно, но тогда похоже, что вы пытаетесь использовать его и для присвоения значений, а это не то, что вам нужно. x == y
не меняет x
, он просто возвращает True
или False
, которые в вашем случае вы все равно игнорируете. Используйте =
для присвоения значений.
Весь этот раздел лучше было бы записать как:
player[player_pos - 1] = "#"
Но это также игнорирует тот факт, что вы можете захотеть вернуть старую позицию игрока на " "
. Может быть, это должно быть:
player = [" "] * 15
player[player_pos - 1] = "#"
В конце вашей функции print all у вас будет:
return player
return current_pos
return player_pos
Как только вы нажмете первую из них, вы выйдете из функция и вернуть это значение. Вы можете вернуть только одну вещь из функции. Это может быть кортеж из нескольких значений, поэтому:
return (player, current_pos, player_pos)
Будет допустимым . Затем вам придется распаковать его в вызывающей стороне, но похоже, что вы все равно игнорируете возвращаемые значения в вызывающей стороне?
Наконец, вы печатаете списки, что, я думаю, не то, что вы на самом деле хотеть сделать. Я думаю, что вы хотите превратить их в строку с печатью, которая.
Вместо:
print(map8)
Вместо этого вы можете захотеть:
print("".join(map8))
Это именно то, что мне приходит в голову при беглом взгляде на ваш код. Могут быть другие проблемы. Вы получите лучший ответ на свои вопросы, если сведете проблему к чему-то небольшому и определенному c и зададите отдельный вопрос для каждой проблемы.
С точки зрения vim, жалобы на длину строки - это не t что-то vim делает сам по себе - предположительно, вы установили какой-то плагин, который выполняет проверку стиля (79 символов - это длина, рекомендованная PEP-8). Вам нужно будет узнать, как настроить свои плагины c. Например, я использую ALE, который передается (среди прочего) flake8 для проверки стиля моего кода, я меняю этот параметр, используя:
let g:ale_python_flake8_options = "--max-line-length=99"