如何读取文件中的单个字符? Python

How to read single characters in a file? Python

问题: 我必须创建一个程序,用户必须在其中猜测 pi 中的一个数字。 如果他猜对了。它打印正确。 如果错了就不对了。 它还计算 r/w 猜测。

我遇到的问题是我的代码没有跳到下一个数字来猜测。 用户总是猜同一个数字。

设置:

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

循环:

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

我对编码很陌生,这是我的第一个问题。所以请给我反馈以改进。

看你的代码,只有两行pi.read(1)。最初一次(在循环外),然后在 "." 的情况下。但是,每次用户猜对时,您都需要读取一个新字符。

您从读取位置 1 开始,这是小数点。您的程序前进到下一个数字 1。之后你永远不会改变digitpi.seek()不变digit;你必须读取那里的字符并重新赋值。