当前位置: 首页 > 知识库问答 >
问题:

为什么我的程序没有运行第一个while循环?

伏默
2023-03-14

我想写一个计算长除法问题总进位的代码。这是我为carries编写的函数。我相信问题在于,第一个while循环并没有一直运行。如果是,为什么?这是在Python 3.5中实现的。

carries = 0
sum1 = 0
countx = str(x)
county = str(y) 
countx1 = len(countx)
county1 = len(county)
countx2 = int(countx1)
county2 = int(county1)
carry_over = 0
count = countx1
index = 1
index1 = 1
carrieslist = [0,0,0,0,0,0,0,0,0,0]
while (index1 <= county1):
    sum3 = county[-index1]
    while (index <= count):
        sum2 = countx[0-index]
        sum4 = int(sum2)
        sum5 = int(sum3)
        sum1 = sum4*sum5+carry_over
        sum6 = str(sum1)
        index = index+1
        if (sum1 > 9):
            carries += 1
            carry_over = int(sum6[0])
            if carry_over > 0:
                if carry_over == 1:
                    carrieslist[1] += 1
                if carry_over == 2:
                    carrieslist[2] += 1
                if carry_over == 3:
                    carrieslist[3] += 1
                if carry_over == 4:
                    carrieslist[4] += 1
                if carry_over == 5:
                    carrieslist[5] += 1
                if carry_over == 6:
                    carrieslist[6] += 1
                if carry_over == 7:
                    carrieslist[7] += 1
                if carry_over == 8:
                    carrieslist[8] += 1  
                if carry_over == 9:
                    carrieslist[9] += 1
        else:
            carry_over = 0
    index1 = index1 + 1
print(" ")
print("Carries:",carries)
print(" ")
if sum(carrieslist) > 0:
    print("Carry digit --> Frequency")
countlist = 0
indexlist = 0
while (countlist < len(carrieslist)): 
    if (carrieslist[indexlist] > 0):
        print(indexlist,"-->",carrieslist[indexlist])
        indexlist += 1
        countlist += 1
    else:
        indexlist += 1
        countlist += 1

共有1个答案

蔡明贤
2023-03-14

我发现了问题所在。只需在外部while循环中初始化变量index=1,如下所示。

while (index1 <= county1):
    sum3 = county[-index1]
    index = 1
    while (index <= count):
        sum2 = countx[0-index]
        sum4 = int(sum2)
        ................
        ................

请改进您的编码风格,使代码更具可读性。我花了很多时间才发现问题所在,因为很难理解你在每一份声明中都写了些什么。

 类似资料:
  • 我目前有一个问题,一个'而'循环不执行。如果输入文本文件有下一行,我将循环条件设置为true。然而,当我执行我的程序时,循环没有运行。我通过添加一个“System.out.println(text)”来确认这一点,正如我所怀疑的,没有产生任何文本。 什么问题导致循环无法执行?

  • 这是我试图解决的问题。 “墨西哥人口为6200万,正以7%的年增长率增长。美国目前的人口为2.8亿,正以2%的年增长率增长。如果这两个国家要保持目前的增长率,墨西哥人口将在多少年内超过美国的一半?你的计划应该回答这个问题。” 好的,这就是我目前掌握的代码。当我运行程序时,我得到了这个错误。 不太确定如何修复它。有人能帮忙吗?:/ 编辑 对于任何想知道我最终让代码工作的人。这是代码。 导入java.

  • 尝试编写一个程序,其中用户输入他们一周的费用。麻烦在于我希望程序重新询问用户是否输入了不可接受的输入。我想出了如何检测负值的方法,但是当尝试捕获输入不匹配异常(如果像输入字符或字符串一样)时,循环只是无限运行,要求“星期一费用:”我如何使它,以便用户有另一个回答的机会?我试着Rest一下;但是这也打破了做而循环,我不想要。 这是我目前为止的代码: 谢谢你的帮助

  • 我想我的程序跳过了while循环,但我真的不确定到底发生了什么。该函数应该通过找到GCD,然后将分子和分母除以该数字来减少分数。 我得到分子和分母的绝对值,以确保如果分数是负数,我会在最后保持它。如果分子为0,则要求我返回(0,1)。问题是关于while循环。。。似乎它被完全跳过了。有什么建议吗?

  • 我正在构建一个gradebook来存储学生和教师,每个学生和教师都有一个唯一的ID,以及他们各自在Student和Teacher对象的ArrayList中注册或教学的类。我有文件夹路径“j:/compsci/类/”,为每个类存储一个文本文件。 文本文件格式: 第1行:班级名称、教师ID、期间、荣誉?、班级ID 第2行:班级中每个学生的学生ID(用逗号分隔)。 在这里,我初始化了每个学生正在接受的所

  • 当我像这样做一个常规的while循环时 它打印 但第二个while循环在满足条件后再次运行。 所以结果是 “佛罗多是一个很好的霍比特人的名字”难道它不应该停止印刷吗 我设置了x的条件 编辑:哦,我现在明白了,哈哈,我想增量是在代码的末尾,开始是0