切换导航
简历
工具
演示
查询
导航菜单
服务端
30
前端
114
数据库
82
进阶开发
8
桌面程序
2
QA
15
软件使用
36
规范协议
5
操作系统
11
AI
0
复用资源
6
硬件
0
标签
C# 基础
Mybatis
ADO.NET
ASP.NET
Python 基础
Linq
Web Forms
.NET
Spring
SpringBoot
SpringCloud
.NET Core 中间件
Maven
.NET 类库
ASP.NET MVC
EF
NHibernate
WebApi
Java
外部链接
.NET Core SDK和运行时安装包
淘宝 NPM 镜像
查询网
Tables Generator线上表格转换工具
引用cdn在线脚本和样式
首页
服务端
Python 介绍
[TOC] ## 1. Python 概述 [Python官方网站](https://docs.python.org)、[Python官方文档](https://docs.python.org/3.15/) + Python 是一门解释型语言 + Python 是跨平台的(Linux,Mac,Windows ……) + Python 目前有两个大版本,分别是Python2和Python3,两个大版本之间不相互兼容 + Python 需要解释执行器,目前主流的解释器有下面三种 + CPython (c语言开发的,目前官网上下载的基本都是C语言开发的) + JPython (Java语言开发的) + IronPython (.net开发的) ### 1.1. 解释执行器 + **进入交互模式:** 如果Linux的终端输入`python3` 可进入到解释执行器的交互模式,这时终端会出现可输入标识符`>>>`,在标识符号后面可以输入python代码`print("hello world")`、数学公式`2 + 3 * 4`等,回车就可以得到代码或公司的结果,交互模式可以用于验证结果等 + **退出交互模式:** + exit() + <回车> + quit() + <回车> + ctrl + d (输出入文件结束符) ### 1.2. 代码注释 在Python中注释代码只能使用`#`符号注释,注释的内容不参加解释执行(注释的代码不会执行) ### 1.3. python程序的组成 + 程序由模块组成 + 模块由语句,函数,类等组成 + 语句包含表达式 + 表达式建立并处理数据对象且能返回数据对象的引用关系 ### 1.4. python数据类型 + 数字类型:整型、浮点型、复数、布尔型(bool) + 空值:None 是一个表示不存在的特殊对象(作用:1.用来语法占位、2.变量解释绑定) + 字符串:str + 列表:list ### 1.5. python 运算符 在python中常用的运算符有:基础运算、 is /is not 运算符、复合赋值算术运算符、比较运算符,每种运算的作用和使用相关内容详见[《Python 运算符介绍和使用说明》]() ### 1.6. python 基本输入输出函数 #### 1.6.1. input input是输入函数,也可以称之为`阻塞函数`,它会阻塞它下面的语句执行,这里input就需要用户输出字符串后才可以继续执行 + **作用:**从标准输入设备上读取一个字符串 > 注意:末尾的换行字符会被删除 + **格式:**input('提示字符串') > 注意:返回一个字符串,提示字符串可以为空 + **示例:** ```python len = input("请输出入圆的半径:") r = float(len) print("圆的周长是:",r * 3.14 * 2) ``` #### 1.6.2. print + **作用**:将一系列的值以字符的形式输出到标准设备上,默认为终端 + **格式**:print(value,……,sep='',end='\n') - 要打印的内容:可以是多个,用英文逗号隔开 + **关键字参数说明**: - sep:两个值之间的分隔符,默认为一个字格'' - end:输出完毕后在流末尾自动追加一个字符串,默认为换行符格'\n' + **示例**: ```python # 打印字符串 print("hello") # 打印表达式返回结果 print(1 + 2 * 3) # 多个数据打印用逗号隔开 print(1 + 2 ,3 * 4 ,100) # 3 12 100 # 使用指定分割符号打印多个内容 print(1 + 2 ,3 * 4 ,100, sep='#') # 3#12#100 , 分割符号由默认的空格变成了# print(1 + 2 ,3 * 4 ,100, sep='') # 312100 , 使用了空替换空格 # 打印字符串 print("hello",'**\n') # hello** 追加了**再换行,如果没有换行下面一行内容会跟在输出后面 ``` ### 1.7. python 变量 + **变量**:是关联一个对象的标识符(符号) + **作用**:用来绑定一个数据对象,以便于以后重复使用 - 当变量不存在时,创建该变量,并绑定这个对象 - 当变量存在时,改变这个变量的绑定关系 - 一个变量只能绑定一个对象 - 两个变量可以同时绑定同一个对象 + **变量名的命名方法**: - 变量名必须为字母(a-zA-Z)或下划线(\_)开头,后跟字母,下划线或数字(0-9) - 不能使用python的关键字(保留字) > 说明:python变量名区分大小写 + **示例**: ```python # python 中复制可以用序列的方式复制,但这种方式必须保证变量数量与赋值序列数量一致 a,b,c = 1,2,3 # 序列赋值的妙用,例如可以交换两个变量的值,可以少写一次中间变量 a,b = 1000,2000 a,b = b,a print(a,b) ``` ### 1.8. python 自动化内存管理 当一个数据对象没有被一个变量绑定时,它将被内存的回机制回收 #### 1.8.1. 小整数对象池 CPython中,整数-5至256永远存在于内存中不会释放,并可以重复使用,也就是说这个范围的数值不需要重新创建对象 ```python a = 100 b = 100 # 下面 a is b 返回的是True,本来按照【1.5.2. is /is not 运算符】所述,这里应该是false,这里就是因为值100在小整数对象池内,它不需要重新创建,直接引用即可,所以a is b 是真 a is b ``` #### 1.8.2. 引用计数 每个对象都会记录有几个变量引用自身,当引用的数量为0时,则此对象将被销毁 ### 1.9. id 函数 **作用:**返回对象在内存中的地址 **用法:**id(x) ```python a = 1000 b = 1000 id(a) # 返回内存地址 140330941903344 id(b) # 返回内存地址 140330941904944 # 上面的示例也说明,a和b是不相当的 ``` ### 1.10. del 语句 **作用:**用于删除变量,同时解除与对象的关联关系,如果可能,则释放对象 **语法:**del 变量名 ```python a = 1000 del a # 删除了变量,如果这个变量绑定的对象没有别的变量关联,那么删除变量(a)时同时删除对象数据(1000) # 下面是两个变量引用同一个对象 a = b = 1000 del a # a变量被删除了,但1000这个对象并没有删除,它还被b绑定了 b = None # 这时b变量没有被删除,但1000这个对象被删除了,它已经没有绑定任何变量,因此被内存自动化管理回收了 ``` ### 1.11. help 帮助 #### 1.11.1. help("__main__") 查看当前作用域变量 **作用:**在交互模式下,查看当前作用域内变量的方法(推出查看按字母键`q`) ```python help("__main__") # __main__ 是固定的字符串参数 ```  #### 1.11.2. help() 查看函数的帮助 help(函数名) ```python help(abs) # 查看abs函数的帮助文档 ``` ### 1.12. python函数调用 函数名(传参列表) **说明:**函数调用的是表达式,通常用返回一个对象的引用 ### 1.13. python语句 **英文单词:**statements **语句定义:**是python执行的最小单位,语句可以独立执行 **语句示例:** ```python a = 100 # 赋值语句 print("hello world") # 表达式语句 ``` **说明:**多条语句写在一行内需要用分号`;`分开,通常一条语句写在一行内(符合语句除外) #### 1.13.1. 折行符 python中的折行符使用 \ 反斜杠,折行符是告诉解释执行器,下一行的内容也是此语句的内容 ```python a = 1 + 2 + 3 + 4 print(a) # 这里输出的是6,第二行 + 4 并没有参加到运算中,python是以行为一条语句执行的吗,这里就被拆成两行了,这里就需要使用折行符来告诉解释器,下面的行也是语句的一部分 a = 1 + 2 + 3\ + 4 print(a) # 这里输出10 ```  > 在交互模式下也可以看出,使用折行符后,+ 4 前面是……,说明后面的内容也是上面语句的一部分 > 注:折行符后面不能再添加内容了,必须换行再写了 #### 1.13.2. 隐式换行 所有的括号的内容换行时,解释执行器会自动去下一行找到相对应的括号,直到找到为止,称之隐式换行 ```python a = (1 + 2 + 3 + 4) + 5 + 6 print(a) # 这里输出15 ``` ## 2. Ubuntu 下第一个python程序 ### 2.1. 安装python 首先在Ubuntu中安装python3(主要使用的是python3)、使用默认的安装方式,使用下面的命令进行安装 ```shell # 更新包 sudo apt update # 安装默认版本的 python3 sudo apt install python3 # 检查安装的 python3 版本,也是判断系统是否已经安装了 python3 python3 --version # 输出 对应的版本号(如果安装完没有立马生效重启一下系统试试) ```  python安装完毕后,文件在`/usr/bin/python3`,可以使用 `which python3` 命令来查看安装后python3解释器所在位置 ### 2.1. 编写第一个python程序及运行 创建一个hello.py的文件,将下面的代码放入文件中 ```python print("hello world") ``` 终端进入到存放hello.py文件的目录下,执行 `python3 hello.py` ,执行完终端就会输出 hello world 了 > python3 hello.py 执行无效时,可以切换 /usr/bin/python3 hello.py 如果执行成功可能是环境变量有问题,就要去更改环境变量了 如果不想每次执行.py文件前加python3命令,可以将.py设置为可执行文件,也就是给文件可执行权限`chmod a-x hello.py `,给了可执行权限后需要在.py文件中的第一行加上 `#! /usr/bin/python3`(这个必须写在文件的第一行),告知这个可执行文件需要使用 python3 这个解释器执行代码内容 **完整的 hello.py** ```python #! /usr/bin/python3 print("hello world") ``` 上面操作结束后就可以执行下面命令,来完成执行python文件 ```bash ./hello.py ``` #### 2.1.1. 可执行命令环境变量说明 在 Linux/macOS 终端中,直接输入 `hello.py` 无法执行脚本,而需要用 `./hello.py`,核心原因与系统的 **安全机制** 和 **命令搜索规则** 有关: + **系统如何查找可执行文件?** 当在终端输入一个命令(比如 `python3`、`ls` 或 `hello.py`)时,系统会在 **环境变量 `PATH`** 中定义的目录列表里查找对应的可执行文件。 `PATH` 通常包含系统预设的命令目录(如 `/usr/bin`、`/bin` 等),但 **当前目录(`.`)默认不在 `PATH` 中**。 + **为什么 `hello.py` 不行?** 如果直接输入 `hello.py`,系统会去 `PATH` 中的目录找这个文件,而不会自动搜索当前目录。 因为当前目录不在 `PATH` 里,系统找不到 `hello.py`,会报错: ```bash hello.py: command not found ``` + **为什么 `./hello.py` 可以?** `./` 是相对路径的写法,`./hello.py` 明确告诉系统:**在当前目录(`.`)下查找 `hello.py` 文件**。 这绕过了 `PATH` 的限制,直接指定了文件的位置,因此系统能找到并执行脚本(前提是脚本有执行权限)。 + **补充说明** - 如果想直接用 `hello.py` 执行,可以将当前目录加入 `PATH`(不推荐,有安全风险): ```bash export PATH=$PATH:. # 临时生效,重启终端后失效 ``` 但这样可能会误执行当前目录下与系统命令同名的恶意文件,因此不建议这么做。 - Windows 命令提示符中可以直接用 `hello.py`,因为 Windows 会默认在当前目录搜索文件,这是不同系统的设计差异。 简单说,`./` 是在明确告诉系统:“就在当前目录找这个文件”,这是 Linux/macOS 为了安全而设计的机制。
扫一扫手机看
点击排行
windows 文件资源管理器使用
Layui 弹窗open使用说明
SQL Server 中字符串函数使用
C# 使用QQ邮箱代理做邮件接收功能
SQL Server关于apply的两种形式cross apply 和 outer apply
ASP.NET MVC 模型的自定义验证
nvm安装及常用命令
SQL Server 中数据类型转换
SQL Server 中WITH AS短语的使用
IE浏览器下AJAX缓存问题导致数据不更新的解决办法
订阅号