Python 中的循环语句有 for 和 while。没有 do…while 循环。
Python for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串。
sites = ["BaiDu", "Google", "WiKi", "TaoBao"]
for i in range(len(sites)):
print(i, sites[i])
while 语句的一般形式:
import random
# 该实例演示了数字猜谜游戏(无限循环)
luckNumber = 9
print("数字猜谜游戏!(输入-1可结束游戏)")
while True:
inputNumber = int(input("请输入你猜的数字:"))
if luckNumber == inputNumber:
print("恭喜,你猜对了!")
luckNumber = random.choice(range(10))
print(luckNumber)
print("再来一局吧 ~ ~ ~")
elif inputNumber == -1:
print("游戏结束!")
break
elif luckNumber > inputNumber:
print("猜的数字小了...")
else:
print("猜的数字大了...")
break 和 continue 语句及循环中的 else 子句:
循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被 break 终止时不执行。
print("找找质数游戏!")
inputX = int(input("请输入一个数字:"))
zhiShuArr = []
for x in range(0, inputX):
for y in range(2, x):
if x % y == 0:
print(x, '等于', y, '*', x//y)
break
else:
# 循环中没有找到元素
print(x, ' 是质数')
zhiShuArr.append(x)
print("找到了!%s以内的所有质数是:%s" % (inputX, zhiShuArr))
Python 推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。
"""
列表推导式
[表达式 for 变量 in 列表]
或
[表达式 for 变量 in 列表 if 条件]
"""
names = ['Google', 'Taobao', 'WeiXin', 'Facebook', 'Zhihu', 'Baidu']
new_names = [name.upper() for name in names if len(name) > 5] # 过滤掉长度小于或等于5的字符串列表,并将剩下的转换成大写字母
print(new_names)
multiples = [i for i in range(30) if i % 3 == 0]
print(multiples)
'''
['GOOGLE', 'TAOBAO', 'WEIXIN', 'FACEBOOK']
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
'''
"""
字典推导式
{key_expr: value_expr for value in collection}
或
{key_expr: value_expr for value in collection if condition}
"""
listDemo = ['Google', 'Taobao', 'WeiXin', 'Facebook', 'Zhihu', 'Baidu']
newDict = {key: len(key) for key in listDemo if len(key) > 5} # 将列表中各字符串值为键,各字符串的长度为值,组成键值对
newDict2 = {key for key in listDemo}
print(newDict)
print(newDict2)
'''
{'Google': 6, 'Taobao': 6, 'WeiXin': 6, 'Facebook': 8}
{'Google', 'Zhihu', 'Baidu', 'Taobao', 'WeiXin', 'Facebook'}
'''
"""
集合推导式
{expression for item in Sequence}
或
{expression for item in Sequence if conditional}
"""
listDemo = ['Google', 'Taobao', 'WeiXin', 'Facebook', 'Zhihu', 'Baidu']
newSet = {value.upper() for value in listDemo if len(value) > 5}
print(newSet)
listDemo = {x for x in 'abracadabra' if x not in 'abc'} # 判断不是 abc 的字母并输出
print(listDemo)
'''
{'WEIXIN', 'FACEBOOK', 'GOOGLE', 'TAOBAO'}
{'r', 'd'}
'''
"""
元组推导式(生成器表达式)
元组推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的元组。
元组推导式和列表推导式的用法也完全相同,只是元组推导式是用 () 圆括号将各部分括起来,而列表推导式用的是中括号 [],另外元组推导式返回的结果是一个生成器对象。
(expression for item in Sequence)
或
(expression for item in Sequence if conditional)
"""
listDemo = ['Google', 'Taobao', 'WeiXin', 'Facebook', 'Zhihu', 'Baidu']
newTuple = (value.upper() for value in listDemo if len(value) > 5)
print(newTuple)
print(tuple(newTuple))
listDemo = (x for x in range(1, 10))
print(listDemo)
print(tuple(listDemo))
'''
at 0x00F9A108>
('GOOGLE', 'TAOBAO', 'WEIXIN', 'FACEBOOK')
at 0x02EDEB18>
(1, 2, 3, 4, 5, 6, 7, 8, 9)
'''