wKioL1Z9Tz2SSig8AADRZ0BZgRo174.png

实验目标是生成一个相关的txt文件,然后再txt文件内保存这些通讯录。如果什么都不填直接输入“ok”或者点击"Cancel"就把程序退出,如果带星号的项目没有填写就会提示“需要重新填写”。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import  easygui as g
import  os
g.msgbox( "欢迎来到本通讯录!" , "                            账号中心" )
while  1 :
     msg  =  "姓名、手机号码和电邮地址都是必填项!"
     title  =  "账号中心"
     fields  =  [ "*用户名" , "*真实姓名" , "固定电话" , "手机号码" , "QQ" , "*电邮地址" ]
     AAA = g.multenterbox(msg,title,fields)
     if  AAA = = [' ', ' ', ' ', ' ', ' ', ' ']  or  AAA = = None :
         break
     if  AAA[ 0 ] = = ' ' or AAA[1]==' ' or AAA[-1]==' ':
         g.msgbox( "有必须的信息没有填写,请重新填写" )
         continue
     else :
         f = open ( "e:/pythonaaa/a/999.txt" , "a+" )
         f.write( str (AAA))
         f.write( "\n" )
         f.close()
         g.msgbox( "保存成功!上次保存的信息是:" + str (AAA))
         continue
g.msgbox( "期待您的下次使用!" )

========================================分割线====================================

如果遇到了用户往里面输入空格想蒙混过关的情况,可以在上面的if~if~if中使用以下的语句

1
2
3
4
5
6
7
8
9
10
11
errmsg = ""
     for  in  range ( len (fieldNames)):
         #如果已知列表长度,那么可以通过这个语句达到一个walk每一个列表内元素的目的#
         option  =  fieldNames[i].strip()
         #当输入中有空格的时候,把头和尾的空格去掉#
         if  fieldValues[i].strip()  = =  "":
             errmsg  + = ( "【%s】为必填项。"    % fieldNames[i])
         if  errmsg  = =  "":
             break
         fieldValues  =  g.multenterbox(errmsg,title,fieldNames,fieldValues)
         #会在msg的位置上体现那里没有填满,并且不断增加#