Python IDLE下:选中代码,alt+3 群体注释;alt+4 群体取消注释;ctrl+[] 集体缩进。
一、if语句
(一).语法规则
if(橙色关键字),条件和表达式分开写的话,if这一行的末尾绝对不要忘了冒号":"
实在没有语句,放一个pass占位符,不然没有接语句会报错。
if...elif从上往下执行。会进入第一个满足真值条件的代码块,同层的if...elif只会执行一次。只要满足其中一个判断条件,就不会再往下执行了。
else不是必须的,但else后面不能接判断语句。
(二).真假值对照表
(三).一行语句判断
格式:result1 if 条件语句 else result2
当条件满足时,返回result1,否则返回else后面的语句(也就是result2)。
例:

a = 10 print(True if a > 1 else False) # True
(四).补充
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体系:
只有正常结束的循环(不能被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,然后再一个个往里塞。 """