我对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()
总体而言,您绝对是在正确的轨道上。祝好运!