分支、循环、条件与枚举
- 条件
mood=False if mood : print('go to left') else : print('go to right') #常量的名字全部大写 ACCOUNT = 'carol' PASSWORD = '123456' print('please input account') user_account = input() print('please input password') user_password = input() if ACCOUNT == user_account and PASSWORD == user_password: print('success') else : print('fail') if True : pass #空语句/占位语句 a = input() if a == '1': print('app') elif a == '2': print('banana') elif a == '3': print('orange') else: print('shopping')
- 循环
conter = 1 while conter <= 10: conter += 1 print(conter) else: # 循环执行结束后执行的语句 print('end') # 主要是用来遍历/循环,序列或者集合、字典 a = [['apple', 'orange', 'banana', 'grape'], (1, 2, 3)] for item in a: for x in item: print(x, end=',') else: #当for循环执行完毕后执行的语句 print('fruit is gone') # 终止循环 a = [1, 2, 3] for x in a: if x > 2: break print(x) # 跳过循环 a = [1, 2, 3] for x in a: if x == 2: continue print(x) # 跳过循环 a = [1, 2, 3] for x in a: if x == 2: continue print(x) else: print('end') #正常循环结束打印出来1,3,end a = [1, 2, 3] for x in a: if x == 2: break print(x) else: print('end') #循环被强制终止,所以只能打印出来1,不会执行else里面的语句 #二维数组 #这两个的跳出和终止只是在内部循环里面,所以外部循环继续执行,而else的执行是与外部循环一起的,所以当外部循环都执行完毕后,else里的语句会继续执行 a = [['apple', 'orange', 'banana', 'grape'], (1, 2, 3)] for x in a: for y in x: if y == 'orange': break print(y) else: print('end') #打印出来apple,1,2,3,end a = [['apple', 'orange', 'banana', 'grape'], (1, 2, 3)] for x in a: for y in x: if y == 'orange': continue print(y) else: print('end') #打印出来apple,banana,grape,1,2,3,end #跳出或终止外部循环 a = [['apple', 'orange', 'banana', 'grape'], (1, 2, 3)] for x in a: if 2 in x: break for y in x: print(y) else: print('end') #打印出来'apple', 'orange', 'banana', 'grape' for x in a: if 2 in x: continue for y in x: print(y) else: print('end') #打印出来'apple', 'orange', 'banana', 'grape',end #循环 for x in range(0,5): print(x) =>0,1,2,3,4 for x in range(0,5,2): print(x) =>0,2,4 for x in range(5,0,-2): print(x) =>5,3,1 a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for x in range(0, len(a), 2): print(a[x], end='|') =>1|3|5|7|9 #len(a)表示a的长度,2表示步长 #第二种方法用切片方法 b = a[0:len(a):2] print(b)
包、模块、函数与作用域
-
包(包含_init_.py文件的文件夹)
init.py模块的名字就是包的名字 -
模块(文件夹下的文件)
模块的名字为 包的名字.模块的文件名1.第一种方式引入模块import module_name
#在同一个包下的模块相互引用 #被引入的文件c1.py a=2 #要引入模块的文件 import c1 print(c1.a) #引入同级包t里面的模块c1.py import t.c1 as m print(m.a)
2.第二种方式引入模块from module import 变量/函数
#在同一个包下的模块相互引用 #被引入的文件c1.py a=2 b = 3 #要引入模块的文件 from c1 import a,b print(a,b) #引入同级包t里面的模块c1.py from t.c1 import a print(a) #第二种方式 from t import c1 print(c1.a) #引入的变量多的时候可以用括号来换行 from c1 import (a,b, c)
3.文件_init_.py的作用
(1)当模块执行的时候,init.py都会先执行
(2)当多个模块引用的模块多个相同的模块时,可以将这些 被引用的模块提取到_init_.py文件中引用,然后其他文件再引用_init_.py就可以了
4.__all__的作用:可以控制*所表示要引入的东西(模块,函数,类等)
5.包和模块导入的问题
(1)包和模块是不会被重复导入的
(2)避免循环导入,否则会报错,循环导入即文件1引入文件2,文件2再引入文件1,这样一定会报错;还有一种循环引入如文件1引入文件2,文件2引入文件3,文件3引入文件4。。。这样也不行 -
类(模块由类组成,类由函数和变量构成)
-
函数