鱼C论坛

 找回密码
 立即注册
查看: 896|回复: 3

easigui的g.multenterbox()问题

[复制链接]
发表于 2018-8-3 10:16:47 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 1011279979 于 2018-8-3 10:21 编辑

在Python课后作业的答案中,碰到一个奇怪问题。如果将下面红色if语句缩进到for语句里面,弹出对话框中信息显示errmsg1不出现。
if语句的缩进应该不影响errmsg1的赋值,当它不为空时,应该会跳过这个if语句不执行。望高手予以解答


import easygui as g

msg = "请填写以下联系方式"
title = "账号中心"
fieldNames = [" *用户名", " *真实姓名", "  固定电话", " *手机号码", "  QQ", " *E-mail"]
fieldValues = []
fieldValues = g.multenterbox(msg,title, fieldNames)

while 1:
    if fieldValues == None:
        break
    errmsg1 = ""    # 只是在此处设定一个空的函数
    for i in range(len(fieldNames)):
        option = fieldNames[i].strip()
        if fieldValues[i].strip() == "" and option[0] == "*":
            errmsg1 += ('【%s】为必填项。\n\n' % fieldNames[i])
    if errmsg1 == "":    # 代表一旦填完所有的信息,即可退出循环
        break
    fieldValues = g.multenterbox(errmsg1, title, fieldNames, fieldValues)

print("用户资料如下:%s" % str(fieldValues))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-3 10:59:07 | 显示全部楼层
假如把它缩进到for里面,就是每次检测用户是否填完整,假如填完整就退出for,while循环继续,无限弹出enterbox。
假如用户没有填完整信息,这个if不会执行,这时就重新弹出一个enterbox,假如用户还是没有填完整就继续填。(无限循环下去直到用户填完整了所有必填信息。)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-8-3 12:08:03 | 显示全部楼层
无符号整形 发表于 2018-8-3 10:59
假如把它缩进到for里面,就是每次检测用户是否填完整,假如填完整就退出for,while循环继续,无限弹出enter ...

这个我理解,我不理解的是为什么弹出的enterbox中没有errmsg1信息。如果if语句没有缩进,errmsg1正常显示,如果if语句缩进,errmsg1信息不显示。这和是否填完整了必填信息无关。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-27 11:08:19 | 显示全部楼层
嗯,我懂你的意思了。我刚刚也试了下,情况如下:
如果什么都不填,直接按ok的话,可以正常显示出errmsg的提示信息:“*用户名为必填项”;
但是只要你填了星号中的第一项(用户名)的话,就不再显示出errmsg的提示信息,因为errmsg里面是空的!
如果填了星号中的其他星号项目(除第一项),也可以正常显示出errmsg的提示信息。

我的理解是:
while第一次循环:
当你第一个*号(用户名)填写内容了,执行for循环i=0时,第一个if判断是false,对应的errmsg就没有执行(errmsg是空字符串);接着继续执行第二个if判断发现errmsg=空,就跳出for循环。
到这里第一次while循环就结束了。 然后再重新开始第二次while循环。

发现了吗?  for循环,每次执行完i=0就跳出来了,都没机会执行i=1~5,所以errmsg一直都是初值(空字符串)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 17:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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