【问题标题】:How to read single characters in a file? Python如何读取文件中的单个字符? Python
【发布时间】:2020-02-21 21:46:29
【问题描述】:

问题: 我必须创建一个程序,用户必须在 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.seek(seed)
  • 您需要读取循环中的下一个字符。
  • 我猜问题出在 pi.read(1) 行。这个文件里的数据是怎么存储的pi.txt
  • 您只在if guess.isdigit() 之后运行另一个ifs - 但\n 不是数字,因此永远不会被执行。然而这就是你seed += 1
  • @finefoot :这是任务的一部分

标签: python loops file-read


【解决方案1】:

首先读取位置1,即小数点。您的程序前进到下一位,1。你永远在那之后改变digitpi.seek() 不变 digit;您必须读取那里的字符并再次分配值。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-06
      • 2012-11-12
      • 2011-02-28
      • 1970-01-01
      • 2020-03-23
      • 1970-01-01
      • 2016-02-12
      相关资源
      最近更新 更多