У меня есть следующая функция py, которая, начиная с CSV-файла, должна создавать экземпляры класса, который я определил где-то выше в коде. Моя проблема в том, что он не запускает цикл for после if nErr == 0. Он печатает только «Вот я».
def checkCSV_creaIstanze(fileCSV, istanze): # la funzione controlla i campi del CSV - se è tutto ok crea le istanze
with open(fileCSV, newline='') as file_csv:
lettore_csv = csv.reader(file_csv, delimiter=';')
next(lettore_csv) # salto header csv
nErr = 0
for riga in lettore_csv:
for i in range(0,7):
if riga[i] == '':
print(f'riga {lettore_csv.line_num-1} - colonna {i+1}: dato assente')
nErr += 1
if i == 1:
if len(riga[i]) != 11:
print(f'riga {lettore_csv.line_num-1} {riga[0]} - codice fiscale non coerente: {riga[i]}')
nErr += 1
if i == 2:
if len(riga[i]) != 2:
print(f'riga {lettore_csv.line_num-1} {riga[0]} - codice stato non coerente: {riga[i]}')
nErr += 1
if nErr == 0:
print('here I am')
for riga in lettore_csv:
print('dati coerenti\ncreo istanze di classe...')
Sgr = SGR(riga[0], riga[1], riga[2], riga[3], riga[4], riga[5], riga[6], riga[7], riga[8])
istanze.append(Sgr)
# print('istanze cerate')
else:
print('si è verificato un problema')
return istanze
Я пытался изменить отступы, но мне это кажется правильным. Есть идеи?
Заранее большое спасибо
У меня есть следующая функция py, которая, начиная с CSV-файла, должна создавать экземпляры класса, который я определил где-то выше в коде. Моя проблема в том, что он не запускает цикл for после if nErr == 0. Он печатает только «Вот я». [code]def checkCSV_creaIstanze(fileCSV, istanze): # la funzione controlla i campi del CSV - se è tutto ok crea le istanze with open(fileCSV, newline='') as file_csv: lettore_csv = csv.reader(file_csv, delimiter=';') next(lettore_csv) # salto header csv nErr = 0 for riga in lettore_csv: for i in range(0,7): if riga[i] == '': print(f'riga {lettore_csv.line_num-1} - colonna {i+1}: dato assente') nErr += 1 if i == 1: if len(riga[i]) != 11: print(f'riga {lettore_csv.line_num-1} {riga[0]} - codice fiscale non coerente: {riga[i]}') nErr += 1 if i == 2: if len(riga[i]) != 2: print(f'riga {lettore_csv.line_num-1} {riga[0]} - codice stato non coerente: {riga[i]}') nErr += 1 if nErr == 0: print('here I am') for riga in lettore_csv: print('dati coerenti\ncreo istanze di classe...') Sgr = SGR(riga[0], riga[1], riga[2], riga[3], riga[4], riga[5], riga[6], riga[7], riga[8]) istanze.append(Sgr) # print('istanze cerate') else: print('si è verificato un problema') return istanze [/code] Я пытался изменить отступы, но мне это кажется правильным. Есть идеи? Заранее большое спасибо
Я решил написать систему хранения паролей. По сути, он записывает и читает текстовый файл, в котором хранятся пароли. В конце пользователю необходимо ввести пароль, который совпадает с текстовым файлом. Все это работает, но я не могу завершить цикл...
Во время отладки приложения я столкнулся с поведением, которое нарушает фундаментальные принципы выполнения программы. Я никогда не видел ничего подобного за более чем 5 лет разработки на C#.
Как вы увидите ниже, я вызываю метод, который возвращает...
Для следующего кода C++:
inline auto v = []{ return 1; }();
Контекст типа замыкания — это инициализатор встроенной переменной. Это приводит к использованию специального правила искажения в Itanium ABI (упомянутого здесь).
Когда libclang...
Для следующего кода C++:
inline auto v = []{ return 1; }();
Контекст типа замыкания — это инициализатор встроенной переменной. Это приводит к использованию специального правила искажения в Itanium ABI (упомянутого здесь).
Когда libclang...