处理更新文本和函数参数

时间:2017-07-20 22:15:44

标签: python function parameters parameter-passing processing

这是我在这个网站上的第一篇文章,希望我可以获得一些关于我的问题的宝贵见解和提示,因为我在编程方面是一个相对的菜鸟。我在处理环境中使用Python模式。

我得到了一个讲课问题(老师最终会过去),但我希望能够事先解决。不幸的是我不知道该怎么做。我应该创建一个程序,显示包子,弗兰克和热狗的数量,可以从包子和弗兰克的数量,我有键盘输入,以增加包子和弗兰克显示的数量。

目前,当我输入键盘输入时,我无法弄清楚如何让我的文本更新,也无法弄清楚如何根据我所拥有的包子和弗兰克的数量自动更新热狗的数量。

如果我的解释不明确,我附上了两张问题的照片,这些照片可以解决任何混乱。我还附上了我现有的代码。

picture 1 picture 2

代码:

    #Variables/Model
    meat = ""
    buns = ""
    dogs = min(12 * meat, 8 * buns)


    def setup():
        size(400,400)


    def draw():
        global meat, buns, dogs
        background(255)
        meat = 0
        buns = 0
        dogs = min(12 * meat, 8 * buns)
        fill(0)
        text("Packages of meat:" + str(meat), 50, 100)
        text("Packages of buns:" + str(buns), 250, 100)
        text("Dogs possibly made:" + str(dogs), 150, 200)


    def make_hotdogs(totalMeat, totalBuns):
        global meat, buns, dogs
        if keyPressed == "f":
            meat += 1
        elif keyPressed == "g":
            meat -= 1
        elif keyPressed == "b":
            buns += 1
        elif keyPressed == "n":
            buns -= 1
        else:
            print("Type b, n, f or g")

2 个答案:

答案 0 :(得分:0)

您永远不会调用make_hotdogs()函数,因此您永远不会查看检查按下哪个键的if语句。

您可能需要查看keyPressed()功能。您可以在the reference中找到更多信息。

但老实说,如果你感到困惑,也许你应该等老师在讲座中解释一切。

答案 1 :(得分:0)

已经过了一个星期,所以让我们假设讲座已经发生,让我们解决这个问题。我在OP代码中看到的问题是缺乏对基本Python和处理环境的理解。而且未能充分利用已经提供的问题术语。

重新编写代码以解决上述问题,并生成在处理环境中运行的可行的野餐计划程序:

# Variables/Model

FRANKS_PER_PACKAGE = 12
BUNS_PER_PACKAGE = 8

frank_packages = 0
bun_packages = 0

def setup():
    size(400, 400)
    fill(0)  # black text on a
    background(255)  # white background

def draw():
    hotdogs = make_hotdogs(frank_packages, bun_packages)

    text("Packages of franks: " + str(frank_packages), 50, 100)
    text("Packages of buns: " + str(bun_packages), 250, 100)
    text("Hotdogs possibly made: " + str(hotdogs), 150, 200)

def keyPressed():
    global frank_packages, bun_packages

    if key == "f":
        frank_packages += 1
    elif key == "g":
        if frank_packages > 0:
            frank_packages -= 1
    elif key == "b":
        bun_packages += 1
    elif key == "n":
        if bun_packages > 0:
            bun_packages -= 1

    background(255)  # white out old calculations

def make_hotdogs(p_franks, p_buns):
    return min(p_franks * FRANKS_PER_PACKAGE, p_buns * BUNS_PER_PACKAGE)

make_hotdocs()外,Processing环境会为我们调用这些函数。它在程序开始时调用setup()一次;它一遍又一遍地呼叫draw();当用户在键盘上键入时,它会调用keyPressed(),并在key变量中按下该字母。

在Python中,我们只需要声明我们计划更改其值的global变量,而不是我们只是打算使用它们的值。