为什么python raw_input函数给出问号线两次作为输出?

时间:2018-02-08 12:58:28

标签: python

https://stackoverflow.com/a/22391379/9088305APT command line interface-like yes/no input?的帮助下,我已经能够构建一个等待一段时间的小脚本,但可以通过按Enter来中断。

import sys, select, os, time
from distutils.util import strtobool


for i in range(100):
    sys.stdout.write("\r")
    sys.stdout.write("Wait for {:2d} seconds. Press Enter to continue".format(i))
    sys.stdout.flush()
    time.sleep(1)
    if sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
        check = 0
        while not check:
            userin = raw_input("Are you sure you want to continue? (yes/no)")
            try:
                bool = strtobool(userin)
                if bool:
                    check = 1
                    break
                else:
                    print("Let's continue then")
                    time.sleep(1)
                    break
            except ValueError:
                    check = 0 
                    print("Choose either yes or no, please")        
            if check == 1:
                break

print "\nDone!"

然而,在执行时,它总是会给出一个问题,一个""选择是或否,请"之后:

您确定要继续吗? (是/否)选择是或否,请确定要继续吗? (是/否)

我还没弄清楚为什么会这样。有人可以帮我吗?所以我可以得到"你确定要继续吗? (是/否)"一次,我可以放入是或否。

提前致谢!

0 个答案:

没有答案