Python系列教程
第1章 Python 语言概述
Python编程规范+最佳实践
python文件:.py,.ipynb, pyi, pyc, pyd, pyo都是什么文件?
第1章必背的内容
第2章 Python基础
字符串切片
Python数据类型大战:可变与不可变,谁主沉浮?
Python「布尔类型」:不只是True和False!
Python「枚举类型」:你真的了解枚举类型吗?
Python字符串格式化:哪种字符串格式化方法最快?
Python字符串编码:为什么你的网页显示乱码?
Python「内置变量」:不只是变量,更是编程的魔法!
Python变量的作用域,你真的了解吗?
Python中如何使用F-Strings格式化浮点数
第2章必备的内容
第3章 流程控制和异常处理
加速Python for循环
for循环
Python三元表达式:让代码简洁与效率提升成为可能
Python「While循环」:何时打破循环?
Python「异常处理」:程序出错了?不慌
这样可以减少IF语句的使用,从此告别if-else噩梦
Python循环加速的秘方,可提速上千倍!
如何在Python中优雅地使用断言?这篇文章给你答案!
Python异常处理:12个异常处理技巧,你掌握了几个?
Python中的and和or你真的会用吗,代码逻辑竟然可以如此简单!
Python的else子句7个妙用,原来还能这样用,整挺好!
快来看!Python写代码,没有pass怎么行?
第三章 必背的内容
第4章 高级数据结构
Python字典嵌套:编程界的俄罗斯套娃
Python「类型注解」:如何让你的Python代码够清晰?
列表越界了?来学学Python列表的花式操作!
Python字典的这些黑科技,你用过几个?
Python元组:为何你的代码需要这个'不变'的伙伴?
试试Python具名元组NamedTuple吧!用过的都说好
Python中的5种队列数据结构,你知道几个?
itertools模块让你的代码原地起飞!
第5章 正则表达式
正则表达式
本文档使用 MrDoc 发布
-
+
首页
第2章 Python基础
  本章我们讲解`Python`语言的基础知识,通过介绍Python语言基本元素、Python中的数据类型,和数字类型的相互转化等知识点,让读者认知`Python`的基本语法规则和常见的数据类型。   通过本章的学习,读者可以清晰地学习到`Python`的`关键字`和`标识符`、`数据类型`的特点和使用方法,同时对数据类型的`转换`有更清晰的认识。 # 2.1 Python语言基本元素   在本节中,主要认识`标识符`,`关键字`和`变量`等知识。在`Python`数据中主要为`常量`和`变量`,而标识符是为标识这些变量的名字,也就是说给变量设定一个新的名称。 ## 2.1.1 标识符   标识符是在程序中标注某一元素的名字,也就是给对象,变量,函数,类等元素设置名称。但是标识符设置名称时,需要符合`Python`的规定。 ### 1、标识符命名规则   标识符需要遵守以下命名规则:   (1) 在Python中,命名时需注意大小写。因为Python是敏感性语言,字母大小写的不同会被认定为两种不同的字符。   (2) 标识符必须由字符(`A~Z`和`a~z`)、下划线和数字组成,且第一个字符不能以数字开头 。   (3) 标识符不能与Python内置的关键字相同。关于关键字,后续章节会详细介绍。   (4) 在Python的标识符中不能使用`空格`、`@`、`%`、`$`等特殊字符。   (5) 设定标识符时,尽可能使用与对象含义相同或相近的单词。比如设定表达年龄的变量,可以设置名称为`age`。   (6) 在Python语言中,以下划线开头的标识符都有特殊含义。比如`_width`表示类的私有属性,不可以被导入。 ### 2、推荐使用命名法   在避免上述规则的同时推荐使用驼峰命名法和下划线命名法。   在驼峰命名法中又分为大驼峰命名法(帕斯卡命名法)和小驼峰命名法(camel方法)。   (1) `大驼峰命名法`(帕斯卡命名法):在标识符命名时,每个单词的首字母进行大写。例如:`StudentName`。   (2) `小驼峰命名法`(camel方法):相比于大驼峰命名法,首个单词的首字母进行小写,后续每个单词首字母进行大写。例如:`studentName`。   (3) `下划线命名法`:在每个单词中间进行设置一个下划线。例如:`student_name`。 ## 2.1.2 关键字   `关键字`,又称`保留字`,是Python语言中已经被设定特殊含义的标识符。   Python中包含以下关键字: ```python 'False','None','True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield' ```   提示:在Python中定义的变量名、函数名、对象、类名时不可使用关键字。 ## 2.1.3 变量 ### 1、Python中的变量   变量,来源于数学,类似于数学中x,y值,用来表达未知数。在计算机中,变量是可以存储计算结果或者表示值的抽象概念。简单来讲,表示变化的量就是变量。   在Python中,只有对其进行赋值时,才会创建变量。 ### 2、变量名   认识完变量后,需要去学习一下变量名,变量名就是对该变量进行命名。在命名时,要符合标识符命名规则,推荐使用驼峰法进行命名。   提示:`变量的命名在同一个作用域中不建议重名`。 ### 3、赋值   赋值为定义和创建变量的过程。只有对变量进行赋值后,该变量才有实际的存储意义。赋值后的变量,Python解释器会进行对该变量进行分配大小一致的内存。   等号`=`用来给变量进行赋值。等号左边是一个变量名,等号右边可以是常量,或者是用户输入的值,或者是表达式,也可以是函数返回的值。 #### `单变量赋值的方法格式` ```python 变量名 = 值 ```   示例:创建一个变量名为name,变量为`dog`。 ```python name = dog ```   在Python中不仅支持单个变量赋值的方法,同时也支持为多个变量进行赋值。 #### `多个变量赋值的方法格式`: ```python 变量名1,变量名2 = 值1,值2 ```   示例:通过多个变量赋值方法进行创建一个变量名为name,变量为`cat`,另一个变量名为`age`,变量为`12`。 ```python name, age = "cat", "12" ``` ## 2.1.4 Python输入与打印输出   在日常的操作程序中,最常见的就是将该变量打印输出和输入设定变量等操作,接下来,深入学习一下Python的输入和打印输出。 ### 1.Python中的输入   在Python中,`input()`函数为输入的意思,简单理解就是用户通过键盘输入内容,python程序可以接收到。这是人机交互的重要窗口。使用input()函数默认输入的内容为字符串类型(Python中一种常见的数据类型)的内容。 `input函数的使用方法`: ```python   变量名 = input(显示内容) ```   显示内容:使用input时,会在控制栏中显示该文本内容,一般显示内容为引导性词语,例如:“请输入学生的姓名:”等   示例:设定变量名为name,需设置输入提示语为:我们所在学校名称为什么?,变量名对应值为输入值。 ```python name = input(‘我们所在学校名称为什么?’) ``` ### 2.Python中的打印输出   在Python中,`print()`函数是程序中最常见,也是最基本的函数,它是将信息打印输出到控制台,即在控制台窗口显示打印信息。下面介绍print函数的2种基本用法。 #### (1) `直接打印字符串` print()函数可以直接打印字符串,例如:在程序中直接打印字符串“Hello World”。示例如下: ```python print("Hello World ") Hello World # 打印结果 ``` #### (2) `通过设置变量打印字符串` 以上代码直接打印由单引号或双引号括起的字符串,print()函数也可接收打印字符串变量。具体示例如下: ```python words = " Hello World " # 定义字符串变量 print(words) # 打印 Hello World # 打印结果 ```   除此之外,`print()`函数还有更多参数和其他的用法,在后续我们的学习中会逐一进行讲解。 ## 2.1.5 Python的注释   在`Python`中,注释是在代码中添加文本的方法,这些文本在程序执行时会被忽略,不会被解释器执行。注释可以用来解释代码的目的、功能、用法、约束条件等信息,使得代码更易于理解、维护和修改。   `Python`中有两种类型的注释:`单行注释`和`多行注释`。 ### `单行注释` - 使用 # 符号,可以在一行代码的末尾或者单独一行写入。例如: ```python # 这是一行注释 print("Hello, World!") # 这是另一行注释 ``` ### `多行注释使用三个引号` - 使用(\'\'\'或\"\"\")包围,可以用来注释一个代码块。例如: ```python ''' 这是多行注释的示例。 可以在这里写入多行注释, 来解释代码的功能、用法、约束条件等信息。 ''' print("Hello, World!") ```   需要注意的是,注释应该清晰、简洁、明了,可以`提高代码的可读性`和`可维护性`。同时,过多的注释也会让代码变得杂乱无章,需要`根据实际情况适当地使用注释`。 # 2.2 Python中的数据类型   在`Python`中为了标识不同数据的含义,设定了多种数据类型。 数据类型就是在数据结构中的定义是一组性质相同的值的集合以及定义在这个值集合上的一组操作的总称。   在讲解前,首先要理解为什么要使用数据类型。比如,一个公司会有很多个大的部门,每个部门下又会有许多细分的小部门,构成了公司的完整体系结构。如果把`Python`的数据整体看做是一个公司,那么数据下面会有几个大部门——基本数据类型,而在每个大部门下还有众多小部门——内置方法及功能,每一条数据就像一个员工,会在不同的部门发挥作用。公司有这样的层级是为了提升管理效果,同理,`Python`区分数据类型也是为了更好的管理内存、便于管理数据,便于人类理解。   在`Python`中最常见的数据类型莫过`于数字类型(Number)`,在数字类型中也有不同的分支,比如整数类型,浮点数类型,复数类型,布尔类型。接下来我们一一进行详细讲解。 ## 2.2.1 整数类型和浮点数类型 ### 1.整数类型   Python中的`整数类型(Integer)`,简称`整型`,在Python编码过程中使用`int`进行标识。整数类型指的是没有小数的数字,在Python中的整数包含`正整数`,`0`(数字0)和`负整数`。   在Python中整数类型是用来存储整数的,或者说来描述整数,同时注意整数类型的取值范围是无限的(整数具有无限的精度)。   在设定整数变量时,需注意Python给变量赋值一定要进行设定对应值的数据类型。而Python中数字类型的定义相对于其他数据类型简单,直接通过使用赋值符号对变量名进行赋值即可,无需添加任何符号。   例如:设置变量名为`age`的值为整数`18`。 ```python age = 18 ``` ### 2.浮点数类型   Python中的`浮点数类型(Float)`,简称浮点型,在`Python`编码过程中使用`float`进行标识。浮点数类型为用于保存带小数点的数值,与数学中的小数比较相像,例如`1.23`,`3.14`,`-5.79`等数值。在`Python`中浮点数主要包含`正浮点数类型`和`负浮点数类型`。   `Python`的浮点数类型主要有两种表现形式,一种为`十进制形式`,也是我们最常见的新的,另外一种为`科学计数法形式`。 ### 3.十进制计算形式   `Python`最常见的浮点型数就是十进制形式的浮点型数。`Python`中的浮点型数,必须带一个小数点,否则会被当成整型处理,比如`2.67`等。 ```python num1 = 3.14 # 设定变量num1为3.14 ``` ### 4.科学计数法形式   浮点型的科学计数法的表现形式是使用`e`或者`E`做为底数。底数`e`或者`E`后面的数字,表示的是`10`的多少次方。 `定义科学计数法表示的正浮点数类型` ```python num2 = 123.456e2 # 设定变量num2为123.456e2 12345.6 # 定义科学计数法标识的负浮点数类型 num3 = -987.654E2 # 设定变量num2为123.456e2 -98765.4 ``` ## 2.2.2 复数类型   `Python`中的`复数类型(Complex)`在`Python`编码过程中使用`complex()`创建一个复数对象。复数由`实部(real)`和`虚部(imag)`构成,在使用定义时,复数的虚部以`j`或者`J`作为后缀进行标识,具体格式为: ```python a + bj ```   其中,`a`表示实部,`b`表示虚部。   `Python`中的复数类型支持基本的算术运算,例如加、减、乘和除。通过`complex()`函数来创建一个复数对象,该函数接受两个参数,第一个参数为实数部分,第二个参数为虚数部分。   以下为使用复数类型的示例: ```python # 创建复数对象 a = 3+4j b = complex(2, 5) # 加法 c = a + b # 结果c为 (5+9j) # 减法 d = a - b # 结果d 为(1-1j) # 乘法 e = a * b # 结果e 为(-14+23j) # 除法 f = a / b # 结果f为 (0.7804878048780488-0.04878048780487813j) ```   注意:`Python`默认只支持对复数的基本简单计算。 ## 2.2.3 布尔类型   `布尔类型`是计算机中最基本的类型,它是计算机二进制世界的体现,一切都是0和1。`Python`中的布尔类型只有两种值:`True`和`False`,(注意:首字母都是大写,与`C++`、`JavaScript`中的小写有所不同)简称`bool`,通俗地讲其实就是生活中对与错的问题。   布尔类型回答的是是非问题,那么什么情况下是`True`,什么情况下是`False`呢?`Python`里面实现了一个类型对象叫做`bool`,`bool`是一个`int`的子类,内置的`True`和`False`就是`bool`仅有的两个实例对象。   在布尔类型中,也可以表达表达式的结果,比如`3>5`为`Fasle`,`1<3`为`True`。 ```python # 打印3 > 5 表达式 print(3 > 5) False # 返回bool类型的Fasle # 打印1 < 2 表达式 print(1 < 2) True # 返回bool类型的True ``` ## 2.2.4 字符串类型   在`Python`中,在本章会认识到我们最经常使用的类型——字符串类型。接下来我们一起探索一下如何进行创建吧! ### 1、创建字符串   在`Python`中,字符串为该语言的基础数据类型,也是最常见的类型。`字符串(String)`是字符序列,或者简单来说由一串字符组成的序列,简称为`str`。   字符串的创建方法有两种,分别是创建`单行字符串`和`多行字符串`。   字符串创建单行字符串的方法为:通过`单引号(' ')`或`双引号(" ")`将单行字符序列进行包含起来。 ```python str1 = 'Hello Python' # 单引号的创建方法 str2 = "Hello Python" # 双引号的创建方法 ```   字符串创建多行字符串的方法为:通过`三引号(''' ''')`或者`三双引号(""" """)`将多行字符序列进行包含起来。 ```python str1 = '''Hello My Python''' # 三单引号的创建方法 print(str1) ``` 打印结果为: ```python Hello My Python ``` ```python str2 = """Hello My Python""" # 三双引号的创建方法 print(str2) ``` 打印结果为: ```python Hello My Python ```   在字符串中,字符串为不可变序列。不可变序列为在更改字符串时,该字符串的内存地址发生改变,证明该字符串发生变化,已经不是原来的字符串。例如: ```python str1 = 'abcd' # 创建变量str1为“abcd” print(id(str1)) # id方法为打印其变量的内存地址 ``` 打印结果为: ```python 4479977264 # 该程序每次运行都会有新的内存地址 ``` ```python str1 = str1 +'efg' # 通过str1进行与“efg”字符串进行添加 print(id(str1)) # 打印新变量的内存地址 ``` 打印结果为: ```python 4433225776 ``` ### 2、字符串转义   在使用`Python`编写程序时,由于要使用一些普通字符的组合来代替特殊字符,于是产生出`Python`字符串的`转义字符`。   `转义字符`就是用一些普通字符的组合来代替一些特殊字符,由于其组合改变了原来字符表示的含义,因此称为`转义`。简单来说就是将普通字符串转变为具有其他含义功能的字符。   例如:打印`'Python是世界上最简单的语言'` 错误方法一: ```python print('Python是世界上最简单的语言') # 错误示范 ``` 打印结果为: ```python Python是世界上最简单的语言 # 不符合规格 ``` 错误方法二: ```python print(''Python是世界上最简单的语言'') # 错误示范 ``` 打印结果为: ```python SyntaxError: invalid syntax # 报错代码 ``` 正确方法: ```python print('\'Python是世界上最简单的语言\'') # 正确示范,\'为转义字符 ``` 打印结果为: ```python 'Python是世界上最简单的语言' ```   通过上面的案例,我们发现如果想在控制栏打印出引号这种特殊字符,就必须通过设置转义字符来进行编写。   在需要在字符中使用特殊字符时,使用反斜杠`\`和特殊字符串的转义字符,其中反斜杠`\`必须作为前缀。   常见的转义字符如表1所示: | 符号 | 说明 | | --- | --- | | `\`(在行尾时) | 续行符 | | `\\` | 反斜杠符号 | | `\'` | 单引号 | | `\"` | 双引号 | | `\a` | 响铃 | | `\b` | 退格(`Backspace`) | | `\e` | 转义 | | `\000` | 空 | | `\n` | 换行 | | `\v` | 纵向制表符 | | `\t` | 横向制表符 | | `\r` | 回车 | | `\f` | 换页 | | `\oyy` | 八进制数,y 代表`0~7`的字符,例如:\012 代表换行。 | | `\xyy` | 十六进制数,以`\x`开头,`yy`代表的字符,例如:`\x0a`代表换行 | | `\other` | 其它的字符以普通格式输出 |   使用方法:直接将需要的转义字符放入字符串中。   例如:打印`张三喜欢学习Python`并在该字符串的`喜欢`后面进行换行。 ```python print('张三喜欢\n学习Python ')# \n为换行转义 ```   打印结果为: ```python 张三喜欢 学习Python ``` ### 3、字符串编码   在`Python`中,字符串编码指的是将字符串转换为字节序列的过程。`Python`中的字符串默认采用`Unicode编码`,这意味着字符串中的每个字符都可以表示为一个唯一的`Unicode`码点。然而,当我们需要将字符串存储到文件、发送网络数据或处理其他需要字节序列的情况下,就需要对字符串进行编码。   在`Python`中,常用的字符串编码方式包括。   (1)`ASCII编码`:ASCII编码是一种基本的字符编码方式,用于表示`128`个基本的英文字母、数字和符号。在`Python`中,`ASCII`编码是默认的编码方式。   (2)`UTF-8编码`:`UTF-8`是一种变长的`Unicode`编码方式,可以表示所有`Unicode`字符。它使用1到4个字节来编码不同的字符,可以在保持兼容性的同时节省存储空间。   (3)`GBK编码`:`GBK`是汉字编码规范的一种,它是中国国家标准的一部分。`GBK`编码是对汉字字符集进行编码的方式,能够表示大部分汉字字符。`GBK`编码是双字节编码,其中包括两个部分:一级汉字和二级汉字。一级汉字是指最常用的几千个汉字,使用两个字节进行编码;而二级汉字则使用两个字节的扩展区进行编码,可以表示更多的汉字字符。在`GBK`编码中,英文字母、数字和标点符号与`ASCII`编码保持兼容,使用一个字节表示,与`ASCII`编码中的对应字符编码相同。而对于汉字和其他特殊字符,则使用两个字节进行编码。   在Python中,可以使用`encode()`方法将字符串编码为字节序列,以及使用`decode()`方法将字节序列解码为字符串。例如: ```python # 字符串编码为字节序列 s = "Hello, 世界" encoded = s.encode("utf-8") print(encoded) # 输出:b'Hello, \xe4\xb8\x96\xe7\x95\x8c' # 字节序列解码为字符串 decoded = encoded.decode("utf-8") print(decoded) # 输出:Hello, 世界 ```   在上述示例中,字符串s使用`encode()`方法使用`UTF-8`编码为字节序列,结果为`b'Hello, \xe4\xb8\x96\xe7\x95\x8c'`。然后,使用`decode()`方法将字节序列解码为字符串,结果为`Hello, 世界`。   要注意的是,在进行编码和解码时,需要确保使用相同的编码方式,否则可能会导致乱码或解码错误。因此,`编码和解码的操作应该保持一致`。 ### 4、字符串格式化   在了解Python中的字符串格式化之前,我们首先先去了解一下什么是格式化字符串?   `格式化字符串(Format String)`是在编程过程中,允许编码人员通过特殊的占位符,将相关对应的信息整合或提取的规则字符串。   那为什么要学习字符串格式化呢?是因为在日常编写代码中,需要同时输出文本信息和变量,那么就需要使用字符串的格式化了。   示例:使用`input`函数输入你的10月份工资和每天的消费金额,计算出本月剩余的工资并打印。 ```python # input函数输入你的月工资,用变量存储 wage = input('你每月的工资是多少元?') # input函数输入你每天的消费,新建变量存储 consume = input('你平均每天花费多少钱?') # surplus为本月剩余工资 surplus = int(wage) – int(consume) * 31 # 假设本月为10月,共31天,那么计算剩余的工资 print('28天后我还剩余'+str(surplus)+'元。') ```   打印结果为: ```python 28天后我还剩余xxx元。 ```   通过上述案例,我们明显发现,如果要进行字符串与变量的连接生成新的一个句子,那么就需要使用到字符串的格式化。   在`Python`中,字符串的格式化可以通过多种方式实现。下面是几种常用的方法。   (1) 使用百分号(`%`)进行格式化。百分号格式化是`Python`早期提供的一种字符串格式化方法,它使用`%`作为占位符。下面是一些常用的占位符。   `%s`:字符串占位符   `%d`:整数占位符   `%f`:浮点数占位符   `%x`:十六进制整数占位符   以下是使用百分号格式化的示例: ```python name = "Alice" age = 25 print("My name is %s and I am %d years old." % (name, age)) ```   打印结果为: ```python My name is Alice and I am 25 years old. ```   在这个例子中,`%s`表示字符串的占位符,`%d`表示整数的占位符。在字符串末尾的`% (name, age)`表示将`name`和`age`的值分别填充到相应的占位符中。   (2) 使用`str.format()`方法进行格式化。`str.format()`方法是一种更灵活和可读性更高的字符串格式化方式。在字符串中使用大括号`{}`作为占位符,并使用`format()`方法提供要插入的值。   以下是使用`str.format()`方法格式化的示例: ```python name = "Alice" age = 25 print("My name is {} and I am {} years old.".format(name, age)) ```   打印结果为: ```python My name is Alice and I am 25 years old. ```   在这个例子中,大括号`{}`表示占位符,它们将按照出现的顺序被`format()`方法中的值依次填充。   (3)使用f-strings (格式化字符串字面值)。`f-strings`是`Python3.6`及更高版本引入的一种字符串格式化方法,它提供了一种简洁和直观的方式来进行字符串格式化。在字符串前加上前缀`f`,然后使用大括号{}将表达式或变量包围起来。   以下是使用`f-strings`方法格式化的示例: ```python name = "Alice" age = 25 print(f"My name is {name} and I am {age} years old.") ```   打印结果为: ```python My name is Alice and I am 25 years old. ```   在这个例子中,字符串前缀`f`指示`Python`解释器对字符串进行格式化。大括号`{}`内的表达式会被求值,并将结果插入到字符串中。   这些都是基本的字符串格式化方法,你可以根据需要选择适合的方式。在这里推荐使用`百分号格式化`和`f-strings`方法。 # 2.3 数据类型的相互转换   `Python`中的数据类型相互转换是`Python`编程中非常基础且重要的知识点之一。在`Python`中,数据类型的转换可以实现不同类型的数据之间的互相转化,以便进行数据处理和计算。以下主要介绍了`Python`中两种数据类型转换方法。 ## 2.3.1 隐式类型的转换   在`Python`中,隐式类型转换是指在表达式中自动发生的类型转换,而无需明确地编写类型转换代码。这些`隐式类型转换`通常发生在不同的数字类型之间。   下面是一些常见的隐式类型转换示例: ### (1) `整数和浮点数之间的隐式转换` ```python a = 5 # 整数 b = 2.5 # 浮点数 result = a + b # 隐式将整数a转换为浮点数,执行浮点数的加法 print(result) # 输出:7.5 ``` ### (2) `整数和布尔值之间的隐式转换` ```python a = 10 # 整数 b = True # 布尔值 result = a + b # 隐式将布尔值b转换为整数,执行整数的加法 print(result) # 输出:11 ``` ### (3) `字符串和数字之间的隐式转换` ```python a = "10" # 字符串 b = 5 # 整数 result = a + b # 隐式将整数b转换为字符串,执行字符串的拼接 print(result) # 输出:"105" ```   需要注意的是,隐式类型转换可能会引发一些意外的结果或错误,因此在需要精确控制类型转换的情况下,最好使用显式类型转换函数(如`int()`、`float()`和`str()`)来进行转换。 ## 2.3.2 显式类型的转换   在`Python`中,可以使用显式类型转换函数将一种数字类型转换为另一种数字类型。以下是一些常用的显式类型转换函数: ### (1) `通过int方法将数字转换为整数类型` ```python a = 5.7 # 浮点数 b = int(a) # 将浮点数转换为整数 print(b) # 输出:5 ``` ### (2) `通过float方法将数字转换为浮点数类型` ```python a = 10 # 整数 b = float(a) # 将整数转换为浮点数 print(b) # 输出:10.0 ``` ### (3) `通过str方法将数字转换为字符串类型` ```python a = 42 # 整数 b = str(a) # 将整数转换为字符串 print(b) # 输出:"42" ```   需要注意的是,在执行显式类型转换时,如果转换不可行或不合理(比如将一个字符串类型的`abc`这个值转化为数字类型),可能会引发类型错误。因此,在执行显式类型转换之前,最好确保转换操作是安全和有效的。 # 2.4 Python中运算符   在Python中的运算符有很多种,包括`算数运算符`,`比较运算符`,`逻辑运算符`,`赋值运算符`;还有不常见的`位运算`符等。当然,不同种类的运算符在运算时各种类的运算优先级也是不同的,那么我们带着疑问先来简单认识一下这几种运算符吧! ## 2.4.1 Python算数运算符   Python提供了一系列算术运算符,主要运用于数字类型之间的数学运算。以下是Python中常用的算术运算符: ### (1) `加法`:用于两数相加,使用符号为:“+”。示例如下: ```python a = 5 b = 3 c = a + b print(c) # 输出:8 ``` ### (2) `减法`:用于两数相减,使用符号为:“-”。示例如下: ```python a = 5 b = 3 c = a - b print(c) # 输出:2 ``` ### (3) `乘法`:用于两数相乘,使用符号为:“*”。示例如下: ```python a = 5 b = 3 c = a * b print(c) # 输出:15 ``` ### (4) `除法`:用于两数相除(得到浮点数结果),使用符号为:“/”。示例如下: ```python a = 10 b = 3 c = a / b print(c) # 输出:3.3333333333333335 ``` ### (5) `整数除法`:用于两数相除并返回整数结果(向下取整),使用符号为:“//”。示例如下: ```python a = 10 b = 3 c = a // b print(c) # 输出:3 ``` ### (6) `求余`:计算两个数相除的余数,使用符号为:“%”。示例如下: ```python a = 10 b = 3 c = a % b print(c) # 输出:1 ``` ### (7) `幂运算`:计算一个数的指数幂,使用符号为:“`**`”。示例如下: ```python a = 2 b = 3 c = a ** b print(c) # 输出:8 a = 2 b = 3 c = a ** b print(c) # 输出:8 ```   以上是Python中常见的算术运算符。可以通过组合使用这些运算符来执行各种数学运算。 ## 2.4.2 Python比较运算符   在Python中,比较运算符用于比较两个值或表达式的关系,并返回布尔值(True或False)。以下是Python中常用的比较运算符: ### (1) `相等`:检查两个值是否相等,使用符号“==”来进行比较。示例如下: ```python a = 5 b = 3 print(a == b) # 输出:False ``` ### (2) `不相等`:检查两个值是否不相等,使用符号“!=”来进行比较。示例如下: ```python a = 5 b = 3 print(a != b) # 输出:True ``` ### (3) `大于`:检查一个值是否大于另一个值,使用符号“>”来进行比较。示例如下: ```python a = 5 b = 3 print(a > b) # 输出:True ``` ### (4) `小于`:检查一个值是否小于另一个值,使用符号“<”来进行比较。示例如下: ```python a = 5 b = 3 print(a < b) # 输出:False ``` ### (5) `大于等于`:检查一个值是否大于或等于另一个值,使用符号“>=”来进行比较。示例如下: ```python a = 5 b = 3 print(a >= b) # 输出:True ``` ### (6) `小于等于`:检查一个值是否小于或等于另一个值,使用符号“<=”来进行比较。示例如下: ```python a = 5 b = 3 print(a <= b) # 输出:False ```   这些比较运算符可以用于各种情况,例如控制流语句中的条件判断、排序和筛选数据等。比较运算符返回的布尔值可以帮助我们进行逻辑判断和决策。 ## 2.4.3 Python逻辑运算符   在Python中,逻辑运算符用于对布尔值进行操作和组合。逻辑运算符可以结合一个或多个布尔值,并返回一个新的布尔值结果。以下是Python中常用的逻辑运算符: ### (1) `与运算(and)`:当所有操作数都为True时,返回True;如果任何一个操作数为False,则返回False。 ```python a = True b = False print(a and b) # 输出:False ``` ### (2) `或运算(or)`:当至少有一个操作数为True时,返回True;如果所有操作数都为False,则返回False。 ```python a = True b = False print(a or b) # 输出:True ``` ### (3) `非运算(not)`:对操作数进行取反操作,如果操作数为True,则返回False;如果操作数为False,则返回True。 ```python a = True print(not a) # 输出:False ```   逻辑运算符可以根据需要进行组合,并根据表达式的求值顺序确定计算的优先级。括号可以用于明确指定运算的顺序。逻辑运算符在条件判断、循环控制和逻辑判断等方面非常有用,帮助我们进行复杂的逻辑决策和操作。 ## 2.4.4 Python位运算符   在Python中,位运算符用于对整数的二进制表示进行位级操作。它们操作二进制数的每个位,并返回新的整数结果。以下是Python中常用的位运算符: ### (1) `按位与(AND)`:对两个操作数的每个对应位进行与操作,如果两个位都为1,则结果为1;否则结果为0。 ```python a = 5 # 二进制表示为 0101 b = 3 # 二进制表示为 0011 result = a & b print(result) # 输出:1 ``` ### (2) `按位或(OR)`:对两个操作数的每个对应位进行或操作,如果任何一个位为1,则结果为1;否则结果为0。 ```python a = 5 # 二进制表示为 0101 b = 3 # 二进制表示为 0011 result = a | b print(result) # 输出:7 ``` ### (3) `按位异或(XOR)`:对两个操作数的每个对应位进行异或操作,如果两个位相同,则结果为0;如果两个位不同,则结果为1。 ```python a = 5 # 二进制表示为 0101 b = 3 # 二进制表示为 0011 result = a ^ b print(result) # 输出:6 ``` ### (4) ·按位取反(NOT)·:对操作数的每个位进行取反操作,即将0变为1,将1变为0。 ```python a = 5 # 二进制表示为 0000 0101 result = ~a print(result) # 输出:-6(二进制表示为 1111 1001) ``` ### (5) ·左移(<<)·:将操作数的所有位向左移动指定的位数,并在右侧用零填充。 ```python a = 5 # 二进制表示为 0000 0101 result = a << 2 print(result) # 输出:20(二进制表示为 0001 0100) ``` ### (6) ·右移(>>)·:将操作数的所有位向右移动指定的位数,并在左侧用符号位(正数用0,负数用1)填充。 ```python a = 5 # 二进制表示为 0000 0101 result = a >> 2 print(result) # 输出:1(二进制表示为 0000 0001) ```   位运算符适用于需要直接操作二进制表示的情况,如位掩码、位标志和位操作等。它们在底层的二进制操作中非常有用。 ## 2.4.5 Python赋值运算符   在Python中,赋值运算符用于将一个值赋给一个变量。它将右侧的表达式的值分配给左侧的变量。以下是Python中常用的赋值运算符: ### (1) `等号(=)`:将右侧的值赋给左侧的变量。 ```python a = 5 print(a) # 输出:5 ``` ### (2) `加法赋值(+=)`:将右侧的值与左侧的变量相加,并将结果赋给左侧的变量。 ```python a = 5 a += 2 # 相当于 a = a + 2 a += 2 # 相当于 a = a + 2 ``` ### (3) `减法赋值(-=)`:将左侧的变量减去右侧的值,并将结果赋给左侧的变量。 ```python a = 5 a -= 2 # 相当于 a = a - 2 ``` ### (4) `乘法赋值(*=)`:将左侧的变量乘以右侧的值,并将结果赋给左侧的变量。 ```python a = 5 a *= 2 # 相当于 a = a * 2 ``` ### (5) `除法赋值(/=)`:将左侧的变量除以右侧的值,并将结果赋给左侧的变量。 ```python a = 5 a /= 2 # 相当于 a = a / 2 ``` ### (6) `取模赋值(%=)`:将左侧的变量模除以右侧的值,并将余数赋给左侧的变量。 ```python a = 5 a %= 2 # 相当于 a = a % 2 ``` ### (7) `幂赋值(**=)`:将左侧的变量的值提升到右侧的指数,并将结果赋给左侧的变量。 ```python a = 5 a **= 2 # 相当于 a = a ** 2 ```   赋值运算符允许我们方便地将一个值存储在变量中或对变量进行修改。它们在处理变量和执行简单计算时非常有用。 ## 2.4.6 Python运算符的优先级   在Python中,运算符具有不同的优先级,用于确定在表达式中进行运算的顺序。当表达式中包含多个运算符时,具有较高优先级的运算符会先执行。如果运算符具有相同的优先级,则按照从左到右的顺序执行。   以下是Python中常用运算符的优先级,按照从高到低的顺序。   (1) `括号`:`()`,用于改变运算符的优先级。   (2) `幂运算`:`**`,表示求幂运算。   (3) `正负号`:`+x`、`-x`,用于表示正数和负数。   (4) `乘法、除法、取模和整数除法`:`*`、`/`、`%`、`//`。   (5) `加法和减法`:`+`、`-`。   (6) `比较运算符`:`<`、`<=`、`>`、`>=`、`==`、`!=`。   (7) `逻辑运算符`:`not`、`and`、`or`。   需要注意的是,如果存在相同优先级的运算符,Python会从左到右依次执行运算。此外,可以使用括号来明确指定运算的顺序,从而避免优先级可能导致的错误或混淆。   以下是一个案例,展示了运算符优先级的应用: ```python result = 2 + 3 * 4 ** 2 - (6 / 2) print(result) # 输出:47.0 ```   在上面的表达式中,先计算指数运算,然后是乘法、除法和加法减法运算,括号改变了运算的优先级。 # 2.5 本章总结 ## (1) 标识符和关键字   标识符是用于标识变量、函数、类等命名的名称。标识符由字母、数字和下划线组成,且不能以数字开头。示例:`my_variable`, `calculate_sum`。   关键字是`Python`中具有特殊含义的预定义标识符,用于表示语法结构和功能。示例:`if`, `for`, `while`, `def`, `class`。 ## (2) 变量和常量   变量是用于存储和表示数据的名称,可以在程序中被修改。变量的值可以随时改变。示例:`x = 5`, `name = "John"`。 ## (3) 常量是指在程序中固定不变的值,一旦赋值后不可更改。示例:`PI = 3.14`, `MAX_VALUE = 100`。 ## (4) 输入与输出   输入是从用户获取数据的过程。在`Python`中,可以使用`input()`函数获取用户的输入,并将其存储为字符串。示例:`name = input("Enter your name: ")`。   输出是将结果或信息显示给用户的过程。在`Python`中,可以使用`print()`函数将数据打印到控制台。示例:`print("Hello, World!")`。 ## (5) 注释   注释是用于给程序添加说明和解释的文本,对于其他人阅读代码非常有帮助。在`Python`中,`单行注释`使用`#`符号,`多行注释`使用三个引号`"""`或`'''`包围。 ## (6) 数字类型   在`Python`中,数字类型包括`整数(int)`、`浮点数(float)`、`复数(complex)`等。整数表示整数值,浮点数表示带有小数部分的数值,复数表示具有实部和虚部的数值。 ## (7) 字符串类型   字符串是由字符组成的序列,在Python中用`引号(单引号或双引号)`括起来。字符串可以包含字母、数字、符号和空格等字符。示例:`"Hello, World!"`, `'Python'`。 ## (8) 运算符   `Python`中的运算符用于对值进行操作和计算。包括`算术运算符`(`+`, `-`, `*`, `/`, `%`, `**`等)、`比较运算符`(`<`, `>`, `<=`, `>=`, `==`, `!=`等)、`逻辑运算符`(`and`, `or`, `not`等)、`位运算符`(`&`, `|`, `^`, `~`, `<<`, `>>`等)等多种类型的运算符。 # 2.6 练一练 ## 2.6.1 选择题 1.标识符是什么?( ) A.用于标识变量、函数等的名称 B.Python中的特殊关键字 C.用于表示常量的名称 2.下列哪个不是Python关键字?( ) A.if B.else C.main D.Hello World 3.变量是用于存储和表示数据的名称,可以在程序中被修改。( ) A.对 B.错 4.常量是在程序中固定不变的值,不能被修改。( ) A.对 B.错 5.输入和输出分别是什么?( ) A.输入是将结果显示给用户,输出是获取用户的输入。 B.输入是获取用户的输入,输出是将结果显示给用户。 C.输入和输出都是获取用户的输入。 ## 2.6.2 填空题 1.在Python中,单行注释使用符号 __________。 2.整数、浮点数和复数是`Python`中的 __________ 类型。 3.字符串是由字符组成的序列,用 __________ 或 __________ 括起来。 ## 2.6.3 编程题 1.编写一段代码,要求用户输入两个整数,并将它们相加后的结果输出。 2.编写一段代码,要求用户输入一个可以转化为数字的字符串,并打印输出该输入值的平方值。
张泽楠
2024年6月18日 18:02
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码