时隔多年不用忘却了很多,再次进行python的汇总总结。好记性不如烂笔头!
PYTHON基础
- Python简介
- python是什么?
- Python特点
- Python应用场景
- Python版本和兼容问题解决方案
- python程序基本格式
- Python程序的构成
- 代码的组织和缩进
- 使用\行连接符
- 对象简介
- 引用
- 标识符规则
- Python标识符命名规则
- 最基本内置数据类型
- 数字和基本运算符
- 整数
- 使用int()实现类型转换:
- 自动转型:
- 整数可以任意大
- 浮点数 float
- 类型转换和四舍五入
- 增强型赋值运算符
- 布尔值
- 运算符
- 逻辑运算符
- 比较运算符
- 位运算符
- 加法操作补充
- 乘法操作补充
- 增强赋值运算符(补充)
- 同一运算符⚠️这与java不同
- 成员运算符
Python简介
python是什么?
Python是当今世界最流行的程序语言之一。由荷兰人,吉多·范罗苏
姆(Guido van Rossum)1989年发明,1991年公布。官网:ww
w.python.org
Python突出的简洁性、易读性和可扩展性,使得在数据科学、 人工智能、云计算、图形处理与互联网应用等领域占尽风头。
Python特点
- List item
可读性强
可读性远比听上去重要的多得多。 可读性强意味着让你可以在更短时间内学习和记忆,直接提 高生产率。
- List item
简洁,简洁,简洁
python完成同样功能只用其他语言一半的代码,其实就是提 高了一倍的生产率。
程序员再也不需要关注复杂的语法,而是关注任务本身。
- 开源
Python是纯粹的开源语言,软件更容易移植到其他的平台,如 Mac、Linux等,因此Python拥有丰富的第三方资源库是不足为 奇的。
- 标准脚本语言
脚本程序是指只有需要被调用时,才会被动态的解释执行。
Python应用场景
- 人工智能(AI Artificial Intelligence)
人工智能领域的王者!人工智能领域大多数开发场景都有 Python的身影。
- Web应用开发
一些Web框架,如Django,TurboGears,web2py,Zope等, 可以让程序员轻松地开发和管理复杂的Web程序。
- 操作系统管理、服务器运维的自动化脚本
大多数Linux发行版以及NetBSD、OpenBSD和MacOSX都集成
了Python,可以在终端下直接运行Python。一般说来,Python 编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方
面都优于普通的shell脚本。
- 科学计算和数据分析
NumPy,SciPy,Matplotlib可以让Python程序员编写科学计算 程序。
- 桌面软件
PyQt、PySide、wxPython、PyGTK是Python快速开发桌面应 用程序的利器
- 服务器软件、网络爬虫
- 游戏开发
很多游戏使用C++编写图形显示等高性能模块,而使用Python或 者Lua编写游戏的逻辑、服务器。
Python版本和兼容问题解决方案
1 Python有两大版本,分别是Python2.x和Python3.x。 2
Python2.x版本在2020年已经停止支持,因此Python3.x是目前主流。
⚠️Python3:2008年发布。Python3有了较大的提升,不兼容 Python2。
❤️兼容问题解决:
Python3的很多新特性也被移植到了Python2.7,作为过渡。如果程序可以在2.7运行,可以
通过一个名为2to3(Python自带的一个脚本)的转换工具无缝迁移到Python3。 1 2
强烈建议大家从Python3开始,毕竟它是现在,也是未来
python程序基本格式
- 缩进风格
恰当的空格,缩进问题
1 逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。
2 语句从新行的第一列开始。
缩进风格统一:
1 每个缩进层次使用 单个制表符 或四个空格(IDE会自动将制表符设置成4个空格)
2 Python用缩进而不是{}表示程序块的层次关系
3 Python区分大小写
Python区分大小写
- 注释
注释是程序中会被Python解释器忽略的一段文本。程序员可以通过
注释记录任意想写的内容,通常是关于代码的说明。
每行注释前加 # 号。当解释器看到 # ,则忽略这一行 # 后面的内
容
2 段注释(多行注释)
使用三个连续单引号 ‘’’ 或三个双引号 “”" 。当解释看到 ‘’’ ,则会
扫描到下一个 ‘’’ ,然后忽略他们之间的内容。
⚠️三个连续引号,其实就是定义了一个字符串。只不过,没
有变量指向,会被当做垃圾回收(关于本句话的含义,后面
讲完面向对象再看)
#我是单行注释
print('单行注释演示')
'''
我是多行注释
三个单引号实现多行注释
作者:
时间:
'''
print('三个单行引号实现多行注释')
"""
三个双引号实现多行注释
作者:
时间:
"""
print('双引号实现多行注释')
Python程序的构成
1 Python程序由模块组成。一个模块对应python源文件,一般后缀名是:.py
2 模块由语句组成。运行Python程序时,按照模块中语句的顺序依次执行
3 语句是Python程序的构造单元,用于创建对象、变量赋值、调用函数、控制语句等
ctrl+s:随手保存写好的文件!程序员第一习惯!
Python官方推荐的PEP-8代码风格详细说明,有兴趣的同学可以参
考PEP-8代码风格详细说明
代码的组织和缩进
很多编程语言通过字符(例如:花括号{})、关键字(例如:
begain/end)来划分代码块。同时,在配合代码的缩进增加可读性。
“龟叔”设计Python语言时,直接通过缩进来组织代码块。“缩进”成
为了Python语法强制的规定。
缩进时,几个空格都是允许的,但是数目必须统一。通常采用“四个
空格”表示一个缩进。
同时,也要避免将“tab制表符”或者tab与空格混合的缩进风格。目
前,常用的编辑器一般设置成:tab制表符就是4个空格
使用\行连接符
一行程序长度是没有限制的,但是为了可读性更强,通常将一行比
较长的程序分为多行。这是,我们可以使用\行连接符,把它放在行
结束的地方。Python解释器仍然将它们解释为同一行。
a = [10,20,30,40,\50,60,70,\80,90,100]
b = 'abcdefg\hijklmn\opqrst\uvwxyz'
print(a)
print(b)
对象简介
Python中,一切皆对象。
每个对象由:标识(identity)、类型(type)、value(值)组成
1.标识用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数id(obj)可返回对象obj的标识。
2.类型用于表示对象存储的“数据”的类型。类型可以限制对象的取值范围以及可执行的操作。可以使用type(obj)获得对象的所属类型。
3.值表示对象所存储的数据的信息。使用print(obj)可以直接打印出值
对象的本质就是: 一个内存块,拥有特定的值,支持特定类型的相关操作
内存示意图
1 a=3
2 print(a)
3 print(id(a))
4 print(type(a))
5 b='我爱你'
6 print(b)
7 print(id(b))
8 print(type(b))
引用
在Python中,变量也称为:对象的引用(reference)。变量存储的就
是对象的地址。
变量通过地址引用了“对象”。
标识符规则
Python标识符命名规则
最基本内置数据类型
python中变量没有类型,但是对象都有类型,python中最基本的内
置数据类型:
1 整型 int
整数, 2345 , 10 , 50
2 浮点型 float
小数, 3.14 或者科学计数法 314e-2
3 布尔型 bool
表示真假,仅包含: True 、 False
4 字符串型 str
由字符组成的序列。 “abc” , ‘sxt’
数字和基本运算符
Python支持整数(如: 50 , 520 )和浮点数(如: 3.14 , 10.0 , 1.23e2 ),我们
可以对数字做如下运算。
整数
- 三种进制
Python中,除了十进制,还有其他三种进制:
0b 或 0B ,二进制 0 1
0o 或 0O ,八进制 0 1 2 3 4 5 6 7
0x 或 0X ,十六进制0 1 2 3 4 5 6 7 8 9 a b c d e f
>>> 12
12
>>> 0b101
5
>>> 0o19
SyntaxError: invalid syntax
>>> 0o10
8
>>> 0xff
255
使用int()实现类型转换:
1 浮点数直接舍去小数部分。如: int(9.9) 结果是: 9
2 布尔值 True 转为 1 , False 转为 0 。 如: int(True) 结果是 1
3 字符串符合整数格式(浮点数格式不行)则直接转成对应整数,否则报错
自动转型:
整数和浮点数混合运算时,表达式结果自动转型成浮点数。比如:
2+8.0 的结果是 10.0
整数可以任意大
Python2中, int 是32位,可以存储从 -2147483648 到 2147483647 的整数
(约±21亿)。Long类型是64位,可以存储:-263–263-1之间的
数值。
Python3中, int 可以存储任意大小的整数, long 被取消。我们甚至
可以存储下面的值:
googol = 10**100
2 >>>googol100000000000000000000000000000000000
000000000000000000000000000000000000000000000
00000000000000000000
Python3中可以做超大数的计算,而不会造成“整数溢出”,这也
是Python特别适合科学运算的特点
浮点数 float
1 浮点数用科学计数法表示。比如: 3.14 ,表示成: 314E-2 或者 314e-2
2 这些数字在内存中也是按照科学计数法存储。
类型转换和四舍五入
- 类似于 int() ,我们也可以使用 float() 将其他类型转化成浮点数。
- 整数和浮点数混合运算时,表达式结果自动转型成浮点数。比
如: 2+8.0 的结果是 10.0 - round(value) 可以返回四舍五入的值。但不会改变原有值,而是产生
新的值
增强型赋值运算符
运算符 + 、 - 、 * , / 、 // 、 ** 和 % 和赋值符 = 结合可以构成“增强型
赋值运算符”。
时间的表示
计算机中时间的表示是从“1970年1月1日 00:00:00”开始,以毫秒
(1/1000秒)进行计算。我们也把1970年这个时刻称为“unix时间
点”。
这样,我们就把时间全部用数字来表示了。
python中可以通过time.time() 获得当前时刻,返回的值是以秒为单
位,带微秒(1/1000毫秒)精度的浮点值。例如:
1635063628.5632517
import time
b = int(time.time())
totalMinutes = b//60
totalHours = totalMinutes//60
totalDays = totalHours//24
totalYears = totalDays//365 #忽略闰年情况
布尔值
Python2中没有布尔值,直接用数字 0 表示 False , 用数字 1 表示
True 。
Python3中,把 True 和 False 定义成了关键字,但他们的本质还是 1 和
0 ,甚至可以和数字相加。
在Python语言底层,会将布尔值True看作1,将布尔值False看
作0,尽管从表面上看,True和1、False和0是完全不同的两个
值,但实际上,它们是相同的。
运算符
逻辑运算符
#测试逻辑运算符
a,b,c=10,20,30
print((a<b) and (b<c)) #and并且 输出结果是
True
print((a>b) or (b>c)) #or或者 输出结果是
False
print(not(b<c)) #not非 输出结果是
False
比较运算符
所有比较运算符返回 1 表示真,返回 0 表示假。这分别与特殊变量
True 和 False 等价。
以下假设变量 a为15 ,变量 b为30 :
位运算符
按位运算符是把数字看作二进制来进行计算的。Python中的按位运
算法则如表所示。
加法操作补充
1 数字相加 3+2 结果是 5
2 字符串拼接 “3”+“2” 结果是 “32”
3 列表、元组等合并 [10,20,30]+[5,10,100] 结果是 [10,20,30,5,10,100]
乘法操作补充
1 数字相乘 3*2 结果是 6
2 字符串复制 “sxt”*3 结果是 ”sxtsxtsxt”
3 列表、元组等复制 [10,20,30]*3 结果是 [10,20,30,10,20,30,10,20,30]
增强赋值运算符(补充)
复合赋值可以让程序更加精炼,提高效率。
⚠️与 C 和 JAVA 不一样, Python 不支持自增(++)和自减(–)
同一运算符⚠️这与java不同
同一运算符用于比较两个对象的存储单元,实际比较的是对象的地
址。
is 与 = = 区别:
is 用于判断两个变量引用对象是否为同一个,既比较对象的地址。
= = 用于判断引用变量引用对象的值是否相等,默认调用对象的
_ eq _() 方法。
a=20
b=20
c=30
print("a和b是同一个对象",a is b) #执行结果:True
print("a和c是同一个对象",a is c) #执行结果False
print("a和c不是同一个对象",a is not c) #执行结
果True
成员运算符
成员运算符测试实例中包含了一系列的成员,包括字符串,列表或
元组。
a = "python"
b = "py"
print(b in a) #True
c = [10,20,30]
print(10 not in c) #False