import easygui as g
message="【真实姓名】为必填项。
【手机号码】为必填项。
```【*E-mail】为必填项。"
text=['*用户名','*真实姓名','固定电话','*手机号码','QQ','*E-mail']
multenter=g.multenterbox(msg=message,title="请如实填写信息",fields=text)
while multenter!= None:
if text[0]=="":
msg="用户民不能为空"
if text[1]==“":
msg="真实姓名不能为空"
if text[3]=="":
msg="手机号码不能为空"
if text[5]=="
```python
```python
```":
msg="E-mail不能为空"
multenter=g.multenterbox(msg=msg,title="请如实填写信息",fields=text)
你的想法挺好,但是代码有点改进的地方:
定义text ,正确
text =['*用户名', '*真实姓名' , '固定电话' , '*手机号码' , 'QQ' , '*E-mail']
但是下面判断你用的是 text[0] , text[1] ,这边有点问题。
我想,你要表达的应该是输入框是否为空吧,但是 text[0] 表示的是你定义的数组的第一个值,也就是 “用户名”,他始终不会为空的,因此不会走到 下面的msg
那么,竟然没有走到msg,那么msg 就一直没有定义,那么到了最后一步 multenterbox
multenter = g.multenterbox(msg=msg, title="请如实填写信息", fields=text)
这里面的msg没有定义,所以就报错了
解决的地方有2个:
修改示例后如下:
import easygui as g
message = "【真实姓名】为必填项。【手机号码】为必填项。"
text =['*用户名', '*真实姓名' , '固定电话' , '*手机号码' , 'QQ' , '*E-mail']
multenter =g.multenterbox(msg=message, title="请如实填写信息", fields=text)
while multenter!= None:
msg = ""
if multenter[0]=="":
msg = "用户民不能为空"
elif multenter[1] == "":
msg ="真实姓名不能为空"
elif multenter[3] == "":
msg ="手机号码不能为空"
elif multenter[5] =="":
msg = "E-mail不能为空"
multenter = g.multenterbox(msg=msg, title="请如实填写信息", fields=text)
打字不易,谢谢!
是范围问题。你是不是在循环外使用了msg
if是分支,跟elif(如果有)与else一起用,才能覆盖所有情况。如果if代码块声明的变量在if外层用起来提示没有定义时,一般都是缺少了else
你这代码块,应该是根本没有进去while,当你在while外面取msg肯定就没有定义了