为什么这个`if`块没有被执行

时间:2017-08-03 19:01:19

标签: python

下面的代码旨在询问所需的用户名,然后创建它。

我想告诉用户何时已经使用了用户名。这样可行。

但是,每当输入一个尚不存在的用户名时,我希望执行所有if a != 1:块,但这不会发生。那是为什么?

以下是我已缩小到问题发生位置的代码片段:

UsernameRequest = input("What would you like your username to be set? ")
fname = UsernameRequest + ".txt"
try:
    f2 = open(fname, 'r')
    a = f2.readline(1)
    if a == "a":
        print ("This username is already taken!")
        f2.close()
        a = 1
except:
    b = 1

if a != 1:
    f = open(fname, 'w')
    PasswordRequest = input("What would you like your password to be? ")
    f.write("abcde" + '\n')
    f.write(UsernameRequest)
    f.write('\n' + PasswordRequest)
    f.close()
    print ("User created! Welcome to SterlOS!")
    Login()
    break

1 个答案:

答案 0 :(得分:0)

我认为变量a的范围是这里的问题。尝试在try块之外声明a