在python中如何在for循环下使用两个不同的循环

在python中如何在for循环下使用两个不同的循环,python,csv,python-3.x,Python,Csv,Python 3.x,我们必须计算excel工作表中每行第2列中出现的大于130的数字和小于-70的数字的次数,并将其保存为csv文件。我需要一个循环,但上面已经有一个循环,用于计算行中的不同列。我似乎无法得到一个循环所有行[4]并将其计算为一个变量的代码。这是我的密码 import csv import os total = 0 count = 0 ring = 0 column = [] with open("2.5_week.csv") as source: rdr = csv.reader(sourc

我们必须计算excel工作表中每行第2列中出现的大于130的数字和小于-70的数字的次数,并将其保存为csv文件。我需要一个循环,但上面已经有一个循环,用于计算行中的不同列。我似乎无法得到一个循环所有行[4]并将其计算为一个变量的代码。这是我的密码

import csv
import os
total = 0
count = 0
ring = 0
column = []
with open("2.5_week.csv") as source:
    rdr = csv.reader(source, delimiter=',')
    next(rdr, None) # to skip the header

    for row in rdr:
        if float(row[4]):
            total = total + float(row[4])
            count = count + 1  
        while (float(row[2]) >= 130 and float(row[2]) <= -70):
            ring = ring + 1
            print(ring)
        percent = (ring/count) * 100
        ave = total / count
    print (ave, percent)
导入csv
导入操作系统
总数=0
计数=0
环=0
列=[]
以open(“2.5_week.csv”)作为源代码:
rdr=csv.reader(源,分隔符=',')
下一步(rdr,无)#跳过标题
对于rdr中的行:
如果浮动(第[4]行):
总计=总计+浮动(第[4]行)
计数=计数+1

while(float(row[2])>=130和float(row[2])条件
float(row[2])>=130和float(row[2])=130是真的,但是
230=130或float(row[2])您的while循环的计算结果可能不是真的。没有大于130也小于-70的数字。您的条件永远不会是真的。(如果条件为真,while循环也将永远运行,因为您从未更改其中第[2]行的值…)是的,那就可以了。好消息是,虽然循环从来都不是真的,因为如果它是真的,它将永远运行,因为
行的值在循环中永远不会更改。确定你不只是想要
如果存在?循环永远不会被跳过。总是会发生求值。它可能会跳过循环语句,但条件是always检查“for”的每次迭代为什么你认为没有大于130的数字?那么如果数字是150会发生什么?没有输入
while
循环,因为条件
150>=130
匹配,但是
150@JessyWhite很高兴我能帮上忙:)
while (float(row[2]) >= 130 or float(row[2]) <= -70) #or instead of and