【问题标题】:For loop with If and elif or else in python在python中使用if和elif或else进行for循环
【发布时间】:2016-05-15 18:33:29
【问题描述】:

问题一:

刚刚尝试执行程序,但出现语法错误

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'

【问题讨论】:

  • 请正确格式化您的代码,每个帖子只问一个问题。
  • 如果您的代码确实是这样缩进的,这就是您收到 SyntaxError 的原因。 elifelse 应该与 if 对齐
  • "i am getting syntax error" - 实际上查看错误将是一个伟大的地方开始。 "What is the difference between the below to codes" - 第一个示例中的第 1 行移至第二个示例中的第 2 行。
  • @AndreaCorbellini 我不这么认为它的缩进问题。

标签: python


【解决方案1】:

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

#! /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()

【讨论】:

    【解决方案2】:

    如果您的代码确实像您在此处放置的那样缩进,那么您收到语法错误的原因是您的 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 循环hereherehere

    【讨论】:

      【解决方案3】:

      下面两个代码的区别是代码一会要求输入一次然后循环尝试比较,而代码二会要求输入每个循环(10x)...

      【讨论】:

        猜你喜欢
        • 2017-07-03
        • 1970-01-01
        • 2017-11-27
        • 1970-01-01
        • 2017-05-03
        • 2018-09-09
        • 2020-04-17
        • 2021-10-31
        • 2012-10-15
        相关资源
        最近更新 更多