Python基础总结
Python总结目录:
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
Python的简介
简介:Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum(龟叔)于1989年发明, 第一个公开发行版发行于1991年。
诞生:1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序, 即Python(TIOBE编程语言排行榜)
作用:开发网站、后台服务、工具脚本、爬虫、数据分析、人工智能等
特点:
○ 优点:简单(定位:简单、优雅、明确)、代码量少(人生苦短 我用python)、功能强大(大量的第三方库)。
○ 缺点:运行速度慢、代码不能加密。
○ 补充:Python是一门解释型语言,类似于PHP,不同于C、C++等编译型语言
编译型和解释型语言
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;
而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.
这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)
编译型
优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。(运行速度快)
缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。(开发效率低,不能跨平台)
解释型
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。(开发效率高,可以跨平台)
缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。(运行速度慢)
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公司出口
变量和数据类型
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']python关键字
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)数据类型
Python运算符
字符串常用功能
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转换为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计数
