我尝试从http://www.cplusplus.com/forum/articles/12974/
进行第一次作业g = int(raw_input('Enter the grade you scored: '))
if g >= 90 & g <= 100:
print 'Your grade is: A'
elif g >= 80 & g < 90:
print 'Your grade is: B'
elif g >= 70 & g < 80:
print 'Your grade is: C'
elif g >= 60 & g < 70:
print 'Your grade is: D'
elif g >= 50 & g < 60:
print 'Your grade is: E'
elif g >= 0 & g <= 49:
print 'Your grade is: F'
else:
print 'You can only enter an integer within the range of 0-100.'
问题是每当我运行这个程序时,我输入的任何大于0的数字都会得到:
你的成绩是:A
任何帮助非常感谢。谢谢!
答案 0 :(得分:3)
Bi Rico的回答简单而正确。进一步解释这一情况:
&
运算符计算两个整数的按位AND。例如,5 & 3 == 1
。&
的优先级高于比较运算符(例如<
和>=
)。因此a < b & c < d
实际上意味着a < (b & c) < d
。a < b == c >= d
会转换为a < b and b == c and c >= d
。将这些事实放在一起,这就是运行程序时会发生的事情:
g
被分配了0
和100
之间的整数值,包括在内。g >= 90 & g <= 100
表示(g >= (90 & g)) and ((90 & g) <= 100)
。(a & b <= a) and (a & b <= b)
)。90 & g <= g
总是如此。同样,90 & g <= 100
始终为真,因为90 <= 100
。答案 1 :(得分:0)
你有他们的代码,但语法在Python中非常重要。你想要使用和你拥有的地方和像这样:
g = int(raw_input('Enter the grade you scored: '))
if g >= 90 and g <= 100:
print 'Your grade is: A'
elif g >= 80 and g < 90:
print 'Your grade is: B'
elif g >= 70 and g < 80:
print 'Your grade is: C'
elif g >= 60 and g < 70:
print 'Your grade is: D'
elif g >= 50 and g < 60:
print 'Your grade is: E'
elif g >= 0 and g <= 49:
print 'Your grade is: F'
else:
print 'You can only enter an integer within the range of 0-100.'
这将以正确的方式显示您需要的内容。
答案 2 :(得分:-1)
使用正确的关键字始终很重要,因为某些事情可能会导致错误。使用而不是&amp;。