|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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))
-
复制代码
代码中11行的break,我个人理解是,如果用户什么都没有输入,那就会退出while循环,这样的话底下的那么多判断岂不是没意义了。
事实证明,在实际run这个代码的时候,如果第一次什么都没有输入,fieldvalues的值为none时,它运行的挺好的,并没break啊,反而会将errmsg里显示出应该提示的文字,如下:
这让我十分怀疑自己的逻辑是不是错了,因为如果,break,while内容全部终止了啊,更别提还会有errmsg的值啊。。。求解
if fieldValues == None:
break
fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues)
if fieldValues == None: #意思是 你点了Cancel
|
|