我对python和一般编码来说还是比较新的。
我已经搜索了其他一些类似的问题,但似乎找不到我要找的答案。
我正在开发一个小程序,它将计算篮球运动员的进攻效率,但是当我定义一个程序并将其回调时,它不会产生任何价值。

def fgp(x, y):
    fgp = (x/y)*100
    return;

def fgpoutput():
    x = int(input("How many shots made?"));
    y = int(input("How many shots attempted?"));
    fgp(x, y);
    output = "This player is shooting",fgp,"%"
    print(output)


fgpoutput()


我认为这似乎可行,但我无法确定,因为它返回了以下内容:

How many shots made?5
How many shots attempted?10
('This player is shooting', function fgp at 0x02561858, '%')


我觉得自己已经接近了,但似乎无法确定。

最佳答案

好的,您在这里遇到了一些不同的问题。


您不会从function fgp返回任何内容:return;末尾的fgp返回None,在Python中表示没有值。不想那样!而是使用:return fgp
您不是在fgp中调用fgpoutput-您只是在打印函数本身。而是,您希望像这样调用函数:fgp(x, y),该函数现在返回计算出的值。
他们构造output的方式不太正确。在Python中,有一个用于格式化字符串以包括数字的字符串方法:str.format()Check out the documentation on it here


因此,我们总共得到:

def fgp(x, y):
    fgp = (x/y)*100
    return fgp

def fgpoutput():
    x = int(input("How many shots made?"));
    y = int(input("How many shots attempted?"));
    output = "This player is shooting {} %".format(fgp(x, y))
    print(output)


fgpoutput()


总体而言,您绝对是在正确的轨道上。祝好运!

10-05 22:11