重新显示登录提示的最佳方法

时间:2013-10-18 22:32:40

标签: python-3.x

我正在编写一个简单的Python(shell)程序,要求输入。我要找的是字符串的一定长度(len)。如果字符串不是最小值,我想抛出一个异常并将用户带回输入提示再次尝试(仅针对给定数量的尝试,比如3)。

我的代码基本上是到目前为止

x=input("some input prompt: ")
if len(x) < 5:
print("error message")
count=count+1 #increase counter

等...

- 这就是我被困住的地方,我希望抛出错误,然后回到我的输入......对Python有点新意,所以非常感谢帮助。这将成为Linux机器上脚本的一部分。

2 个答案:

答案 0 :(得分:1)

循环很好用。

您可能还想使用raw_input而不是输入。输入函数解析并以python的形式运行输入。我猜你要求用户输入各种密码,而不是运行python命令。

同样在python中没有i ++,例如使用i + = 1。

使用while循环:

count = 0
while count < number_of_tries:
    x=raw_input("some input prompt: ") # note raw_input
    if len(x) < 5:
        print("error message")
        count += 1    #increase counter ### Note the different incrementor
    elif len(x) >= 5:
       break

if count >= number_of_tries:
    # improper login
else:
    # proper login

或使用for循环:

for count in range(number_of_tries):
    x=raw_input("some input prompt: ")  # note raw_input
    if len(x) < 5:
        print("error message") # Notice the for loop will
    elif len(x) >= 5:          # increment your count variable *for* you ;)
       break

if count >= number_of_tries-1: # Note the -1, for loops create 
    # improper login           # a number range out of range(n)from 0,n-1
else:
    # proper login

答案 1 :(得分:0)

您需要while循环而不是if,因此您可以根据需要多次请求其他输入:

x = input("some input prompt: ")
count = 1
while len(x) < 5 and count < 3:
    print("error message")
    x = input("prompt again: ")
    count += 1 # increase counter

# check if we have an invalid value even after asking repeatedly
if len(x) < 5:
    print("Final error message")
    raise RunTimeError() # or raise ValueError(), or return a sentinel value

# do other stuff with x