python学习笔记
python学习笔记
尽管作者并没有计算机专业的背景,也没有接受过正规的Python教育,但正是出于对编程的浓厚兴趣,驱使他开始了这段学习之>旅。他的学习材料主要来源于网络资源和各种书籍。因此,笔记中的内容可能会显得有些分散,但作者正在努力将这些知识点整合起来,以便为读者提供一个更加流畅和连贯的学习体验。
笔记仅供参考,如有错误请在评论区指出或联系作者
解释一下为什么学习python:
易于上手:Python 的语法简洁明了,非常适合编程新手作为入门语言。
应用广泛:Python 在 Web 开发、数据分析、人工智能、科学计算、自动化脚本和网络爬虫等多个领域都有广泛的应用。
活跃的社区:Python 拥有一个非常活跃的社区,提供了大量的资源、工具和框架,以及解决问题的支持。
丰富的库和框架:Python 拥有丰富的第三方库和框架,如 NumPy、Pandas、Django、Flask、TensorFlow 等,这些库简化了在各个领域的开发工作。
数据科学和机器学习的首选:Python 是数据科学和机器学习领域的首选语言,它的强大数据处理能力和与数据可视化库的无缝集成使其备受青睐。
跨平台兼容性:Python 是一种跨平台的语言,可以在 Windows、macOS 和 Linux 等多种操作系统上运行。
编程范式的灵活性:Python 支持多种编程范式,包括面向对象、命令式、函数式和过程式编程,为开发者提供了灵活性。
职业前景广阔:随着对 Python 开发者的需求不断增长,掌握 Python 技能可以开启更多的就业机会和更高的薪资待遇。
自动化和脚本编写:Python 常用于编写自动化脚本,可以自动化日常任务,从而提高工作效率。
教育领域的应用:许多教育机构和在线课程选择 Python 作为教学语言,因为它有助于学生更快地掌握编程概念。
快速开发和原型设计:Python 的快速开发能力使其在快速原型设计和迭代开发中非常有用。
云计算的广泛应用:Python 在 AWS、Azure 和 Google Cloud Platform 等云计算服务中也有广泛的应用。
可扩展性:Python 程序可以轻松扩展,以处理更大的工作负载或更复杂的任务。
开源和免费:Python 是开源的,这意味着它是免费使用的,并且有一个持续更新和改进的代码库。
总结来说,Python 的多功能性、易用性和强大的社区支持使其成为学习编程的理想选择。
python基本概述
python的IDE
以下是目前最强大的10个Python IDE,包括了它们的主要特点以及官方网站的链接:
PyCharm:由 JetBrains 开发,适合专业开发者,支持大型Python项目开发,有免费社区版和付费专业版。
- 官网链接:PyCharm
Visual Studio Code:微软开发的轻量级但功能强大的编辑器,支持Python开发,可以通过安装扩展来增强功能。
- 官网链接:Visual Studio Code
Sublime Text:高度可定制的代码编辑器,支持多种语言,包括Python,以其速度和灵活性而闻名。
- 官网链接:Sublime Text
Atom:由GitHub开发的开源编辑器,可定制性强,支持Python开发。
- 官网链接:Atom
Jupyter Notebook:适合数据科学和交互式编程,支持多种编程语言,包括Python。
- 官网链接:Jupyter Notebook
Spyder:科学计算和数据分析的IDE,与Anaconda发行版捆绑,适合进行科学计算和数据分析。
- 官网链接:Spyder IDE
Eclipse with PyDev:Eclipse是一个开源的IDE,通过PyDev插件支持Python开发。
- 官网链接:PyDev
Wing IDE:提供强大的调试和代码分析工具,支持远程开发,适合专业开发者。
- 官网链接:Wing IDE
Vim:高度可配置的文本编辑器,通过插件支持Python开发,适合喜欢使用键盘的高级用户。
- 官网链接:Vim
Emacs:可扩展的、自定义的文本编辑器,支持Python编辑,适合喜欢深度定制自己编辑器的用户。
- 官网链接:Emacs
这些IDE各有特点,适合不同需求和场景的Python开发。
我所使用的是PyCharm,PyCharm 是由 JetBrains 公司开发的一款流行的 Python 集成开发环境(IDE)。它被广泛认为是 Python 编程语言中最强大的 IDE 之一,特别适合进行大型项目的开发。PyCharm 提供了许多为 Python 开发设计的强大功能。
PyCharm分为两个版本:免费的 Community Edition 和付费的 Professional Edition。Community Edition 提供了基本的 Python 开发功能,而 Professional Edition 则提供了更多的企业级功能,如 Web 开发、数据库工具、远程开发等。
对于刚开始接触Python的新手来说,首要任务是熟悉Python的开发环境配置以及安装一个合适的集成开发环境(IDE)。以下是一些建议:
安装Python:
- 首先,访问Python的官方网站下载适合您操作系统的Python版本。
- 安装Python时,确保勾选了“Add Python to PATH”选项,这样可以在命令行中方便地调用Python。
配置环境:
- 验证安装是否成功,可以在命令行中输入
python --version
或python3 --version
来检查Python的版本。 - 了解如何创建和激活虚拟环境,这对于管理不同项目的依赖非常有用。
- 验证安装是否成功,可以在命令行中输入
选择IDE:
- 选择一个功能强大且易于使用的IDE,如PyCharm、Visual Studio Code(VSCode)、Eclipse(配合PyDev插件)等。
- 安装IDE,并熟悉其基本功能,如代码高亮、自动补全、代码调试等。
设置IDE:
- 在IDE中配置Python解释器,确保它指向了正确安装的Python版本。
- 探索和安装必要的插件或扩展,以增强IDE的功能。
编写Hello World:
- 在IDE中创建您的第一个Python脚本,编写经典的“Hello, World!”程序,并运行它以验证环境配置是否正确。
寻求帮助:
- 如果在配置环境或安装IDE时遇到问题,不要犹豫,寻求社区的帮助或查阅相关文档。
记住,一个舒适且功能齐全的开发环境是高效编程的基础。花时间正确设置您的环境,将有助于您更顺利地开始Python学习之旅。如果您遇到困难或不确定如何进行,请参考bilibili up主 **年年吃布饱的视频**(点击此处精准空降原视频)。
视频作者主页: 点此跳转
对于刚开始学习编程的新手来说,免费的PyCharm社区版(PyCharm Community Edition)已经足够满足基本的编程需求。
在阅读了前面的介绍之后,您对Python已经有了初步的认识。现在,让我们正式踏上Python的学习之旅。
为了使您的编程体验更加流畅,您可以先对PyCharm进行一些优化设置,以确保它更加符合您的工作习惯,例如
- 设置所需快捷键。
- ctrl+向上滚动滚轮为字体放大
- ctrl+向下滚动滚轮为字体缩小
- ………………
- 配置所需插件
- 汉化包(帮助我们更好的使用PyCharm)
- 翻译插件(帮助我们理解英文代码和注释)
- 设置自己喜欢的主题
- 设置所需快捷键。
python,从此处开始
python基础语法
字面量
字面量的含义:在代码中被写下来的、固定的值。称之为字面量
常见字面量的类型
目前先了解整数、浮点数、字符串即可基于print语句完成各类字面量的输出
print(666) |
注释
在程序代码中,对代码进行解释说明的文字确实被称为注释,这些注释不会被系统执行。根据你的描述,我们可以将注释分为以下两种:
单行注释:
- 这是最常见的注释方式,通常用于解释代码中的某一行或几行。
- 单行注释以特定的符号开始,比如在Python中是
#
。 - 单行注释仅对紧随其后的一行代码有效。
示例(Python):
# 这是一个单行注释
print("Hello, World!") # 这行代码会打印 "Hello, World!"- 注:一般建议”#”和注释内容之间用空格隔开
多行注释:
- 多行注释用于跨越多行的解释说明。
- 在某些语言中,可以使用特定的多行注释语法,而在Python中,通常使用三个连续的单引号
'''
或双引号"""
来创建多行字符串,虽然它们主要用于文档字符串(docstrings),但也可以用来创建多行注释。 - 多行注释可以包含在代码块的开始处,用于解释整个函数、类或模块。
示例(Python):
"""
这是一个多行注释
可以跨越多行
"""
print("hello world")
在实际编程中,注释的使用应该简洁明了,避免冗余,同时确保它们能够为代码的阅读者提供有价值的信息。此外,注释应该随着代码的更新而更新,以保持代码的准确性和可维护性。
变量
- 变量:在程序运行时,能够存储计算结果或能表示值的抽象概念,简单的说,变量就是在程序运行时,记录数据用的。
- 变量的定义格式
- 变量名 = 变量值
- 每个变量都有自己的名称,称之为“变量名”,即变量本身。
- 每个变量都有自己存储的值(内容),称之为“变量值”。
- “=”表示赋值,将右侧的值赋予左侧的变量。
- 需注意,变量的值是可以发生改变的,下面是一个示例
# 初始化变量money,表示钱包中的初始金额 |
拓展:
- print语句如何输出多份内容?
答:使用”,”隔开,例如:
print(内容1,内容2, 内容3)- python如何使用加减乘除?
答:+(加)、-(减)、*(乘)、/(除)
数据类型
在之前的学习中,我们了解到数据是有类型的,目前的学习我们主要接触三类数据类型。
类型 描述 说明 string 字符串类型 有引号引起来的数据都是字符串 int 整型(有符号) 数字类型,存放整数 如-1,10,20,0等 float 浮点型(有符号) 数字类型,存放小数 如1.3,-3.4,20.24等 那么问题来了,怎么判断数据的类型呢?这里我们有三种方法:
- 在print语句中,直接输出类型信息。
- 用变量存储type()的结果(返回值)。
- 使用type()语句查看变量中存储的数据类型。
- 这里要注意,变量是没有类型的,我们查看的是变量存储的数据类型
# 1.在print语句中,直接输出类型信息(方法1) |
数据类型转换
在特定场景下,数据类型之间是可以相互转换的,如字符串转数字,数字转字符串等。
为什么要进行数据转换?
- 从文件中读取的数字,默认是字符串,我们需要转换成数字类型
- 后续学习的input()语句,默认结果是字符串,若需要数字也需要转换
- 将数字转换成字符串用以写出到外部系统
- 等等
示例代码
# 示例代码
# 将字符串转换为整数
string_number = "2024"
integer_number = int(string_number)
print(integer_number) # 输出: 2024
# 将字符串转换为浮点数
string_float = "20.24"
float_number = float(string_float)
print(float_number) # 输出: 20.24
# 将整数转换为字符串
int_number = 2024
string_from_int = str(int_number)
print(string_from_int) # 输出: "2024"
# 将浮点数转换为字符串
float_number = 20.24
string_from_float = str(float_number)
print(string_from_float) # 输出: "20.24"
# 示例:浮点数转整数丢失精度
float_number = 20.74
int_from_float = int(float_number)
print(int_from_float) # 输出: 20,小数部分丢失常见的转换语句
语句(函数) | 说明 |
---|---|
int(x) | 将x转换为一个整数 |
float(x) | 将x转换为一个浮点数 |
str(x) | 将x转换为字符串 |
- 注意事项
- 任何数据类型都可以转字符串
- 字符串内必须有数字才能转换为数字
- 浮点数转整数会丢失精度(小数部分)
和前面学习的type()一样,这三个语句是带有结果的(返回值),我们可以直接print输出结果或者用变量储存结果值。
标识符
- 在python程序中,我们会给很多东西取名字,如
- 变量的名字
- 方法的名字
- 类的名字
等等,这些名字统一称之为标识符,用来做内容的标识。
- 标识符内容限定:只允许出现英文、数字、中文、下滑新(_),其余任何元素都不被允许。
- 命名规则(强制)
- 不推荐使用中文(中文支持并不完善,可能会有隐藏问题)
- 数字不可以用作开头(硬性限制)
- 区分大小写
- 不可使用关键字,如False、True、and、in
is等等(同样区分大小写)
- 命名规范(不强制)
- 变量
- 有意义:变量名应该清晰地表达变量的用途或它所代表的数据类型。
- 简洁:在表达清晰的前提下,使用最少的名字长度。
- 下划线命名法:多个单词组合变量名,要使用下划线分割。
- 英文字母全部小写。
- 变量
- 请注意,不遵守命名规则会导致错误,而不遵守命名规范虽然不会引起错误,但会使代码的可读性和整洁度降低。
下面是一份正确和错误的示例# 错误示例
1_name = "老赵"
name_! = "老李"
class = 1
def = 1
# 正确示例
name_ = "老王"
_name = "老孙"
_Name = "老钱"
运算符
- 算数运算符
在python中,常用的数学运算符包括以下七种序号 运算符 描述 示例 结果 1 +
加法 5 + 3
8
| 2 | -
| 减法 | 5 - 3
| 2 |
| 3 | *
| 乘法 | 5 * 3
| 15 |
| 4 | /
| 除法 | 5 / 3
| 1.666… |
| 5 | %
| 求余数 | 5 % 3
| 2 |
| 6 | **
| 幂运算 | 5 ** 3
| 125 |
| 7 | //
| 整除 | 5 // 3
| 1 |
- 赋值运算符
在Python中,赋值运算符用于将值赋给变量。基本的赋值运算符是 =。
此外,还有一些复合赋值运算符,它们结合了数学运算和赋值操作。序号 运算符 描述 示例代码 等效于 1 =
基本赋值 x = 5
x = 5
| 2 | +=
| 加法赋值 | x += 3
| x = x + 3
|
| 3 | -=
| 减法赋值 | x -= 3
| x = x - 3
|
| 4 | *=
| 乘法赋值 | x *= 3
| x = x * 3
|
| 5 | /=
| 除法赋值 | x /= 3
| x = x / 3
|
| 6 | %=
| 取模赋值 | x %= 3
| x = x % 3
|
| 7 | **=
| 幂运算赋值 | x **= 3
| x = x ** 3
|
| 8 | //=
| 整除赋值 | x //= 3
| x = x // 3
|
示例代码
# 数学运算符 |
字符串拓展内容
字符串三种定义方式
- 在Python编程语言中,我们通常认为用双引号(” “)包围的字符序列是字符串。然而,为了更精确地表达,我们应当注意到,实际上,无论是单引号(’ ‘)、双引号(” “)、还是三引号(””” “”” 或 ‘’’ ‘’’)包围的字符序列,都可以被视为字符串。
例如
# 单引号定义法 |
在终端中他们应该这样显示:
<class 'str'> |
那么就出现了一个问题, 如果要定义的字符串本身包括单引号或者双引号,怎么办呢?
- 使用不同类型的引号:如果字符串本身包含单引号,可以使用双引号来定义字符串;反之亦然。
示例代码
name = '"张三"'
name_1 = "'李四'"
print(name,name_1,)结果应该是:
"张三" '李四'
- 转义字符:在字符串中,可以通过在引号前加上反斜杠 () 来转义引号,使其成为普通字符。
- 例如打印如下文本:
Mao Zedong said: “The world is yours, as well as ours, but in the final analysis, it is yours. You young people are full of vigor and vitality, like the sun at eight or nine o’clock in the morning. The hope is placed upon you.”
- 示例代码
print('Mao Zedong said: "The world is yours, as well as ours, but in the final analysis, it is yours. You young people are full of vigor and vitality, like the sun at eight or nine o\'clock in the morning. The hope is placed upon you."')
这里在o’clock的引号前加了一个 ** 把单引号变成普通字符,输出结果应该是
Mao Zedong said: "The world is yours, as well as ours, but in the final analysis, it is yours. You young people are full of vigor and vitality, like the sun at eight or nine o'clock in the morning. The hope is placed upon you."
1957年11月,毛泽东同志在莫斯科大学发表“希望寄托在你们身上”著名讲话:
毛泽东说:“世界是你们的,也是我们的,但是归根结底是你们的。你们青年人朝气蓬勃,正在兴旺时期,好像早晨八九点钟的太阳。希望寄托在你们身上。”
Mao Zedong said: “The world is yours, as well as ours, but in the final analysis, it is yours. You young people are full of vigor and vitality, like the sun at eight or nine o’clock in the morning. The hope is placed upon you.”
来自https://www.youth.cn
2.总结
1.字符串的三种定义方式:
- 单引号方式
- 双引号方式
- 三引号方式
2. 引号的嵌套
- 可以使用:\来进行转义
- 单引号内可以写双引号或双引号内可以写单引号
字符串拼接
- 如果我们有两个字符串(文本)字面量,可以将其拼接成一个字符串,通过+号即可完成,如
print("abc"+"def") |
输出结果应该是:
abcdef |
- 不过一般,单纯的2个字符串字面量进行拼接没什么意义,字面量和变量或变量和变量之间才会使用拼接,如:
A = "libai" |
输出结果应该是:
my name is libai |
- 要注意,拼接操作无法和非字符串类型进行拼接。
字符串格式化
在频繁使用字符串拼接的过程中,我们可能会遇到一些不便:
- 当涉及的变量数量增多时,进行字符串拼接变得繁琐且容易出错。
- 直接将字符串与其他数据类型(如数字)拼接时,会遇到类型不匹配的问题。
这里我们用另一种方法,使用”%s”。
print("我今天上了%s节课" % 10)
print("hello%s" % "world")
print("%s年,%s专业平均月工资是%s" %(2024,"计算机","八万"))结果应该是
我今天上了10节课
helloworld
2024年,计算机专业平均月工资是八万另外,我们也有其他的数据类型占位符,下面是一些常用的占位符,使用方法和%s一致。
格式符号 | 作用 |
---|---|
%s | 将内容转换成字符串,放入占位位置 |
%d | 将内容转换成整数,放入占位位置 |
%f | 将内容转换成浮点型,放入占位位置 |
掌握格式化字符串的过程中做数字的精度控制
我们可以使用辅助符号”m.n”来控制数据的宽度和精度
- m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效
- n,控制小数点精度,要求是数字,会进行小数的四舍五入
m和n均可省略
num1 = 23
num2 = 22.25
print("今天我吃了%5d顿饭" % num1)
print("今天我花了%32.2f元" % num2)结果是
今天我吃了 23顿饭
今天我花了 22.25元这里有空格的原因是:num2不足32位,用空格补全。
字符串格式化方式2
- 确实,使用 % 符号进行字符串格式化既方便又灵活,它还允许我们控制输出的精度。不过,除了这种方法,还有其他几种格式化字符串的方式可以考虑:
- 通过 f”内容{变量}” 来实现
- 这种方式有两个特点
- 不做精度控制
- 不限数据类型
num1 = 23 |
结果应该是
今天我吃了23顿饭 |
对表达式进行格式化
- 表达式定义:表达式:一条具有明确执行结果的代码语句。
print("1*1的结果是%d" % (1*1)) |
结果是
1*1的结果是1 |