Как читать отдельные символы в файле? Python - PullRequest
0 голосов
/ 22 февраля 2020

Проблема: мне нужно создать программу, в которой пользователь должен угадать ди git после другого в пи. Если он угадает правильно. Это печатает правильно. Если это неправильно, то неверно. Также он подсчитывает количество предполагаемых ответов.

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

Настройка:

pi = open("pi.txt", "r")
name = input("Enter username: ")
print("Hey", name)
seed = len(name)
pi.seek(seed)
digit = pi.read(1)
#guess = input("enter a single digit guess or 'q' to quit: ")
correct_counter = 0
wrong_counter = 0

L oop:

while True:
    guess = input("enter a single digit guess or 'q' to quit: ")
    if guess.isdigit():
        if digit == ".":
            digit = pi.read(1)
        elif digit == "\n":
            seed += 1
            pi.seek(seed)
        else:
            if guess == digit:
                print("correct")
                correct_counter += 1
            else:
                print("incorrect")
                wrong_counter += 1
    else:
        break

print("correct answers: ", correct_counter)
print("incorrect answers: ", wrong_counter)

pi.close()

Вывод:

enter a single digit guess or 'q' to quit: 1
correct
enter a single digit guess or 'q' to quit: 1
correct
enter a single digit guess or 'q' to quit: 1
correct
enter a single digit guess or 'q' to quit: 1
correct

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

Ответы [ 2 ]

1 голос
/ 22 февраля 2020

Вы начинаете с чтения местоположения 1, которое является десятичной точкой. Ваша программа переходит к следующему ди git, 1. Вы никогда не меняете digit после этого. pi.seek() не изменяется digit; Вы должны прочитать символ там и снова присвоить значение.

0 голосов
/ 22 февраля 2020

Глядя на ваш код, есть только две строки с pi.read(1). Один раз изначально (за пределами l oop), а затем в случае ".". Тем не менее, вам нужно читать новый символ каждый раз, когда пользователь угадал правильно.

...