Мне нужна помощь, я новичок, изучаю книгу Макла Саммерфилда - "Программирование на Python3", у него отличная подача материала, но сейчас появились первые трудности, притом при первых же программах. Мне нужно самое главное понять логику кода. К тому же в программе есть ошибка и было бы замечательно её исправить, но это вторично, буду рад если просто поможете её понять.
Вот скриншот кода в pycharm, перепроверял его, все как в книге, ничего своего не добавлял:
Я пытался вникнуть в программу, прочитал объяснение, суть в том, чтобы мы вводили цифры (0123456789), а они выводились нарисованные звездочками. Но, несмотря на объяснения остались непонятки в коде. Вот с комментариями:
Digits = [Zero, One, Two, Three, Four, Five, Six, Seven, Eight, Nine] # значения этих переменных добавлять не стал
try:
digits = sys.argv[1] # эта переменная содержит цифру, которую мы вводим, но зачем на конце элемент [1]?
# и как так вышло, что digits присваивается то, что я пишу в терминале?
row = 0
while row < 7: # row специально содержит 0, чтобы условие было всегда True?
line = '' # здесь пустая строка, если вы не заметили))
column = 0
while column < len(digits): # опять условие всегда True, т.к. длина цифры = 1, а column = 0
number = int(digits[column]) # зачем вписывать [column]? Он же = 0? взять первый элемент из введенного числа?
digit = Digits[number] # к примеру если ввести 012, из списка Digits возьмутся первые три значения?
line += digit[row] + ' ' # эти нагромождения списков меня путают... опять на конце ввели кортеж, который = 0
column += 1 # к этому моменту я окончательно потерял нить логики в этой программе
print(line) # это должно выводить на экран полученный результат
row += 1 # а это читать следующий элемент? Нет?
except IndexError: # с этим все ясно.
print('usage: bigdigits.py <number>') # python bigdigits.py <number> так вызывается прога через терминал
except ValueError as err:
print(err, 'in', digits) # здесь python ругается на элемент digits "name digits can be not defined" (видно в скринах)
А вот что получается на выходе:
В программе ошибка в том, что чем больше пишешь цифр, тем больше они искривляются на выходе, особенно самые последние. И ещё после семерки цифры ставятся под наклоном (это видно в скриншоте), думаю это потому, что неправильно прописана дистанция между цифрами. Надеюсь понятно все разъяснил.