Python, используя данные из файла .dat - PullRequest
0 голосов
/ 15 октября 2018

Я новичок в Python, эта проблема довольно простая, но я не могу найти правильное решение.

Итак, я скопировал базовую программу с именем "bigdigits.py", которая была предложена в PythonИзучите учебник, код которого вы можете увидеть ниже, и выясните, как он работает.У меня есть файл «name.dat» с одной строкой чисел, например, 12340987 в той же папке, что и файл программы.

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

import sys

Zero  = [" *** ", 
         "*   *", 
         "*   *", 
         "*   *",
         "*   *",
         "*   *",
         " *** "]
One   = [" * ",
         "** ",
         " * ",
         " * ",
         " * ",
         " * ",
         "***"]
Two   = [" *** ",
         "*   *",
         "*  * ",
         "  *  ",
         " *   ",
         "*    ",
         "*****"]
Three = [" *** ",
         "*   *",
         "    *",
         "  ** ",
         "    *",
         "*   *",
         " *** "]
Four  = ["    * ",
         "   ** ",
         "  * * ",
         " *  * ",
         "******",
         "    * ",
         "    * "]
Five  = ["*****",
         "*    ",
         "*    ",
         " *** ",
         "    *",
         "*   *",
         " *** "]
Six   = [" *** ",
         "*   *",
         "*    ",
         "**** ",
         "*   *",
         "*   *",
         " *** "]
Seven = ["*****",
         "    *",
         "   * ",
         "  *  ",
         " *   ",
         "*    ",
         "*    "]
Eight = [" *** ",
         "*   *",
         "*   *",
         " *** ",
         "*   *",
         "*   *",
         " *** "]
Nine  = [" ****",
         "*   *",
         "*   *",
         " ****",
         "    *",
         "    *",
         " *** "]

Digits = [Zero, One, Two, Three, Four, Five, Six, Seven, Eight, Nine]

try:
    digits = sys.argv[1]
    row = 0
    while row < 7:
        line = ""
        column = 0
        while column < len(digits):
            number = int(digits[column])
            digit = Digits[number]
            line += digit[row].replace('*', digits[column]) + " "
            column += 1
        print(line)
        row += 1
except IndexError:
    print("Usage: bigdigits.py <numbers>")
except ValueError as err:
    print(err, "in", digits)

1 Ответ

0 голосов
/ 15 октября 2018

Итак, первый вопрос, который я хотел бы задать: вы поняли этот код?

Если да, то, что вам в основном нужно сделать сейчас, это посмотреть, что вы делаете, когда хотите напечататьнабор цифр для числа и попытаться повернуть процесс в обратном порядке, чтобы вместо этого прочитать числа из файла:

digits = [None]*10
with open('digits.dat') as fd:
  for line in fd:
    for i in range(10):
        digits[i].append(line[i*5: i*5 + 5])
        # assuming each digit is of width 5, and no space between digits

Теперь вы создадите объект digits, используя .datфайл, и может идти дальше оттуда.

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