【公共信息】
python中文接口文档官网:https://learnku.com/python/docs
逻辑判断优先级官方地址:https://docs.python.org/3/reference/expressions.html
【第一课:python基础,20190626】
1.python基础介绍。
1.1如果把电脑比作人,大脑就好比机器的CPU+内存
1.2python官方解释器,是用C语言编写实现的。(简称Cpython)
1.3如果想通过cmd直接运行文件,可以在path里面加上python\bin路径。
1.4
2.python和其他语言对比。
2.1编译执行:C/C++/JAVA(javac编译器)
①编译+链接:表示把源代码编程成机器代码文件,然后把多个机器代码文件合并为一个可
执行文件,需要人工点击run才能执行文件。
②特点:一旦某一条语法错误,整个程序不能运行--(类似笔译,必须完全正确才可运行)
③生成:exe--可执行文件
2.2解释执行:Python(python解释器)
①解释器:把python源代码转换为bytecode机器码,直接执行bytecode,不需要生成可执行
文件。
②特点:边执行边翻译。--(类似口译,部分正确也可以执行部分内容)
③不生成:exe--可执行文件
④不申明:变量使用之前不需要声明,赋什么值就是什么类型 比如:var1=100
3.python官网:http://www.python.org/
3.1下载:根据自己系统下载对应版本
①稳定版:一般软件工具,不下载最新版,担心很多库不支持,很多其他工具不兼容。
②勾选path:勾选环境变量的路径,不勾选.py关联(避免所有脚本都pycharm打开,慢)
4.python-print打印:
规范:
①大小写敏感:所有关键词严格区分大小写
②第一行语句前方不能有空格,但可以空一行
③print“hello”,不加括号打印的一定是Python2
④单行注释#,换行注释三引号''',多行注释ctrl+/
4.1-cmd环境运行:python hello.py
4.2-解释器里面运行>>>:print('hello');→python3必须加括号,python2可加可不加括号
4.3-pycharmIDE里面运行:print('hello')
5.Python对象:python中一切数据都是对象。
6.python整数:
6.1-python3:只有int,没有long
6.2-python2:int(整型)--long(长整型)
6.3-type(100):查看当前数据类型。type(100)--有返回值--该类型---
7.float浮点数:
7.1-type(3.0):查看当前数据类型.type(3.0)--有返回值--该类型---
7.2-没有double类型,只有float类型,float类型的小数位最长16位。print(%f,这里最长有6位)
8.数字的运算:
8.1-加:+,1+2==3
8.2-减:-,3-2==1
8.3-乘:*,1*2==2
8.4-除:/,9/4==2.25
①python3中,9/4==2.25,默认取浮点数
②python2中,9/4==2,默认取整数
8.5-整除://,9//4==2
8.6-余除:%,9/4==1
8.7-平方:**,2**3==8
9.string字符串:引号引起来的都是字符串,包括单/双引号、三引号(三引号可以作为换行注释)
9.1-字面量--直接量:number=1;π=3.14;name='alice';
9.2-字符串用途:获取url地址、查看文件路径、获取属性值等
9.3-下标/索引:正负下标切片取值,
9.4-拼接:先入为主的概念,多个类型拼接以第一个类型为主。
9.5-引号:字符串的引号必须前后对应,同类型引号里面包含不同类型的引号,否则会报错
①如果字符串本身有单引号',那么外面一层就用双引号“或者三引号'''/“”“。
②如果字符串本身有双引号",那么外面一层就用单引号‘或者三引号'''/”“”。
③可以使用转义符号"\"或者"r",比如:welcome=‘’‘i'm "leo", \\n welcome to my house'''
9.6-复制:字符串*n,表示字符串打印n次,比如:print((welcome+"\n")*3)
9.6-支持下标取值
9.7-支持切片取值
9.8-只能查询,不支持增删改。
10.变量:本质就是一个对象的名字。
10.1-优点:①代码简洁易懂;②修改方便。
10.2-连接符:+,无缝连接,中间没有分隔。
①先入为主:print('name'+100)---name100,结果返回字符串
10.3-变量:
①组成:字面+数字+下划线,只能以字母(大小写均可)开头、下划线开头。
②警告:不能以数字开头,会报错
③区分大小写:aName='alice';print(AnAME);---报错
④命名规范:Aname、aName、a_name等,见到名字就知道含义,推荐英文单词
⑤不能与关键词同名:import keyword;print(keyword.kwlist);---查看已有关键词
⑥不能与函数同名:比如print/if/else/list/turple等。
10.4-废弃变量:没有任何函数引用或者指向的对象,会被python解释器释放空间给清除。
10.5-查看对象的内存地址:id(print),---返回4816760
11.退出解释器:
11.1 - ctrl+z+enter
11.2 - exit()---方法必须带括号
11.3 - quit()---方法必须带括号;
12.常见的变量赋值
12.1 - a=1
12.2 - a+=1---等价于:a=a+1
12.3 - a*=1---等价于:a=a*1
12.4 - a+= ++a a-- --a python没有这些用法
13.精确打印:print(round(1/3,6))---四舍五入精确到小数点后6位打印,返回---0.333333
14.list列表:[]
14.1列表是一种sequence序列类型。
14.2支持下标取值
14.3支持切片取值
14.4可以存储任意类型的值,包含字符串、列表、元组、数字、数组、字典等
14.5支持增删查改
①增加:alist.append(100),末尾增加具体的整数值100;
①插入:alist.insert(1,100),在索引为1的值签名插入100.
②删除:del 表名称(下标),比如del alist[1];del alist[1:1+2],删除索引为1的单个和多个值。
pop(下标),比如print(alist.pop(1)),删除并返回索引为1的值
remove(具体的值),比如alist.remove('welcom'),一次只能删一个具体的值。
技巧删除:
del alist[::2],删除列表步进值为2的偶数;
while 20 in alist:alist.remove(20),通过循环判断,删除列表里面全部的20
③查询:支持切片和下标查询
④修改:alist[下标]=10,比如:alist[1]=10,修改索引为1的值为10
⑤合并:a=[1,2];b=[3,4];print(a+b)---返回[1,2,3,4]------等同于a.extend(b)
a=[1,2];b=[3,4];print(a.append(b))---返回[1,2,[3,4]]
15.turple元组:(10,)
15.1元组也是一种sequence列表序列。
15.2支持下标取值
15.3支持切片取值
15.4可以存储任意类型的值,包括字符串、列表、元组、数字、字典等
15.5不支持增删改元素,只能查询元素的值,元组内容不可改变!!!!
15.6如果元组只有一个元素,必须加逗号,不然不是元组类型。tup1=(100,)
15.7如果元组里面包含列表,元祖的值不能修改;但是元组内部,列表内部的值可以改
【第二课:python基础,20190628】
1.sequence(序列)
1.1-特性:编号-序号-下标---唯一性。
1.2-元素:通过下标和索引切片取值。
1.3-空字符串:aStr=“”
空列表:aList=[],bList=[1]
空数组:atup=(),btup=(1,)
2.下标:下标取什么类型,结果就是值本来的类型。
2.1-从左往右:0开始到(n-1)截止
2.2-从右往左:-n开始到-1截止。超出索引值会报错
2.3-下标越界:报错tring index out of range
2.4-len()方法:1开始,可以算出序列的总长度。比如:pirnt(len(welcome))==30
2.5-index()方法:0开始,可以求出当前值的索引位置。比如:print(welcome.index('w'))==14
3.切片:切片切什么类型,结果就是什么类型。哪怕是一个元素,切出来也是列表。
方法:str[开始索引:结束索引:步长],举例:[list(range(1,11,1)][1:10:2]=[2,4,6,8]
规范:取头不取尾部,包含第一个索引的值,不包含最后一个索引的值。
3.1-取头部:str[:end]-----不包含end值
3.2-取中部:str[start:end]-----不包含end值,取值技巧:str[start:start+n],n表示取值长度。
3.3-取尾部:str[start:]-----包含最后一个值
3.4-临时值:切片切出来的值是一个临时对象,不修改原有的对象值。
3.5-倒叙排序:步长改为-1,就可以倒叙排序。比如:str[::-1]
3.6-切片越界:切片的值越界,默认取到最后一个值为准。不会报错。
4.下标和切片的选择:
4.1-如果取单个值,就用下标取
4.2-如果取多个值,就用切片取
4.3-如果左边的值格式固定,就用正下标取值。
4.4-如果右边的值格式固定,就用负下标取值。
5.类型强制转换:
特性:转换后,对原始对象无影响,生成临时新对象。
5.1元组变列表:alist=list(元组)
5.2列表变元组:aturple=tuple(列表))
5.3使用场景:
①列表用于可变数据,比如排序、用户信息。
②元组用于参数配置,比如银行卡信息,配置信息。
【第三课:python,布尔运算符和条件判断,2019.06.30】
1.布尔类型:
1.1笔记:
1.python变量通过值确定其变量的类型。
2.==是关系表达式,=赋值,做判断时,大小写敏感。
3.print(a==b)---表示值相等;print(a is b)---表示值和地址都相等(通过id(a)查看地址)
4.int变量的值在[-5,256]之间,python不会重新创建内存地址,会指向同一个地址
5.字母变量的比较:print('abc'>'ab'),一个一个字母的位置比较(a=97,A=65),ord(a)查看
ascii码地址
6.>=表示满足其中一个条件,就返回Ture
7.逻辑运算符,条件1 and 条件2,如果条件1已经false了,就不判断条件2了。
8.逻辑运算符,条件1 and 条件2,如果条件1已经ture了,就不判断条件2了。
9.逻辑运算符,in>not > and >or,如果逻辑很复杂,建议用括号和注释
地址:https://docs.python.org/3/reference/expressions.html
10.整体缩进,选中+tab;整体前移,选中+shift+tab
11.三目运算。条件?A:B
12.备注:print((10 and 20) in aList);
print(10 and 20)--and返回最后一个值20;
print(10 or 20)---or返回第一个值10;
1.2特性:2种类型
①-2种类型:真True 假False
②-赋值布尔型:name=True;print(type(name));---返回
③-或的关系:print(1<=3);---返回True,因为<=是或的关系,不是and
④-整型,值相等:“print(a==b)”表示判断a和b,值是否相等:a=10;b=10;print(a==b);
⑤-整型,值和内存地址相等:"print( a is b)"表示判断a和b,值和内存地址是否相等;
⑥-字符串,Ascii值相等:print('abc'>'ab')
1.3布尔表达式:
①-关系运算符:==,一个=是赋值,二个==是关系判断,!=是不等价
②-字符串的比较:a>A,字符串比较ASCII值,a--97,A--65
③-逻辑运算符:in---在里面,not in---不在里面,返回True or Flse
举例:
字符串str:'a' in 'name' ---Ture
元组tuple:(1,3) in (1,3,5)---False,因为逗号不是元素
列表list:[1] in [1,2,3]---Ture
④-条件组合:
且---and:条件a和条件b,全True才Ture,有False则False。
条件a和条件b,a == False,则结果false,不用考虑b
条件a和条件b,a == True,b==False,则结果False,否则True
或-----or: 条件a和条件b,有True则True,全False则False。
条件a和条件b,a == True,则结果True,不用考虑b
条件a和条件b,a == False,b==False,则结果False,否则True
不---not: 当前结果的反值,True---False
⑤-优先级:
括号优先:有括号的运算高于一切, (3(2(1)))---从里到外
没有括号:in>not > and >or>if -else
多用括号和注释:如果逻辑很复杂,建议多用括号和注释
优先级官方地址:https://docs.python.org/3/reference/expressions.html
2.条件判断:
2.1 流程控制
①-顺序结构---一步步执行
②-选择结构---在某一步,选择性执行
③-循环结构---在一定条件下,一直循环执行其中某段代码,直到输入退出命令。
2.2 条件判断
①-if 条件 :
②-if 条件 :--- else(else 选配,可写可不写)
③-if 条件 :--- elif 条件 :--- else(else如果条件不多,else可写可不写)
④-if 嵌套 :--- if 条件 :--执行内部代码前,必须优先满足外部代码,等价于a and b
⑤-没有java的-switch语法
⑥-多条件可以换行写,"\"分隔
⑦-扩展: if如果后面跟是 非0的数值、非空字符串 、非空元组、非空列表,则True
举例:if 1:print()、if [1]:print()、if (1):print()等
2.3 接收字符串:
①-input():默认返回字符串,可以强制转换,name=input();age=int(input())
②-单if:if语句只要满足其中一个条件,就直接跳出,不会执行其他判断内容
③-单if:pass :空代码块
④-多if-elif-else:如果a-否则b,多个条件时使用,根据条件执行a或者,执行b
⑤缩进快捷键:shift + tab,选中的内容向前缩进;Tab,选中的内容向后缩进。