用python循环帮皇帝选妃


在古代,皇帝后宫佳丽三千,这么多的妃子可都是皇帝从众多秀女中一个个选出来的,今天我们来用python模拟帮皇帝选妃。


程序的循环可以处理大量的重复性工作,这是程序一个很重要的优势,在python中主要有两种循环方式,一个是 for 循环,一个是 while 循环,这两个循环都能实现相同的效果,只是用法有些不一样。


先来看下 for 循环的结构以及一个简单例子。for 循环主要用来遍历list数组、dict字典中的元素。


# for in 循环结构 # list 为数组或字典,x即为数组或字典中的元素 for x in list:
    print('这里会输出数组中的元素') 

feizi = ['孝贤纯皇后','皇后辉发那拉氏','孝仪纯皇后','慧贤皇贵妃','纯惠皇贵妃','淑嘉皇贵妃','庆恭皇贵妃']

print('乾隆的妃子有:') for x in feizi:    
    print(x) 


再来看下 while 循环的结构和例子。while 也很简单,就是只要满足条件就一直循环执行,直到当不再满足条件就结束。


while True:
    print('只要满足上面的条件,我就会一直有输出') 

sum = 0 n = 100 print('我要一口气算出 1到100之间所有整数之和') while n > 0:
    sum = sum + n
    n = n - 1 print(sum) 


在 python 循环中,还有两个关键字可以对循环进行特殊控制,一个是 break ,break 可以直接控制程序终止循环。另一个 continue ,continue则可以控制结束当前本次循环,即该循环下面的语句不再循环,直接进入下一次循环了。我们下面将使用一个皇帝选妃的例子来详细解释下。


# 这个数组代表每个秀女 源码来自公众号:谭某人 xiunv = [{'name':'秀女A''age':'20''height':'160'}, {'name':'秀女B''age':'19''height':'158'}, {'name':'秀女C''age':'23''height':'165'}]
count = 0 for x in xiunv:    
    if int(x['age']) > 22#如果年龄大于22 则直接淘汰不考虑,即循环下一个秀女         print('年龄太大了,直接下一个')
        continue     if int(x['height']) < 155#如果身高低于155 则直接淘汰不考虑,即循环下一个秀女         print('身高不够,直接下一个')
        continue     count += 1     if count > 5#皇帝本次只选5名秀女,如果已到5名就直接终止循环结束程序         print('已经选满了,不选了')
        break 


最后需要一点的是,循环虽然好用,但是一定要注意避免写成了死循环。

关键词: python

网友留言(0条)

发表评论