鱼C论坛

 找回密码
 立即注册
查看: 1224|回复: 4

[已解决]这个登记信息的easygui为什么不能达到预期效果,就是随便输个什么都不会打印任何东...

[复制链接]
发表于 2018-2-21 19:21:17 | 显示全部楼层 |阅读模式

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

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

x
import easygui as g
title='登记用户信息'
msg='请填写以下联系方式,其中有*号的为必填选项'
a=['用户名','密码','*真实姓名','*邮箱','QQ','*手机号码']
b=[]
b=g.multenterbox(msg,title,a)
while 1:
    for i in range(len(a)):
        if a[i][0]=='*' and b[i].strip()=='':
            g.msgbox('*号为必填项目,请重新填写')
            b=g.multenterbox(msg,title,a)
        else:
            break
print('用户资料如下:\n%s'%str(b))        
        
        
        
        
最佳答案
2018-2-21 22:45:10
本帖最后由 小木船 于 2018-2-22 16:00 编辑
import easygui as g
title='登记用户信息'
msg='请填写以下联系方式,其中有*号的为必填选项'
a=['用户名','密码','*真实姓名','*邮箱','QQ','*手机号码']
b=[]
b=g.multenterbox(msg,title,a)
while 1:
        if b == None:                                                #如果g.multenterbox(msg,title,a)对话框点了取消,
                break                                                    #则返回值就是空,即b == None,这时就直接退出循环;
        flag = True                                                    #设一个标记位,如果有*号开始的条目没有填写,
        for i in range(len(a)):                                     #就会被改成False,如果带*的条目都已经填写,则flag仍然是初值True
                if a[i][0]=='*' and b[i].strip()=='':           #如果有*号开始的条目没有填写,flag就会被改成False,
                        flag = False                                  #且跳出for循环,去执行for循环后的if判断语句
                        break
        if flag == True:                                               #如果带*的条目都已经填写,则flag仍然是初值True,
                break                                                   #这时可以break退出while循环,执行最后一句打印语句
        g.msgbox('*号为必填项目,请重新填写')         #能执行这一句,表示上边的if语句没有break跳出while循环,
                                                                           #也就是说flag==False,那么就是有*号开始的条目没有填写
        b=g.multenterbox(msg,title,a)                        #那么就要重新弹出输入框,并执行下一个while循环重新判断
                                                                           #有*号开始的条目是否填写
print('用户资料如下:\n%s'%str(b)) 
                    
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-2-21 21:01:19 | 显示全部楼层
求高手解答啊。来人啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-21 22:45:10 | 显示全部楼层    本楼为最佳答案   
本帖最后由 小木船 于 2018-2-22 16:00 编辑
import easygui as g
title='登记用户信息'
msg='请填写以下联系方式,其中有*号的为必填选项'
a=['用户名','密码','*真实姓名','*邮箱','QQ','*手机号码']
b=[]
b=g.multenterbox(msg,title,a)
while 1:
        if b == None:                                                #如果g.multenterbox(msg,title,a)对话框点了取消,
                break                                                    #则返回值就是空,即b == None,这时就直接退出循环;
        flag = True                                                    #设一个标记位,如果有*号开始的条目没有填写,
        for i in range(len(a)):                                     #就会被改成False,如果带*的条目都已经填写,则flag仍然是初值True
                if a[i][0]=='*' and b[i].strip()=='':           #如果有*号开始的条目没有填写,flag就会被改成False,
                        flag = False                                  #且跳出for循环,去执行for循环后的if判断语句
                        break
        if flag == True:                                               #如果带*的条目都已经填写,则flag仍然是初值True,
                break                                                   #这时可以break退出while循环,执行最后一句打印语句
        g.msgbox('*号为必填项目,请重新填写')         #能执行这一句,表示上边的if语句没有break跳出while循环,
                                                                           #也就是说flag==False,那么就是有*号开始的条目没有填写
        b=g.multenterbox(msg,title,a)                        #那么就要重新弹出输入框,并执行下一个while循环重新判断
                                                                           #有*号开始的条目是否填写
print('用户资料如下:\n%s'%str(b)) 
                    
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-21 23:08:31 | 显示全部楼层

大哥,你能解释下while下if语句的意思吗?我有点糊涂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-22 13:00:22 | 显示全部楼层
有谁能解释下吗?这里没学的好明白
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-5 22:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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