python条件循环叠加_Python条件与循环
Python IDLE下:选中代码,alt+3 体注释;alt+4 体取消注释;ctrl+[] 集体缩进。
⼀、if语句
(⼀).语法规则
if(橙⾊关键字),条件和表达式分开写的话,if这⼀⾏的末尾绝对不要忘了冒号":"
实在没有语句,放⼀个pass占位符,不然没有接语句会报错。
else不是必须的,但else后⾯不能接判断语句。
(⼆).真假值对照表
(三).⼀⾏语句判断
格式:result1 if 条件语句 else result2
当条件满⾜时,返回result1,否则返回else后⾯的语句(也就是result2)。
例:
a = 10
print(True if a > 1 elseFalse)#True
View Code
(四).补充
range() range的意思是:区间
range(10) -> 0~9 只放⼀个参数,默认从0开始了。左闭右开,10取不到。
range(1,10) -> 1~9 左闭右开,stop的值取不到。
range(1,10,2) -> 1,3,5,7,9 步长。隔⼏个取⼀下。
random.randint(1,10) 两边都取得到,可⽤help(random.randint)查看说明。先导⼊random,再dir()
random.random() 不要放参数。随机返回0-1之间的浮点⼩数。1取不到
random.sample(iterable,n) return list. 从序列中随机抽取n个
random.choice(iterable) 从序列中,随机返回⼀个元素
input()内置函数:提⽰输⼊,并获取输⼊的内容,输出的是字符串。
⼆、while 循环
while 条件语句:
pass
条件满⾜时才会进⼊循环。必须要有终⽌条件,不然就是死循环(除⾮有break),0 False {} [] 都为假。
break:终⽌本层循环。跳出去了,下⾯的语句就不会执⾏了。
continue:跳过本次循环,但不结束循环,直接到while后⾯的判断语句。
三、for 循环
遍历迭代对象中的元素。
for i in "1,2,3":print(i, end="")
# 运⾏结果:1,2,3
# 字符串中,逗号也是⼀个元素
#把上⾯代码中的序列类型改⼀下:#上⾯是 "1,2,3"#这⾥是 (1,2,3)
for i in (1,2,3):print(i, end=" ")
# 远⾏结果:1 2 3
# 元组中的逗号只是⽤来隔开每⼀个元素的
(⼀).python3中的for循环体系与其他语⾔不⼀样,注意看下⾯这个例⼦:
for i in range(1, 10):print(i, end=" ")
i+= 2
#运⾏结果:1 2 3 4 5 6 7 8 9
为啥⾃加2了,结果却依然还是 1-9?因为⼀次循环执⾏完后,跑回去了,每⼀次i都会被重新赋值。根本不会改变遍历的次数。
趁热打铁,看下⾯这个案例:
for i in range(1, 10):
i+= 2
print(i, end=" ")#运⾏结果:3 4 5 6 7 8 9 10 11
根本不会影响遍历的次数。打印出来的,依旧是9个值。也就是说,还是执⾏了9次循环。
for循环的机制是迭代穷尽了,才结束循环。通过遍历的次数来控制循环。遍历⼏次,就循环⼏次。对象中的元素被遍历完了,那就循环结束拜拜了。
分析下例:
for i in range(1, 10, 2):
i+= 2
print(i, end=" ")#运⾏结果:3 5 7 9 11
此例设置了range区间的步长,每隔2个取⼀次,更改了遍历的次数,此处遍历了5次,所以是5个结果。
(⼆).for循环补充:
#⽤for循环遍历迭代对象中的多个元素
li = [("aBB", "b"), ("c", "d11"), ("e", "f00")]#对象中,每个元素的数量都必须是⼀样的。多⼀个,少⼀个,都会报错。for i, j inli:print(i, j)"""运⾏结果:
aBB b
c d11
e f00"""
四、同层循环的else体系:
只有正常结束的循环(不能被break),才会执⾏else部分。
⼀层循环内,如果遇到break就是强制终⽌当前循环了,与之配套的else语句块就不会执⾏了,因为不是正常结束循环。
五、总结for 和 while:
相同点:都能循环做⼀件重复的事情。(好像是废话2333)
不同点:
while在条件不成⽴的时候停⽌。需要有终⽌条件。
for在迭代对象穷尽的时候停⽌。需要的是可迭代对象。
while是条件循环,for是遍历循环。
六、嵌套循环
类似⾏、列的概念,要清楚⼀层⼀层怎么运⾏的。
外⾯⾛⼀步,⾥⾯全部⾛完。
先看下⾯这个例⼦,理解⼀下每⼀层是怎么执⾏的:
for i in range(2):print("***", i)for j in range(2):print("00", j)"""*** 0
00 0
00 1
*** 1
00 0
00 1"""
View Code
经典的9*9乘法表案例:
#打印9*9乘法表
random在python中的意思for i in range(1, 10): # 控制⾏,共9⾏for j in range(1, i + 1): # 控制拼接次数,多少列print("{}x{}={}".format(j, i, i * j), end="\t") #不设置end,每次结束本层循环都会换⾏print()
#利⽤列表推导式,⼀⾏代码
print("\n".join(["".join(["{}x{}={}\t".format(j, i, i * j) for j in range(1, i + 1)]) for i in range(1, 10)]))"""可读性很差,只能⽤来装B。
看着上⾯的例⼦写,先写最外层的for,然后再⼀个个往⾥塞。"""
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论