当前位置: 首页 > news >正文

Python 基础

目录

1. Python 初识

1.1 python 的优势

1.2 python 的特性

1.3 python 的应用领域

2. Linux 环境中安装 python 

2.1 下载python 

2.2 安装依赖包

2.3 解压 python 压缩包

2.4 安装python 

2.5 编译及安装

2.6 建立软连接

2.7 测试 python3 运行

2.8 设置国内 pip 更新源

2.9 更新 pip 版本

3. Windows 系统中安装 python 

3.1 安装 python 程序

4. python 的语法基础

4.1 标识符

4.2 python 保留字

4.3 注释

4.4 语法与缩进

4.5 pass 语句

5. python 常用的数据类型

5.1 数字

5.2 字符串

5.3 列表

5.4 元组

5.5 字典


1. Python 初识

1.1 python 的优势

虽然 Python 易于使用,但它却是一门完整的编程语言;与 shel1 脚本或批处理文件相比,它为编写大型程序提供了更多的结构和支持。另一方面,Python 提供了比℃ 更多的错误检査,并且作为一门 高级语言,它内置支持高级的数据结构类型,例如:灵活的数组和字典。因其更多的通用数据类型,Python比 Awk 甚至 Perl 都适用于更多问题领域,至少大多数事情在 Python 中与其他语言同样简单。
Python 允许你将程序分割为不同的模块,以便在其他的 Python 程序中重用。Python 内置提供了大量的标准模块,你可以将其用作程序的基础,或者作为学习 Python 编程的示例。这些模块提供了诸如文件 I/0、系统调用、socket 支持,甚至类似 Tk的用户图形界面(GUI)工具包接口。Python 是一门解释型语言,因为无需编译和链接,你可以在程序开发中节省宝贵的时间。Python 解释器可以交互的使用,这使得试验语言的特性、编写临时程序或在自底向上的程序开发中测试方法非常容易。你甚至还可以把它当做一个桌面计算器。

1.2 python 的特性

Python 让程序编写的紧凑和可读。用 Python 编写的程序通常比同样的C、C++ 或 Java 程序更短小,这是因为以下几个原因:

  • 高级数据结构使你可以在一条语句中表达复杂的操作
  • 语句组使用缩进代替开始和结束大括号来组织
  • 变量或参数无需声明

1.3 python 的应用领域

Python 是一种通用编程语言,具有广泛的应用领域。也是一门学习曲线非常平滑的编程语言,正因如此,Python 也成了众多编程入门者的首选

主要应用领域有以下几点

数据科学和机器学习Python 在数据科学和机器学习领域非常流行,因为它有许多强大的库和框架,如 NumPy、Pandas.
Scikit-learn 和 TensorFlow 等
Web 开发Python 也可以用于 web 开发,因为它有 Django 和 Flask 等流行的 web 框架
自动化测试Python 还可以用于自动化测试,因为它有许多流行的测试框架,如 unittest 和 pytest 等
网络爬电Python 还可以用于网络爬虫,因为它有许多强大的库和框架,如 Beautifulsoup、scrapy 和Requests等
游戏开发Python 也可以用于游戏开发,因为它有许多流行的游戏引擎,如Pygame 和 Panda3D 等
数据分析Python 还可以用于数据分析,因为它有许多流行的库和框架,如 NumPy、Pandas 和 Matplotlib 等
数据可视化Python 还可以用于数据可视化,因为它有许多流行的库和框架,如 Matplotlib、seaborn 和 Bokeh

2. Linux 环境中安装 python 

2.1 下载python 

可以在 Python 的官方网站下载,网址是 http://www.python.org

2.2 安装依赖包

安装源码编译需要的编译环境

[root@localhost ~]# yum -y install gcc zlib zlib-devel libffi libffi-devel

可以解决后期出现的方向键、删除键乱码问题,这里提前避免

[root@localhost ~]# yum -y install readline-devel

设置编译 FLAG,以便使用最新的 openss1库

[root@localhost ~]# yum -y install openssl-devel openssl11 openssl11-devel
[root@localhost ~]# export CFLAGS=$(pkg-config --cflags openssl11)
[root@localhost ~]# export LDFLAGS=$(pkg-config --libs openssl11)

2.3 解压 python 压缩包

解压 Python-3.11.6.tgz,命令如下

[root@localhost ~]# tar xvf Python-3.11.6.tar.xz

2.4 安装python 

[root@master home]# cd Python-3.11.6/
[root@master Python-3,11.6]# ./configure --prefix=/usr/local/python3

此处有可选配置项,含义如下

  • --enable-optimizations:用 PROFILE TASK 启用以配置文件主导的优化(PGO)
  • --with-lto:在编译过程中启用链接时间优化(LTO)
  • --enable-shared:启用共享 Python库libpython 的编译
  • --with-ss1:编译安装 ss1 模块到 Python3 中(默认)

2.5 编译及安装

编译安装 Python-3.11.6,命令如下

[root@master Python-3.11.6]# make && make install

如果主机上已经安装有其他版本的 python3,注意是3的版本,要使用 altinstall 而不是insta11 。二者的一个重要区别在于,后者会创建符号链接,将 python3 等命令链接到正在安装的新版本 Python 3 上,这可能会破坏系统。如果是 python2 的版本,不会有此影响。

2.6 建立软连接

建立相关软连接,命令如下

[root@master python-3,11.6]#1n-s /usr/local/python3/bin/python3 /usr/bin/python3
[root@master Python-3.11.6]# In-s /usr/local/python3/bin/pip3 /usr/bin/pip3

2.7 测试 python3 运行

安装设置完毕,测试 Python3 的运行情况,命令如下

[root@master Python-3.11.6]# python3

使用Ctrl+D 或exit()退出

2.8 设置国内 pip 更新源

本案例使用阿里的更新源

[root@localhost ~]# cat<<EOF> /root/.config/pip/pip.conf

使用如下命令也可以

  • pip3 config set global,index-url http://mirrors.aliyun.com/pypi/simple
  • pip3 config set install,trusted-host mirrors.aliyun.com

2.9 更新 pip 版本

[root@localhost ~]# pip3 install --upgrade pip

3. Windows 系统中安装 python 

还是从官网http://www.python.org中下载

3.1 安装 python 程序

从官网下载完成双击文件安装即可

4. python 的语法基础

4.1 标识符

所谓的标识符就是对 变量、常量、函数、类 等对象起的名字。首先必须说明的是,Python 语言在任何场景都严格区分大小写!也就是说A和a代表的意义完全不同,python 对于表示标识符的命名有如下规定:

  • 标识符的长度不受限制,但其中的字符必须是字母、数字、或者下划线(),而不能使用空格、连字符、标点符号、引号或其他字符
  • 标识符的第一个字符不能是数字,而必须是字母或下划线
  • Python 区分大小写
  • 不能将 Python 关键字用作标识符

例如:a, abc , id ,等都是可以的。但是例如: $a(以$开头的是 PHP 的变量语法), ~abc123a 都是不可以的

4.2 python 保留字

Python 保留字,也叫关键字,是 Python 语言官方确定的用作语法功能的专用标识符,不能把它们用作任何自定义标识符名称。关键字只包含小写字母。可以通过 python 提供的库输出这些关键字:
Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字。如下所示

4.3 注释

我们写的程序里,不光有代码,还要有很多注释。注释有说明性质的、帮助性质的,它们在代码执行过程中相当于不存在,透明的。

(1)单行注释

Python 中,以符号“#”为单行注释的开始,从它往后到本行的末尾,都是注释内容。语法如下

(2) 多行注释

Python 没有真正意义上的多行注释(块注释),语法如下

4.4 语法与缩进

(1) 语句

在代码中,能够完整表达某个意思、操作或者逻辑的最短代码,被称为语句。python的标准语言不需要使用分号。简单的换行就表示语句已经结束。

(2)代码块

为完成某一特定功能而联系在一起的一组语句构成一个代码块。有判断、循环、函数、类等各种代码块。代码块的首行通常以关键字开始,以冒号(:)结束。比如:

Pvthon 最具特色的语法就是 使用缩进来表示代码块,不需要使用大括号像 PHP、 JAVA 等语言都是使用 ({}) 来表示代码块的。 python 一般用四个空格来缩进。在 pycharm 或 vscode 中 tab 自动回转成 4 个空格。在 Linux 环境中,如 VIM 编辑器,建议使用空格。

(3) 多行语句

如果一条语句实在太长,也是可以占用多行的,可以使用反斜杠 \ 来实现多行语句

4.5 pass 语句

pass 语句是占位语句,它什么都不做,只是为了保证语法的正确性而写。以下场景中,可以使用 pass语句:

  • 当你不知道后面的代码怎么写的时候
  • 当你不需要写代码细节的时候
  • 当语法必须,又没有实际内容可写的时候
  • 其它的一些你觉得需要的场景

5. python 常用的数据类型

Python 内置的数据类型有数字、字符串、元组、列表和字典。

5.1 数字

数字类型包括整型、浮点型、布尔型等,声明时由 Python 内置的基本数据类型管理变量,在程序的后台实现数值与类型的关联,以及转换等操作。根据变量的值自动判断变量的类型,程序员不需要关心变量空间是什么类型,只需知道创建的变量中存放了一个数,通过编码对这个数值进行操作即可。

(1) 整型和浮点型

在 Python 里,整型(int)用于表示整数,浮点型(float)用于表示带小数点的数。

# 整型
a = 10
print(type(a))  # 浮点型
b = 3.14
print(type(b))  

(2) 布尔型

布尔型(bool)仅有两个值:True 和 False,常被用于逻辑判断。

is_true = True
is_false = False
print(type(is_true)) 

(3) python 运算符

Python 具备多种运算符,像算术运算符、比较运算符、逻辑运算符等。

# 算术运算符
print(5 + 3)  
print(5 - 3)  
print(5 * 3)  
print(5 / 3)  
print(5 // 3) 
print(5 % 3)  
print(5 ** 3) # 比较运算符
print(5 > 3)  
print(5 < 3)  
print(5 == 3) 
print(5 != 3) 
print(5 >= 3) 
print(5 <= 3) # 逻辑运算符
print(True and False) 
print(True or False)  
print(not True)        

5.2 字符串

(1) 字符串使用

字符串(str)可以用单引号、双引号或者三引号来表示。

# 单引号
str1 = 'Hello'
# 双引号
str2 = "World"
# 三引号
str3 = '''Python is great!'''
print(str1 + ' ' + str2)

(2) 使用字符串注意事项

  • 若字符串中包含引号,要进行转义或者使用不同类型的引号
  • 字符串是不可变的,意味着不能直接修改字符串中的某个字符
# 转义引号
str4 = 'He said, "Hello!"'
print(str4)# 尝试修改字符串会报错
str5 = "abc"
# str5[0] = 'd'  # 这行代码会报错

(3) 字符串的其他用法

字符串有很多实用的方法,例如 len()upper()lower()replace() 等。

str6 = "Hello, World!"
print(len(str6))  
print(str6.upper()) 
print(str6.lower()) 
print(str6.replace("World", "Python")) 

5.3 列表

列表(list)是 Python 中非常重要的数据类型,通常作为函数的返回类型。由一组元素组成,列表可以实现添加、删除和查找操作,元素值可以被修改。

(1) 列表的定义

列表(list)是一种可变的有序序列,用方括号 [] 表示。

my_list = [1, 2, 3, 'a', 'b', 'c']
print(my_list)

(2) 列表的取值

可通过索引来获取列表中的元素,索引从 0 开始。

print(my_list[0])  
print(my_list[-1]) 

(3) 修改列表元素值

由于列表是可变的,所以可以直接修改列表中的元素。

my_list[0] = 10
print(my_list)

(4) 添加列表元素

可以使用 append()extend() 或者 insert() 方法来添加元素。

# append() 方法在列表末尾添加一个元素
my_list.append('d')
print(my_list)# extend() 方法将一个可迭代对象的元素添加到列表末尾
my_list.extend([4, 5, 6])
print(my_list)# insert() 方法在指定位置插入一个元素
my_list.insert(1, 'x')
print(my_list)

(5) 删除列表元素

可以使用 remove()pop() 或者 del 语句来删除元素。

# remove() 方法根据元素的值删除元素
my_list.remove('a')
print(my_list)# pop() 方法根据索引删除元素,并返回被删除的元素
popped = my_list.pop(0)
print(popped)
print(my_list)# del 语句根据索引删除元素
del my_list[1]
print(my_list)

(6) 查找列表元素

可以使用 in 关键字或者 index() 方法来查找元素。

# in 关键字判断元素是否在列表中
print('b' in my_list)  # index() 方法返回元素的索引
print(my_list.index('b')) 

(7) 合并列表

可以使用 + 运算符或者 extend() 方法来合并列表。

list1 = [1, 2, 3]
list2 = [4, 5, 6]
merged_list = list1 + list2
print(merged_list)list1.extend(list2)
print(list1)

(8) 重复列表

可以使用 * 运算符来重复列表。

repeated_list = [1, 2] * 3
print(repeated_list)

(9) 列表常见问题

  • 索引越界:访问列表时,索引超出范围会引发 IndexError 异常
  • 浅拷贝和深拷贝:直接赋值是浅拷贝,修改一个列表可能会影响另一个列表

5.4 元组

元组(tuple)和列表类似,也是 Python 的一种数据结构,由不同的元素组成,每个元素可以存储不同类型的数据,如字符串、数字、甚至元组。但元组是不可以修改的,即元组创建后不能做任何的修改操作。元组通常表示一行数据,而元组中的元素表示不同的数据项。

(1) 元组的创建

元组是一种不可变的有序序列,用圆括号 () 表示。

my_tuple = (1, 2, 3, 'a', 'b', 'c')
print(my_tuple)

(2) 元组的操作

元组不可变,所以不能修改元素,但可以进行索引和切片操作。

print(my_tuple[0])  
print(my_tuple[1:3]) 

5.5 字典

字典(dict)是 Python 中重要的数据类型,字典是由“键-值”对组成的集合,字典中的值通过键来引用。

(1) 字典的创建

字典是一种无序的键值对集合,用花括号 {} 表示

my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
print(my_dict)

(2) 字典的取值操作

可以通过键来获取对应的值。

print(my_dict['name']) 

(3) 字典的添加、修改、删除、操作

# 添加元素
my_dict['job'] = 'Engineer'
print(my_dict)# 修改元素
my_dict['age'] = 31
print(my_dict)# 删除元素
del my_dict['city']
print(my_dict)

(4) 字典的常见问题

  • 键必须是不可变类型,如字符串、数字、元组等。
  • 访问不存在的键会引发 KeyError 异常,可以使用 get() 方法避免。
# 使用 get() 方法避免 KeyError
print(my_dict.get('country', 'Unknown')) 

相关文章:

  • ABAQUS多晶体材料断裂模型
  • 百度搜索 API 相比于爬虫的效率提升、价格及如何注册使用
  • Kubernetes Docker 部署达梦8数据库
  • 【EasyPan】文件上传、文件秒传、文件转码、文件合并、异步转码、视频切割分析
  • MySQL索引知识点(笔记)
  • 《大模型+Agent 企业应用实践》的大纲
  • 网络基础概念(下)
  • 驱动开发硬核特训 · Day 17:深入掌握中断机制与驱动开发中的应用实战
  • MYSQL的binlog
  • 《棒球规则》全明星比赛规则·棒球1号位
  • 爱普生FC1610BN晶体在健康监测手环的应用
  • 使用Python设置excel单元格的字体(font值)
  • JavaScript 扩展Array类方法实现数组求和
  • 【网络应用程序设计】实验一:本地机上的聊天室
  • 代码随想录训练营38天 || 322. 零钱兑换 279. 完全平方数 139. 单词拆分
  • 从零开始学习MySQL的系统学习大纲
  • HCIP(综合实验2)
  • 每日算法-哈希表(两数之和、)
  • el-table表格既出现横向滚动条,又出现纵向滚动条?
  • YOLOv8非常详细的模型的训练两种方式
  • 已有17个国家和国际组织、50多个国际科研机构加入国际月球科研站合作
  • 民生访谈|电动自行车换新补贴会优化吗?今年汛期情况如何?市应急局回应
  • 中国墨西哥商会副执行主席:深耕中国市场18年,对未来充满信心
  • ESG领跑者|每一步都向前,李宁要让可持续发展成为可持续之事
  • 江苏一季度实现地区生产总值3.3万亿元,同比增长5.9%
  • 特朗普“炮轰”美联储带崩美股!道指跌超900点,黄金再创新高