You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手求助:自行编写的登录验证代码无法正常运行

你的代码里有几个关键问题,我帮你一一梳理清楚:

1. 条件判断的逻辑完全写错了

你写的这个判断语句:

if userName == "igoo" or "igor" or "Igoo" or "Igor" and passWord == "b" or "B":

在Python里完全不生效——因为or后面直接跟非空字符串时,会被判定为True,所以不管你输入什么用户名和密码,这个条件都会成立。再加上and的优先级比or高,整个逻辑完全混乱了。

正确的写法应该是检查用户名是否在允许的列表里,同时密码是否符合要求,可以简化成这样:

# 直接匹配指定的大小写组合
if userName in ["igoo", "igor", "Igoo", "Igor"] and passWord in ["b", "B"]:

或者更灵活的(忽略大小写,用户输入大写小写都能匹配):

if userName.lower() in ["igoo", "igor"] and passWord.lower() == "b":

2. print语句的语法错误

你写的:

print: ("Welcome along.")

这里多了个冒号:,正确的print调用应该是:

print("Welcome along.")

3. 登录失败后没有重新进入登录流程(可选优化)

现在的代码如果用户输错密码,只会打印提示然后程序直接结束。你可以在else块里重新调用begin(),让用户能再次尝试登录:

else:
    print ("Wrong password or username")
    time.sleep(1)
    begin()  # 重新启动登录流程

修正后的完整代码

import os
import time
welcomeMessage = "Welcome to free bitcoin application."
print(welcomeMessage)
time.sleep(1)

def begin():
    userName = input("Please enter your username...")
    passWord = input("Please enter your password...")  # 修正了拼写错误:passowrd → password
    # 用更简洁且容错的条件判断
    if userName.lower() in ["igoo", "igor"] and passWord.lower() == "b":
        print("Welcome along.")
        logged()
    else:
        print ("Wrong password or username")
        time.sleep(1)
        begin()

def logged():
    time.sleep(1)
    print("Alright you in.")

begin()

另外提个小细节:你原来的代码里把password拼成了passowrd,虽然不影响运行,但修正后能避免后续维护时的混淆~

初学编程遇到这种小问题太正常了,把这些错误改完之后代码就能正常运行啦,继续加油!

内容的提问来源于stack exchange,提问作者igoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:05:07