Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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 - Fatal编程技术网

我的第一个python脚本存在问题

我的第一个python脚本存在问题,python,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

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

以下是原始代码:

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
顺便说一句,这根本不起作用,我真的没有收到“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")
这段代码也不起作用,但至少现在需要用户输入。无错误


我在这里错过了什么?

既然你是个傻瓜,让我给你一些提示

1:那么,谷歌对那些容易用谷歌搜索的东西有敌意吗

如果你搜索“pythondef”,你会发现它是定义函数的关键字。什么是函数?谷歌。哦,函数是一段可以多次调用的代码

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

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")

在这里,当您从命令行调用脚本时(
python your_script_name.py

好的,让我们首先从一些伪代码开始,我总是尝试对我的问题进行伪代码,并尽可能地将它们提取出来,这对我有帮助,也可能对您有帮助。所以你所实施的评分标准是这样的。如果分数低于100但大于或等于90,则为a;如果分数低于90但大于或等于80,则为b,依此类推。让我们使用条件语句。您可以像以前一样嵌套它,但设置条件顺序可能是您所需要的。因此,如果等级不大于或等于90,那么等级只能低于90,因此a为B、C、D或F

if (grade >= 90):
    letter = 'A'
elif (grade >= 80):
    letter = 'B'
elif (grade >= 70)
    letter = 'C'
elif (grade >= 60)
    letter = 'D'
else:
    letter = 'F'
因此,通过这些条件语句,我们经历了寻找等级的过程,正如代码上面一点所解释的,如果用户的等级不大于90,它会跳到下一个elif,检查它是否大于或等于80,依此类推,如果某一点的等级不大于或等于60,那么所有其他低于60的值都将是F

现在来介绍“def”。使用def定义函数。以下是一般布局:

def functioname(parameters, parameters):
    stuffgoeshere
现在,参数是可选的,这取决于您是否需要向函数传递任何数据,在您的情况下,您传递的是用户的等级:

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)

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

天哪,胡说八道!我要为浪费大家的时间道歉。RPGillespie是正确的,我的代码一直在工作。我不熟悉使用PyCharm,出于某种原因,它的设置方式是,你可以在顶部为一个项目编写代码,但实际上是在底部为另一个项目“运行”代码。我一直在运行错误的代码…浪费了一天=(

我会说我不会再犯那个错误了。天啊,真是惨败

再次感谢大家的帮助和热烈欢迎。我承认,由于我是这个论坛的新手,我对论坛一般来说并不陌生。不因为问一个“noob”问题或不知道论坛的非语言规则而被活活吃掉也很好。找到一个真正帮助其成员的地方也很好

再次表示最诚挚的歉意,我保证我的下一个问题不会浪费时间


iv毫无疑问获得了“DOH”和“Facepalm”的徽章。“不工作”是什么意思?嘿,欢迎光临,你不工作是什么意思?你在经历什么?我试了你的第二个,它对我有效。为什么您认为它不工作?
def
用于定义函数。你需要调用这个函数。@Abdelouahab如果这是一个教程,我的直觉是,教程还没有引入
elif
,并使用这个例子作为构造的动机。我在这页上看到的敌对行为的唯一例子是你的回答。我不是敌对,我只是陈述事实。所以通常不会接受“我不知道X是做什么的,但是这个使用X的代码不起作用”@vaultah也许你只是把我的答案的语气解释错了,但我没有恶意。我警告他,在未来,如果你说你不知道X做了什么,那将导致选票下降。但你是对的,我应该让他自己去弄清楚。该死的。为什么这么多人投反对票?我不确定你的答案是否值得投反对票,但我可以看出其他人可能会将其解释为讽刺。看积极的一面。我想你第一次删除一个被否决的帖子时会得到一枚徽章。