如何读取文件中的单个字符? 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
。之后你永远不会改变digit
。 pi.seek()
不变digit
;你必须读取那里的字符并重新赋值。
问题: 我必须创建一个程序,用户必须在其中猜测 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
。之后你永远不会改变digit
。 pi.seek()
不变digit
;你必须读取那里的字符并重新赋值。