天天看点

一个“通讯簿”程序

<a href="http://s5.51cto.com/wyfs02/M01/78/79/wKioL1Z9Tz2SSig8AADRZ0BZgRo174.png" target="_blank"></a>

实验目标是生成一个相关的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

<code>import</code> <code>easygui as g</code>

<code>import</code> <code>os</code>

<code>g.msgbox(</code><code>"欢迎来到本通讯录!"</code><code>,</code><code>"                            账号中心"</code><code>)</code>

<code>while</code> <code>1</code><code>:</code>

<code>    </code><code>msg </code><code>=</code> <code>"姓名、手机号码和电邮地址都是必填项!"</code>

<code>    </code><code>title </code><code>=</code> <code>"账号中心"</code>

<code>    </code><code>fields </code><code>=</code> <code>[</code><code>"*用户名"</code><code>,</code><code>"*真实姓名"</code><code>,</code><code>"固定电话"</code><code>,</code><code>"手机号码"</code><code>,</code><code>"QQ"</code><code>,</code><code>"*电邮地址"</code><code>]</code>

<code>    </code><code>AAA</code><code>=</code><code>g.multenterbox(msg,title,fields)</code>

<code>    </code><code>if</code> <code>AAA</code><code>=</code><code>=</code><code>['</code><code>', '</code><code>', '</code><code>', '</code><code>', '</code><code>', '</code><code>'] </code><code>or</code> <code>AAA</code><code>=</code><code>=</code><code>None</code><code>:</code>

<code>        </code><code>break</code>

<code>    </code><code>if</code> <code>AAA[</code><code>0</code><code>]</code><code>=</code><code>=</code><code>'</code><code>' or AAA[1]=='</code><code>' or AAA[-1]=='</code><code>':</code>

<code>        </code><code>g.msgbox(</code><code>"有必须的信息没有填写,请重新填写"</code><code>)</code>

<code>        </code><code>continue</code>

<code>    </code><code>else</code><code>:</code>

<code>        </code><code>f</code><code>=</code><code>open</code><code>(</code><code>"e:/pythonaaa/a/999.txt"</code><code>,</code><code>"a+"</code><code>)</code>

<code>        </code><code>f.write(</code><code>str</code><code>(AAA))</code>

<code>        </code><code>f.write(</code><code>"\n"</code><code>)</code>

<code>        </code><code>f.close()</code>

<code>        </code><code>g.msgbox(</code><code>"保存成功!上次保存的信息是:"</code><code>+</code><code>str</code><code>(AAA))</code>

<code>g.msgbox(</code><code>"期待您的下次使用!"</code><code>)</code>

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

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

<code>errmsg</code><code>=</code><code>""</code>

<code>    </code><code>for</code> <code>i </code><code>in</code> <code>range</code><code>(</code><code>len</code><code>(fieldNames)):</code>

<code>        </code><code>#如果已知列表长度,那么可以通过这个语句达到一个walk每一个列表内元素的目的#</code>

<code>        </code><code>option </code><code>=</code> <code>fieldNames[i].strip()</code>

<code>        </code><code>#当输入中有空格的时候,把头和尾的空格去掉#</code>

<code>        </code><code>if</code> <code>fieldValues[i].strip() </code><code>=</code><code>=</code> <code>"":</code>

<code>            </code><code>errmsg </code><code>+</code><code>=</code><code>(</code><code>"【%s】为必填项。"</code>   <code>%</code><code>fieldNames[i])</code>

<code>        </code><code>if</code> <code>errmsg </code><code>=</code><code>=</code> <code>"":</code>

<code>            </code><code>break</code>

<code>        </code><code>fieldValues </code><code>=</code> <code>g.multenterbox(errmsg,title,fieldNames,fieldValues)</code>

<code>        </code><code>#会在msg的位置上体现那里没有填满,并且不断增加#</code>

 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1728419

继续阅读