鱼C论坛

 找回密码
 立即注册
查看: 1406|回复: 1

我想把 第一个用函数写出来 但是运行会出错 还请各位大佬斧正

[复制链接]
发表于 2021-1-6 18:11:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import easygui as g

msg = "请输写以下联系方式"
title = "账号中心"
fieldName = ["*用户名" , "*真实姓名", "固有电话" , "*手机号码", "QQ" , "*E-mail"]
#x = []
x = g.multenterbox(msg , title , fieldName)
while True:
    if x == None:
        break
    y = ""  #相当于字符串
    for i in range(len(fieldName)):
        option = fieldName[i].strip()
        if x[i].strip() == "" and option[0] == "*":
            y += ('(%s)为必填项。\n\n ' % fieldName[i])  #字符串

    if y =="":
        break

    x = g.multenterbox(msg = y , title = title , fields = fieldName, values = x)#field 是代表提示词  value是代表输入的返回值

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




import easygui as g


def main(x , y):
    while True:
        if x == None:
            break
        #y = ""  #相当于字符串
        for i in range(len(fieldName)):
            option = fieldName[i].strip()
            if x[i].strip() == "" and option[0] == "*":
                y += ('(%s)为必填项。\n\n ' % fieldName[i])  #字符串

            return main

        if y == "":
            break



msg = "请输写以下联系方式"
title = "账号中心"
fieldName = ["*用户名" , "*真实姓名", "固有电话" , "*手机号码", "QQ" , "*E-mail"]
#x = []
x = g.multenterbox(msg , title , fieldName)
y = ""  #相当于字符串
while True:
    x = g.multenterbox(msg = main(x , y) , title = title , fields = fieldName, values = x)#field 是代表提示词  value是代表输入的返回值
print("用户资料如下: %s" % str(x))


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-7 11:30:02 | 显示全部楼层
你得考虑变量的作用域,用函数写的时候尤其要注意,局部变量、全局变量,一个不小心就是很头疼的问题
你如果非要用函数写,我个人建议用类,通过类的属性来取代变量,比较优雅
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-13 15:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表