Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 初学者程序员这里..更简单的编程方法?_Python_Python 3.x - Fatal编程技术网

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:”) 如果点

我是一名初级程序员,在家里通过一本书自学python编程。我目前正在学习字符串。我解决了一个问题,但我在想是否还有其他更简单的方法来解决它


问:某位教授的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。在这种情况下