学python第二十三弹 嵌套循环-计算卡路里

学python第二十三弹 嵌套循环-计算卡路里

计算卡路里

因为现在都关心营养问题,我们计算上一弹中都的卡路里问题,现在需要的就是每一项的卡路里数,然后可以在最内层循环中把每一项的卡路里数加起来。
下面的代码设置了每一项有多少卡路里:

dog_cal = 140
bun_cal = 120
mus_cal = 20
ket_cal = 80
onion_cal = 40

我们只需要把每一个选择的卡路里加起来,因为我们每个菜单的组合项加起来,所以我们直接将数量乘以每一项的卡路里。如下:

tot_cal = (dog*dog_cal) + (bun* bun_cal) + \
               (mustard * mus_cal) + (ketchup * ket_cal) + \
               (onion*onion_cal)

反斜杠 \ 的作用是,在一个很长的语句中,在一行里放不下,就使用反斜线字符来告诉python ,这一行还没有结束,下一行的内容也是这一行的一部分。

# 程序清单11-7 计算卡路里的热狗程序
dog_cal = 140
bun_cal = 120
mus_cal = 20
ket_cal = 80
onion_cal = 40
# 列出热狗各部分的卡路里
print('\tDog \tBun \tKetchup \tMustard \tOnions \tCalories')
count = 1
for dog in [0,1]:
    for bun in [0,1]:
        for ketchup in [0,1]:
            for mustard in [0,1]:
                for onion in [0,1]:
                    total_cal = (dog*dog_cal) + (bun* bun_cal) + \
                        (mustard * mus_cal) + (ketchup * ket_cal) + \
                         (onion*onion_cal)
                    print('#' ,count, '\t',end=' ')
                    print(dog, '\t', bun, '\t',ketchup, '\t',end=' ')
                    print(mustard, '\t',onion,end=' ')
                    print('\t',total_cal)
                    count = count +1

结果如下:

>>> 
================ RESTART: D:/资料/study/learn python/计算卡路里热狗程序.py ================
	Dog 	Bun 	Ketchup 	Mustard 	Onions 	Calories
# 1 	 0 	 0 	 0 	 0 	 0 	 0
# 2 	 0 	 0 	 0 	 0 	 1 	 40
# 3 	 0 	 0 	 0 	 1 	 0 	 20
# 4 	 0 	 0 	 0 	 1 	 1 	 60
# 5 	 0 	 0 	 1 	 0 	 0 	 80
# 6 	 0 	 0 	 1 	 0 	 1 	 120
# 7 	 0 	 0 	 1 	 1 	 0 	 100
# 8 	 0 	 0 	 1 	 1 	 1 	 140
# 9 	 0 	 1 	 0 	 0 	 0 	 120
# 10 	 0 	 1 	 0 	 0 	 1 	 160
# 11 	 0 	 1 	 0 	 1 	 0 	 140
# 12 	 0 	 1 	 0 	 1 	 1 	 180
# 13 	 0 	 1 	 1 	 0 	 0 	 200
# 14 	 0 	 1 	 1 	 0 	 1 	 240
# 15 	 0 	 1 	 1 	 1 	 0 	 220
# 16 	 0 	 1 	 1 	 1 	 1 	 260
# 17 	 1 	 0 	 0 	 0 	 0 	 140
# 18 	 1 	 0 	 0 	 0 	 1 	 180
# 19 	 1 	 0 	 0 	 1 	 0 	 160
# 20 	 1 	 0 	 0 	 1 	 1 	 200
# 21 	 1 	 0 	 1 	 0 	 0 	 220
# 22 	 1 	 0 	 1 	 0 	 1 	 260
# 23 	 1 	 0 	 1 	 1 	 0 	 240
# 24 	 1 	 0 	 1 	 1 	 1 	 280
# 25 	 1 	 1 	 0 	 0 	 0 	 260
# 26 	 1 	 1 	 0 	 0 	 1 	 300
# 27 	 1 	 1 	 0 	 1 	 0 	 280
# 28 	 1 	 1 	 0 	 1 	 1 	 320
# 29 	 1 	 1 	 1 	 0 	 0 	 340
# 30 	 1 	 1 	 1 	 0 	 1 	 380
# 31 	 1 	 1 	 1 	 1 	 0 	 360
# 32 	 1 	 1 	 1 	 1 	 1 	 400

你学到了什么

在这一弹 ,我们学到了以下内容
1 嵌套循环
2 可变循环
3 排列和组合

测试题

1 python 中如何建立可变循环?
2 python 中如何建立嵌套循环?
3 下面的代码总共会打印出多少个※号:

for i in range(5):
    for j in range(3):
        print('*',end=' ')
    print( )

4 第3题中的代码会得到什么输出?
5 如果一个决策树有4 层,每层有两个选择,共有多少种可能的选择(决策树有多少条路径)?

动手试一试

1 还记得以前创建的倒计时定时器程序吗?

#程序清单8-6 你准备好了吗
import time
for i in range(10,0,-1):
    print(i)
    time.sleep(1)#等待一秒
print('开始')

使用一个可变的循环修改程序,这个程序要询问用户向下计数应当从哪里开始,比如:

倒计时器:需要多少秒?:4
4
3
2
1
开始

2 根据第1 题写的程序,让它除了打印各个数之外还要打印一行星号,如下:

倒计时器:需要多少秒?:4
4    *    *    *    *
3    *    *    *
2    *    *
1    *
开始

(提示,可能需要一个嵌套循环)

你可能感兴趣的:(python)