首先,我只想说我知道这很多,但我真正想要的是让某人查看我写过的代码,并帮助澄清我应该做什么。 。谢谢!
您好, 所以我对编码比较陌生,我试图编写一个程序,使用多个函数来确定学生是否被接受,拒绝或候补。我尝试为每个部分编写代码,但我不确定我是否按照我应该的方式进行编写,或者是否有更好的编写方式。如果有人可以查看我的代码并让我知道或给我任何建议,那将非常感激。另外,可以告诉我,我是否正确进行递归?谢谢!
录取标准基于SAT三个部分的分数,并在高中毕业班中排名;确切的标准如下。这些规则按此处显示的优先顺序(1,2,3等)应用。
Da程序替换电子表格(具有多个功能)以确定是否接受,拒绝或等待列出学生。您的解决方案必须包含以下功能:
第1部分:一个名为admissionStatus(sat_math,sat_reading,sat_writing,class_rank)的函数,它接受4个参数(如图所示)并返回一个字符串" Accept"," Reject",或者"候补"
第2部分:一个名为isvalid(sat_math,sat_reading,sat_writing,class_rank)的函数,它返回True或False,具体取决于输入数据是否有效。如果所有数据都有效,则返回True,否则返回False。
第3部分:一个主要功能,提示用户提供相关数据(申请人姓名,数学成绩,阅读成绩,写满分数和班级等级。它还调用admissionStatus()传递适当的参数。
第4部分:您认为合适的任何其他辅助函数(在准入状态下实现某些计算作为可以从准入状态调用的单独函数。例如,您可能希望为上面的规则2编写函数。)
设计测试数据以涵盖尽可能多的可能性。对于上述七个标准,您应该至少拥有一组测试数据;可能更多,因为有几种不同的方式,例如,输入数据可能无效。
这就是我所做的:
第1部分:
import math
sat_math = raw_input ("Input your SAT math score")
sat_reading = raw_input ("Input your SAT reading score")
sat_writing = raw_input ("Input your SAT writing score"
class_rank = int(raw_input ("Input your class rank"))
a = [sat_math, sat_reading, sat_writing]
if sat_math or sat_reading or sat_writing > 800:
return "Rejected"
if sat_math or sat_reading or sat_writing < 200:
return "Rejected"
if sat_math or sat_reading or sat_writing == 800:
return "Accepted"
elif sat_math or sat_reading or sat_writing <= 300:
return "Rejected"
elif (sum(a)/len(a) > 650) and class_rank <= 25:
return "Accepted"
elif sat_math + sat_reading < 400:
return "Rejected"
elif sat_math + sat_writing < 400:
return "Rejected"
elif sat_reading + sat_writing < 400:
return "Rejected"
elif class_rank >= 75:
return "Rejected"
else:
Return "Waitlisted"
第2部分(这是我最困惑的部分):
def isvalid(sat_math,sat_reading,sat_writing,class_rank):
sat_math = raw_input ("Input your SAT math score")
sat_reading = raw_input ("Input your SAT reading score")
sat_writing = raw_input ("Input your SAT writing score")
class_rank = int(raw_input ("Input your class rank"))
while True:
sat_math or sat_reading or sat_reading >= 200
sat_math or sat_reading or sat_reading <= 800
class_rank == int()
else:
break
第3部分:我没有看到这个和第一个之间的区别(除了要求一个名字),所以如果有人可以向我解释这将是伟大的。
第4部分:我不确定这意味着什么。这是否意味着为每个步骤编写单独的函数?
最后,当它说&#34;测试数据时,&#34;我应该每次都用不同的SAT分数编写不同的场景并测试它们吗?
就像我之前说过的那样 - 我知道这很多,但我真正想要的是让某人查看我编写过的代码,并帮助澄清我应该做些什么。谢谢!
答案 0 :(得分:0)
我没有检查您的完整代码,并建议您像其他人一样建议您提出更具体的问题。我仍然试图回答你的一些问题:
你的第1部分应该是一个函数(def admissionStatus()...)。对于第3部分和第4部分,您似乎被要求模块化您的代码。因此,在第3部分中,创建一个函数来读取所有用户输入,并从此函数调用您在第1部分中创建的函数admissionStatus()来检查许可状态。在第4部分中,看看你是否可以进一步模块化。这个问题特别提供了提示 - &#34;例如,您可能想要为上面的规则2编写一个函数&#34;。这个程序看起来太简单了,不需要很多功能,但我想你是想学习如何编程,所以为了学习,也许你可以创建这些功能。