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