我的第一个python脚本的问题

时间:2016-09-25 21:55:28

标签: python

我正在尝试根据我在线教程中找到的现有脚本编写一个简单的评分脚本。目标是询问用户他们的分数并给出相应的分数。

以下是原始代码:

def letterGrade(score):
    if score >= 90:
        letter = 'A'
    else:   # grade must be B, C, D or F
        if score >= 80:
            letter = 'B'
        else:  # grade must be C, D or F
            if score >= 70:
                letter = 'C'
            else:    # grade must D or F
                if score >= 60:
                    letter = 'D'
                else:
                    letter = 'F'
    return letter

这个btw根本没用,我真的没有得到" def"命令,因为它没有再提到?没有错误

无论如何,这是我从书本和网上学到的新修改代码......

score = float(input("What is your score"))
if score >= 90:
    letter = 'A'
else:   # grade must be B, C, D or F
    if score >= 80:
        letter = 'B'
    else:  # grade must be C, D or F
        if score >= 70:
            letter = 'C'
        else:    # grade must D or F
            if score >= 60:
                letter = 'D'
            else:
                letter = 'F'
print (letter)
input ("Press Enter to Exit")

此代码也不起作用,但至少它现在要求用户输入。没有错误

我在这里缺少什么?

4 个答案:

答案 0 :(得分:1)

def关键字引入了一项功能。为了让您的脚本以交互方式工作,您可以像这样调用letterGrade函数:

def letterGrade(score):
    if score >= 90:
        letter = 'A'
    else:   # grade must be B, C, D or F
        if score >= 80:
            letter = 'B'
        else:  # grade must be C, D or F
            if score >= 70:
                letter = 'C'
            else:    # grade must D or F
                if score >= 60:
                    letter = 'D'
                else:
                    letter = 'F'
    return letter

if __name__ == '__main__':
    score = float(input("What is your score? "))
    print letterGrade(score)
    input ("Press Enter to Exit")

此处,从命令行调用脚本时将执行__name__ == '__main__':块(python your_script_name.py

答案 1 :(得分:1)

好吧,让我们先从一些伪代码开始,我总是尝试伪代码我的问题并尽可能地将它们绘制出来,这对我有所帮助,它可能对你有帮助。所以你似乎已经实现的评分等级是这样的。如果您的等级低于100但大于或等于90,则为A,低于90但大于或等于80则为b,依此类推。让我们使用条件语句。您可以像拥有它一样嵌套它,但是设置条件顺序可能就是您所需要的。因此,如果等级不大于或等于90,则等级只能低于90,即B,C,D或F.

def functioname(parameters, parameters):
    stuffgoeshere

因此,在这些条件语句中,我们将通过查找成绩的过程,如代码上方所述,如果用户的成绩不超过90,则会跳到下一个检查是否更大的elif等于或等于80,依此类推,如果等级在一个点上不大于或等于60,那么所有其他低于60的值将是F。

现在来掩护'def'。您使用def来定义函数。这是一个通用布局:

def gradeLetter(grade):
    if (grade >= 90):
        return 'A'
    elif (grade >= 80):
        return 'B'
    elif (grade >= 70)
        return 'C'
    elif (grade >= 60)
        return 'D'
    else:
       return 'F'

现在,参数是可选的,一切都取决于你是否需要将任何数据传递给函数,在你的情况下,你传递的是用户的等级:

g = input("Please enter your grade: ")
l = gradeLetter(g)
print("Your letter grade is " + l)

此时您可以调用该函数,传入用户输入的值。我们返回函数中的字符,以便您可以将其分配给变量进行打印,或者您可以在功能,取决于您的偏好。

{{1}}

希望这会帮助你。如果您有任何问题,请随时在下面发表评论。

答案 2 :(得分:0)

由于你是一个noobie,让我给你一些提示。

1:SO对易于谷歌的东西充满敌意

如果你谷歌“python def”,你会发现它是定义一个函数的关键字。什么是功能? 谷歌。哦,函数是一个可以多次调用的代码块。

def letterGrade(score):
    if score >= 90:
        letter = 'A'
    else:   # grade must be B, C, D or F
        if score >= 80:
            letter = 'B'
        else:  # grade must be C, D or F
            if score >= 70:
                letter = 'C'
            else:    # grade must D or F
                if score >= 60:
                    letter = 'D'
                else:
                    letter = 'F'
    return letter

print(letterGrade(95)) # A
print(letterGrade(70)) # C
print(letterGrade(20)) # F

2:“else”和“if”可以在python中组合使用:

def letterGrade(score):
    if score >= 90:
        letter = 'A'
    elif score >= 80:   # grade must be B, C, D or F
        letter = 'B'
    elif score >= 70:  # grade must be C, D or F
        letter = 'C'
    elif score >= 60:    # grade must D or F
        letter = 'D'
    else:
        letter = 'F'

    return letter

答案 3 :(得分:0)

Omg hoooooooooooly废话!我需要为浪费每个人的时间而道歉。 RPGillespie是正确的,我的代码一直在工作。我是使用PyCharm的新手,并且出于某种原因,它的设置方式使得您可以在顶部为一个项目执行代码,但实际上“运行”底部不同项目的代码。我一直在运行错误的代码......浪费了一天! =(

我会说我不会再犯这个错误了。吉兹,真是个惨败!!!

再次感谢所有人的帮助和热烈的欢迎。我承认,由于我是这个论坛的新手,我对一般的论坛并不陌生。并且很高兴不会因为询问“noob”问题或者不知道所述论坛的未说出的规则而被活活吃掉。很高兴找到一个真正试图帮助其成员的地方。

我再次道歉,我保证我的下一个问题/问题不会浪费这个论坛的时间=)。

毫无疑问,iv获得了“DOH”和“Facepalm”的徽章。