Python 条件与循环

Python IDLE下:选中代码,alt+3 群体注释;alt+4 群体取消注释;ctrl+[] 集体缩进。

一、if语句

if 橙色,关键字。一行的末尾不要忘了冒号":"

实在没有语句,放一个 pass 占位符,不然没有接语句会报错。

if...elif从上往下执行。会进入第一个满足条件的代码块,同层的if...elif只会执行一次。只要满足其中一个判断条件,就不会再往下执行了。

else不是必须的,但else后面不能接判断语句。

补充:

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 in li:
    print(i, j)

"""
运行结果:

aBB b
c d11
e f00
"""

四、同层循环的else体系:

#while
while True:
    pass
else:
    print('OK')

#for
for item in iterable:
    pass
else:
    print("OK")

'''
只有正常结束的循环,非break结束的循环才会执行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
"""

经典的9*9乘法表案例:

# 打印9*9乘法表
for i in range(1, 10):  # 控制行,共9行
    for j in range(1, i + 1):  # 控制拼接次数,多少列
        print("{}x{}={}".format(j, i, i * j), end="	")  # 不设置end,每次结束本层循环都会换行
    print()
# 利用列表推导式,一行代码
print("
".join(["".join(["{}x{}={}	".format(j, i, i * j) for j in range(1, i + 1)]) for i in range(1, 10)]))
"""
可读性很差,只能用来装B。
看着上面的例子写,先写最外层的for,然后再一个个往里塞。
"""
原文地址:https://www.cnblogs.com/xuanlv-0413/p/9276236.html