对于使用If和elif或者在python中的循环

时间:2016-02-05 17:22:54

标签: python

问题1:

刚尝试执行该程序,但我收到语法错误

i=input('Enter the value of i')
for j in range(10):
    if i==j:
        print'The value of i is %d'%(i)
        elif i!=j:
            print'Please enter a valid value'
            else:
                print 'This is not a number'

3 个答案:

答案 0 :(得分:0)

以下两个代码之间的区别在于代码1要求输入一次然后循环尝试比较,而代码2将要求输入每个循环(10x)......

答案 1 :(得分:0)

如果你的代码在你把它放在这里时真的缩进了,你得到语法错误的原因是你的elifelse块缩进太多了。您的代码的另一个问题是i可以等于或不等于j。没有第三种选择。另一个问题是,第一次遇到与数字类型不相等的数字时,会说它不是有效值。另外,只要说“请输入有效值”就不会这样。这是代码的更好版本:

i = None
while True:
    i = input("Enter the value of i")
    if i.isdigit():
        if int(i) in range(10):
            print "The value of i is %d" % i
        else:
            print "Please enter a valid value"
    else:
        print "This is not a number"

对于问题2,两者之间的区别在于,在第一个中,i=input('Enter the value of i')将在循环之前执行,而在第二个中,它将在循环的每次迭代中执行。 (也就是说,每次循环执行一次。因为range(10)返回十个项目,它会运行十次。)更多关于for循环herehere,和here

答案 2 :(得分:0)

由于代码中的缩进级别不一致,您似乎遇到语法错误。请尝试以下方法并调整程序以满足您的任何需求。

#! /usr/bin/env python3
import sys


def main():
    loop = True
    while loop:
        try:
            i = int(input('Enter of the value of i: '))
        except EOFError:
            sys.exit()
        except ValueError:
            print('This is not a number')
        else:
            if 0 <= i <= 9:
                print('The value of i is', i)
                loop = False
            else:
                print('Please enter a valid value')


if __name__ == '__main__':
    main()