Python 初学者程序员这里..更简单的编程方法?
我是一名初级程序员,在家里通过一本书自学python编程。我目前正在学习字符串。我解决了一个问题,但我在想是否还有其他更简单的方法来解决它Python 初学者程序员这里..更简单的编程方法?,python,python-3.x,Python,Python 3.x,我是一名初级程序员,在家里通过一本书自学python编程。我目前正在学习字符串。我解决了一个问题,但我在想是否还有其他更简单的方法来解决它 问:某位教授的100分考试按照90-100:A、80-89:B、70-79:C、60-69:D评分,是的,有一种更好的写作方法 假设你有一个整数,也就是分数,你所要做的就是将它与决定分数的边界进行比较(使用) points=int(输入(“输入考试分数0-100:”) 如果点
问:某位教授的100分考试按照90-100:A、80-89:B、70-79:C、60-69:D评分,是的,有一种更好的写作方法 假设你有一个整数,也就是分数,你所要做的就是将它与决定分数的边界进行比较(使用
)
points=int(输入(“输入考试分数0-100:”)
如果点<60:
等级='F'
elif点<70:
等级='D'
elif点<80:
等级='C'
elif积分<90分:
等级=‘B’
其他:
等级='A'
打印(“您对应的成绩是”,成绩)
为了使代码更清晰,可以将比较逻辑放入一个函数中,该函数返回给定分数的分数
def calculate_grade(score):
if score < 60:
return 'F'
if score < 70:
return 'D'
if score < 80:
return 'C'
if score < 90:
return 'B'
return 'A'
def main():
points = int(input("Enter the exam points 0-100: "))
grade = calculate_grade(points)
print("Your corresponding grade is", grade)
def计算等级(分数):
如果得分<60:
返回“F”
如果得分<70:
返回'D'
如果得分<80:
返回“C”
如果得分<90:
返回“B”
返回“A”
def main():
分数=整数(输入(“输入考试分数0-100:”)
坡度=计算坡度(点)
打印(“您对应的成绩是”,成绩)
是的,有一种更好的写作方法
假设你有一个整数,也就是分数,你所要做的就是将它与决定分数的边界进行比较(使用
)
points=int(输入(“输入考试分数0-100:”)
如果点<60:
等级='F'
elif点<70:
等级='D'
elif点<80:
等级='C'
elif积分<90分:
等级=‘B’
其他:
等级='A'
打印(“您对应的成绩是”,成绩)
为了使代码更清晰,可以将比较逻辑放入一个函数中,该函数返回给定分数的分数
def calculate_grade(score):
if score < 60:
return 'F'
if score < 70:
return 'D'
if score < 80:
return 'C'
if score < 90:
return 'B'
return 'A'
def main():
points = int(input("Enter the exam points 0-100: "))
grade = calculate_grade(points)
print("Your corresponding grade is", grade)
def计算等级(分数):
如果得分<60:
返回“F”
如果得分<70:
返回'D'
如果得分<80:
返回“C”
如果得分<90:
返回“B”
返回“A”
def main():
分数=整数(输入(“输入考试分数0-100:”)
坡度=计算坡度(点)
打印(“您对应的成绩是”,成绩)
我不使用python编写代码,所以我可能不会使用正确的语法,但这在所有语言中几乎都是一样的。迭代所有值是不好的做法。您只需要几个if语句(或switch/case),如下所示:
if i<=100 and i>=90:
print("Grade is A")
if i<=89 and i>=80:
print("Grade is B")
如果i=90:
打印(“成绩为A”)
如果i=80:
印刷品(“B级”)
等等……我不使用python编写代码,所以我可能不会使用正确的语法,但这在所有语言中都几乎相同。迭代所有值是不好的做法。您只需要几个if语句(或switch/case),如下所示:
if i<=100 and i>=90:
print("Grade is A")
if i<=89 and i>=80:
print("Grade is B")
如果i=90:
打印(“成绩为A”)
如果i=80:
印刷品(“B级”)
等等……还有一种更简单、更简洁的方法。试试这个:
points = int(input("Enter the exam points 0-100: "))
if 0 < points <= 60:
print "Your grade is F"
elif 60 < points <= 70:
print "Your grade is E"
elif 70 < points <= 80:
print "Your grade is D"
[and so on...]
points=int(输入(“输入考试分数0-100:”)
如果0
points = int(input("Enter the exam points 0-100: "))
if 0 < points <= 60:
print "Your grade is F"
elif 60 < points <= 70:
print "Your grade is E"
elif 70 < points <= 80:
print "Your grade is D"
[and so on...]
points=int(输入(“输入考试分数0-100:”)
如果0
def main():
points = int(input("Enter the exam points 0-100: "))
if points >= 60:
print("Your corresponding grade is F.")
elif points > 60 and points < 70:
print("Your corresponding grade is D.")
elif points > 70 and points < 80:
print("Your corresponding grade is C.")
elif points > 80 and points < 90:
print("Your corresponding grade is B.")
elif points > 90:
print("Your corresponding grade is A.")
else:
print("Error: invalid value")
def main():
分数=整数(输入(“输入考试分数0-100:”)
如果点>=60:
打印(“您对应的分数为F”)
elif点>60和点<70:
打印(“您对应的成绩为D”)
elif点>70和点<80:
打印(“您对应的成绩为C”)
elif点>80和点<90:
打印(“您对应的成绩为B”)
elif点>90:
打印(“您对应的成绩为A”)
其他:
打印(“错误:无效值”)
是的,我会使用这种方法
def main():
points = int(input("Enter the exam points 0-100: "))
if points >= 60:
print("Your corresponding grade is F.")
elif points > 60 and points < 70:
print("Your corresponding grade is D.")
elif points > 70 and points < 80:
print("Your corresponding grade is C.")
elif points > 80 and points < 90:
print("Your corresponding grade is B.")
elif points > 90:
print("Your corresponding grade is A.")
else:
print("Error: invalid value")
def main():
分数=整数(输入(“输入考试分数0-100:”)
如果点>=60:
打印(“您对应的分数为F”)
elif点>60和点<70:
打印(“您对应的成绩为D”)
elif点>70和点<80:
打印(“您对应的成绩为C”)
elif点>80和点<90:
打印(“您对应的成绩为B”)
elif点>90:
打印(“您对应的成绩为A”)
其他:
打印(“错误:无效值”)
它是正确的(给出了预期的分数),而且效率极低:
- 在可以避免的情况下创建数组
- 在数组中使用线性搜索,简单的比较就足够了
此外,您使用纯线性(非结构化)设计
你可以:
- 制作一个将点转换为坡度的函数
- 从处理输入和输出的main调用它
代码示例
def points_to_grade(points):
limits = [90, 80, 70, 60]
grades = ['A', 'B', 'C', 'D']
for i,limit in enumerate(limits):
if points >= limit:
return grade[i]
return 'F'
def main():
## asking for the exam points
points = int(input("Enter the exam points 0-100: "))
## convert to grade
grade = points_to_grade(points)
print("Your corresponding grade is {}.".format(grade))
它是正确的(给出了预期的分数),而且效率极低:
- 在可以避免的情况下创建数组
- 在数组中使用线性搜索,简单的比较就足够了
此外,您使用纯线性(非结构化)设计
你可以:
- 制作一个将点转换为坡度的函数
- 从处理输入和输出的main调用它
代码示例
def points_to_grade(points):
limits = [90, 80, 70, 60]
grades = ['A', 'B', 'C', 'D']
for i,limit in enumerate(limits):
if points >= limit:
return grade[i]
return 'F'
def main():
## asking for the exam points
points = int(input("Enter the exam points 0-100: "))
## convert to grade
grade = points_to_grade(points)
print("Your corresponding grade is {}.".format(grade))
您的解决方案并不是最优的,可以使用一些基本逻辑(如以下)很好地解决,这些逻辑将执行得更好,更具可读性:
## asking for the exam points
point = int(input("Enter the exam points 0-100: "))
point_set = 'FEDCBA'
if point == 100:
print('A')
else:
print(point_set[point // 10 - 5])
代码使用简单的逻辑,一旦点小于60,59//10计算为5,5-5=0,因此索引0处的等级将使用-F。如果点为100,这是一些边缘情况,这就是为什么我使用特殊的,如果其他情况下有简单的数学,这是不言自明的。您的解决方案并不是最优的,可以使用一些基本逻辑(如以下)很好地解决,这些逻辑将执行得更好,更具可读性:
## asking for the exam points
point = int(input("Enter the exam points 0-100: "))
point_set = 'FEDCBA'
if point == 100:
print('A')
else:
print(point_set[point // 10 - 5])
def main():
points = int(input('Enter the exam points:'))
if points >= 90:
print('Your corresponding grade is A')
elif 80 <= points <= 90:
print('Your corresponding grade is B.')
elif 70 <= points <= 80:
print('Your corresponding grade is C.')
elif 60 <= points <= 70:
print('Your corresponding grade is D.')
elif 0 <= points <= 60:
print('Your corresponding grade is F.')
代码使用简单的逻辑,一旦点小于60,59//10计算为5,5-5=0,所以索引0处的等级将使用-F。在这种情况下