【问题标题】:Iterating through an integer in python using a For Loop, Logic Error使用For循环遍历python中的整数,逻辑错误
【发布时间】:2020-12-18 06:23:09
【问题描述】:

您好,我正在尝试遍历一个整数并打印出其基于 50 的范围。我已经设法完成了任务,但它仅适用于不能被 50 整除的数字。请参见下面的示例。我知道我的逻辑在某处是不正确的,任何帮助查看它不正确的地方都会受到欢迎。

代码:

catNum = 244
rangeNum = catNum
counter =0 
for i in range(catNum):
   
    if(counter != 0):
      catNum = rangeNum
      catNum = catNum -1

    rangeNum = rangeNum - 50

    if(rangeNum < 0):
        rangeNum = 0 
        rangeSet = ("%s-%s"%(rangeNum, catNum ))
        print(rangeSet)
        break 
    
    counter +=1
    rangeSet = ("%s-%s"%(rangeNum, catNum ))
    print(rangeSet)

输出:(正确)

194-244
144-143
94-93
44-43
0-43

但如果 catNum 可以被 50 整除,例如 300 输出:(不正确)

250-300
200-249
150-199
100-149
50-99
0-49
0--1

预期:

250-300
200-249
150-199
100-149
50-99
0-49

如果我的逻辑不正确,我们将不胜感激

【问题讨论】:

  • 我不明白那里的逻辑。在您的预期输出中,有些范围包含 50 个数字 (250-300),而有些则包含 49 个 (150-199)。
  • 第一次迭代50次,其余49次

标签: python for-loop integer


【解决方案1】:

catNum 也是负数。你也应该为 catNum 添加一个条件。使用下面的代码

catNum = 300
rangeNum = catNum
counter =0 
for i in range(catNum):
    if(counter != 0):
      catNum = rangeNum -1

    rangeNum = rangeNum - 50
    if(rangeNum < 0):
        if catNum <= 0:
            break
        rangeNum = 0 
        rangeSet = ("%s-%s"%(rangeNum, catNum ))
        print(rangeSet)
        break 
    else:
        counter +=1
        print( "%s-%s"%(rangeNum, catNum ) )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-11
    • 2019-01-15
    • 2014-05-04
    • 2020-09-23
    • 1970-01-01
    相关资源
    最近更新 更多