python进行简单的系统注册,python编写注册验证程序

大家好,小编为大家解答python编写一个注册验证程序的问题。很多人还不知道用python编写注册登录程序,现在让我们一起来看看吧!

大家好,给大家分享一下python注册用户名和密码登录,很多人还不知道这一点。下面详细解释一下学python什么书比较好。现在让我们来看看!

大家好,我是室节上!今天我来教大家如何用Python编写一个用户登录窗口。

窗口的样子:

首先,我们可以想一下,一个用户登录窗口通常包含哪些东西python基础知识点精心整理。是不是包含有这些东西:

1.文本:

 一个窗口如果没有文本,那么用户就不知道这是什么窗口。因此,这个窗口应包含有“账号”和“密码”两个文本。

2.输入框:

这个窗口如果没有输入框,那么用户就无法输入“账号”和“密码”,程序也就无法获取用户的“账号”和“密码”。因此,在这两个文本后面各添上一个单行输入框。

3.按钮:

这个窗口如果没有按钮,那么这个程序就无法了解用户是否已完成输入。因此,我们要在它们的下面添上一个按钮:登录。


程序的逻辑:

然后,我们思考一下这个程序的流程是怎样的。

是不是这样的?


安装PySimpleGUI库:

再接着,安装PySimpleGUI库(用于GUI设计):

1.同时按住Win + R,在弹出的窗口输入“cmd”,再按enter键。 

2.在弹出的小黑框(学名叫命令提示符) 里输入“pip install PySimpleGUI -i https://pypi.douban.com/simple/”,并按enter,再等一会儿,PySimpleGUI就安装好了。

(注意:对于PySimpleGUI这个库怎么用,请参考这篇文章


写代码:

接着,我们就可以正式进入到写代码环节了。

1.导入库

既然我们要使用这个库,我们就先把这个库导入:

import PySimpleGUI as sg # as sg的意思是把PySimpleGUI的用法重命名为sg,然后代码中如果出现PySimpleGUI,就会报错。
2.确定好正确的用户名和密码
# 用字典镶嵌列表的方式把用户名和它们各自的密码定好
User1 = {'用户名': 'fggf', '密码': '123'}
User2 = {'用户名': 'ghh23456', '密码': '456'}
User_List = [User1, User2]
3.设定窗口的内容
# 把这个窗口里的内容设定好(layout也是一个变量)
layout = [
    [sg.T('用户名', size=6), sg.In('', font=20, key='user')],
    [sg.T('密码', size=6), sg.In('', font=20, key='pwd')],
    [sg.B('确认'), sg.B('取消')]
]
4.设定窗口的参数
# 给窗口起个名(就是它的标题),再定一下它的参数(窗口的内容为刚刚设好的变量layout,字体就用微软雅黑,20号大小的字)
window = sg.Window('登录窗口', layout, font=("微软雅黑", 20))
5.实现功能

接下来就是功能部分了,功能部分是重中之重:

# 为了实现监听用户的动作的效果,所以就重复地获取窗口的事件和值,重复地判断此时应该干什么
while True:
    # event记录着这个窗口一切的事件(如:用户点击按钮),values记录着这个窗口中输入框的值(即用户输入的内容)
    event, values = window.read()
    # 如果用户点击了“确认”这个按钮,我们的这个程序就应该开始判断用户输入的内容是否正确,并通过弹窗的方式告诉用户
    if event == "确认":
        # 在User_List遍历user这个变量
        for user in User_List:
            # values['user']指的是第一个输入框的值(用户输入的用户名),user['用户名'](user在遍历的时候是个字典)指的是正确的用户名
            # values['pwd']指的是第二个输入框的值(用户输入的密码),user['密码']指的是正确的密码
            if values['user'] == user['用户名'] and values['pwd'] == user['密码']:
                a = "输入正确"
            else:
                b = "输入错误"
        # 如果输入错误,则a会未命名,而发生名称错误(NameError),所以要捕捉名称错误
        try:
            if a == "输入正确":
                sg.Popup(a)
                # 用户既然输入正确,那就行了,可以退出循环(break)并结束进程了
                break
        except NameError:
            sg.Popup(b)
            # 用户输入错误,我们应该继续让用户输入内容,而并非是结束进程
    # 如果用户点击了x号(WINDOW_CLOSED指的是窗口右上角的x号,它是一个常量)或点击了“取消”,就退出循环体,而之后又没有代码,就结束进程
    if event == sg.WINDOW_CLOSED or event == '取消':
        break
6.运行测试

最后,运行一下试试,是不是看到了这样的一个窗口:

 随便输入一下,看看会怎样:

再认认真真地输入一下,看看会怎样:

 

7.遇到问题,完善细节

好了,这个程序基本上就编写好了,但还一个问题:密码不应该会变成*吗?

于是,我就给密码的这个输入框加了一个参数:

    [sg.T('密码', size=6), sg.In('', font=20, key='pwd', password_char='*')],

 就变成了这样:

尽管用户在第二个输入框中所输入的内容会变成*,但程序依然可以判断用户输入的内容是否正确。


完整代码:

import PySimpleGUI as sg  # as sg的意思是把PySimpleGUI的用法重命名为sg,然后代码中如果出现PySimpleGUI,就会报错。

# 用字典镶嵌列表的方式把用户名和它们各自的密码定好
User1 = {'用户名': 'fggf', '密码': '123'}
User2 = {'用户名': 'ghh23456', '密码': '456'}
User_List = [User1, User2]

# 把这个窗口里的内容设定好(layout也是一个变量)
layout = [
    [sg.T('用户名', size=6), sg.In('', font=20, key='user')],
    [sg.T('密码', size=6), sg.In('', font=20, key='pwd', password_char='*')],
    [sg.B('确认'), sg.B('取消')]
]

# 给窗口起个名(就是它的标题),再定一下它的参数(窗口的内容为刚刚设好的变量layout,字体就用微软雅黑,20号大小的字)
window = sg.Window('登录窗口', layout, font=("微软雅黑", 20))

# 为了实现监听用户的动作的效果,所以就重复地获取窗口的事件和值,重复地判断此时应该干什么
while True:
    # event记录着这个窗口一切的事件(如:用户点击按钮),values记录着这个窗口中输入框的值(即用户输入的内容)
    event, values = window.read()
    # 如果用户点击了“确认”这个按钮,我们的这个程序就应该开始判断用户输入的内容是否正确,并通过弹窗的方式告诉用户
    if event == "确认":
        # 在User_List遍历user这个变量
        for user in User_List:
            # values['user']指的是第一个输入框的值(用户输入的用户名),user['用户名'](user在遍历的时候是个字典)指的是正确的用户名
            # values['pwd']指的是第二个输入框的值(用户输入的密码),user['密码']指的是正确的密码
            if values['user'] == user['用户名'] and values['pwd'] == user['密码']:
                a = "输入正确"
            else:
                b = "输入错误"
        # 如果输入错误,则a会未命名,而发生名称错误(NameError),所以要捕捉名称错误
        try:
            if a == "输入正确":
                sg.Popup(a)
                # 用户既然输入正确,那就行了,可以退出循环(break)并结束进程了
                break
        except NameError:
            sg.Popup(b)
            # 用户输入错误,我们应该继续让用户输入内容,而并非是结束进程
    # 如果用户点击了x号(WINDOW_CLOSED指的是窗口右上角的x号,它是一个常量)或点击了“取消”,就退出循环体,而之后又没有代码,就结束进程
    if event == sg.WINDOW_CLOSED or event == '取消':
        break

这是小编的第一篇文章,如有不足之处请指出,谢谢! 

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值