第五部分 循环¶
In [ ]:
# for 循环
city = ['北京', '上海', '广州', '深圳','成都', '天津', '重庆','西安']
for i in city:
print(i+'市')
In [ ]:
for i in [1,2]:
print(i)
for number in [1,2]:
print(number)
for LOVE in [1,2]:
print(LOVE)
In [ ]:
for i in [1,2,3,4,5]:
print(i)
print('循环完毕')
print(i)
In [ ]:
dict = {'小明':180,'小张':170,'小狗':60}
for i in dict:
print(i)
#哪些可以放入循环?
In [ ]:
a = {'小明':180,'小张':170,'小狗':60}
b = [1,2,3,4,5]
c = '西华大学'
d = 5
for i in a:
print(i)
In [ ]:
a = '100'
b = '0.01'
for i in a:
print(i)
for i in b:
print(i)
- 复习第四部分遍历字典
In [ ]:
city = ['北京', '上海', '广州', '深圳','成都', '天津', '重庆','西安']
for i in city:
print(i+'市')
In [ ]:
city = ('北京', '上海', '广州', '深圳','成都', '天津', '重庆','西安')
for i in city:
print(i+'市')
In [ ]:
city = {'北京', '上海', '广州', '深圳','成都', '天津', '重庆','西安'}
for i in city:
print(i+'市')
In [ ]:
#遍历字典
scores = {'小明':'黄小明','小红':'李小红','小刚':'陈小刚'}
for i, j in scores.items():
print("\nkey:"+i)
print("\nvalue:"+j)
In [ ]:
#遍历键
scores = {'小明':'黄小明','小红':'李小红','小刚':'陈小刚'}
for i in scores.keys():
print("\n"+i)
In [ ]:
#默认
scores = {'小明':'黄小明','小红':'李小红','小刚':'陈小刚'}
for i in scores:
print("\n"+i)
In [ ]:
scores = {'小明':'黄小明','小红':'李小红','小刚':'陈小刚'}
for i in scores:
print("\n"+scores[i])
In [ ]:
scores = {'小明':'黄小明','小红':'李小红','小刚':'陈小刚'}
for i in scores.values():
print("\n"+i)
In [ ]:
##重复怎么办? 如何取消重复
scores = {'小明':99,'小红':70,'小刚':99}
for i in scores.values():
print(i)
range() 函数
In [ ]:
for i in range(3):
print(i)
for i in range(13,17):
print(i)
# 取头不取尾
In [ ]:
for i in range(3):
print('我很棒')
In [ ]:
import time
print('请输入登录密码!')
time.sleep(2)
password='123456'
for i in range(3):
answer=input('请将对应数字输入在冒号后: ')
if answer==password:
print('登录成功')
else:
print('输入错误')
In [ ]:
for i in range(0,10,3):
print(i)
[练习]
- 请你用for循环完成1到100的整数分别乘以5的计算,并打印出来
- 求1+100
[练习]
把字典的值,依次打印出来
In [ ]:
d = {'名字':'小飞侠','职业':'战士','攻击力':100,'敏捷':20}
In [ ]:
# while循环
a = 0
while a < 5:
a = a + 1
print(a)
In [ ]:
you = ''
while you != '会了':
you = input('本堂课你学会了吗?请回答:“会了”or“没有”')
print('可以下课啦~')
In [ ]:
password = ''
while password != '123456':
password=input('请尝试输入密码:')
print('欢迎回家!')
[练习]
- 请你用while循环完成1到100的整数分别乘以5的计算,并打印出来
所以说,当我们【工作量确定】的时候,我们就可以让for循环来完成重复性工作。反之,要【工作量不确定时】可以让while循环来工作:
[练习]
循环打印数字1-7,但跳过4这个数字。
用for 和 while 分别实现
[练习]
轮流当第一位,每次换位,第一位变第三位,后面两位都往前一位。
[练习]
- 只要输入经济学家名,就打印出:××主要思想是××
In [ ]:
dic = {
'新制度经济学':['科斯','张五常'],
'货币学派':['弗里德曼','安德森'],
'因果推断':['卡德','安格雷斯','伊本斯'],
}
while是循环语句,只要条件判断为真,就一直循环执行。
这个“判断”的过程,在计算机的世界里是如何发生的呢?
布尔值 True和False
In [ ]:
print(1<2)
print(1>2)
print('西华'=='清华')
print('西华'!='清华')
In [ ]:
while False:
print('结束')
In [ ]:
while 1>2:
print('结束')
In [ ]:
while True:
print('结束')
In [ ]:
if False:
print('if False')
if True:
print('if True')
In [ ]:
if 1:
print('成都')
- 只有以下是假:False、0、''、[]、{}、None
In [ ]:
print('以下数据判断结果都是【假】:')
print(bool(False))
print(bool(0))
print(bool(''))
print(bool(None))
print('以下数据判断结果都是【真】:')
print(bool(True))
print(bool(1))
print(bool('abc'))
布尔运算 and、or、not、in、not in
In [ ]:
a = 1
b = -1
print('以下是and运算')
if a==1 and b==1:
print('True')
else:
print('False')
print('以下是or运算')
if a==1 or b==1: # 【b实际上是-1】
print('True')
else:
print('False')
#and 1假即为假 or 1真即为真
In [ ]:
dict = {'法国':'巴黎','日本':'东京','中国':'北京'}
a = '法国'
print(bool(a in dict))
In [ ]:
i = 1
while i<101 :
print('把这句话打印100遍')
i = i+1
In [ ]:
i = 100
while i:
print('把这句话打印100遍')
i = i-1
循环中断等语句
In [ ]:
for i in range(5):
print('明日复明日')
if i==3:
break
In [ ]:
i = 0
while i<5:
print('明日复明日')
i = i+1
if i==3:
break
In [ ]:
while True:
a = input('请输入密码:')
if a == '123456':
break
print('开门~')
In [ ]:
for i in range(5):
print('明日复明日')
if i==3: # 当i等于3的时候触发
continue # 回到循环开头
print('这句话在i等于3的时候打印不出来')
# continue语句搭配while循环
i = 0
while i<5:
print('明日复明日')
i = i+1
if i==3: # 当i等于3的时候触发
continue # 回到循环开头
print('这句话在i等于3的时候打印不出来')
In [ ]:
[练习]
乡亲角
1.30岁以下
2.大学本科以上
3.无不良爱好
In [ ]:
a = int(input('请输入一个整数:'))
if a >= 100:
pass
else:
print('你输入了一个小于100的数字')
In [ ]:
a = int(input('请输入一个整数:'))
if a >= 100:
else:
print('你输入了一个小于100的数字')
In [ ]:
for i in range(5):
a = int(input('请输入0来结束循环,你有5次机会:'))
if a == 0:
print('你触发了break语句,循环结束,导致else语句不会生效。')
break
else:
print('5次循环你都错过了,else语句生效了。')
In [ ]:
a = 1
while a < 6:
b = int(input('请输入0结束循环,你有5次机会:'))
if b == 0:
print('你触发了break语句,导致else语句不会生效。')
break
a = a + 1
else:
print('5次循环你都错过了,else语句生效了。')
[练习]
猜大小游戏
[练习]
抽样调查程序。同时访问2个人,A和B,只有当两人同时回答喜欢,才结束程序。
否则,继续问下一个两人。
注意:需要统计问了几组人,程序才结束。也即是说每一次的问答需要记录下来。
[练习]
简单来说,这个游戏中,会随机生成玩家和敌人的属性,同时互相攻击,直至一方血量小于零。
另外,这样的战斗会持续三局,采取三局两胜制,最后输出战斗结果,公布获胜方。
[练习]
打印出九九乘法表
[练习]
A = [91, 95, 97, 99],B = [92, 93, 96, 98] 。
合并为一个列表,并按照从低到高的顺序排序。
[练习]
想知道两组的平均分,以及把低于平均分的成绩也打印出来。
- 生成器
In [ ]:
gen = (x**2 for x in range(10))
print(list(gen))
In [ ]:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
gen = (x**2 for x in numbers if x % 2 == 0)
print(list(gen))
In [ ]:
nested_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
gen = (sublist[0] for sublist in nested_lists)
print(list(gen))
In [ ]:
data = [1, 2, 3, 4, 5]
total = sum(x for x in data)
print(total)
In [ ]:
data = range(100)
gen = (x for x in data if x % 3 == 0 and x % 5 == 0)
print(next(gen))
print(next(gen))
print(next(gen))
print(list(gen))
- 时间错位
In [ ]:
array = [1, 8, 15]
g = (x for x in array if array.count(x) > 0)
array = [2, 8, 22]
print(list(g))
In [ ]:
array_1 = [1,2,3,4]
g1 = (x for x in array_1)
array_1 = [1,2,3,4,5]
print(list(g1))
In [ ]:
array_2 = [1,2,3,4]
g2 = (x for x in array_2)
array_2[:] = [1,2,3,4,5]
print(list(g2))
In [ ]:
array_3 = [1, 2, 3]
array_4 = [10, 20, 30]
gen = (i + j for i in array_3 for j in array_4)
array_3 = [4, 5, 6]
array_4 = [400, 500, 600]
print(list(gen))
- 为什么不是[11, 21, 31, 12, 22, 32, 13, 23, 33]?