首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >高尔夫项目传递分数以发挥作用

高尔夫项目传递分数以发挥作用
EN

Stack Overflow用户
提问于 2022-08-24 02:43:41
回答 1查看 45关注 0票数 -2

我遇到了一个问题,将代码传递给一个函数-- "evaluateAndDisplayScore“--我使用了打印函数,它显示了它传递的数字,但当我使用"hole1”时没有按"def“顺序显示。

这是我的密码

代码语言:javascript
运行
复制
class Golf:

 def __init__ (self, hole, score,  par):
     self.hole = hole
     self.score = score
     self.par = par

 def evaluateAndDisplayScore(hole, score, par): #Im having issues here 
     print(hole)
     print(score)
     print(par)
     if score > par:
         results="Over Par"
     elif score < par:
         results="Under Par"
     else:
         results="At Par"
     print(f"You scored {results} on hole # {hole} with a par of {par}.")

score = 0
hole1 = Golf(1, score, 3)
hole2 = Golf(2, score, 4)
hole3 = Golf(3, score, 5)

enterHole = int(input("Enter hole number: "))
score = int(input("Enter score: "))

if enterHole == 1:
   hole1.evaluateAndDisplayScore(enterHole, score)
elif enterHole == 2:
   hole2.evaluateAndDisplayScore(enterHole, score)
elif enterHole == 3:
   hole3.evaluateAndDisplayScore(enterHole, score)
else:
   print("Invalid hole number entered.")

下面是我应该与示例结果匹配的示例

输入洞号:1

输入你的分数:5

你在第一洞中以3杆的成绩超过了标准杆。

输入洞号:2

输入你的分数:1

你第二洞的杆数低于标准杆,杆数为4。

输入洞号:3

输入你的分数:5

你以5杆的成绩在第3洞的杆位得分

EN

回答 1

Stack Overflow用户

发布于 2022-08-24 02:56:31

第一个迹象是,当您尝试使用编号变量而不是列表时,您正在做一些不正确的事情。

其次,您的方法有问题,因为您从不使用实例变量。请参阅计算函数中的self.par

代码语言:javascript
运行
复制
class Golf:

 def __init__ (self, par):
     self.par = par

 def evaluateScore(self, score): 
     par_str = " Par"
     if score > self.par:
         prefix = "Over"
     elif score < self.par:
         prefix = "Under"
     else:
         prefix = "At"
     return prefix + par_str

holes = [
  Golf(3), Golf(4), Golf(5)
]

enterHole = int(input("Enter hole number: "))

if enterHole < 0 or enterHole >= len(holes):
    raise ValueError("Invalid hole number entered.") 

score = int(input("Enter score: "))

hole = holes[enterHole - 1]
result = hole.evaluateScore(score)
print(f"You scored {result} on hole # {enterHole} with a par of {hole.par}.")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73466891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档