python从入门到放弃篇4.4(def,class,列表切片)实现打奖小程序最终版本

又是马上12点了,唉,我这个人太笨了,想了这么久,才模拟出来7星彩的打奖规则,而且用的是笨办法,我可能有时间再改进一下程序。估计没时间了,还得搞搞机器学习之类的东西。

我这个程序里面用到了def的self形参传递class类的继承,还有最后模拟现实出奖规则的列表切片

我每天都会坚持更新一篇关于python的文章,每天都做一些新鲜东西,然后版本持续更新。因为,我们每一天见到的人和事都不一样,所以,我们每一天也要做不一样的东西。我们不能停滞不前,在这个日新月异的时代,我们不管是软件还是硬件,都在持续更新,不更新就落后,落后的东西就会bug特别多,我们要不断完善程序,所以,可能一开始,我设计的程序是简单易懂的,可能会逐渐加入新的东西,来更新程序,使程序逐渐完善。

马上到点了

代码:

import random
class prize:
def init(self,S,num):
self.S = ‘’
self.num = ‘’

def inputnum(self):
    while True:
        #lst = []
        self.num = str(input('请输入打奖号码:'))
        #lst.append(self.num)
        if len(self.num) > 7 or len(self.num) < 7:
            #lst.remove(self.num)
            print("输入错误!!请重输")
            continue
        #lst = []
        #lst.append(self.num)
        elif len(self.num) == 7:
            break
        print("您的打奖号码是",self.num)#lst)

def randomnum(self):
    ls = []
    #ls4 = []
    for i in range(0,10):
        ls.append(i)

    while True:
        A = random.choice(ls)
        self.S += str(A)
        #ls4.append(self.S)
        if len(self.S) == 7:
            break
    #print("开奖号码是",ls4)
    print("开奖号码是",self.S)#,ls4)

def contrast(self):
    count = 0
    ls1 = []
    ls2 = []
    for s in self.S:
        ls1.append(s)
    #print(ls1)
    for n in self.num:
        ls2.append(n)

    while ls1!=[]:
        E1 = ls1.pop()
        E2 = ls2.pop()
        if E1 == E2:
            count += 1

    #if [N for N in ls2] == [W for W in ls1]:
        #count += 1

    """
    for i in self.num:
        if i == [w for w in ls1]:
            count += 1
    print([w for w in ls1])
    """

    #print(self.num)
    #print(type(self.num))

    if count > 0:
        print("很抱歉,您有",count,"个号码中了!!")
    else:
        print("恭喜您,没有中奖!!")
    """
    for i in self.num:
        for s in self.S:
            if i == s:
                count += 1
    print("你有",count,"个号码中了!!")
    """

    """
    ls2 = []
    for i in self.S:
        ls2.append(self.S)
    ls3 = []
    ls3.append(self.num)
    for n in ls3:
        if n in ls2:
            count += 1
            print('很抱歉,您中奖了!! 有', count, '个号码中了')
        else:
            print('恭喜您,您没有中奖!!')
    """
    #if n != s:
        #print('恭喜您没有中奖,请再接再厉')
        #continue

“”"
p = prize(S=’’,num=’’)
p.inputnum()
p.randomnum()
p.contrast()
“”"

class prize2(prize):
def init(self,S,num):
super().init(S,num)
#self.frequency = frequency

def Number_of_sweepstakes(self):
    self.frequency = int(input('输入打奖的次数:'))
    while self.frequency > 0:
        p = prize2(S='',num='')
        p.inputnum()
        p.randomnum()
        p.regulations()
        #p.contrast()
        self.frequency -= 1
def regulations(self):
    if self.num == self.S:
        print("恭喜您,中一等奖!!")
    elif self.num[0:7]==self.S[0:7] or self.num[1:8]==self.S[1:8]:
        print("恭喜您,中二等奖!!")
    elif self.num[0:5]==self.S[0:5] or self.num[1:6]==self.S[1:6] or self.num[2:7]==self.S[2:7]:
        print("恭喜您,中三等奖!!")
    elif self.num[0:4]==self.S[0:4] or self.num[1:5]==self.S[1:5] or self.num[2:6]==self.S[2:6] or self.num[3::]==self.S[3::]:
        print("恭喜您,中四等奖!!")
    elif self.num[0:3]==self.S[0:3] or self.num[1:4]==self.S[1:4] or self.num[2:5]==self.S[2:5] or self.num[3:6]==self.S[3:6] or self.num[4::]==self.S[4::]:
        print("恭喜您,中五等奖!!")
    elif self.num[0:2]==self.S[0:2] or self.num[1:3]==self.S[1:3] or self.num[2:4]==self.S[2:4] or self.num[3:5]==self.S[3:5] or self.num[4:6]==self.S[4:6] or self.num[5::]==self.S[5::]:
        print("恭喜您,中六等奖!!")
    else:
        print("加油!!请下次继续努力")

p = prize2(S=’’,num=’’)
p.Number_of_sweepstakes()

效果截图:
在这里插入图片描述
打15次奖,只中一次五等奖。。好坑,以后绝比不打奖,中的概率是真的低。。

猜你喜欢

转载自blog.csdn.net/weixin_43408020/article/details/106976855
今日推荐