为什么我的代码不能用于else语句?

时间:2013-04-12 21:15:49

标签: python if-statement

任何人都可以帮我处理我的代码。 我写了一个小程序,以便我可以学习一些函数和正在发生的事情。 让我告诉你我的代码。

print "Hello student need help multiplying by any mutiplicaton"
student = raw_input("If so then tell me which ones? => ").lower()
for i in range(0, 11):
    if student == str(0):
       i_num = 0 * i
       print "0 times %d equals %d" % (i,i_num)
    elif student == str(10):
       i_num = 1 * 1
       print "1 times %d equals %d" % (i,i_num)
else:
    print "Try this program when you can't figure it out your multiplications."

如果学生输入的内容与if语句无关,则会打印其他内容。但是,如果学生输入str(1),它会打印乘法,并且还会打印出我不希望发生的代码问题。谁能帮我。 我只是想学习if和elif以及所有这些的功能。

3 个答案:

答案 0 :(得分:1)

else当前设置为在成功完成for循环时运行,查看缩进。如果你在循环中移动它一切正常。您的代码确实包含一些语法错误。

修正了您的程序版本:

print "Hello student need help multiplying by any mutiplicaton"
student = raw_input("If so then tell me which ones? => ") # no need for lower()
for i in range(0, 11):
    if student == '0':
        i_num = 0 * i
        print "0 times %d equals %d" % (i,i_num)
    elif student == '1':
        i_num = 1 * 1
        print "1 times %d equals %d" % (i,i_num)
    else:
        print "Try this program when you can't figure it out your multiplications."

但乘法很容易,所以为什么不这样做呢:

print "Hello student need help multiplying by any mutiplicaton"
num = int(raw_input("If so then tell me which ones? => "))
for i in range(0, 11):
    print "%d times %d equals %d" % (num, i, i * num)

答案 1 :(得分:0)

你错过了一个)这里:

elif student == str(10):

答案 2 :(得分:0)

def isAnInt(s):
   try: 
      int(s)
      return True
   except ValueError:
    print "You must enter a number"


print "Hello student need help multiplying by any mutiplicaton"
student = raw_input("If so then tell me which ones? => ")
if(isAnInt(student)):
  number_to_calc = int(student)
  for i in range(0,11):
    i_num = number_to_calc * i
    print "%d times %d equals %d" % (number_to_calc, i, i_num)