python条件循环叠加_Python 条件与循环

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

一、if语句

(一).语法规则

if(橙色关键字),条件和表达式分开写的话,if这一行的末尾绝对不要忘了冒号":"

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

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

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

(二).真假值对照表

4f8bfb5771ac60b45833d83795a55468.png

(三).一行语句判断

格式:result1 if 条件语句 else result2

当条件满足时,返回result1,否则返回else后面的语句(也就是result2)。

例:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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体系:

0b58b63ae57649b43f023b7f77fc2bba.png

只有正常结束的循环(不能被break),才会执行else部分。

一层循环内,如果遇到break就是强制终止当前循环了,与之配套的else语句块就不会执行了,因为不是正常结束循环。

五、总结for 和 while:

相同点:都能循环做一件重复的事情。(好像是废话2333)

不同点:

while在条件不成立的时候停止。需要有终止条件。

for在迭代对象穷尽的时候停止。需要的是可迭代对象。

while是条件循环,for是遍历循环。

六、嵌套循环

类似行、列的概念,要清楚一层一层怎么运行的。

外面走一步,里面全部走完。

先看下面这个例子,理解一下每一层是怎么执行的:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

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乘法表

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,然后再一个个往里塞。"""

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值