鱼C论坛

 找回密码
 立即注册
查看: 609|回复: 5

用easygui中exceptionbox实现输入密码,如果输错则提示异常,只有三次机会,都没输...

[复制链接]
发表于 2024-3-19 21:44:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
用easygui中exceptionbox实现输入密码,如果输错则提示异常,只有三次机会,都没输对则退出程序的代码

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-19 21:44:46 | 显示全部楼层
使用easygui的exceptionbox来实现输入密码的功能可以通过以下方式实现:
import easygui as gui

def check_password(password):
    correct_password = '123456'  # 设置正确的密码
    if password == correct_password:
        return True
    else:
        raise ValueError('密码错误!')

def input_password():
    chance = 3  # 设置最大尝试次数
    while chance > 0:
        try:
            password = gui.passwordbox('请输入密码:')
            if check_password(password):  # 调用check_password函数检查密码
                return
        except ValueError as e:  # 捕获密码错误的异常
            gui.exceptionbox(str(e))
            chance -= 1
    gui.msgbox('密码输入错误次数过多,程序退出!')
    exit()

if __name__ == '__main__':
    input_password()

在这个例子中,`check_password()`函数用于检查输入的密码是否与预设的密码相等。如果密码正确,函数返回`True`;否则,它会抛出一个`ValueError`异常。

`input_password()`函数用于实现用户输入密码的功能。它通过`gui.passwordbox()`函数弹出一个对话框,要求用户输入密码。然后,它调用`check_password()`函数来检查密码是否正确。如果密码错误,它将捕获`ValueError`异常并使用`gui.exceptionbox()`函数显示错误信息。函数还维护一个`chance`变量,用于控制最大尝试次数。如果超过最大次数仍未输入正确的密码,则显示一条提示信息,然后退出程序。

你可以根据需要修改`correct_password`的值来设置正确的密码,以及调整`chance`变量的值来设定最大尝试次数。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-19 21:47:47 | 显示全部楼层
FishC 发表于 2024-3-19 21:44
使用easygui的exceptionbox来实现输入密码的功能可以通过以下方式实现:
if __name__ == '__main__':
什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-19 21:48:08 | 显示全部楼层
chen` 发表于 2024-03-19 21:47
if __name__ == '__main__':什么意思?


在Python中,`__name__`是一个内置变量,用于表示当前模块的名称。当一个Python文件被作为主程序直接执行时,`__name__`的值就是`'__main__'`;当它被作为模块导入到其他程序中时,`__name__`的值就是模块的名称。

通过将代码放在`if __name__ == '__main__':`条件判断语句下面,可以确保代码只在当前文件作为主程序执行时才会被执行,而在被其他文件导入时不会执行。

这种做法的好处是能够提高代码的可重用性。当我们想要将某个文件作为模块导入到其他程序中时,不希望其中的某些代码被执行,就可以将这部分代码放在`if __name__ == '__main__':`条件判断语句之外。这样,在导入该文件时,这部分代码就不会被执行了。

在前面给出的示例代码中,`if __name__ == '__main__':`判断语句用于确保主函数`input_password()`只在当前文件作为主程序执行时才会被调用,而在导入到其他文件时不会被执行。这样可以防止该函数在导入时被意外调用,保证它的执行仅限于作为主程序时输入密码的功能。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-19 22:05:25 | 显示全部楼层
FishC 发表于 2024-3-19 21:48
在Python中,`__name__`是一个内置变量,用于表示当前模块的名称。当一个Python文件被作为主程序直接执 ...

raise ValueError("密码错误")什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-19 22:05:38 | 显示全部楼层
chen` 发表于 2024-03-19 22:05
raise ValueError("密码错误")什么意思?


`raise ValueError("密码错误")`是一个用于抛出异常的语句。在Python中,我们可以使用`raise`关键字来显式地引发异常。

当程序运行到`raise`语句时,会创建一个`ValueError`类型的异常对象,并将带有指定错误消息的字符串传递给该异常对象。在这个例子中,`ValueError`是Python内置的一种异常类型,它表示一个值的错误。然后,该异常对象会被抛出,传递给调用它的上层代码(或者是Python的异常处理机制)来处理。

在输入密码的示例中,当用户输入的密码与预设的正确密码不匹配时,我们使用`raise ValueError("密码错误")`来引发一个`ValueError`异常,并将错误消息设置为"密码错误"。这样,程序会跳转到`try`语句块中的`except`代码块,捕获并处理这个异常,然后弹出一个对话框显示错误信息。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 10:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表