|  | 
 
| 
1、如下图,实现一个用于登记用户账号信息的界面
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  (如果是带*号的必填项,要求一定要有输入并且不能是空格)
 
   
 代码:
 import easygui as g
 
 msg = "请填写以下联系方式"
 title = "账号中心"
 fieldNames = [" *用户名", " *真实姓名", "  固定电话", " *手机号码", "  QQ", " *E-mail"]
 fieldValues = []
 fieldValues = g.multenterbox(msg,title, fieldNames)
 
 while 1:
 if fieldValues == None:
 break
 errmsg = ""
 for i in range(len(fieldNames)):
 option = fieldNames[i].strip()
 if fieldValues[i].strip() == "" and option[0] == "*":
 errmsg += ('【%s】为必填项。\n\n' % fieldNames[i])
 if errmsg == "":
 break
 fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues)
 
 问题:
 while 1循环在的作用
 另外,麻烦注释一下这个循环
 fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues) 最后这个条语句的效果是什么?
 
 print("用户资料如下:%s" % str(fieldValues))
 
 本帖最后由 thexiosi 于 2018-5-7 11:27 编辑 
hi  代码中存在bug,具体情况见下
 复制代码import easygui as g
msg = "请填写以下联系方式"
title = "账号中心"
fieldNames = [" *用户名", " *真实姓名", "  固定电话", " *手机号码", "  QQ", " *E-mail"]
fieldValues = []
fieldValues = g.multenterbox(msg,title, fieldNames)
while 1:
    #if fieldValues == None:  #建议删除
        #break  
    errmsg = ""
    
    for i in range(len(fieldNames)):
        option = fieldNames[i].strip() # 错误代码是 option = fieldNames.strip() ,当前代码已修正
        if fieldValues[i].strip() == "" and option[0] == "*": #错误代码是 fieldValues.strip(),当前代码已修正
            errmsg += ('【%s】为必填项。\n\n' % fieldNames[i]) #错误代码是 fieldNames,当前代码已修正
    if errmsg == "":
        break
    fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues)
print("用户资料如下:%s" % str(fieldValues))
while 1循环的作用  # 若带*的必填项为空,提示用户输入 且 不退出while循环,直到所有 * 项都填入
 
fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues) #重新显示multenterbox,显示情况随 fieldValues的变化而变化
 
建议运行代码,调试过程中进行熟悉理解 | 
 |