Синтаксическая ошибка при попытке определить ряд числовых переменных в python - PullRequest
1 голос
/ 29 апреля 2019

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

Я не знаю, почему я не могу просто установить его, как у меня ниже, но независимо от того, где я разместил эту структуру, IDLE говорит, что есть синтаксическая ошибка, и выделяет первый экземпляр 2bktools.

import os
import csv

os.chdir('/Users/me/Desktop/SubjError')
for subject in ['100307', '100408', '101107', '101309', '101915']:

    2bktools = 0
    0bkbody = 0
    2bkfaces = 0
    0bktools = 0
    2bkbody = 0
    2bkplaces = 0
    0bkfaces = 0
    0bkplaces = 0
    #counts and updates instances of each variable

Я думаю, что должен быть более эффективный способ установить серию переменных на ноль, но я не знаю, что это будет.

Ответы [ 2 ]

3 голосов
/ 29 апреля 2019

Имена переменных не могут начинаться с цифр в Python.

В любом случае, для вашего случая использования, я думаю, будет полезна вложенная dict:

from pprint import pprint

subjects = ['100307', '100408', '101107', '101309', '101915']
keys = ['2bktools', '0bkbody', '2bkfaces', '0bktools', '2bkbody', '2bkplaces', '0bkfaces', '0bkplaces']

data = {subject: {key: 0 for key in keys} for subject in subjects}

pprint(data)

Вывод:

{'100307': {'0bkbody': 0,
            '0bkfaces': 0,
            '0bkplaces': 0,
            '0bktools': 0,
            '2bkbody': 0,
            '2bkfaces': 0,
            '2bkplaces': 0,
            '2bktools': 0},
 '100408': {'0bkbody': 0,
            '0bkfaces': 0,
            '0bkplaces': 0,
            '0bktools': 0,
            '2bkbody': 0,
            '2bkfaces': 0,
            '2bkplaces': 0,
            '2bktools': 0},
... more of the same...

Затем вы можете получить доступ к любому атрибуту, который хотите, используя стандартный синтаксис индексации;например, data['100307']['2bktools'].

2 голосов
/ 29 апреля 2019

Вы пытаетесь определить переменные, которые начинаются с цифр.Вы не можете сделать это в Python.

Вот некоторая информация о том, как именно имена переменных могут быть структурированы.

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