我制作了这个控制台应用程序,它可以工作...但只有当您在输入中输入较小的数字时,如"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相关问答推荐

仿制药的类型铸造

为什么带有dropna=False的groupby会阻止后续的MultiIndex.dropna()工作?

Stacked bar chart from billrame

我如何根据前一个连续数字改变一串数字?

多处理队列在与Forking http.server一起使用时随机跳过项目

Python中的变量每次增加超过1

如何从需要点击/切换的网页中提取表格?

Python全局变量递归得到不同的结果

计算空值

语法错误:文档. evaluate:表达式不是合法表达式

在电影中向西北方向对齐""

将CSS链接到HTML文件的问题

如何将返回引用的函数与pybind11绑定?

Django.core.exceptions.SynchronousOnlyOperation您不能从异步上下文中调用它-请使用线程或SYNC_TO_ASYNC

我如何处理超类和子类的情况

如何在Polars中创建条件增量列?

.awk文件可以使用子进程执行吗?

是否需要依赖反转来确保呼叫方和被呼叫方之间的分离?

利用广播使减法更有效率

为什么fizzbuzz在两个数字的条件出现在一个数字的条件之后时不起作用?