我正在努力完成这项挑战:
编写一个程序,允许用户输入评分为a的分数 编程类(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
该计划根本没有运行。
答案 0 :(得分:1)
程序确实运行,但是没有生成任何输出,因为实际上是在比较函数和列表,所以if
语句都不适用。您的代码存在一些问题:
a
是用于生成随机数的函数,而不是随机数本身。删除lambda:
,或调用a()
并将结果分配给某个变量。a = int(raw_input())
a
是否在范围内,请使用in
关键字,即if a in range(90, 99)
或更好(效率更高),使用if 90 <= a < 100
< / LI>
醇>
答案 1 :(得分:0)
在这种情况下,type(a)
是function
- 所以@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
答案 2 :(得分:0)
首先a
是一个函数,所以你不应该尝试将它与数字进行比较。调用该函数并将其分配给变量。 grade = a();
其次,您可以检查某个数字是否在number > lower and number < upper
您还可以使用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"