Python基础总结
Python总结目录:
1.Python的简介
简介:Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum(龟叔)于1989年发明, 第一个公开发行版发行于1991年。
诞生:1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序, 即Python(TIOBE编程语言排行榜)
作用:开发网站、后台服务、工具脚本、爬虫、数据分析、人工智能等
特点:
○ 优点:简单(定位:简单、优雅、明确)、代码量少(人生苦短 我用python)、功能强大(大量的第三方库)。
○ 缺点:运行速度慢、代码不能加密。
○ 补充:Python是一门解释型语言,类似于PHP,不同于C、C++等编译型语言
2.编译型和解释型语言
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;
而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.
这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)


编译型
优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。(运行速度快)
缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。(开发效率低,不能跨平台)
解释型
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。(开发效率高,可以跨平台)
缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。(运行速度慢)
3.Python三种运行方式
1.Python交互模式(解释器)
执行 Python 命令,就进行 Python 交互模式,提示符 >>>,输入 exit() 可退出交互模式
C:\Users\lenovo>python Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> name = 'jiangxinheng' >>> name 'jiangxinheng' >>> exit() C:\Users\lenovo>
好处:一下就能得到结果。
坏处:没办法保存,下次还想运行的时候,还得再敲一遍,不适合开发。
2.使用文本编辑器(脚本)
建议使用 sublime(ctrl+shift+b) 或者 notepad++,不要使用windows自带的记事本(会自动在文件的开头添加特殊字符,结果可能会导致错误)
a、sublime 创建Python脚本,以 .py 结尾
# -*- coding:utf-8 -*- # 输出,使用print() print('Hello Python') name = 'jxh' print(name)
注意:如果脚本有中文,可能会报错,需要在文件的第一行添加一个编码注释
b、运行脚本
1.cmd运行脚本 ---》python hello.py
2.sublime脚本中直接运行----》ctrl+shift+b 注:sublime中没有input()输入功能
3.使用IDE工具
PyCharm,JetBrain公司出口
4.变量和数据类型
1.变量
1.变量的概念:
1.程序可操作的储存区名称 2.程序运行时,储存区中可以改变的数据 3.每个变量都有特定的类型 例如:一栋教学楼当做内存的话,教室名相当于变量名,其教室里面的学生(内部储存的内容)就是变量值
2.变量的作用和定义:
# 作用:将数据存放到内存 # 1.定义 变量名= 初始值 # (初始值的实际类型决定变量的数据类型) name = '蒋新衡' # 2.查看变量类型:type() print(type(name)) # <class 'str'> # 3.查看变量名内存地址:id() print(id(name)) # 1989180256 所代表的的是它的内存地址
3.变量的调用:
a=1 b=6 c=a+b # 调用a和b的值相加赋予给c print(c) # 7 # 注意:调用变量的时候,变量事先必须定义,否则无用(会报错)
4.变量的命名规范:
# 1. 必须由字母,数字,下划线组成; # 2. 不得以数字开头(但由于python中单下划线("_")和双下划线("__")名称的变量有特殊用途,因此不推荐自定义单下划线和双下划线开头的变量) ; # 3. 变量名尽可能见名知意:大驼峰(首字母大写)、小驼峰; # 4. 不能是Python的关键字
5.Python关键字:
import keyword # 导入Python中所有的关键字库 print(keyword.kwlist) # 输出所有关键字--以下python所有关键字 ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
6.常量
# 概述:常量即不变的量,比如,pi,3.1415926,或者程序运行过程中不可以更改的量 # 定义:一般常量的定义全部用大写 PI=3.14 # 定义常量
2.数据类型
Python基本的数据类型:整型(int)、浮点型(float)、字符串(str)、布尔值(bool)、复数(complex)、空值(None)等...
例子:
'''数据类型:整型、浮点型、字符串、布尔、空值、复数 等 ''' # 整型int a = 12345 print(a, type(a)) # 12345 <class 'int'> # 浮点型float b = 123.5 print(b, type(b)) # 123.5 <class 'float'> # 科学计数法E/e (浮点型) print(314E3) # 314000.0 print(314E-3) # 0.314 # 字符串str,定义字符串可以使用单引号或双引号(推荐用单引号) c = 'aaa' print(c, type(c)) # aaa <class 'str'> # 字符串有多行时可以使用三对单引号,表示多行内容,结果按照指定格式输出 info = ''' welcom to gaochenjiaoyu ''' print(info, type(info)) # 布尔bool,取值:True、False f = True print(f, type(f)) # True <class 'bool'> g = 5 < 3 print(g) # False print(5 + True) # True表示1,False表示0 # 空值 NoneType h = None print(h) # None # 复数complex aa = 1 + 1.5j print(aa, type(aa)) # (1+1.5j) <class 'complex'> print(aa.real) # 该复数的实部 1.0 print(aa.imag) # 该复数的虚部 1.5 print(aa.conjugate()) # 该复数的共轭复数 (1-1.5j)
5.Python运算符
6.字符串常用功能
1.字符串切片([]以及切片([::])
# 注意事项:空格也算一个字符 # 元素查找:从左往右数从0开始 或者 从右往左数从-1开始 # 切片:用来截取指定索引范围的内容(字符串、集合、列表等) name = 'love you' print(len(name)) # 8 # 索引 print(name[0]) # 查找多个元素 print(name[5], name[len(name) - 1], name[-1]) # 获取指定值,-1代表的是倒数第一位的值 print(name[1:4]) # 获取索引为[1,2,3]的字符,不包括4 ove print(name[:4]) # 开始位置不写默认为 0 love print(name[2:]) # 结束位置不写默认值为 最后一位 ve you print(name[1:5:2]) # 索引为[1,5]的字符,每隔2位取值,包括第一位,1,3 oe print(name[::2]) # 所有的字符,每隔2位取值--0,2,4,6 lv o print(name[::-1]) # 从负数取值 uoy evol
2.字符串大小写的转换
- str.lower():转小写
- str.upper():转大写
- str.swapcase():大小写对换
- str.capitalize():字符串首为大写,其余小写
- str.title():以分割符法为标记,首字母大写,其余为小写
aa = 'I like Python' print(aa.lower()) # 将所有大写字符转换为小写字符 i like python print(aa.upper()) # 将所有小写字符转换为大写字符 I LIKE PYTHON print(aa.swapcase()) # 大小写对换 i LIKE pYTHON print(aa.capitalize()) # #将字符串的第一个字符转换为大写,其他字母小写 I like python print(aa.title()) # 返回标题化的字符串,每个单词的首字母大写 I Like Python
#不区分大小写 input_str="AbcA" aa=input("请输入") if aa.lower()==input_str.lower():#都改为小写做为比较 print("输入正确") else: print("输入错误")
3.字符串格式输出对其
-
str.center() 返回一个原字符串居中,并使用参数填充 with 长度
-
str.ljust() 左居中
-
str.rjust() 右居中
-
str.zfill() 右居中,以0填充长度,且只有一个参数
# 字符串格式输出对齐 string = 'Hello World' print(len(string)) # 11 print(string.center(15, '*')) # 返回一个原字符居中,并使用‘*’填充长度 width的新字符 **Hello World** print(string.ljust(15, '*')) # 左对齐 Hello World**** print(string.rjust(15, '*')) # 右对齐 ****Hello World print(string.zfill(15)) # 右对齐,以0填充,只有一个参数 0000Hello World
4.去除字符
-
str.lstrip() 删除字符串左边的所有空格,可指定字符参数
-
str.rstrip() 删除字符串右边的所有空格
-
str.strip() 删除字符串左右两边空格,类似于java中的trim
# 删除指定字符串 string = '***Hello World***' print(string.lstrip('*')) # Hello World** print(string.rstrip('*')) # **Hello World print(string.strip('*')) # Hello World
5.拆分和连接字符串
-
str.partition(str) 将字符串str分成3元素的元组(str前面,str,str后面)
-
str.rpartition(str) 类似于parttion()方法,不过是从右边开始查找
- string.split(str="",num) 以str为分隔符拆分string,如果num有指定值,则仅分隔num+1个子字符串,str默认包含" \r,\t,\n和空格"
- string.splitlines() 按照行('\r','\n','\r\n')分隔,返回一个包含各行作为元素的列表
- string.join(seq) 以string作为分隔符,将seq中所有的元素(的字符串表示)合并成为一个新的字符串
# join str = 'hello world' print('-'.join(str)) # h-e-l-l-o- -w-o-r-l-d # split name = 'jiang xin' print(name.split('n')) # ['jia', 'g xi', ''] print(name.split('n', 1)) # ['jia', 'g xin'] print(name.splitlines()) # ['jiang xin'] # partition print(name.partition('n')) # ('jia', 'n', 'g xin') print(name.rpartition('n')) # ('jiang xi', 'n', '')
6.查找和替换
-
string.find(str,start=0,end=len(string)) 检测str是否包含在string中,如果存在则返回元素的第一次索引位置。
-
string.rfind(str,start=0,end=len(string)) 类似于find(),不过是从右边开始
- string.index(str,start=0,end=len(string)) 跟find()方法类似,如果str不在string中则会报错
- string.rindex(str,start=0,end=len(string)) 类似于index(),不过是从右边开始
- string.replace(old_str,new_str,num=string.count(old)) 把string中的old_str替换成new_str,如果num指定,则替换不超过num次
- string.startswith(str) 检查字符串是否以str开头,是则返回True
- string.endswith(str) 检查字符串是否以str结束,是则返回True
# 字符串搜索定位与替换 string = 'Hello World' print(string.find('l')) # 2 print(string.rfind('l')) # 从右开始 9 print(string.find('e', 2, 8)) # -1 print(string.index('l')) # 2 print(string.replace('l', 'L')) # 将所有的l转换为L HeLLo WorLd print(string.replace('l', 'L', 1)) # 从左往右,替换一个 'l' HeLlo World print(string.startswith('jxh')) # 判断字符串是否以‘jxh’开头 False print(string.endswith('ld')) # 判断字符串是否以 ‘ld’结尾 True
7.判断类型(具体看例子)
# 字符串条件判断 string = 'hello world' print(string.islower()) # 是否全是小写,当全是小写和数字一起时候,也判断为True True print(string.isupper()) # 是否全是大写,当全是大写和数字一起时候,也判断为True False print(string.isalnum()) # 是否全是由字母和数字组成的,不包括空格,并字符串至少有一个字符 False print(string.isalpha()) # 是否全是字母,不包括空格,并字符串至少有一个字符 False print(string.isdigit()) # 是否全是数字,不包括空格,并字符串至少有一个字符 False print(string.istitle()) # 是否所有的单词首字母都是大写,标题 False print(string.isspace()) # 判断是否全是空白字符,并字符串至少有一个字符 False
8.计数(具体看例子)
a="Life is short,I use python" print(a.count('i'))# 返回str 在 string 里面出现的次数 #结果:2 print(a.count('i',4,8))# 在索引值为[4,8) 的范围内 str 出现的次数 #结果:1
7.列表常见操作
| 序号 | 分类 | 关键字/函数/方法 | 说明 |
|---|---|---|---|
| 1 | 增加 | 列表.insert(索引,数据) | 在指定位置插入数据 |
| 列表.append(数据) | 在末尾追加数据 | ||
| 列表.extend(列表2) | 将列表2的数据追加到列表 | ||
| 2 | 删除 | del 列表[索引] | 删除指定索引的数据 |
| 列表.remove[数据] | 删除第一个出现的指定数据 | ||
| 列表.pop () | 删除末尾数据 | ||
| 列表.pop(索引) | 删除指定索引数据 | ||
| 列表.clear() | 清空列表 | ||
| 3 | 修改 | 列表[索引] = 数据 | 修改指定索引的数据 |
| 4 | 查找 | 列表[索引] | 从列表中取值 |
| 列表.index(数据) | 获得数据第一次出现的索引位置 | ||
| 5 | 排序 | 列表.sort() | 升序排序(按照ascii码来进行排序) |
| 列表.sort(reverse=True) | 降序排序(按照ascii码来进行排序) | ||
| 列表.reverse() | 逆序、反转 | ||
| 6 | 统计 | len(列表) | 列表长度 |
| 列表.count(数据) | 数据在列表中出现的次数 |
1.增加:
apend()、extend()、insert()
- 1)append():追加元素,增加到最后
nums = [1,2,3,4] nums.append(5) print(nums) # [1,2,3,4,5]
- 2)extend():迭代的去增加
li = ['hengyang', 'changsha', 'shaoyang'] li2 = ['shenzheng', 'shanghai'] li.extend(li2) print(li) # ['hengyang', 'changsha', 'shaoyang', 'shenzheng', 'shanghai']
- 3)insert():在指定位置索引前插入元素
li = ['a', 'b', 'c', 'd'] li.insert(1, [1, 2, 3, 4]) print(li) # ['a', [1, 2, 3, 4], 'b', 'c', 'd']
2.删除:
pop()、del、remove()、clear()
- 1)pop():弹出元素
li = ['a', 'b', 'c', 'd'] li.pop() # 如果没有指定索引位置,则默认是弹出最后一个元素 print(li) # ['a', 'b', 'c'] li.pop(0) # 弹出索引为0的元素 print(li) # ['b','c']
- 2)del:删除元素
li = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] del li[2] print(li) # ['a', 'b', 'd', 'e', 'f', 'g'] # 注:如果直接del li,将会直接把这个列表给删除,再次使用则报错:name 'li' is not defined
- 3)remove():从左往右,删除第一次出现的字符
li = ['a', 'b', 'c', 'b', 'e', 'b'] li.remove('b') print(li) # ['a', 'c', 'b', 'e', 'b']
- 4)clear():清空列表
li = ['a', 'b', 'c', 'b', 'e', 'b'] li.clear() print(li) # []
3.修改:
li = ['a', 'b', 'c'] li[0] = 'aa' print(li) # ['aa', 'b', 'c'] # 利用切片 li[1:3] = ['bb', 'cc'] print(li) # ['aa', 'bb', 'cc']
4.查找:
列表[索引] 、index()
li = ['b', 'a', 'c', 'a', 'd'] print(li[0]) # a # index():返回a第一次出现的位置 print(li.index('a')) # 1 # 指定索引位置 print(li.index('a', 2, len(li) - 1)) # 3
5.排序:
sort()、reverse()、切片
# 升序 li = ['b', 'a', 'c', 'e', 'd'] li.sort() # 按照ascii码来进行(升序排序--》从小到大) print(li) # ['a', 'b', 'c', 'd', 'e'] # 降序 li.sort(reverse=True) # 按照ascii码来进行(降序排序--》从大到小) print(li) # ['e', 'd', 'c', 'b', 'a'] # 逆序 li.reverse() # 逆序、反转 print(li) # ['a', 'b', 'c', 'd', 'e'] # 切片逆序 print(li[::-1]) # ['e', 'd', 'c', 'b', 'a']
6.统计:
len() 、count()
li = ['b', 'a', 'b', 'c'] print(len(li)) # 查看列表li的长度 4 print(li.count('b')) # 统计字符 b 在列表li中出现的次数 2
8.字典常见操作
| 序号 | 分类 | 函数/方法 | 描述 |
| ① | 增加 | 字典[key]=value | key不存在,新增;key存在,修改 |
| 字典.setdefult(key,value) | key不存在,新建键值对;key存在,不会修改 | ||
| 字典.update(字典2) | 将字典2的数据合并到字典1;键相同时,字典2覆盖字典1键值 | ||
| ② | 删除 | del 字典[key] | 根据key,删除指定键值对,key不存在则会报错 |
| 字典.pop(key) | 根据key,弹出指定键值对,key不存在则会报错 | ||
| 字典.popitem() | 随机删除一个键值对 | ||
| 字典.clear() | 清空字典 | ||
| ③ | 更改 | 字典[key]=value | key不存在,新增;key存在,修改 |
| ④ | 查找 | 字典[key] | key不存在,报错;key存在,返回对应的value |
| 字典.get(key) | 可以从字典中取值,key不存在不会报错 | ||
| ⑤ | 字典的项 | 字典.keys() | 所有key列表 |
| 字典.values() | 所有value列表 | ||
| 字典.items() | 所有(key,value)元组列表 | ||
| ⑥ | 长度 | len(字典) | 计算字典的长度 |
| ⑦ | 转换 | str(字典) | 字典转换成字符串输出 |

浙公网安备 33010602011771号