Python 程序根本不运行
我正在努力完成这项挑战: 编写一个程序,允许用户输入在 编程类(0-100)。如果用户得分为100,则通知 用户表示他们得到了满分 ★ 修改程序,以便如果用户得分为90-100,它会通知 用户表示他们得了A ★★ 修改程序,以便将其信件通知用户 等级0-59 F 60-69 D 70-79 C 80-89 B 90-100 A 到目前为止,我尝试的是: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
#!/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当你有足够的声望去投票时,你可以随时回来