Python简单的for循环问题

时间:2016-04-22 19:28:30

标签: python

目前正在学习python。通常是一个C ++人。

if wallpaper == "Y":
    charge = (70)
    print ("You would be charged £70")
    wallpaperList.append(charge)

elif wallpaper == "N" :
    charge = (0)

else:
    wallPaper ()

surfaceArea
    totalPapers = 0
    for item in range (len(wallpaperList)):
        totalPapers += wallpaperList[item]

我正在尝试为if语句执行for循环。

在c ++中,这只是一个简单的

for (I=0; i<pRooms; i++){
}

我试图在for循环中添加上面的代码,但我似乎失败了。

由于

2 个答案:

答案 0 :(得分:4)

Python循环迭代迭代中的所有内容:

for item in wallpaperList:
        totalPapers += item

在现代C ++中,这类似于:

std::vector<unsigned int> wallpaperList;

// ...

for(auto item: wallpaperList) {
    totalPapers += item
}

您也可以使用sum功能:

cost = sum(wallpaperList)

如果每次充电都是70,为什么不进行乘法?

while wallPaper == 'Y':
    # ...

    # Another satisfied customer!
    i += 1

cost = i * 70

答案 1 :(得分:2)

对于for循环的完全等效内容,请使用range

for (i=0; i<pRooms; i++){   # C, C++
}

for i in range(pRooms):     # Python
    ...

两个循环遍历值0pRooms-1。但python为您提供了其他选择。您可以在不使用索引的情况下迭代列表的元素:

for room in listOfRooms:
    if room.wallpaper == "Y":
        ...

列表理解也很好。如果您不关心代码中的print调用,则可以使用以下内容计算成本:

totalPapers = sum(70 for room in listOfRooms if room.wallpaper == "Y")