我制作了这个控制台应用程序,它可以工作...但只有当您在输入中输入较小的数字时,如"ifrom"中的1、"step"中的2和"to"中的3...但是,当我在"to"中输入更大的数字时,例如100,它什么也不做!!!它甚至没有给我任何错误!

print("---Average2---"+"\n")

sum=0
average=0
counter=0

while True:
    ifrom=int(input("From: "))
    step=int(input("Step: "))
    to=int(input("To: "))
    while sum<=to:
        sum=ifrom+step
        counter+=1
        if sum==to:
            print("\n"+"The sum is: ",sum)
            average=sum/counter
            print("The average is: ",average,"\n")
            sum=0
            average=0
            counter=0
            break

推荐答案

这种行为有两个原因

  1. 您不断地添加sum = ifrom + step,这是一个常量值(在您的示例中为1 + 2 = 3).所以在每个循环迭代中,你的和将是3,永远不会达到sum = ifrom + step
  2. 即使解决了第一个问题,示例sum变量也将是1, 3, 5, ..., 99, 101, ....您正在判断sum是否为sum,而程序没有执行任何操作,因为它将变为sum.

可能的解决方案:

  • 使用范围语法(推荐-您可以使用this解决方案)

  • 判断变量是否达到100(而不是判断它是否等于100),如下所示:

print("---Average2---"+"\n")

average=0
counter=0
tmp=0

while True:
   ifrom=int(input("From: "))
   step=int(input("Step: "))
   to=int(input("To: "))
   tmp = ifrom
   sum = tmp
   while tmp<=to:
       tmp+=step
       sum+=tmp
       counter+=1
       if tmp>=to:
           if tmp>to:
             sum-=tmp
           print("\n"+"The sum is: ",sum)
           average=sum/counter
           print("The average is: ",average,"\n")
           sum=0
           average=0
           counter=0
           break

Python相关问答推荐

多个矩阵的加权和

如何根据从另一列之间 Select Pandas 数据框中的行

连接几个Pandas 数据框

我在 python 中执行循环时遇到问题

如何将Pandas 数据框中的多列统一为多索引?

Python BeautifulSoup - 使用

之间的 html 标签创建数据框

numpy数组迭代的优化

getCacheEntry 失败:缓存服务以 503 响应

从 pandas 数据框中 Select 具有多个条件的非 NaN 行

将函数参数数据类型修复为数据框 python

np.take 从 3D 矩阵给定的第二维索引

将空列表附加到 numpy 数组会更改其 dtype

tensorflow 和训练中自定义 LSTM 层的奇怪内存使用被杀死

Numpy:如何将单个数组堆叠成更大数组的每一行并将其变成二维数组?

Numpy 以不同的方式生成伯努利试验(或为不同的行随机 Select 不同的 p)

为什么使用 time.time() 测量执行时间每次返回不同的结果?

Pandas groupby 表示不在日期时间列上工作

Matplotlib:如何绘制标准偏差?

从列表中删除 NOT 重复值

如何在 Databricks Delta Live 表上使用 Apache Sedona?