Python——程序:彩票游戏(细节修改)

代码原处:https://www.runoob.com/python3/python3-loop.html(笔记的11楼,用户:sprinkle)

import random

t1="开始游戏"
t2="结束游戏"
print(t1.center(50,"*"))
data1=[]
money=int(input("输入投入的金额:"))
print("你现在余额为:%d元"%money)
while 1:
    for i in range(6):
        n = random.choice([0, 1])
        data1.append(n)
    if money<2:
        print("你的余额不足,请充值")
        m=input("输入投入的金额:")
        if int(m)==0:
            break
        else:
            money=int(m)
    while 1:
        j=int(input("输入购买彩票数量"))
        if money-j*2<0:
            print("购买后余额不足,请重新输入")
        else:
            money = money - j * 2
            print("你现在余额为:%d元" % money)
            break
    print("提示:中奖数据有六位数,每位数为0或者1")
    n2=input("请猜测中奖数据:(输入的数字为0或1)")
    print(str(data1))
    f=[]
    for x in n2:
        f.append(x)
    f1 = str(f)
    f2 = f1.split("'")
    f3 = "".join(f2)
    print("你猜测的数据为:", f3)
    if f3==str(data1):
        print("中奖数字为:",data1)
        print("恭喜你中大奖啦")
        money=money+j*100
        print("你现在余额为:%d元" % money)
    else:
        print("中奖数字为:", data1)
        print("没有中奖,请继续加油")
    con = input("请问还要继续么?结束请输入no,继续请任意输入字符:")
    if con=="no":
        break
    data1=[]
print(t2.center(50,"*"))
print("你的余额为:%d元"%money)

针对如上代码,找到了几处错误:
1.余额不足需要充值的时候,没有考虑到错误处理,如果用户输入为负余额怎么办,而充值错误不应该是直接退出程序,而需要提醒用户重新输入才对;
2.提示用户购买张数,但是最后只买了一张彩票,应该为多张彩票才是;

import random

t1="开始游戏"
t2="结束游戏"
print(t1.center(50,"*"))
data1=[]
money=int(input("输入投入的金额:"))
print("你现在余额为:%d元"%money)
while 1:
    '''中奖号码生成'''
    for i in range(6):
        n = random.choice([0, 1])
        data1.append(n)
    data = ''
    for i in data1:
        data = data + str(i)

    '''余额不足的情况下'''
    if money<2:
        print("你的余额不足,请充值")
        m=input("输入投入的金额:")
        if int(m)==0 or int(m)<=0:
            print("\n输入错误,请重新输入")
        else:
            money=int(m)

    '''余额充足的情况下,买几张彩票'''
    n = 0
    while money >= 2:
        j=int(input("输入购买彩票数量:"))
        n = j
        if money-j*2<0:
            print("购买后余额不足,请重新输入")
        else:
            money = money - j * 2
            print("你现在余额为:%d元" % money)
            break

    '''输入并购买j张彩票'''
    f = []
    while n > 0:
        print("提示:中奖数据有六位数,每位数为0或者1")
        k=0
        
        print("请猜测中奖数据:(输入的数字为0或1)")
        while k < n:
            n2=input("第%d张彩票"% (k+1))
            f.append(n2)
            k += 1
    
    '''买的彩票和中奖彩票比较'''
    k=0
    print("\n你猜测的数据为:", f)
    while k < n:
        if str(f[k])==str(data):
            print("中奖数字为:",data)
            print("恭喜你中大奖啦")
            money=money+j*100
            print("你现在余额为:%d元" % money)
        else:
            print("中奖数字为:", data , "而你的中奖数字为", f[k])
            print("没有中奖,请继续加油")
        k += 1

    '''询问是否退出''' 
    con = input("请问还要继续么?结束请输入no,继续请任意输入字符:")
    if con=="no":
        break
    data1=[]
    
'''模拟结束,显示余额'''  
print(t2.center(50,"*"))
print("你的余额为:%d元"%money)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值