一、if循环
二、while 循环
三、for循环
一、if循环
固定语法:1、Python用缩进来表示代码的归属;2、同一缩进的代码,称之为代码块。
补充:布尔值位False数据由哪些:0,None,'',[],{}
布尔值可以直接用来判断
变量名也可以用来判断,因为变量名指向的值对应的就是True或False
语法结构:
1 if 条件: 2 代码1 3 代码2 4 代码3 5 ... 6 7 if 条件: 8 代码1 9 代码2 10 代码3 11 ... 12 else: # 不能单独使用,必须和if,while,for配合使用 13 代码1 14 代码2 15 代码3 16 代码4 17 ...
1 if 条件: 2 代码 3 ... 4 elif 条件: 5 代码 6 ... 7 elif 条件: 8 代码 9 ... 10 else: 11 代码
注意:1、if ...elif ...else..在同一级别是时只会选择一个代码块执行,即在if、elif和else中选择
2、if循环可以嵌套
二、while循环
while 循环的语法结构
while 条件: 代码1 代码2 代码3 ...
break:立即结束本层循环(只针对它所属于的那一个while有效)
continue:跳出本次循环,直接开始下一次循环
from_db_username = 'jason' from_db_password = '123' while True: username = input("please input your username>>>:") password = input("please input your password>>>:") if username == from_db_username and password == from_db_password: print('欢迎老板,我是23号技师,很高兴为您服务') break else: print('没钱滚蛋~') print("到点了")
# 循环打印1,2,3,5,6,7,8,9,10 n = 1 while n < 11: # 打印之前应该先判断当前数字是否是4,如果是4,不打印,重新循环打印下面的数字 if n == 4: n += 1 continue #break print(n) n += 1
*****重点:建立一个全局标志位 如:flag = True
from_db_username = 'jason' from_db_password = '123' flag = True # 定义一个全局的标志位 while flag: username = input("please input your username>>>:") password = input("please input your password>>>:") if username == from_db_username and password == from_db_password: print('欢迎老板,我是23号技师,很高兴为您服务') while flag: cmd = input('please input your command>>>:') if cmd == 'q': flag = False print('%s is running'%cmd) else: print('没钱滚蛋~') print("到点了")
while + else 结构:
1 # while+else 2 n = 1 3 while n < 5: 4 if n == 3: 5 break 6 print(n) 7 n += 1 8 else: 9 print('while循环正常结束了')
注意:只有当while循环依据条件正常结束才会走else代码,如果是主动结束的break,那么不会走else
三、for 循环
1.for 循环的引入
a.我们可以用while循环打印出列表里的元素,根据列表索引值,但是对字典里的元素却无法打印,因为字典是无序的且对外展示的只有key值
b.for 循环不依赖于索引取值
2.for循环的语法结构
for 变量名 in 容器类型: 代码1 代码2 代码3 ...
内置方法:len() -- 获取数据类型(容器类型)的个数,字符串是特例 获取的是字符串中字符的个数
*****range在Python2和Python3中的区别
a、Python2中range是返回一个列表,xrange就是Python3中的range返回的是一个对象
b、Python3中range是返回一个对象,形象比喻成是一个“老母猪”,需要值的时候才会给你
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> range(1,10) range(1, 10)
3、range()的用法:
range()又叫迭代器(关于迭代器的含义以后会更新!)特点是:顾头不顾尾
for i in range(1,10): print(i) >>>:1,2,3,4,5,6,7,8,9
4、练习打印99乘法表,并理解其中的逻辑和换行
for i in range(1,10): for j in range(1,i+1): print('%s*%s = %s'%(i,j,i*j),end=" ") print()
关于换行:print自带换行,print()单独放在一行就是一行,end=“ ”意思是用空格结尾,如果去掉会有内层换行,建议多敲几遍尝试