第五季 发表于 2020-7-28 15:25:43

可以解释一下 while后面的吗 还有==“”是什么意思啊

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))

Twilight6 发表于 2020-7-28 17:33:03

本帖最后由 Twilight6 于 2020-7-28 17:36 编辑


看注释吧,哪不理解就继续问哈:


import easygui as g

msg = "请填写以下联系方式"

title = "账号中心"

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

fieldValues = []

fieldValues = g.multenterbox(msg, title, fieldNames)   
# 当你点击 x 关闭,或者 Cencle 取消时 multenterbox 组件返回的就是 None

while 1:

    if fieldValues == None:
      # 这里是判断用户是否点击了上面的 x ,或者 Cencle,如果是,那么退出循环,即退出程序
      break

    errmsg = ""# 初始化一个变量,用于 if 判断和显示提示

    for i in range(len(fieldNames)):
      option = fieldNames.strip()# strip 去除字符串前后空格

      if fieldValues.strip() == "" and option == "*":
            # 这里判断当输入框带 * 号的你如果没有输入内容,那么就拼接入 errmsg 字符串中
            errmsg += ('【%s】为必填项。\n\n' % fieldNames)
            # 如果有带 * 号的没填写,那么就拼接入字符串中,那么一定不满足下面的 if 条件
            # 将要重新循环,提示用户哪些需要必填

    if errmsg == "":
    # 判断 errmsg 是否为空字符串,如果为空字符串就说明,这边带 * 号的输入框都填写了
    # 如果这不是空字符串,那么意思就是用户将带 * 号的输入框漏填了

      break# 符合条件退出循环

    fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues)
    # 这里就是重新提示哪些输入框为必填项,只有再 errmsg 不为空字符串时候才会提示



print("用户资料如下:%s" % str(fieldValues))

我真的是个好人 发表于 2020-7-28 17:44:40

本帖最后由 我真的是个好人 于 2020-7-28 17:47 编辑

while后面是个循环,while的条件是后面的条件不为0是执行里面的循环,这个1换成2,3,4,5,6,7,8,999999都是可以的,但是不能为0。==在python中表示比较前后是否相等,会返回布尔值,在python中的=不表示等于,而表示赋值

第五季 发表于 2020-7-28 21:35:55

Twilight6 发表于 2020-7-28 17:33
看注释吧,哪不理解就继续问哈:

fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues)

这左后一步不太明白啊, fieldNames,fieldValues两者是什么关系啊,为啥前面的 g.multenterbox没有 fieldValues,最后一步有啊

Twilight6 发表于 2020-7-28 21:49:32

第五季 发表于 2020-7-28 21:35
fieldValues = g.multenterbox(errmsg, title, fieldNames, fieldValues)

这左后一步不太明白啊, fi ...


fieldNames 就是个列表呀,fieldValues 是接收 multenterbox 组件的输入框内容

为啥前面的 g.multenterbox没有 fieldValues

你应该要先理解 multenterbox 的参数作用,multenterbox 的第四个参数,就是设置输入框中的内容的

而这里的作用是为了保留你上次输入的内容还在输入框中,如果没有这个参数上次输入的内容就会清空

第五季 发表于 2020-7-28 21:56:30

Twilight6 发表于 2020-7-28 21:49
fieldNames 就是个列表呀,fieldValues 是接收 multenterbox 组件的输入框内容




刚看了 明白了谢谢哥哥 爱你喔
页: [1]
查看完整版本: 可以解释一下 while后面的吗 还有==“”是什么意思啊