一 、编程与编程语言
python是一门编程语言,搞明白三点: 1、编程目的? 计算机的发展就是为解放人力,机器是死的,所以人必须找到一种能够被机器识别的表达方式从而把自己的思想按照 这个表达方式传递机器,完成机器可以自发的工作。 2、什么编程语言? 上面所说的表达方式指的就编程语言 英语 Python 单词 关键字(if while for and or) 语法 语法 作文 编程 3、什么编程? 按照某种编程语言的语法风格写程序,程序在未执行前就是一堆普通文件。
二、编程语言的分类:
程序员(奴隶主) 计算机(奴隶) 1、机器语言:站在奴隶角度说计算机能听懂的话,直接用二进制编程,直接操作硬件 优点:执行效率快 缺点:学习难度大,开发效率低 2、汇编语言:站在奴隶角度说计算机能听懂的话,用一些英文标签来代替一串特定的意义的二进制,还是直接操作硬件 优点:执行效率快,不如机器语言快 缺点:学习难度大,开发效率低,比机器语言降一个难度 3、高级语言:站在人的角度说人话,机器无法理解,所以需要翻译 编译型(C):相当于百度翻译,翻译一次,拿着该翻译的结果去执行。(如果报错,要重新调试,就要重新编译一次,代码改正后还要再编译一次,在运行一遍,所以调试麻烦,开发效率低。) 优点:执行效率高 缺点:开发效率低 解释型(Python):相当于同声传译,一边解释一边执行。(解释型速度慢)(要有解释器) 优点:开发效率高 缺点:执行效率低 4、总结(开发效率占首位,软件现在都是基于网络) 执行效率:从高到低 开发效率:从低到高 学习难度:从难到易 执行效率不是影响,开发效率才是王道 5.python有哪些种类: 指的是python解释器的种类:cpython,IPython、pypy、Jpython、IronPython
6.python解释器安装:
(1)首先下载:https://www.python.org/
(2)选自定义安装并且加到环境变量中去
(3)加环境变量
计算机——属性——高级系统设置——高级——环境变量——加到系统变量中(对所有用户有效)
(4)pip第三方库
三、写程序的两种方式:
交互式环境:
即时调试
文件的方式:
python3 C: est.py
四、变量:
1 什么是变量? 2 变:指的是“变化”,量:指的反映某种状态 3 能反映出状态变化的机制就叫变量(存数据,让计算机能识别,能变化) 4 如何定义变量? 5 name:变量名 ,‘=’赋值符号,‘egon’:变量值
1 (1)反应的是状态 2 name='egon' 3 password='egon123' 4 (2)指的是可以变化 5 password='egon@123'
1 变量名的命名规则? 2 #1. 变量名只能是 字母、数字或下划线的任意组合 3 #2. 变量名的第一个字符不能是数字 4 #3. 关键字不能声明为变量名 5 定义的方式: 6 驼峰式 7 AgeOfOldboy=53 8 下划线 9 age_of_oldboy=53 10 age_of_oldboy=54
五、常量:
AGE_OF_OLDBOY=54
六: 执行过程(重点!!!)
1 python3 C: est.py 2 1、先启动python3.exe 3 2、把C: est.py从硬盘读入内存 4 3、解释执行文件内容(自动识别python语法)
七、引用计数+垃圾回收机制(了解)
x='aaa' #'aaa'这个值的引用计数为1
y=x #'aaa'这个值的引用计数为2
x=1
y=2
z=3
del z #解除绑定
八、产生一个变量的三要素(重点)
1 name='egon' 2 变量值:用来表示状态 3 用变量名取变量值 4 print(name) 5 变量值的类型:表示不同的状态应该用不同类型的值去表示(数字:年龄,字符串:名字) 6 print(type(name)) 7 变量值的id号:(指的是内存地址的位置(把内存地址转换成id号了)) 8 print(id(name)) 9 10 >>> name1='egon' 11 >>> name1,type(name1),id(name1) 12 ('egon', <class 'str'>, 35494968) 13 >>> 14 >>> 15 >>> 16 >>> name2='egon' 17 >>> name2,type(name2),id(name2) 18 ('egon', <class 'str'>, 35494968) 19 20 >>> info1='info egon:18' 21 >>> info2='info egon:18' 22 >>> info1,type(info1),id(info1) 23 ('info egon:18', <class 'str'>, 35513136) 24 >>> info2,type(info2),id(info2) 25 ('info egon:18', <class 'str'>, 35513200) 26 数据量小的话不会再开内存空间了(python的优化机制) 27 >>> x=1 28 >>> y=1 29 >>> 30 >>> id(x) 31 1626261168 32 >>> id(y) 33 1626261168 34 >>> 35 >>> x=1234567890123 36 >>> y=1234567890123 37 >>> id(x) 38 30057584 39 >>> id(y) 40 34827152 41 42 判断值是否相等:== 43 判断id是否相等:is 44 >>> x=1234567890123 45 >>> y=1234567890123 46 >>> id(x) 47 30057584 48 >>> id(y) 49 34827152 50 >>> 51 >>> 52 >>> x is y 53 False 54 >>> x == y 55 True
九:程序与用户交互
1 user=input('先生您好,请输入账号:') #input把用户输入的内容都存成字符串类型 2 """""":指的是多行注释 3 """ 4 xxxxx 5 yhyyyy 6 zzz 7 """
十、数据类型
1 ''' 2 整型:int 3 状态:等级,身份证号,年龄 4 ''' 5 # level=10 #level=int(10) 6 # print(level,type(level),id(level)) 7 8 ''' 9 浮点型:float 10 状态:薪资,身高,体重 11 ''' 12 # salary=3000.3 #salary=float(3000.3) 13 # print(salary,type(salary),id(salary)) 14 15 ''' 16 字符串:str在引号(单引号,双引号,三引号)里定义的一堆字符 17 状态:描述性的内容,比如名字,性别,国籍 18 ''' 19 # gender='male' #gender=str('male') 20 # print(type(gender)) 21 # info="my name is egon i'm a teacher" 22 # 23 # msg=''' 24 # xxxx 25 # yyy 26 # zzz 27 # ''' 28 # print(msg) 29 30 # x=1 31 # y=2.3 32 # res=x+y 33 # print(res) 34 #字符只能跟字符串之间进行+或者* 35 # info1='hello' 36 # info2='world' 37 # res=info1+info2 38 # print(res) 39 # print('egon'*10) 40 # print(''*10) 41 显示的好看 42 # print('='*10) 43 # print('hello world') 44 # print('='*10) 45 46 ''' 47 列表:list在[]内,用逗号分隔开,存放多个任意类型的元素 48 状态:有序存放多个值 49 ''' 50 # info=''' 51 # name:xxx 52 # age:18 53 # sex:male 54 # ''' 55 # print(info) 56 # info=['egon',18,'male',['欧德博爱','education',70]] 57 # print(info[0]) 58 # print(info[3]) 59 # print(info[3][0]) 60 61 ''' 62 字典类型:dict 定义花括号内,用逗号分割key:value,value可以是任意类型,但是key必须不可变类型 63 状态:存放多个值 64 ''' 65 # name age sex company 66 # info=['egon',18,'male',['欧德博爱','education',70]] 67 # info[2] 68 # name age sex company 69 info={ 70 'name':'egon', 71 'age':18, 72 'sex':'male', 73 'company':['欧德博爱','education',70] 74 } #info=dict({....}) 75 # print(info,type(info),id(info)) 76 # print(info['sex']) 77 # print(info['company'][2]) 78 # 79 # 80 # 81 # info={ 82 # 'name':'egon', 83 # 'age':18, 84 # 'sex':'male', 85 # 'company':{'name':'欧德博爱','type':'education','emp_count':70} 86 # } 87 # 88 # print(info['company']['type']) 89 90 # 91 # dic={0:'egon',1:'xxx',2:'yyy'} 92 # 93 # print(dic[0]) 94 # stduents=['egon','alex','wxx','yxx'] 95 96 ''' 97 布尔:bool True,False 98 状态:成立,不成立,用来做逻辑运算---》判断 99 ''' 100 print(type(True)) 101 age=38 102 print(age > 18)
十一、可变类型与不可变类型
1 #1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典 2 3 #2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)数字,字符串,浮点,布尔值 4 #int,float,str 5 # dic={1:'a'} 6 # dic={1.1:'a'} 7 # dic={'b':'a'} 8 9 # dic={[1,2,3]:'a'} 10 # dic={{'a':1}:'a'} 11 12 # dic={True:'a'} 13 # print(dic[True])
十二、格式化输出
1 # name=input('name>>: ') 2 # age=input('age>>: ') 3 # 4 # print('my name is [%s] my age is <%s>' %(name,age)) 5 # print('my name is %s' %'egon') 6 # print('my name is %s' %11111111111111) 7 # print('my age is %d' %10) 8 # print('my age is %d' %'xxxx') #%d只能接收数字,而%s既可以接收数字又可以接收字符串 9 练习: 10 name=input('name>>: ') 11 age=input('age>>: ') 12 sex=input('sex>>: ') 13 job=input('job>>: ') 14 msg=''' 15 ------------ info of %s ----------- 16 Name : %s 17 Age : %s 18 Sex : %s 19 Job : %s 20 ------------- end ----------------- 21 ''' %(name,name,age,sex,job) 22 print(msg)
十三、基本运算符
算数运算
以下假设变量:a=10,b=20
比较运算
以下假设变量:a=10,b=20
赋值运算
以下假设变量:a=10,b=20
逻辑运算
>>> True or Flase and False True >>> (True or Flase) and False False
1 #算术 2 # print(10%3) 3 # print(2**3) 4 # print(10/3) 5 # print(10//3) 6 7 #比较 8 # print(10 > 3) 9 # print(10 < 3) 10 # print(10 == 3) 11 # print(10 != 3) 12 #赋值 13 # a=2 14 # b=a 15 #链式赋值 16 # a=b=c=2 17 # print(id(a),id(b),id(c)) 18 #交叉赋值 19 # m=1 20 # n=2 21 # temp=m 22 # m=n 23 # n=temp 24 # print(m,n) 25 # m,n=n,m 26 # print(m,n) 27 #解压 28 l=[1,2,3,4] 29 # a,b,c,d=l 30 # print(a) 31 # print(b) 32 # print(c) 33 # print(d) 34 35 # a=l[0] 36 # _=l[1] 37 # _=l[2] 38 # d=l[3] 39 # a,_,_,d=l 40 # print(a,d) 41 # a,*_,d=l 42 # print(a) 43 # print(d) 44 #赋值运算符 45 # level=1 46 # level+=1 #level=level+1 47 # level-=1 #level=level-1 48 # print(level) 49 #逻辑and or not 50 # age=18 51 # is_pretty=True 52 # height=170 53 # weight=80 54 # print(age >= 18 and is_pretty == True and height > 160 and weight > 30 and weight < 90) 55 # print(1 > 2 or 1 > 3 or 3 > 1 or 4 < 3) 56 57 # print(not 4 > 2) 58 59 age=18 60 is_pretty=True 61 height=170 62 weight=80 63 print((height > 160 and weight > 60 and weight < 90) or is_pretty == True or age == 18 64 ) 65 66 #身份 67 #is比较的是id 68 #而==比较的是值
十四、流程控制之if判断
1 # age=28 2 # if age > 18: 3 # print('表白') 4 # age=28 5 # if age > 18 and age < 22: 6 # print('表白') 7 # else: 8 # print('阿姨好') 9 10 # age=19 11 # is_pretty=True 12 # success=True 13 # if age > 18 and age < 22 and is_pretty: 14 # if success: 15 # print('表白成功,在一起') 16 # else: 17 # print('去他妈的爱情') 18 # else: 19 # print('阿姨好') 20 21 score=input('>>: ') 22 #>=90:优秀 23 #>=80 <90 :良好 24 #>=60 <80 :合格 25 #<60:滚犊子 26 score=int(score) 27 if score >= 90: 28 print('优秀') 29 elif score >= 80: 30 print('良好') 31 elif score >= 60: 32 print('合格') 33 else: 34 print('滚犊子')
十五、流程控制之while循环
1 #条件循环 2 ''' 3 while 条件: 4 代码1 5 代码2 6 代码3 7 ''' 8 # age_of_oldboy=54 9 # 10 # guess=input('>>: ') 11 # guess=int(guess) 12 # 13 # if guess > age_of_oldboy: 14 # print('too big') 15 # elif guess < age_of_oldboy: 16 # print('too small') 17 # else: 18 # print('you got it') 19 # 20 # guess=input('>>: ') 21 # guess=int(guess) 22 # 23 # if guess > age_of_oldboy: 24 # print('too big') 25 # elif guess < age_of_oldboy: 26 # print('too small') 27 # else: 28 # print('you got it') 29 # 30 # guess=input('>>: ') 31 # guess=int(guess) 32 # 33 # if guess > age_of_oldboy: 34 # print('too big') 35 # elif guess < age_of_oldboy: 36 # print('too small') 37 # else: 38 # print('you got it') 39 40 41 # count=0 42 # while count <= 10: 43 # print(count) 44 # count+=1 45 46 #while+break 47 # count=0 48 # while True: 49 # if count == 5: 50 # break #跳出本层 51 # print(count) 52 # count+=1 53 #while+continue 54 #1,2,3,4,5,7 55 # count=1 56 # while count <= 7: 57 # if count == 6: 58 # count += 1 59 # continue #跳出本次循环 60 # print(count) 61 # count+=1 62 63 #嵌套循环 64 # count=1 65 # while True: 66 # if count > 3: 67 # print('too many tries') 68 # break 69 # 70 # name=input('name>>: ') 71 # password=input('password>>: ') 72 # if name == 'egon' and password == '123': 73 # print('login successfull') 74 # break 75 # else: 76 # print('user or password err') 77 # count+=1 78 79 80 81 # count = 1 82 # while True: 83 # if count > 3: 84 # print('too many tries') 85 # break 86 # 87 # name = input('name>>: ') 88 # password = input('password>>: ') 89 # if name == 'egon' and password == '123': 90 # print('login successfull') 91 # while True: #让用户能重复输入命令 92 # cmd=input('cmd>>: ') #q 93 # if cmd == 'q': 94 # break#跳出本层循环 95 # print('run %s' %cmd)#run cmd代表这个cmd执行了,这样就退不出来,就在上面写如果cmd=‘q’时,就break,从这个地方如果退出还会让你输账号和密码 96 # break #正常xshell你退出了就不会让你在输账号和密码了,所以我们要退出所有循环,所以要在这加break 97 # else: 98 # print('user or password err') 99 # count += 1 100 101 102 # count = 1 103 # tag=True #标志位的实现方式,如果单独写True就只有表示脚本中的True都是独立的,定义完变量就是用的一个True,一个变量的值,在输入‘q’的时候退出所有循环 104 # while tag: 105 # if count > 3: 106 # print('too many tries') 107 # break 108 # 109 # name = input('name>>: ') 110 # password = input('password>>: ') 111 # if name == 'egon' and password == '123': 112 # print('login successfull') 113 # while tag: 114 # cmd=input('cmd>>: ') #q 115 # if cmd == 'q': 116 # tag=False 在这吧tag定为False,就是当输入‘q’时,tag变成False了,所以整个循环的tag都成为False了,所以就会全部退出了 117 # continue 118 # print('run %s' %cmd) 119 # 120 # else: 121 # print('user or password err') 122 # count += 1 123 124 125 #while+else 126 count=0 127 while count <= 5: 128 if count == 3: 129 break 130 print(count) 131 count+=1 132 else: 133 print('当while循环在运行过程中没有被break打断,则执行我')