1.Python的运行环境
安装Python的时候,会安装一个解释器和PVM
解释器:将代码编译成字节码,不同的解释器可以编译成不同的字节码,如CPython、JPython、IronPython、PyPy
现在安装的是cpython的解释器
解释器编译过后的文件后缀名是.pyc其中C是指compile编译的意思;
PVM:负责托管运行编译后的字节码
托管语言和非托管的语言,其中c vb和c++直接和os交互,而c#和java以及python为托管语言。
python的劣势:运行效率低,要经过托管。
python的web框架,最流行的2个:Django Flask

python代码,通过解释器解析成字节码 pyc 文件,然后通过pvm转换成字节码。
标准的python为cpython,可以通过解释器解释为java或者dotnet等字节码。
而不同的解释器可以将py文件解释为不同的字节码。

托管的好处:帮忙开发人员降低了很多工作,比如内存的回收的释放。
2.Python的层级
表达式:创建、处理对象
语句:由表达式构成语句
模块:语句又构成模块
程序:许多模块构成程序
3.Python的变量
在许多静态语言中,在声明变量的时候就规定了类型,在该变量中只能存储对应的变量类型。
python是强类型的语言,他的数据类型是根据变量所指向的值决定的。
python的变量类型是由对象决定的,而不是由变量决定的。变量可以改变指向的对象,变量指向的类型是可变的,所以说python也是动态类型的语言。
可以通过type()函数来查看变量的类型

命名规则:
1.由数字、字母、下划线 3种类型的字符组成;
2.不能由数字开头
3.不能包含空格(因为只能有数字、字母和下划线);
4.不能和python的关键字相同;
5.尽量避免0和o,l和1命名;
总结:只能由数字+字母+下划线来命名,且不能以数字开通。
4.python的数据的类型
Python的变量类型取决于实际关联的对象
数字类型:
整型 int
浮点型 float
精确类型 decimal
分数类型 fraction
....
字符串类型:str
列表: list
字典:dict
元组:tuple
集合:set
文件:file
布尔:boolen
True
False
空:None
程序块类型:
函数 function
类 class
模块 module
....

5.Python的数据的存储
1.声明一个变量名,就生成一个系统变量表;
2.声明的时候赋值,就是变量名对值的地址的引用,同时在python的系统类型中确认的变量类型;
python的类型只与对象有关,与变量无关;
python的变量的申明是动态类型,可以动态指向不同的值。
可以通过id函数来查看变量存储的内存

6.变量的销毁和垃圾回收机制(GC)
1.python有一个垃圾回收的机制,为GC
2.第一次赋值的时候,会对对象创建一个引用计数器,来确定对象是否被引用;
7.共享引用:多个变量引用一个对象
a = "Jerry"
b = a
id(a)
1528516950704
id(b)
1528516950704
id("Jerry")
1528516950704
通过id()函数可以查看变量的地址,发现变量 a b和字符串Jerry都有相同地址,所以是相同的变量
如果此时改变变量a的值,但是b的值是不会变化的,这个值得注意
a=13
a
13
b
'Jerry'

如何检验不同的变量是否引用的同一个对象呢?
-
字面值是否相等:使用 ==
age = 20
score = 20
age == score
True
2.判断变量是否引用同一个对象,判断地址是否相同,使用is操作符
age = 20
score = 20
age == score
True
age is score
True
2.python中的小数的内存池
对于经常使用的较小的数值,python会在内存中将[-5,256]先创建一份,使用的时候直接指向数值的内存地址;
查看对象被引用的次数,使用sys模块中的:getrefcount() 函数可以获取到
>>> import sys
>>> a = "Jerry"
>>> sys.getrefcount("Jerry")
4

7.数值类型
256以下的整数已经被python缓存

整型:整型的最大值只受计算机的硬件限制,不受变量类型限制,如果是32位置的系统
可以通过math模块中的maxsize来获取计算机支持的最大整型的数值
并且在python中int类型大小是无上限的,对于大数会进行python的大数运算
import sys
print(sys.maxsize)
>>>9223372036854775807
为何是这么多呢?
因为是64bit的操作系统,最大就是64个1组成的二进制的数,第一位为符号位置,就是有63个1转化为10进制数为2**63-1 = ±9223372036854775807
浮点型:
声明变量时候需要赋值
如果赋值为0.3可以省略前面的0直接写.3就可以了
浮点型的数据格式化:
使用format进行格式控制输出
# 使用format输出
a = 15.4
b = 'price is: {}'.format(a)
print(b)
>>>price is: 15.4
# format 的进制转化
This section contains examples of the str.format() syntax and comparison with the old %-formatting.
In most of the cases the syntax is similar to the old %-formatting, with the addition of the {} and with : used instead of %. For example, '%03.2f' can be translated to '{:03.2f}'.
# 十进制转十六进制
h = '{:x}'.format(25830)
print(h)
>>>64e6
# 如果使用X可以输出大写的十六进制-20190125添加
>>{:X}'.format(25830)
>>'64E6'
# 十进制转八进制
o = '{:o}'.format(369)
print(o)
# 十进制转二进制
b = '{:b}'.format(65)
print(b)
# 转十进制
d1 = '{:d}'.format(0x64e6)
print(d1)
d2 = '{:d}'.format(0o561)
print(d2)
d3 = '{:d}'.format(0b1000001)
print(d3)
>>>25830
>>>369
>>>65
内置函数的类型转换
# 转十六进制
h1 = hex(25830)
print(h1)
h2 = hex(0b10010)
print(h2)
h3 = hex(0o561)
print(h3)
>>>0x64e6
>>>0x12
>>>0x171
# 转二进制
b1 = bin(56)
b2 = bin(0x55)
b3 = bin(0o335)
print(b1,b2,b3,sep='|')
>>>0b111000|0b1010101|0b11011101
# 转八进制
o1 = oct(16)
print(o1)
o2 = oct(0x112)
print(o2)
o3 = oct(0b1101)
print(o3)
>>>0o20
>>>0o422
>>>0o15
#如果想要在16进制前面加上0x怎么解决呢?
可以通过在输出的字符上用format,{}前面加上0x即可
>>> "0x{:0>4x}".format(336)
'0x0150'
8.math模块
import math
math.pi
3.141592653589793
python的精度问题
>>> 2.2+1.1
3.3000000000000003
该问题是由计算机的硬件计算浮点型导致的
解决方法:
可以使用decimal类型
from decimal import Decimal
Decimal(1.1) + Decimal(2.2)
>>>Decimal(3.3)
random函数
>>> import random
>>> random.random()
0.2850653356138706
# randint(start,end)用于生成指定范围的随机数
>>> random.randint(1,45)
28
# random.sample()

分类:
python入门
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」