python安装及基础语法--个人学习分享

love_share 2020-05-08 04:21:03

目录

一、 Python安装与运行 3
1、python安装 3
2、 集成开发环境pycharm安装 3
二、 变量与对象 3
1、 常见数据-数字 3
2、 数字的运算 4
3、 Python语法主要点 4
三、 字符串、列表、元组 5
1、 字符串 5
2、 列表 5
3、 元组 5
4、 变量 6
5、 序列sequence 6
四、 布尔表达式和条件判断 6
1、 布尔表达式 6
2、 条件判断 7
五、 函数、对象的方法 7
1、 流程控制 7
2、 函数 7
3、 函数的拓展 8
4、 对象的方法 9
5、 查看文档 9
六、 字符串的格式化 10
1、 % 方法 10
2、 format方法 10
3、 f’’方法 10
七、 文件的读写 10
1、 文件的打开 10
2、 文件的读写 11
八、 循环嵌套和算法 11
1、 while循环 11
2、 for循环 12
3、 Break 12
4、 Continue 12
5、 注释 12
6、 循环嵌套 12
7、 冒泡排序 13
九、 字典 13
1、 字典的定义 13
2、 字典的使用 13
3、 字典的遍历 14
十、 模块与包 14
1、 模块的概念 14
2、 模块的使用 14
3、 联合使用 14
15
十一、 面向对象 15
1、 定义 15
2、 实例化 15
3、 方法 15
十二、 异常 16
1、 异常 16
2、异常发生 16
十三、 字符编码 16
1、 字符编码 16
2、 Python对中文的处理 17
十四、 外部程序调用 19
1、 Windows命令行打开程序 19
2、 Python调用外部程序 19
十五、 装饰器 20
1、装饰器的概念 20
2、范例 20
十六、 多线程 21
1、 线程的概念 21


一、Python安装与运行
1、python安装
·python官网: https://www.python.org
·点击Downloads--找到Python3.6以上版本任一行并点击Download--点击Windows x86 executable installer
·安装时要勾选add path选项
2、集成开发环境pycharm安装
·下载地址: https://www.jetbrains.com/pycharm/download
·安装时选择勾选 64-bit launcher 不要勾选 .py

二、变量与对象
1、常见数据-数字
·整数
·Python语言里一切数据都是对象
·1,2,3
·-1,-2133
·Python 2 int 和long(长整数)两种类型
·范围:32bit 64bit
·Python 3 中只有int 没有long
·浮点数float
·3.14 3.0 -3.2
·精度限制
·type()可以获取数据的类型:print(type(100))
·id():存储地址
2、数字的运算
·加法
·运算符号:+
·减法
·运算符号:-
·乘法
·运算符号:*
·除法
·取商
·Python2 9/2=2
·Python3 9/4=2.25
·Python 9//4=2
·取余数 Python2和2一样
·9%4=1
·次方
·运算符号:**
·混合运算:有括号先算括号,后面乘除,再加减

3、Python语法主要点
·Python第一行代码前面要顶格写
·Python是通过缩进区别代码块
·代码建议缩进4个空格(一个TAB键)[规范]

三、字符串、列表、元组
1、字符串
·语法:’ ’ “ ” ‘’’ ‘’’ “”” “””
·三引号可以做多行注释
·单行注释/取消注释: # 或 crtl+/
·class str类型
·字符串里面包含引号字符:”name is ‘tom’ ”
·字符串不能改变元素的值
·字符串是一种sequence类型,有下标
·由一个个元素组成
·每个元素是一个字符
·切片
·注意事项:
·切片操作对被切对象不影响
·被切对象是什么,切完后对象类型不改变
·正负下标都可以切片
·切片的核心:下标
·取中间段:
·str1[start:end],从start开始,到end结束,但不包括end
·等价于str1[start:start+切的内容长度]
·取前面一段:
·str1[:end]从第一个字符开始,到end位置结束,但不包括end
·取后面一段:
·str1[start:]从start开始,到字符串结束
·正负下标切片的选择

2、列表
·定义:[] list
·列表也是一种sequence类型
·可以存储任何类型的数据,每个元素是任意类型
·下标
·切片
·列表可以改变内容(值/元素的个数)
3、元组
·定义:() tuple (1,)
·元组也是一种sequence类型
·下标
·切片
·元组的值是不能改变的(内容和元素的数量)
·可以存储任意类型
·冒泡排序不能用元组,列表却可以
4、变量
·变量可以改变
·变量命名
·数字不能打头
·组成元素:字母、数字、下划线(_)
·不建议用中文命名变量
·不用关键字:有特殊用途
·内置函数名不能使用:若使用该函数将失去作用
·没有任何变量引用的对象,会被Python解释器定期清除
·变量的赋值:
·a=a+1或者a+=1
5、序列sequence
·由多个元素组成
·有编号:下标index
·正下标:从左到右 0 1 2
·负下标:从右到左 -3 -2 -1
·超出长度报越界
四、布尔表达式和条件判断
1、布尔表达式
·布尔类型(bool)
·True
·False
·布尔表达式
·关系运算符:
· > ; < ; == ; != ;>= ;<= ;==
·= 为赋值 ; == 为关系等价
·全部都是英文符号
·数值的比较
·字符串的比较
·比较的不是字符串的长度(len())
·比ASCII值(十进制) a 97 A 65
·从第一个元素依次对比
·==比较的是值
2、条件判断
·条件组合-逻辑关系
·且 and a and b
·如果 a==True b要进行判断,只有a和b同时为T其结果才为T
·如果 a==False b不需要判断,结果为F
·或 or a or b
·如果a==True b不需要判断
·如果a==False b要判断
·其中一个为T,结果就 为T
·不/非 not
·not True 等价F
·优先级: not > and > or ()的优先级更高

五、函数、对象的方法
1、流程控制
·顺序结构:依次执行
·条件判断--选择结构--选择分支结构
·if
·if else
·if elif elif else
·else可以缺省
·if嵌套
·if后面只有不是:0(数值),字符串’’,列表[],元组(),都是为True
·循环:while for
·pass 空语句:避免语法保存
2、函数
·概念:封装一段代码
·定义:def func():
·代码不重复
·修改方便
·函数的效果类似变量
·变量:一个对象的名字
·函数:一段代码的名字
·函数在调用的时候才能执行函数体里面的代码
·函数的定义一定要在函数的调用之前
·type(func)--<class ‘function’>
·None:函数无返回值 没有return
·def func(a,b) a,b为必填形参
·形参:形式主义
·实参:实际运行 在函数调用的时候
·在pycharm中:如果形参被使用,那么是黑色,否则是灰色

·func(a=1,2)函数的错误调用
·只要有 变量=值。后面的参数一定要保持队形
·return a+b 返回值
·可以更任意类型
3、函数的拓展
·函数的作用域
·全局变量:在函数外部
·局部变量
·在函数的内部,生命周期只有在函数内部
·全局变量在函数内部可以被引用
·函数内部修改全局变量 global x
·可缺省参数 def func(a,b=0):
·形参变量 = 值:b=0是默认参数
·b不传时默认为0
·若传,b=实参
·在一定程度上可以方便程序员调用,少给参数
·可缺省参数定义的时候一定在必填参数后面
·可变数量参数(*)
·数量可变
·提升函数的扩展性
·在形参变量前面加一个*
def calc(*numbers):
Print(trpe(numbers)) tuple元组
·如果传入的是一个元组/列表 ,在其前面加*
·关键字可变数量参数(**)
·有关键字
·可变数量
·定义:**arg
·print(type(arg)) <class ‘dict’>
·键值对
·传入值:变量=值
·如果传入的是字典:**dict1
·def func(a,b,c=0,*arg,**kw):
4、对象的方法
·字符串str
·count 计算字符串中包含的多少个指定的子字符串
·endswith 检查字符串是否以指定的字符串结尾
·startswith 检查字符串是否以指定的字符串开头
·find 返回指定的字符串在字符串中出现的位置
·如果查找的元素有多个,只返回第一个元素的下标
·可以指定开始查找的位置 find(‘’,3)
·isalpha 检查字符串中是否都是字母
·isdigit 检查字符串中是否都是数字
·str.join 将sequence类型的参数的元素字符串合并到一个字符串
·split 将字符串分割成几个子字符串,参数为分隔符,返回结果存放在list中
·lower 将字符串里面的大写字母全部转换成小写字母
·upper 将字符串里面的小写字母全部转换成大写字母
·replace 替换字符串里面指定的子字符串,全部替换
·strip 将字符串前置空格和后置空格删除,中间的不会被去掉
·列表list
·append 在列表的尾部添加元素
·insert 给列表指定位置插入一个元素
·insert(1,100) 1为插入的位置的下标,100为插入的值
·del 删除列表元素,列表名[下标] del[2]
·pop 在删除元素的同时,会返回元素的值,操作下标
·remove 根据值删除,如果列表中有多个相同元素,只会删第一个,操作元素
·三种删除方法,remove最慢
·clear
·reverse 将列表里的顺序翻转

5、查看文档
·谷歌、百度
·已安装的帮助手册:Python 3.6 Manuals(32-bit)
六、字符串的格式化
1、% 方法
·传入多个值 元组
·值得个数要一致
·%s 字符串类型
·%d 传整数,填坑的时候不能是‘abc’类型的字符串
·%f 浮点数,默认6位小数 %.2 f --保留小数点后2位
·%x 十六进制 0-9 A-F 0x开头是16进制
·指定输出长度
·左对齐:print(‘%-10d’%56)
·右对齐:print(‘%10d’%56)
·‘%5.3f’ 3代表小数的长度,5代表整个数的长度(包括小数点)
2、format方法
·str1.format()
·{} 一个位置(坑),一个format(值)
·三种使用方法:format(是个元组)
·顺序填坑
·下标填坑
·变量填坑
·format的长度:
·左对齐:{:<10}
·右对齐:{:>10}
·中间对齐:{:*^10}
·%等价于{:}
3、f’’方法
·类似format方法
七、文件的读写
1、文件的打开
·open(路径)
·fileDir =’g:/py.txt’
·fileDir = r’g:\py.txt’
·fileDir = ‘g:\\py.txt’
·路径要正确,格式要带全(.txt)
·open的参数 open(fileDir, ’r’ )
·r:只读模式,可缺省
·路径
·绝对路径:带盘符C、G
·相对路径:
·当前目录 ./
·上一层目录 .. ../
·tell() 获取文件指针位置
·with open(fileDir) as f:
·可以操作多个文件,会自动执行fo.close()
2、文件的读写
·fo.read(数量)
·返回str类型
·fo.read() 读取所有
·文件内部的换行符是2个长度(windows)
·fo.close()关闭文件
·移动文件指针位置:fo.seek(长度)
·0模式 移动到初始位置:fo.seek(0)
·1模式 从当前位置开始算,一定要是’br’
·seek(长度,模式)
·读一行:fo.readline() 返回str
·读所有行:fo.readlines() 返回list
·fo.read().splitlines() 获取所有行的同时,去掉所有的\n
·写模式 ‘w’
·如果该文件存在,所有内容被清空
·如果该文件不存在,创建该文件
·fo.write(‘123’),只是保存在内存里
·fo.flush() /fo.close()从内存写到磁盘
·a 追加模式,在末尾接着写
八、循环嵌套和算法
1、while循环
·格式:while 条件:
循环语句(循环体)
·while True:死循环
·用处:cmd Python shell
·不结合break容易挂在死循环里面
·求和/数据处理
2、for循环
·for name in alist : name依次去取(遍历)alist里面的每一个元素
·少了一个循环变量(递增变量)
·for one in range(0,101) 左含右不含
3、Break
·跳出本层循环
·跟if配合使用,满足条件退出本层循环
4、Continue
·跳出本次循环
·本次循环continue后面的代码不会执行
·继续执行下一次循环
5、注释
·#
·ctrl + /
·三引号
·函数里的特殊注释
doc string
func._doc_
6、循环嵌套
·for i in range(1,10):
for j in range(1,i+1):
print(‘{}*{}={}\t’.format(i,j,i*j),end=’’)
print()
·列表生成式
·aftertax=[int(one*0.9) for one in beforetax]
·one*0.9 循环体内容
·for one in beforetax 循环体
·aftertax=[int(one*0.9) for one in beforetax if one >=100]
·if过滤

7、冒泡排序
·思路:找出最大的和最小的交换位置
·举例:
alist = [8,2,0,5]
for i in range(0,len(alist)-1):
for j in range(0,len(alist)-i):
if alist[j] > alist[j+1]:
alist[j],alist[j+1] = alist[j+1],alist[j]
print(alist)

·
def bubble(alist):
for j in range(len(alist)-1,0,-1):
for i in range(0,j):
if alist[i] > alist[i+1]:
alist[i],alist[i+1]=alist[i+1],alist[i]
return alist


九、字典
1、字典的定义
·{} <class 'dict'>
·dict2 = {键1:值,键2:值}
·键值成对出现
·查找元素--通过键来查找,----不通过下标(没有下标这个概念)
·字典里没有同名的key--就算有--后面的相同的键对应的值会覆盖前面的

2、字典的使用
·增加元素:从字典后面依次增加
·增加字典元素:dict2['新键名'] = 对应的值
·如果该字典里面没有这个key,那么打印这个key对应的值会报错——keyerror
·字典可以存储任意类型
·关于key的类型:int、float、str 、tuple、不能是:list 、dict
·关于value的类型:任意类型
·hash:散列表---不能改变的类型
·注意事项:对键值操作不要刻意改变key
·判断字典里面有没有这个key ---- key in dict1
·关于字典的删除元素:
·字典里面的key 相当于---list 里面的下标
·del dict2['name']
·value = dict2.pop('name')
3、字典的遍历
·for one in dict1-------one依次去key---打印值---dict[one]
·students.items()---遍历字典的键值对[(键1,值1),(键2,值2)]
·获取字典所有的key---students.keys()---返回列表
·获取字典里所有的值--students.values()---返回列表
·dict.update
十、模块与包
1、模块的概念
·一般的行数--500-800
·模块--- xxx.py
2、模块的使用
·同一个包里面的模块调用
·import 模块名---执行模块
·函数/变量的调用---模块名.函数
· from 模块名 import 函数/变量
·import 模块名 ===== from 模块名 import *
·from blib import sumFun as blibF
1-as 取别名 好处:避免冲突
·不同包调用模块
· import 包名.模块名
·只要去导入这个包,对应的__init__.py会被执行
3、联合使用
·模块的搜索规则:
·import sys ---sys.path--解释器加载库的路径
·增加模块路径
· cmd---set PYTHONPATH=F:\;G:\--最终到sys.path
·sys.path.append('路径')---临时增加
·pip下载的第三方库--lib 或者 lib/site-packages目录
·pip 安装源---国外
·sys.path--- cmd --set PYTHONPATH 环境变量



十一、面向对象
1、定义
· class 类名(首字母大写--规范)
·class Tiger:
2、实例化
·t1 = Tiger()------t1 就是老虎类的一个实例
·类里面的变量----属性
·类里面的函数----方法
·静态属性==类属性
·这个属性属于整个类--所有实例化都是一样的

·实例化属性:
·这个属性--属于某一个实例的---每一个实例都会不一样
· def __init__(self):--初始化方法==构造方法
·在创建实例的时候,就赋予了该实例的一些实例属性 def __init__(self,weight):
·self---t1、t2 -----实例对象的本身
·self 它只是代言词--不是关键字---- 可以用其他字符代替 --ok 不要去代替
3、方法
·函数
·行为
·实例方法:每个具体实例相关的方法
·初始化方法就是一个实例方法

·静态方法:共有的方法,与每个具体实例无关--类方法
·@staticmethod 修饰---只能修饰紧跟的一个
·对象的组合
·对象的继承:
·class SouTiger(Tiger):#华南虎-----定义
·可以多继承
·方法的重写
·super(SouTiger,s1).roar()#调用父类的方法
· super(子类名,子类实例名).方法
十二、异常
1、异常
·解释性语言---没有报错执行--到报错那行代码,之后的代码不执行
·try…except捕获异常
·捕获所有异常--
·try 可能出现异常的代码块 except Exception as e:
·=== try: except : ----traceback.format_exc()--打印详细信息
·函数调用栈
2、异常发生
·解释器中断当前代码的执行, 并抛出一个异常对象
·并在函数的调用栈从下到上,层层的寻找捕获处理该异常的代码
·如果能找到就执行对应的代码
·如果不能则会一直找到最外层的函数结束本次执行
十三、字符编码
1、字符编码
·字符集(character set)
·字符集是用来表示语言符号的数字的集合
·这只是数字(code point),不涉及用什么方法来存储数字
·常见的字符集
·ASCII字符集
·Unicode
·gb2312、gdk、gb 18030
·字符编码和解码原理图

·常见的字符编码方式
·ASCII
·UTF-8
·UCS2 UCS4(UTF-16 UTF-32)
·gb2312、gdk、gb18030(Extended Unix Code - EUC)
2、Python对中文的处理
·字形和字体

·字体文件

·显示utf8编码字符的过程
·文字以某种编码保存在文件中
·程序读取文件中的文字并且解码到Unicode
·程序调用操作系统Windows服务,安装Unicode数字编码在字体文件中查找字体图像
·画到窗口上
·代码编辑器

·终端输入中文
·input()用户输入中文
·Input函数自动根据终端输入的字符的编码方式
·sys.stdin.encoding
·打开中文文件名
·Windows目前最流行的ntfs文件系统而言
·文件名都是用utf-16(有的文档说是Unicode)编码
·with open(‘中文.txt’,encoding=’utf8’) as f:
Print(f.read())
十四、外部程序调用
1、Windows命令行打开程序
·使用命令行打开记事本

·使用命令行打开QQ

·使用命令行关闭程序
·

2、Python调用外部程序
·两种方法
·os.system
·打开画图软件


·返回值


·subprocess



十五、装饰器
1、装饰器的概念
·定义类的静态方法时,就使用了装饰器

·装饰器的特点是用一个@开头的字符串
·在我们阅读别人的代码时,会经常碰到装饰器
·装饰器通常用来装饰函数
·装饰器主要用来给函数增加一点功能
·一般装饰器本身也是一个函数(callable)
·我们可以想象成它包含了被装饰的函数
2、范例
·返回字符串的函数

·我们需要返回值多两个感叹号


十六、多线程
1、线程的概念
·进程的概念:运行着的程序

·例子

·线程库
·代码通过系统调用,请求OS分配一个新的线程
·Python里面
·thead:比较底层
·threading:是thread模块的扩展,提供了很多线程同步功能,使用起来更加强大方便
·都可以用来创建和管理线程

·多线程的概念
·代码通过系统调用,请求OS分配一个新的线程
·与原来的线程并行的执行一段代码

...全文
428 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hookee 2020-05-13
  • 打赏
  • 举报
回复

2,100

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧