zhe512 发表于 2021-6-3 18:01:37

第35讲

本帖最后由 Twilight6 于 2021-6-4 08:48 编辑

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.strip()
      if fieldValues.strip() == "" and option == "*":
            errmsg += ('【%s】为必填项。\n\n' % fieldNames)
    if errmsg == "":
      break
    fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues)

print("用户资料如下:%s" % str(fieldValues))
   
求助!没看懂while下面的内容。fieldNames[ i].strip() 是什么意思?

逃兵 发表于 2021-6-4 08:19:28

str.strip(chars=None)        返回一个去除左右两侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串

Twilight6 发表于 2021-6-4 08:52:57

本帖最后由 Twilight6 于 2021-6-4 09:11 编辑


fieldNames[ i].strip() 是什么意思?

fieldNames[ i] 是选取 fieldNames = [" *用户名", " *真实姓名", "固定电话", " *手机号码", "QQ", " *E-mail"]

列表中的索引值为 i 的元素, 从 fieldNames 列表可以看出,里面字符串前后都带有空格,可能是为了 GUI 显示比较美观加上的

strip 函数作用是去除字符串前后的空格,所以 fieldNames[ i].strip() ,就是为了将循环到的字符串前后空格去除

Wzzhxy1 发表于 2021-6-4 09:10:04

Twilight6 发表于 2021-6-4 08:52
fieldNames[ i] 是选取 fieldNames = [" *用户名", " *真实姓名", "固定电话", " *手机号码", "Q ...

他说的对哦
页: [1]
查看完整版本: 第35讲