python easygui 代码求助
本帖最后由 藤泽新社 于 2020-8-6 17:40 编辑想问问大佬这段里有哪些错误啊
#打开easygui
import easygui as g
#第一界面 *用户名*真实姓名 固定电话*手机号码 QQ*E-mail
msg = '请填写以下信息(打※必填)'
title = '信息记录'
fieldleft = ['*用户名','*真实姓名','固定电话','*手机号码','QQ','*E-mail']
fieldright = []
fieldright = g.multenterbox(msg,title,fieldleft)
#循环如果是带 * 号的必填项,要求一定要有输入并且不能是空格
#三种情况 1离开 2*没填 输入为空格 3正常输入
while 1:
if fieldright == None :
g.msgbox('再见')
break
err = ''
for in range(len(fieldleft)):
flag = fieldleft.strip()
if fieldright.strip() == '' and flag== '*':
err += ('%s是必填项不能为空 \n\n' % fieldleft)
if err == '':
break
fieldright = g.multenterbox(msg,title,fieldleft)
fieldprint = []
for in range(len(fieldleft)):
fieldprint += (fieldleft,':',fieldright,'\n\n')
print('您的信息为',fieldprint)
本帖最后由 Twilight6 于 2020-8-6 17:49 编辑
for 循环 i 不能写成 [ i]
第二个的 fieldright 的 msg属性应该是 err 而不是 msg
# 打开easygui
import easygui as g
# 第一界面 *用户名*真实姓名 固定电话*手机号码 QQ*E-mail
msg = '请填写以下信息(打※必填)'
title = '信息记录'
fieldleft = ['*用户名', '*真实姓名', '固定电话', '*手机号码', 'QQ', '*E-mail']
fieldright = g.multenterbox(msg, title, fieldleft)
# 循环如果是带 * 号的必填项,要求一定要有输入并且不能是空格
# 三种情况 1离开 2*没填 输入为空格 3正常输入
while 1:
if fieldright == None:
g.msgbox('再见')
break
err = ''
for i in range(len(fieldleft)):
flag = fieldleft.strip()
if fieldright.strip() == '' and flag == '*':
err += ('%s是必填项不能为空 \n\n' % fieldleft)
if err == '':
break
fieldright = g.multenterbox(err, title, fieldleft)
fieldprint = []
for i in range(len(fieldleft)):
fieldprint += (fieldleft, ':', fieldright, '\n\n')
print('您的信息为', fieldprint) 本帖最后由 sunrise085 于 2020-8-6 18:08 编辑
第18、24、26、27、28行小问题进行了修改,并分别进行了注释。
import easygui as g
#第一界面 *用户名*真实姓名 固定电话*手机号码 QQ*E-mail
msg = '请填写以下信息(打※必填)'
title = '信息记录'
fieldleft = ['*用户名','*真实姓名','固定电话','*手机号码','QQ','*E-mail']
fieldright = []
fieldright = g.multenterbox(msg,title,fieldleft)
#循环如果是带 * 号的必填项,要求一定要有输入并且不能是空格
#三种情况 1离开 2*没填 输入为空格 3正常输入
while 1:
if fieldright == None :
g.msgbox('再见')
break
err = ''
for i in range(len(fieldleft)):#错误1、for循环的i是个临时变量,不能放在[ ]内,变量名中不能有中括号
flag = fieldleft.strip()
if fieldright.strip() == '' and flag== '*':
err += ('%s是必填项不能为空 \n\n' % fieldleft)
if err == '':
break
fieldright = g.multenterbox(err,title,fieldleft,fieldright)#可以改进1、第一个参数应该写err,不该再写msg,另外应该把value加上,已经填写过的内容就不用重复输入了
fieldprint = '' #可以改进2、fieldprint直接写成字符串,会更好看一些
for i in range(len(fieldleft)):#这里和18行错误一样
fieldprint += fieldleft+':'+fieldright+'\n' #可以改进3、这里结合上面的定义进行了简单修改
print('您的信息为:\n',fieldprint)
页:
[1]