变量
一、定义方式
- 下划线(推荐使用) age_of_oldboy = 56
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 关键字不能声明为变量名['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
二、id、type、value、is、in、hash
- 身份:即内存地址,可以用id()来获取
- 类型:决定了该对象保存的类型,需要遵循什么规则,可用type()来获取该数据类型
- 值:对象的保存的的真实数据
- 等号比较的是value
- is比较的是id
- id相同,意味着type和value必定相同
- value相同type肯定相同,但id可能不同
- 可变:值变,id不变。可变==不可hash
- 不可变:值变,id就变。不可变==可hash
- is运算符用于比较两个对象的身份
- in主要用来判断某一元素是否在某种元素集合中
- 可hash的就是不可变数据类型,不可hash的就是可变数据类型
三、类型分类
- 可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典
- 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)
常量
- 常量即指不变的量,如圆周率 3.1415926..., 在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量AREAS = 56
程序交互
- 在python3中 input:用户输入任何值,都存成字符串类型
1 2 | age = input ( 'your age:' ).strip() print (age, type (age)) #18 <class 'str'> |
一、文件头
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
二、注释
- 代码注释分单行和多行注释, 单行注释用#
- 多行注释可以用三对双引号""" """
range
- range用来指定范围,生成指定的数字。
1 2 3 4 5 6 7 | for item in range ( 5 , 10 , 2 ): print (item) """ 5 7 9 """ |
基本数据类型
- 数据即变量的值,变量的是用来反映/保持状态以及状态变化的,毫无疑问针对不同的状态就应该用不同类型的数据去标识
一、数字
1、int整型
- 定义:age=10 #age=int(10)
- 用于标识:年龄,等级,身份证号,qq号,个数
2.float浮点型
- 定义:salary=3.1 #salary=float(3.1)
- 用于标识:工资,身高,体重
二、布尔
- 判断一个条件成立时,用True标识,不成立则用False标识
- *****None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False*****
三、字符串
- 定义:name='tom' #name=str('tom')
- 用于标识:描述性的内容,如姓名,性别,国籍,种族
- 加了引号的字符就是字符串类型,单引号、双引号、多引号都一样,注意单双引号的嵌套
1 2 3 4 5 6 7 8 | s = "watch ,'套路'" #多行字符串必须用多引号 msg = ''' 种一棵树最好的时间是十年前,其次是现在。 所有的成功都是你行动以后对你行动的奖励。 ''' print (s) #watch ,'套路' print (msg) |
四、列表
- 在[]内用逗号分隔,可以存放n个任意类型的值
- 定义:students=['tom','rose','jack',] #students=list(['tom','rose','jack',])
- 用于标识:存储多个值的情况,比如一个人有多个爱好
- 列表嵌套和取值
1 2 | students_info = [[ 'tom' , 18 ,[ 'sing' ,]],[ 'rose' , 18 ,[ 'play' , 'sleep' ]]] print (students_info[ 0 ][ 2 ][ 0 ]) #取出第一个学生的第一个爱好 #sing |
五、字典
- 可以存放多个任意类型的值,又可以规定值的映射关系的类型
- 在{}内用逗号分隔,可以存放多个key:value的值,value可以是任意类型
- 定义:info={'name':'tom','age':18,'gender':18} #info=dict({'name':'tom','age':18,'gender':18})
- 用于标识:存储多个值的情况,每个值都有唯一一个对应的key,可以更为方便高效地取值
- 字典嵌套和取值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | info = { 'name' : 'tom' , 'hobbies' :[ 'sing' , 'sleep' ], 'company' :{ 'name' : 'google' , 'type' : 'it' , 'fund' : 8000000000 , } } print (info[ 'company' ][ 'fund' ]) #取公司现金储备 #8000000000 students = [ { 'name' : 'tom' , 'age' : 18 , 'hobbies' :[ 'sing' , 'play' ]}, { 'name' : 'rose' , 'age' : 88 , 'hobbies' :[ 'read' , 'sleep' ]}, { 'name' : 'jack' , 'age' : 99 , 'hobbies' :[ 'swim' , 'watchTV' , 'talk' ]}, ] print (students[ 2 ][ 'hobbies' ][ 1 ]) #取第3个学生的第2个爱好watchTV |
流程控制之if...else
1 2 3 4 5 6 7 8 9 10 11 12 | """ rose --> 超级管理员 tom --> 普通管理员 其他 --> 普通用户 """ name = input ( '请输入用户名字:' ).strip() if name = = 'rose' : print ( '超级管理员' ) elif name = = 'tom' : print ( '普通管理员' ) else : print ( '普通用户' ) |
流程控制之while循环
一、条件循环
1 2 3 4 5 | count = 0 while count < = 10 : if count % 2 = = 0 : print ( 'loop' ,count) count + = 1 |
二、死循环
1 2 | while True : print ( 'hello world' ) |
三、循环嵌套与tag
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | name = 'tom' password = '123' tag = True while tag: inp_name = input ( '用户名: ' ).strip() inp_pwd = input ( '密码: ' ).strip() if inp_name = = name and inp_pwd = = password: while tag: cmd = input ( '>>: ' ) if not cmd: continue if cmd = = 'q' : tag = False continue print ( 'run <%s>' % cmd) else : print ( '用户名或密码错误' ) |
四、break与continue
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #break用于退出本层循环 while True : print ( 'go...' ) break print ( 'stop' ) #只打印go... 就退出了,下面的 print('stop')根本不执行 #continue用于退出本次循环,继续下一次循环 while True : print ( 'go...' ) continue print ( 'stop' ) #打印go... 就退出本次循环,本次循环下面的 print('stop')根本来不及执行,就继续下一次循环,所有一直打印 go... 也就是死循环了 |
五、while+else和for+else
- 其它语言else 一般只与if 搭配不同
- 在Python 中还有个while ...else 语句和for ...else 语句
- while 后面的else 作用是指当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句
- for 后面的else 作用是指当for 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | count = 0 while count < = 5 : count + = 1 print ( "Loop" ,count) else : print ( "循环正常执行完啦" ) print ( "-----out of while loop ------" ) """ Loop 1 Loop 2 Loop 3 Loop 4 Loop 5 Loop 6 循环正常执行完啦 -----out of while loop ------ """ #如果执行过程中被break,就不会执行else的语句 count = 0 while count < = 5 : count + = 1 if count = = 3 : break print ( "Loop" ,count) else : print ( "循环正常执行完啦" ) print ( "-----out of while loop ------" ) """ Loop 1 Loop 2 -----out of while loop ------ """ |
流程控制之for循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | for i in range ( 1 , 10 ): for j in range ( 1 ,i + 1 ): print ( '%s*%s=%s' % (i,j,i * j),end = ' ' ) print () """ 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 """ max_level = 6 for cur_level in range ( 1 ,max_level + 1 ): for i in range (max_level - cur_level): print ( ' ' ,end = '') #在一行中连续打印多个空格 for j in range ( 2 * cur_level - 1 ): print ( '*' ,end = '') #在一行中连续打印多个空格 print () """ * *** ***** ******* ********* *********** """ |
规范代码
断点调试
无需为程序所有代码加断点,只需要在关键代码加上断点,以debug模式调试时,程序会停在断点处。
基本运算符
一、算数元算:
二、比较运算
三、赋值运算符
四、逻辑运算
五、成员运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #字符串 st = "abcdefg" s = "d" if s in st: print ( "in st" ) else : print ( "not in st" ) #列表 lis = [ 1 , 2 , 3 , 4 ] li = 5 if li in lis: print ( "in lis" ) else : print ( "not in lis" ) #元组 tup = ( 1 , 2 , 3 , 4 ) t = 2 if t in tup: print ( "in tup" ) else : print ( "not in tup" ) #字典 判断的是key dic = { 'name' : 'tom' , 'age' : 18 } d = 'name' if d in dic: print ( "in dic" ) else : print ( "not in dic" ) #集合 sett = { 18 , 'age' , 'name' , 20 } se = 'name' if se in sett: print ( "in sett" ) else : print ( "not in sett" ) |
六、其他
#格式: 设置颜色开始 :\033[显示方式;前景色;背景色m#说明:前景色 背景色 颜色---------------------------------------30 40 黑色31 41 红色32 42 绿色33 43 黃色34 44 蓝色35 45 紫红色36 46 青蓝色37 47 白色显示方式 意义-------------------------0 终端默认设置1 高亮显示4 使用下划线5 闪烁7 反白显示8 不可见 #例子:\033[1;31;40m \033[0m print('\033[0;32;40m欢迎使用学生选课系统\033[0m')try: num = int(input('请输入数字选择功能 :'))except Exception as e: print('\033[31m对不起!您输入的内容有误~\033[0m')