मैं वजन घटाने में मदद करने के लिए विभिन्न अभ्यासों को उत्पन्न करने के लिए एक कार्यक्रम बना रहा हूं। एक फ़ंक्शन एक व्यायाम उत्पन्न करता है, और उस व्यायाम की मात्रा जो आपको करनी चाहिए। मैं इन्हें टिंकर विंडो में लेबल का उपयोग करके प्रदर्शित कर रहा हूं।

विंडो में एक बटन भी है, जिसे क्लिक करने पर फ़ंक्शन को कॉल करना चाहिए और व्यायाम और राशि को लेबल में प्रदर्शित करना चाहिए।

क्या इसे करना संभव है?

from tkinter import *
import random as r

exercises = ["star jumps", "press ups", "sit ups", "burpees", "bicycle crunches"] #array of exercises
eChoice = "" #declare variable for exercise choice
amount = "" #declare variable for amount of exercises
def exercise():
    x = r.randint(1, 4)
    if x == 1:
        #exercise
        eChoice = r.choice(exercises)
        amount = r.randint(10, 30)
    elif x == 2:
        #walk
        eChoice = "walk"
        amount = r.randint(1,3) #miles
    elif x == 3:
        #cycle
        eChoice = "cycle"
        amount = r.randint(1,3) #miles
    else:
        #swim
        eChoice = "swim"
        amount = r.randint(5,10) #lengths of a pool
    return eChoice, amount


myGUI = Tk() #create window

myGUI.title("Weight Loss Program") #title of the window
myGUI.configure(bg="deepskyblue") #background colour
exerciseButton = Button(myGUI, text="Generate Exercise", fg="mediumpurple", command=exercise) #create button that calls exercise function
exerciseButton.pack()
name = "Name: ", eChoice
exerciseLabel = Label(myGUI, text=name, fg="mediumpurple") #create label for exercise name
exerciseLabel.pack()
description = "Amount: ", amount
exerciseDescription = Label(myGUI, text=description, fg="mediumpurple") #create label for exercise name
exerciseDescription.pack()

myGUI.mainloop()```
-1
user8721749 7 नवम्बर 2019, 13:13

1 उत्तर

सबसे बढ़िया उत्तर

आपका व्यायाम फ़ंक्शन कॉलर को वापस मान लौटा रहा है। मूल्यों को वापस करने के बजाय आपको उन चरों को संशोधित करना चाहिए जिन्हें फ़ंक्शन के भीतर संशोधित करने की आवश्यकता है। इस उदाहरण में मैंने चर के वैश्विक संदर्भ बनाए हैं, लेकिन आप उन्हें फ़ंक्शन के पैरामीटर के रूप में भी शामिल कर सकते हैं और इसलिए उन्हें स्थानीय दायरे में एक्सेस कर सकते हैं।

समाधान:

from tkinter import *
import random as r

exercises = ["star jumps", "press ups", "sit ups", "burpees", "bicycle crunches"] #array of exercises
eChoice = "" #declare variable for exercise choice
amount = "" #declare variable for amount of exercises
def exercise():
    global exerciseLabel
    global exerciseDescription
    global eChoice

    x = r.randint(1, 4)
    if x == 1:
        #exercise
        eChoice = r.choice(exercises)
        amount = r.randint(10, 30)
    elif x == 2:
        #walk
        eChoice = "walk"
        amount = r.randint(1,3) #miles
    elif x == 3:
        #cycle
        eChoice = "cycle"
        amount = r.randint(1,3) #miles
    else:
        #swim
        eChoice = "swim"
        amount = r.randint(5,10) #lengths of a pool


    exerciseLabel.configure(text="Name: " + eChoice)
    exerciseDescription.configure(text="Amount: " + str(amount))


myGUI = Tk() #create window

myGUI.title("Weight Loss Program") #title of the window
myGUI.configure(bg="deepskyblue") #background colour
exerciseButton = Button(myGUI, text="Generate Exercise", fg="mediumpurple", command=exercise) #create button that calls exercise function
exerciseButton.pack()
name = "Name: " + eChoice
exerciseLabel = Label(myGUI, text=name, fg="mediumpurple") #create label for exercise name
exerciseLabel.pack()
description = "Amount: " + amount
exerciseDescription = Label(myGUI, text=description, fg="mediumpurple") #create label for exercise name
exerciseDescription.pack()

myGUI.mainloop()
1
temp123 7 नवम्बर 2019, 16:14