Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.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_Linux - Fatal编程技术网

Python 程序根本不运行

Python 程序根本不运行,python,linux,Python,Linux,我正在努力完成这项挑战: 编写一个程序,允许用户输入在 编程类(0-100)。如果用户得分为100,则通知 用户表示他们得到了满分 ★ 修改程序,以便如果用户得分为90-100,它会通知 用户表示他们得了A ★★ 修改程序,以便将其信件通知用户 等级0-59 F 60-69 D 70-79 C 80-89 B 90-100 A 到目前为止,我尝试的是: #!/usr/bin/python import random a = lambda: random.randint(0, 100) if

我正在努力完成这项挑战:

编写一个程序,允许用户输入在 编程类(0-100)。如果用户得分为100,则通知 用户表示他们得到了满分

★ 修改程序,以便如果用户得分为90-100,它会通知 用户表示他们得了A

★★ 修改程序,以便将其信件通知用户 等级0-59 F 60-69 D 70-79 C 80-89 B 90-100 A

到目前为止,我尝试的是:

#!/usr/bin/python

import random
a = lambda: random.randint(0, 100)

if a == 100:
    print "You have a perfect score"

if a == range(90, 99):
    print "You have scored an A"

if a == range(80, 89):
    print "You have scored a B"

if a == range(70, 79):
    print "You have scored a C"

if a == range(60, 69):
    print "You have scored a D"

if a == range(0, 59):
    print "You have scored an F"
不确定我做错了什么,但我正在运行Ubuntu 13.10,这就是我在终端上运行它时发生的情况:

blurr@blurr-pc:~/code$chmod u+x gradingprogram.py

blurr@blurr-pc:~/code$./gradingprogram.py

程序根本不运行。

在这种情况下,
类型(a)
函数
——因此@tobias_k说,您必须调用它

func = lambda: random.randint(0, 100)
a = func()
...

# alternatively
a = (lambda: random.randint(0,100))()
....
我几乎要把它修好了

您还需要检查您是否处于与此处不同的范围内

例如:

if a >= lower_bound and a <= upper_bound:
    # within range

如果a>=下限且a程序确实运行,但不会生成任何输出,因为实际上您正在将函数与列表进行比较,因此所有
if
语句都不适用。您的代码存在一些问题:

  • a
    是生成随机数的函数,而不是随机数本身。删除
    lambda:
    ,或者调用
    a()
    并将结果分配给某个变量
  • 如果您想让用户实际输入一个数字,请使用
    a=int(raw\u input())

  • 如果要检查
    a
    是否在范围内,请使用
    in
    关键字,即
    如果a在范围内(90,99)
    ,或更好(更有效),请使用
    如果90首先
    a
    是一个函数,因此不应尝试将其与数字进行比较。调用函数并将其分配给变量<代码>等级=a()

    其次,您可以检查一个数字是否在
    number>下限和number

    您还可以使用
    print
    语句来帮助调试代码

    #!/usr/bin/python
    
    import random
    a = lambda: random.randint(0, 100)
    print a
    
    grade = a()
    print grade
    
    if grade == 100:
        print "You have a perfect score"
    
    if grade >= 90 and grade < 100:
        print "You have scored an A"
    
    if grade >= 80 and grade <= 89:
        print "You have scored a B"
    
    if grade >= 70 and grade <= 79:
        print "You have scored a C"
    
    if grade >= 60 and grade <= 69:
        print "You have scored a D"
    
    if grade < 59:
        print "You have scored an F"
    
    #/usr/bin/python
    随机输入
    a=lambda:random.randint(01100)
    打印
    职系=a()
    印刷品等级
    如果等级==100:
    打印“你得了满分”
    如果等级>=90且等级<100:
    打印“你得了A”
    
    如果坡度>=80,坡度=70,坡度=60,坡度关闭。。。使用关键字“in”确定a是否属于范围(x,y)
    a
    是一个函数。您必须调用它。从其他注释中,您可能会混淆不运行和不提供任何输出。您可以尝试将
    打印“分级程序”
    作为shebang后的第一行,以确保它实际正在执行。如果在运行时出现这种情况,则说明您有逻辑/代码问题,而不是执行问题。@DorianFM我试过了,您是对的!它被执行了,只是没有输出;你明白为什么吗?(提示:
    a
    与什么比较?)非常感谢!我想我现在更了解“=func()”了。没问题,快乐编码:)这是我用过的答案,谢谢!我删除了lambda和grade=a();我希望我能选择两个答案,因为你也帮了我很多。您解释了SethB在代码中给出的示例。谢谢@用户3438112当你有足够的声望去投票时,你可以随时回来