qfxx第一周6-------遇到了无法解决的问题

import random
global code #中奖彩票号码
code=""
global money#玩家的金额数
money=0
global zhu #玩家买的数
zhu=0
global cus #玩家的彩票号码
cus=""
# 生成中奖彩票号码
def codec(b): #b用来判断是生成中奖彩票号码还是玩家的彩票号码
    codes = []
    for i in range(6):
        a = ""
        a = random.randint(1, 6)
        codes.append(str(a))
    print(codes)
    print("".join(codes))
    if b == 1:  # 生成中奖彩票号码
        global code
        code=codes
        return code
    else:       #生成玩家的彩票号码
        global cus
        cus=codes
        return cus

# 判断用户的金额是否够买彩票,如果不够就让他充值,充值足够后返回能够购买几注的注数,如果不愿充值则返回0
def moneyd(c):
    global money
    if c==2:
        if money<=2:
            print("余额不足请充值:\n")
            if input("是否充值?\n")=="是":
                money+=int(input("请输入充值金额:\n"))
                moneyd(2)
            else:
                return 0
        else:
            return money//2
    else:
        bay()
        return -1



# 主程序,用户购买彩票的入口,
def bay():
    global money
    money=0
    while 1:
        a=0
        a=moneyd(2)
        if a>0:
            b = input("请问你打算购买多少注?\n")
            if b<=a:
                money-=2*b
                print("你的剩余金额为%d"%money)
            else:
                print("你的余额不足以购买注数为%d的彩票"%b)
                c=input("请问你选择1:重新输入购买的注数  2:充值")
                moneyd(c)
                continue
        else:
            print("玩彩票不够钱还不充值,滚蛋")
        d=codec(1)
        e=codec(0)
        if d==e:
            print("恭喜你中奖了")
            money+=(100*b)
            print("你目前金额为%d"%money)
        else:
            print("抱歉你未中奖")
        if input("是否继续?是/否")=="是":
            continue
        else:
            break

bay()

搞不懂python3的全局变量到底是咋回事… if a>0:哪里我在之前不是让a=0了吗,怎么还报a是空类型的错误…操
我在函数里声明使用全局变量,可是居然会报money变量在定义(声明)前就被使用…如果我不让money=0来给他赋值,估计还是报相同的错误…唉,写出来的程序一堆bug,改的我脑袋都大了…干脆重写算了.这个问题留到以后解决,或者静待有缘人…哈哈

2019/7/13/11:27
重写之后的代码

import random
 #中奖彩票号码
code=""
#玩家的金额数
global money
money=0
 #玩家买的数
zhu=0
 #玩家的彩票号码
cus=""

def codec(b): #b用来判断是生成中奖彩票号码还是玩家的彩票号码
    codes = []
    for i in range(6):
        a = ""
        a = random.randint(1, 6)
        codes.append(str(a))
    print(codes)
    print("".join(codes))
    if b == 1:  # 生成中奖彩票号码
        code=""
        code=codes
        return code
    else:       #生成玩家的彩票号码
        cus=""
        cus=codes
        return cus

def moneyd(c,d):
    global money
    a = 0
    if c==2:
        if d<2:
            print("余额不足请充值:\n")
            if input("是否充值?\n")=="是":
                d+=int(input("请输入充值金额:\n"))
                money+=d
                return moneyd(2,d),d
            else:
                return 0,d
        else:
            a=d//2
            return a,d
    else:
        return -1,d

while 1:
    a=0
    f=0
    g=0
    g=moneyd(2,money)
    if type(g[0])!=int:
        a=g[0][0]
    else:
        a=g[0]
    if a>0:
        b=0
        b = int(input("请问你打算购买多少注?\n"))
        if b<=a:
            money-=(2*b)
            print("你的剩余金额为%d"%money)
        else:
            print("你的余额不足以购买注数为%d的彩票"%b)
            c=input("请问你选择1:重新输入购买的注数  2:充值")
            moneyd(c,money)
            continue
    else:
        print("玩彩票不够钱还不充值,滚蛋")
        break
    d=codec(1)
    e=codec(0)
    if d==e:
        print("恭喜你中奖了")
        money+=(100*b)
        print("你目前金额为%d"%money)
    else:
        print("抱歉你未中奖")
    if input("是否继续?是/否")=="是":
        continue
    else:
        break
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值