values from function help needed

trade19's Avatar, Join Date: Mar 2014
Light Poster
Hi I need help understanding the code below. This code is used to compare some numbers
Example: 02,10,26,33,48,,,,,, 15 is a WIN number and 02,11,24,34,50, ,,,,,15is a DRAWN number.
output is

02,11,24,34,50, ,,,,,15 (1,1) these ones are due to the matching numbers 02 and 15
I f there were no matches it would be (0,0)
I can run the program and read that there was a win or loss but I don't know how to evaluate with code a win or loss.

Example2:Up to 5 numbers can be purchased like below
WIN# 02, 10, 26, 33, 48,,,,,, 15

07, 13, 26, 31, 46,,,,,, 17 (0,0)
02, 11, 24, 34, 50, ,,,,,15 (1,1)
04, 18, 25, 38, 49,,,,,, 27 (0,0)
02, 10, 26, 37, 49,,,,,, 10 (3,0)
08, 14, 27, 33, 38,,,,,, 26 (1,0)
this is the output for 5 numbers
I can read this and see what numbers have won/lost
the (3,0)and the (1,1) would win
I want to generate a message that the ticket won and I don't know how to manipulate the (0,0)part.

If you need the complete program let me know.




Code:
def score(a, b):
        return (len(set(a[:5]) & set(b[:5])), 1 if (a[-1] == b[-1]) else 0)   
    print()
    
    for a in s:               
        print(a, score(a, target))
        label1 = Label(aApp, text=(a, score(a, target)), fg='blue')
        label1.pack(side=BOTTOM, expand=NO, padx=3, pady=1, ipadx=1, ipady=1)
0
trade19's Avatar, Join Date: Mar 2014
Light Poster
error in 07, 13, 26, 31, 46,,,,,, 17 (1,0) sorry
0
trade19's Avatar, Join Date: Mar 2014
Light Poster
Here is the program It will run if you create a text file the one used here is output.txt


Code:
from tkinter import*
import sys, random, tkinter
ticket_price = 2
i = 0
g = ''
total = 0
comp_a = ' '
comp_b = ' '
score = 0
drawing2 = ''
drawing = ''
target = ''
s = ''
sx = ''
a = ''
b = ''
test_score = ''


def calculatetotals():    
    valid = set('12345')
    ticket_entry = tik.get()
    if ticket_entry not in valid:
        print('We permit values in {}.'.format(valid))
        label4 = Label(aApp, text='We permit values in 1, 2, 3, 4 or 5!',
                       fg='blue').grid(row=7, column=1)

    else:
        label4 = Label(aApp, text='                                                                           ', fg='blue').grid(row=7, column=1)
        mytik = int(ticket_entry)
        total = mytik*ticket_price
        Label(aApp, text="You purchased:$%.2f \n" % total).grid(row=7, column=1)
        Label(aApp, text="\nNumber Of Tckets: %.f\n" % mytik).grid(row=6, column=1)
        Button(aApp, text="Click Here To Draw Your Tickets!",  fg='blue',  bg='white',  command=nextx).grid(row=8, column=1)

        
aApp = Tk()                           
aApp.geometry('600x400+75+75')
aApp.title("LOTTO")
tik = StringVar()
label1 = Label(aApp, text="Welcome To Lotto.", fg='blue')
label1.grid(row=0, column=2)
label2 = Label(aApp, text="Tickets Are $ {:.2f}Each.".format(ticket_price), fg='red')
label2.grid(row=1, column=1)
label3 = Label(aApp, text="How Many Would You Like?", fg='black')
label3.grid(row=2, column=1)

mytik = Entry(aApp, textvariable=tik)
mytik.grid(row=2, column=2)

button1 = Button(aApp, text="Your Purchse\nClick Here", fg='blue', command=calculatetotals)                 
button1.grid(row=6, column=1)


def nextx():
    Button(aApp, text="Click Here to see the new winning number.", fg='lightgreen',
           bg='black', command=nextz).grid(row=8, column=1)
    ticket_entry = tik.get()
    i = 0
    while i < int(ticket_entry):            
        L = list(range(1, 60))
        random.shuffle(L)        
        g = L[:5]
        g.sort()
        f = L[5:6]                           
        drawing = ' '.join([' '.join(zstr(G) for G in g), '-', zstr(f[0])])
        label5 = tkinter.Label(aApp, text=drawing)
        label5.pack(fill=X)
        
        comp_b = open("C:\output.txt", "a")
        s = comp_b.write(drawing)
        s = comp_b.write('\n')
        s = [line.split() for line in sx.strip().splitlines()]                   
        i += 1
        
        
def nextz():
    Button(aApp, text='Push again to <Quit> :To see if you match Push <Compare> In The New Winning Number Window'
           , fg='yellow', bg='black', command=quit).grid(row=8, column=1)
    L = list(range(1, 60))
    random.shuffle(L)
    g = L[:5]
    g.sort()
    f = L[5:6]
    global drawing2
    global target
    drawing2 = ' '.join([' '.join(zstr(G) for G in g), '-', zstr(f[0])])
    target = drawing2
   
    aBpp = Tk()
    aBpp.geometry('240x75+230+260')
    aBpp.title(string="Winning Number")
    label6 = tkinter.Label(aBpp, text=drawing2).pack(padx=1, pady=2)
    Button(aBpp, text="quit", command=aBpp.quit).pack()
    Button(aBpp, text="Compare", command=compare).pack()
 
 
def zstr(ob, width=2):
    return '{x:0>{width}s}'.format(x=str(ob), width=width)


def compare():
    s = ''
    comp_a = open("C:\output.txt", "r")
    s = comp_a.read()
    s = [line.split() for line in s.strip().splitlines()]   
    target = drawing2.split()
    print('Purchased Numbers are', s)
    print('Win Number is ', target)
   
    def score(a, b):
        return (len(set(a[:5]) & set(b[:5])), 1 if (a[-1] == b[-1]) else 0)
  
    print()
    
    for a in s:
       
        print(a, ('score', score(a, target)))
        if (a,b):
                print('score is 1')               
        else:
                print ('score = 0')
                
        label1 = Label(aApp, text=(a, score(a, target)), fg='blue')
        label1.pack(side=BOTTOM, expand=NO, padx=3, pady=1, ipadx=1, ipady=1)
        
        comp_a.close()
killfile = open("C:\output.txt", "w")
killfile.close()


tkinter.mainloop()
aBpp.mainloop()
aApp.mainloop()
0
trade19's Avatar, Join Date: Mar 2014
Light Poster
remove this part it is something I was working on and makes no sense.
if (a,b):
print('score is 1')
else:
print ('score = 0')