| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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) 
 
print("用户资料如下:%s" % str(fieldValues)) 
     
 
代码中  if fieldValues[i].strip() == "" and option[0] == "*": 
            errmsg += ('【%s】为必填项。\n\n' % fieldNames[i]) 
           如果用户输入的选项为空,且选项的有*,那就会增加到errmsg中去, 我不明白的是errmsg为什么最后可以变回空.前面不是增加了数据进去了吗? 
 
求大神帮忙!!!!
errmsg又变成空是因为while循环中,每一次执行都是初值为“”(空的字符串) 
errmsg运行结束后不是为空,(可以打印出来)
 
测试时只需要少填一项就能看到打印出来的errmsg并不是空的
 - 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)
 
 -     print(errmsg) #这里加一行,当单次输入带*的框少填时,在下次errmsg置空前打印出来就能看到
 
  
- print("用户资料如下:%s" % str(fieldValues))
 
 - print(errmsg)    
 
 
  复制代码 
 
 
 |   
 
 
 
 |