Python1级知识点
约 14982 字大约 50 分钟
电子协会考级Python1级
2025-03-21
编程环境
学习要点
- IDLE的操作:IDLE的运行模式、IDLE的基本界面组成、IDLE的文件保存与运行、其他编程环境的了解。
IDLE 的全称是 Integrated Development and Learning Environment,也就是集成开发与学习环境
- Python的版本知识。
对标内容
- 了解Python有多种开发环境
- 了解Python的版本号和目前最常用的Python版本。
- 熟练使用Python自带的IDLE开发环境,能够进行程序编写、调试和分析,具备使用Python开发环境进行程序设计的能力。
情景导入
- 了解Python有多种开发环境,熟练使用Python自带的IDLE开发环境,能够进行程序编写、调试和分析,具备使用Python开发环境进行程序设计的能力。
- 了解Python的版本号和目前最常用的Python版本。
- 我们都知道,人和人之间沟通需要使用语言和文字,那么计算机和计算机、人和计算机怎么沟通呢?计算机“语言”就应运而生了。人类的语言有很多种,不同的民族和国家,语言不尽相同;计算机“语言”同样也有很多种,但是,这些“语言”最终都要编译为机器能“看懂”的机器语言。Python被称作“胶水语言”,可用于连接多个小的甚至不兼容的部件,整合不同的库或代码。
- Python最大的特征就是有非常丰富的库,并且语法简单易懂,因而深受大家喜爱。
Python的IDE
IDLE是开发Python程序的基本IDE(集成开发环境),具备基本的IDE的功能,是非商业Python开发的不错选择。当安装好Python以后,IDLE就自动安装好了,不需要另外安装。
常用的编辑器
- 除了Python自带的IDLE编辑器之外,Python的常用编辑器还有:Visual Studio Code(简称为VSCode)、Jupyter Notebook、pycharm等。
知识点详解
- IDLE的两种模式:脚本模式(又称为编辑器模式)和交互模式(又称为Shell 模式),这两种模式的界面如图1-1所示

交互模式

脚本模式
IDLE 两种模式的切换方法:
- 交互模式:默认为交互模式,交互模式的提示符是>>>。
- 脚本模式:点击[file]->[New File],脚本模式没有提示符。
IDLE 的基本操作和常用的快捷键
新建文件:File→New File(快捷键为Ctrl+N)
打开文件:File→Open(快捷键为Ctrl+O)
保存文件:File→Save(快捷键为Ctrl+S)
运行:Run→Run Module(快捷键为F5)
替换:Edit→Replace(快捷键为Ctrl+H)
撤销操作:Ctrl + Z它能撤销上一步的操作
恢复操作:Ctrl + Y用于恢复被撤销的操作
复制:Ctrl + C 复制选中的文本
粘贴:Ctrl + V 把复制的文本粘贴到指定位置。
剪切:Ctrl + X 剪切选中的文本
全选:Ctrl + A 选中当前编辑窗口内的所有文本
查找:Ctrl + F 打开查找对话框,用于查找指定的文本
查找下一个:F3 在文档中查找下一个匹配的文本
查找上一个:Shift + F3 在文档中查找上一个匹配的文本
替换:Ctrl + H
除以上快捷键之外,图1-2所示的快捷键也是考点。
易错点
- IDLE的两种模式:交互模式指的是直接输入一行代码或者命令,立刻就可以反馈运行结果的模式,又称作脚本Shell模式;脚本模式指的是可以编辑多行命令,形成一个文件,然后可以运行文件的模式。
- IDLE交互模式的提示符为>>>,脚本模式没有提示符。
- IDLE要从交互模式进入脚本模式:点击[file]->[New File]。
- Python文件的扩展名为.py及.pyw,所以.pyw文件也是Python文件。
- 如果Python中有import等导入库文件的语句,在保存Python文件时要注意文件名不能和import导入的库文件重名。但是如果文件不在同一个文件夹下,命名方式不受影响。如程序中含有“import turtle”语句,则不能把文件保存为turtle.py
模拟考题
考题1 单选题
以下选项中不是Python打开方式的是( )
- A. Python Shell-IDLE B. Windows 系统的命令行工具
- C. VSCode D. Scratch
考题2 单选题
退出IDLE环境的命令是( )
- A. ESC键 B. close()
- C. 回车 D. exit()
考题3 单选题
创建一个新的Python程序,编写了下面的代码:
import turtle
turtle.shape("turtle")
保存这个Python文件并且取了文件名。采用以下哪个文件名,程序可以正 常运行?( )
- A. frist.py B. turtle.py
- C. import. py3 D. hao.sb2
Python的版本
知识点详解
- 知道常用的Python版本有Python 3和Python 2。
- 知道这两个版本并不完全兼容。
- 知道目前最常用的Python版本为Python3。
- 知道Python编程语言的特征。
易错点
- 等级考试对于详细的Python版本不做具体的要求,考生只需要了解Python 3 和 Python 2 即可,但是要了解Python 3分为32位和64位两种安装版本,并且了解Python 3可以跨平台、跨系统运行。
- Python语言的特征:Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。解释型语言是相对于编译型语言存在的,解释型语言的源代码不是直接被翻译成机器语言(编译),而是先被翻译成中间代码,再在运行时由解释器对中间代码进行解释,程序每执行一次都要翻译一次。比如 Python、JavaScript 等都是解释型语言。
- 面向对象和面向过程:这两种都是编程语言的基本编程思想。
- 面向对象可以看作“人物传记”,是以“人物”(对象)为“线索”的;
- 面向过程可以看作“按照时间顺序叙事”,是以“时间”(过程)为“线索”的。
- 动态数据类型和静态数据类型:严格意义上来讲,Python的变量是没有数据类型的,我们常说的Python的变量类型其实指的是变量所关联的对象的类型。
- 变量的数据类型如果不能改变(一般需要提前声明),则是静态数据类型;
- 而如果变量类型可以改变,则是动态数据类型。
模拟考题
考题1 判断题
Python3的程序可以用Python2打开,但是不一定能运行。( )
考题2 单选题
下列关于Python的表述,不正确的是( )。
- A. Python 是一种解释型程序设计语言
- B. Python 是一种面向对象型程序设计语言
- C. Python 是一种动态数据类型程序设计语言
- D. Python 是一种编译型程序设计语言
代码缩进
知识点详解
Python 编程规范非考点,但是建议了解。
- 虽然Python没有强制性的编程规范,但是Python官方给了一个PEP 8的参考规范,因为大部分程序员会把PEP 8作为Python编程的基本规范。
- 在Linux平台上,一个Python源码文件应该由以下部分组成。在Windows 平台上,可以省略第一项。
① 解释器声明
② 编码格式声明
③ 模块注释或文档字符串
④ 模块导入
⑤ 常量和全局变量声明
⑥ 顶级定义(函数或类定义)
⑦ 执行代码
- 各部分的实例如下:
#!/usr/bin/env python # 解释器声明(Linux 平台需要声明)
# coding = utf-8 # 编码格式声明
"""通常这里是关于本文档的说明(docstring),须以英文(半角)的句号、问号或叹号结尾!
"""
import os, time # 模块导入
import datetime # 模块导入
BASE_PATH = r"d:\mycoding" # 常量和全局变量声明
LOG_FILE = u"dat.txt" # 常量和全局变量声明
class GameRoom(object): # 定义类或者函数
""" 代码 """
if __name__ == '__main__': # 执行代码
""" 代码 """
start()
- Python对代码缩进是敏感的。
- Python用代码缩进来代表不同的逻辑层。
- Python代码缩进的规则:
- 逻辑行的“首行”需要顶格,即无缩进;
- 相同的逻辑层保留相同的缩进;
- “:”标记新的逻辑层的开启,增加缩进。
易错点
- 缩进的规则。
- Tab符和空格作为缩进不能混用(虽然Python并没有做强制要求),因为如果使用Tab符,则需要修改编辑器的一些设置,否则可能会出现缩进错误问题。
- 推荐使用空格键来作为缩进的标准键。
模拟考题
考题1 判断题
Python代码中,代码缩不缩进无所谓,空格与Tab符也可以相互混用( )
考题2 单选题
下面的代码,哪段是正确的?( )
- A.
a = 9
if a<10:
print(a)
- B.
a = 9
if a<10:
print(a)
- C.
a = 9
if a<10:
print(a)
- D.
a = 9
if a<10
print(a)
代码注释
知识点详解
代码注释分为两种:单行注释和多行注释。
- 单行注释使用#符号,#符号后面的所有内容,程序将不做处理。
- 多行注释可以用'''和""":多行注释使用成对的三引号(" " "或者' ' '),三引号之间的所有内容,程序都不做处理。
# 这是一个单行注释,用于简要说明下面代码的功能
# 打印欢迎信息
print("Welcome to Python!")
'''
这是一个多行注释,
可用于详细解释代码的功能、实现思路等。
这里我们定义一个函数,用于计算两个数的和。
'''
def add_numbers(a, b):
return a + b
"""
也可以使用双引号的三引号来进行多行注释。
以下代码调用 add_numbers 函数并打印结果。
"""
result = add_numbers(3, 5)
print(result)
易错点
- 多行注释需要成对使用三引号;单行缩进不需要使用成对的引号,只需要在注释内容前面加上#符合即可。
- 多行注释可以跨行,无论跨多少行都行,直到再次遇到同样的三引号结束。
- 三引号必须是同样的三引号,不能把三单引号(' ' ')和三双引号(" " ")混合使用。
模拟考题
考题1 单选题
下列可以用作多行注释的是?( )
- A. 前后加### B. 前后加'''
- C. 前后加/// D. 前后加***
考题2 单选题
下面哪个选项更接近程序的运行结果?( )
print('''Hello!
Python! # My coding
''') # 我的第一个程序
A.
Hello!
C.
Hello!Python! # My coding
B.
Hello!
Python!
D.
Hello!
Python! # My coding
在同一行显示多条语句
知识点详解
Python 可以在同一行中使用多条语句,语句之间使用分号(;)分隔,如下所示。
>>>print(" 中国电子学会");print("Python编程等级考试")
>>>中国电子学会
Python 编程等级考试
易错点
- 在Python编程中,我们经常会将变量赋值写在一行里面,这种写法也是在同一行显示多条语句,也要使用分号(;)将不同语句隔开,并且要注意分号必须是英文(半角)的。
模拟考题
单选题
a="110";b="9";c=a+b;print(c) 的结果是?( )
- A. a+b B. 119 C. c D. 1109
编程基础
学习要点
- print() 语句。
- 双引号和单引号。
- 字符串及数值类型转换。
- input() 语句。
- 变量的命名和使用、保留字。
对标内容
掌握变量的基本概念,会使用变量,并且掌握变量名的命名和保留字等基本语法;理解字符串、数值型变量,会对变量类型进行转换。
情景导入
盖房子需要先打地基,学习编程同样的需要先从“地基”入手。在编程环境课程中,我们对于工具有了基本的了解,这就相当于我们已经认识了写字使用的笔,但是想要写出一手好字,还需要把握笔、坐姿、笔顺、笔画等基本功练扎实了。
print() 函数
知识点详解
- 作用:打印输出,即在屏幕上显示相关信息。
- 用法:如果后面显示的是字符串,那么需要加引号;如果显示的是可计算的数值类的数据,可以不用加引号。
- 语法:
- 输出字符串:需要在字符串前后加上引号(单引号、双引号均可,但是要成对使用),如下所示(第二行为运行结果)。
>>>print(" 我是一名学生!") 我是一名学生!
- 输出有数值的数字:输出数字不需要加引号,但是print()函数会对输出的数字进行计算,如下所示(第二行为运行结果)。
>>>print(4+8) 12
- 输出变量:如果字符串没有加引号,print()函数会把它当作变量来处理,如果该变量在print()函数之前已经进行过赋值,则会输出该变量的值,如下所示(第三行为运行结果)。
>>>coding = "Python 3" # 给变量 coding 赋值 >>>print(coding) # 输出 coding Python 3
- 输出多个内容:print()函数可以同时输出多个对象,对象之间用逗号隔开,如下所示。
>>>a = 6 >>>b = "China" >>>print(a,b) 6 China
- 换行:print()函数默认是在本命令结束后进行换行,如果不需要换行,则需要将默认的参数end ='\n'(换行符)改成其他字符,则该命令结束后将自动输出该字符,如下页所示。
>>>print("I am ",end ="--") >>>print("student") I am --student
- 参数详解
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
- 语法:
易错点
- 对于print()函数中的数字,一定要注意观察是否加了引号,如果加了引号,则会当作字符串而不是数字来进行处理。
- print() 函数可以跨行输出,但是需要使用三引号,如下所示。
>>>print('''* ** *** ****''') * ** *** ****
- print() 函数中的引号(单引号、双引号、三引号)均必须是英文状态下的半角引号。
- 转义符:在print()函数中,有时候需要输出英文的单引号或者双引号,由于其有着特殊的含义,所以需要配合Python中的转义符\来进行转义(转义符的使用详见字符串相关内容),如下所示。
>>>print("I\'m XiangJin.") # 利用转义符输出 ' I'm XiangJin. # 运行结果
模拟考题
考题1 单选题
在Python中,下列哪个函数用于输出内容到终端?( )
- A. print() B. output() C. import() D. echo()
考题2 单选题
print(6+8/2)
输出的结果是( )。
- A. 7 B. 10.0 C. 10 D. 6+8/2
考题3 判断题
print('I\'m ok.')
因为有3个单引号,所以程序是错误的。( )
变量及变量命名
知识点详解
关于变量
Python 中的变量并不直接存储值,而是对存储了值的内存地址的引用。这是因为Python采用基于值的内存管理模式。我们可以这样理解:内存就像是一个个的盒子;值就像是盒子里的物品;而变量则是贴在盒子上的一个个标签。正因为如此,Python中,变量不需要提前声明,但是一定要指向(或者关联)某一个对象(在这里我们可以把对象理解为放到盒子里的值),变量在指向对象的时候就自动创建了。
变量的命名规则
- 变量名由大小写字母、数字、下画线,以及汉字等字符串组合,但是,一般情况下,我们并不鼓励使用汉字作为变量名。
- 变量名必须以字母或下画线开头(不能以数字开头),但以下画线开头有特殊的含义,我们也不鼓励开头使用下画线。
- 变量名中不能有空格或者标点符号(如逗号、顿号、分号、冒号等)。
- 不能将保留字作为变量名使用。
- Python变量名是大小写敏感的,也就是说,同样的字母,大写和小写代表不同的变量。
保留字
保留字也称关键字,是指在语言本身的编译器中已经定义过的单词,具有特定含义和用途,用户不能再将这些单词作为变量名或函数名、类名使用。Python 的保留字可以通过下面的命令查看。
>>>import keyword
>>>keyword.kwlist
若将保留字作为变量名并赋值,将会得到语法错误提示,如下所示。
>>>if = "Python"
SyntaxError: invalid syntax
易错点
- 虽然不鼓励用汉字作为变量名,但是不能说变量名用汉字就是错误的。
- Python允许同时为多个变量赋值,该种赋值有两种情况:第一种,多个变量指向同一个对象;第二种,多个变量指向不同对象,在该种情况下要注意变量和对象的数量要一致,如下所示。
a = b = c = 1 # 第一种:多个变量指向同一个对象
a,b,c,d = 1,2,3,'Python' # 第二种:多个对象指向不同对象
- 命令函数不一定是保留字符,比如求和函数sum()中的sum就不是保留字符,sum是可以当作变量名使用的。
模拟考题
考题1 判断题
as、is、class、true 都不可以作为变量名。( )
考题2 单选题
以下哪个变量命名不符合Python规范?( )
- A.
语言='Python'
- C.
language='Python'
- B.
_language='Python'
- D.
.language='Python'
考题3 单选题
下列哪个不是Python的保留字?( )
- A. if B. or C. turtle D. for
考题4 单选题
运行下列语句后显示的结果是什么?( )
b = 2 * a / 4
a = 1
print(a,b)
A. 1,0.5 B. 1,0 C. 报错 D. 0,1
内置对象类型、类型转换
知识点详解
Python常见的内置对象类型有如下6种:数字、字符串、列表、元组、字典、集合。在一级考试中,我们只要求掌握数字(整型和浮点型)与字符串类型的互相转换。
把其他数据类型转换为数字类型(含整型和浮点型)
首先,其他数据类型必须是数字组成的字符串,非数字字符组成的字符串是不能转换为数字;其次,转换的方式为如下3种。
int(): 作用是将其他对象类型转换为整数,如下所示。
>>>int('123') # 将字符串转换为整数
123
>>>int(12.3) # 将浮点数转换为整数
12
float(): 作用是将其他对象类型转换为浮点数,如果原对象类型为整型,则保留1位小数;如果原对象本身含有小数点,则按照原对象小数点后面的位数进行保留,如下所示。
>>>float('123.24') # 将字符串转换为浮点数
123.24
>>>float(12) # 将整数转换换为浮点数
12.0
eval(): 作用是返回传入字符串的表达式的结果,由于返回的是表达式的值,所以eval() 的返回值是数字类型的对象,如下所示。
>>>eval('4+6') # 将字符串4+6表达式的值返回
10.0
>>>eval("123.4") # 将字符串123.4 的值返回
123.4
将其他数据类型转换为字符串类型
该种转换,只能使用str()函数,str()函数的功能是将其他数据类型转换为字符串类型,如下页所示。
>>>str(10)
'10'
type()函数
该函数的主要作用是查看对象的数据类型,返回的值常见的有<type'int'>
、<type 'str'>
、<type 'list'>
、<type 'float'>
等和对象类型相匹配的类型名称,如下所示。
>>>type("123")
<type 'str'>
字符串类型的基本运算
- 加法运算:字符串和字符串可以进行加法运算,相当于把两个字符串连接在一起。
- 乘法运算:字符串可以和整型数据类型进行乘法运算,相当于把该字符串重复显示多少次。但是要注意,字符串必须在整型数据之前,如下所示。
>>>print(" 电子学会"*3)
电子学会电子学会电子学会
数字类型运算
这种类型的运算比较多也比较复杂,所以我们将把这一部分内容放到运算符中来进行详解。
易错点
- 字符串的加法运算必须在字符串类型之间进行,不能和其他类型进行加法运算,比如print("123"+3)是错误的。
- str() 函数在进行转换前要对对象进行计算,如下所示。
>>>a = 4+8
>>>print(str(a))
12
- eval() 函数可以计算表达式的结果,不可计算的表达式是无法计算的,比如含有字母的字符串,还有我们将在二级考核的列表等,所以在使用时必须要注意表达式是否可以转换为可计算的表达式。
- 例如:
eval('1+2+4.5')
是可以计算的;但是a = "1+2"
时,eval('a+4.5')
可以计算,eval(a+4.5)
和(a+"4.5")
就不可以计算。
- 例如:
模拟考题
考题1 单选题
a=5 print('a+4') 以上两段代码的运行结果是?( )
- A. 9 B. 'a+4' C. 无结果,出错 D. a+4
考题2 单选题
以下哪种输入结果不可能得到以下反馈:重要的事情说3遍:安全第一!安全第一!安全第一!( )
- A. print(" 重要事情说3遍:"+"安全第一!"*3)
- B. print(" 重要事情说3遍:"+"安全第一!“+”安全第一!"*2)
- C. print("重要事情说3遍:"+"安全第一!"+"安全第一!"+"安全第一!")
- D. print(" 重要事情说3遍:"+"安全第一!"/3)
input() 函数
知识点详解
input() 函数是 Python 用来进行人机交互的,Python 3中,input()函数接受一个标准输入数据,返回为字符串类型。input() 函数里面的参数是提示信息,会在进行人机交互时输出在屏幕上,所以input()函数里面的参数只能使用字符串,如:
>>>inport("请输入您的姓名:")
请输入您的姓名:
如果没有提示信息,屏幕上不会出现提示信息。
易错点
在进行人机交互的时候,无论用户输入的是否是字符串,input()函数返回的值的类型默认都是字符串类型,所以如果要对输入的数字进行运算,必须要对返回的值进行数据类型的转换,如下所示。
>>>a = input(" 请输入一个整数")
>>>b = int(a)+12
>>>print(b)
如果需要将input()返回的值转换为数字类型,可以使用int()、float()或者eval() 函数,如下所示:
>>>a = int(input(" 请输入一个整数"))
>>>a = float(input(" 请输入一个整数"))
>>>a = eval(input(" 请输入一个整数"))
模拟考题
考题1 编程题
已知一头奶牛每天可以产20千克牛奶。N(N为变量)头奶牛7天可以产多少千克的牛奶?要求:
- 程序开始运行后,会有提示字符串:“请输入奶牛的头数:”,完成奶牛头数的输入(可以直接赋值提示字符串到程序中,提示字符串包括冒号,但不包括双引号);
- 程序会根据输入的奶牛头数计算出总共产出的牛奶的重量,并将结果进行修饰然后输出。示例:如果输入奶牛的头数为10,则输出“10头奶牛7天可以产1400千克的牛奶”。
- 评分标准:
(1)有输入语句并且有清楚的提示字符串(2分);
(2)有输出语句并且按照样例输出(2分);
(3)有类型转换语句(2分);
(4)有计算语句(2分);
(5)程序符合题目要求(2分)。
N = input(" 请输入奶牛的头数:")
N = eval(N)
milk = N*20*7
print(N," 头奶牛7天可以产",milk,"千克的牛奶")
N = input(" 请输入奶牛的头数:")
N = int(N)
milk = N*20*7
print(N," 头奶牛7天可以产",milk,"千克的牛奶")
考题2 单选题
运行后,如果用户输入的数字是44,那么这时候b是多少?( )
a = input(" 请输入一个数字")
b = a*3
- A. 44 B. 444444
- C. 132 D. 程序会报错
运算符
学习要点
- Python的4种运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符。
- 运算符的优先级。
对标内容
- 掌握并熟练编写带有数值类型变量的程序,具备解决数学运算基本问题的能力。
- 理解比较表达式、运算符、逻辑运算的基本概念,掌握Python编程基础的逻辑表达式。
- 学会使用
- 算术运算符(+、-、*、/)
- 赋值运算符(=)
- 比较运算符(==、<、>、<=、>=、!=)
- 逻辑运算符(and、or、not)
- 知道运算符的优先顺序。
情景导入
计算机编程最早是为了解决数学问题而发明的。宽泛地说,我国古代的算盘也是一种计算器,只不过这种计算器不是用电的,所以不能称为电子计算机。计算机编程始终是和数学紧密结合的,特别是人工智能时代的编程,大部分是对数据的处理和挖掘,这些都离不开数学。所以,学好数学对学习编程有着非常重要的帮助;反过来,学习编程也有利于学习数学。
算术运算符
知识点详解
表-算术运算符
符号 | 解释 |
---|---|
+ | 用于数值相加,也可拼接字符串、列表等可迭代对象 |
- | 用于数值相减 |
* | 用于数值相乘,也可重复字符串、列表等可迭代对象 |
/ | 进行除法运算,结果为浮点数 |
// | 进行整除运算,结果为整数(向下取整) |
% | 获取两个数值相除的余数 |
** | 计算一个数值的指定次幂 |
- 加法运算符(+) 加法运算符用于把两个数值相加,也可用于拼接字符串、列表等可迭代对象。
# 数值相加
num1 = 5
num2 = 3
result1 = num1 + num2
print(result1) # 输出: 8
# 字符串拼接
str1 = "Hello"
str2 = " World"
result2 = str1 + str2
print(result2) # 输出: Hello World
# 列表拼接
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result3 = list1 + list2
print(result3) # 输出: [1, 2, 3, 4, 5, 6]
- 减法运算符(-) 减法运算符用于从一个数值中减去另一个数值。
num1 = 10
num2 = 4
result = num1 - num2
print(result) # 输出: 6
- 乘法运算符(*) 乘法运算符用于将两个数值相乘,也可用于重复字符串、列表等可迭代对象。
# 数值相乘
num1 = 3
num2 = 7
result1 = num1 * num2
print(result1) # 输出: 21
# 字符串重复
str1 = "abc"
result2 = str1 * 3
print(result2) # 输出: abcabcabc
# 列表重复
list1 = [1, 2]
result3 = list1 * 2
print(result3) # 输出: [1, 2, 1, 2]
- 除法运算符(/) 除法运算符用于将一个数值除以另一个数值,结果为浮点数。
num1 = 10
num2 = 3
result = num1 / num2
print(result) # 输出: 3.3333333333333335
- 整除运算符(//) 整除运算符用于将一个数值除以另一个数值,结果为整数(向下取整)。
num1 = 10
num2 = 3
result = num1 // num2
print(result) # 输出: 3
- 取模运算符(%) 取模运算符用于获取两个数值相除的余数。
num1 = 10
num2 = 3
result = num1 % num2
print(result) # 输出: 1
- 幂运算符(**) 幂运算符用于计算一个数值的指定次幂。
base = 2
exponent = 3
result = base ** exponent
print(result) # 输出: 8
- 运算符优先级
**(幂运算)
*、/、//、%(乘、除、整除、取模)
+、-(加、减)
result = 2 + 3 * 4 # 先乘后加,结果为 14
result2 = (2 + 3) * 4 # 先加后乘,结果为 20
易错点
- 取整除(//)是向下取整,不是四舍五入,也可以理解为去掉余数。比如:24//5的结果4,并不是5。
- 取模(%)是取两个数相除的余数,如果能整除,则取模结果为0。
模拟考题
考题1 单选题
a=2,b=3,那么c=a**b运算的结果是?( )
- A. 6 B. 8 C. 9 D. 23
考题2 单选题
执行(23)/(9-32),输出的结果是什么?( )
- A. 1 B. 2.0 C. 2 D. 1.0
考题3 单选题
print(46//8) 的结果是?( )
- A. 5 B. 6 C. 5.0 D. 5.75
考题4 单选题
要抽出一个三位数(如479)的个位上的数字,输入以下哪段代码可以获得其中的个位数上的9?( )
- A. print(479%10//10) B. print(479//10//10) = C. print(479%10%10) D. print(479//10%10)
赋值运算符
知识点详解
表-赋值运算符
符号 | 解释 | 示例展开形式 |
---|---|---|
= | 把右侧表达式的值赋给左侧的变量 | 无 |
+= | 先将变量的值与右侧表达式的值相加,再把结果赋给该变量 | a += 1 就是 a = a + 1 |
-= | 先将变量的值减去右侧表达式的值,再把结果赋给该变量 | a -= 1 就是 a = a - 1 |
*= | 先将变量的值与右侧表达式的值相乘,再把结果赋给该变量 | a *= 2 就是 a = a * 2 |
/= | 先将变量的值除以右侧表达式的值,再把结果(浮点数)赋给该变量 | a /= 2 就是 a = a / 2 |
//= | 先将变量的值除以右侧表达式的值,再把结果的整数部分赋给该变量 | a //= 2 就是 a = a // 2 |
%= | 先计算变量的值除以右侧表达式的值的余数,再把余数赋给该变量 | a %= 2 就是 a = a % 2 |
**= | 先计算变量的值的右侧表达式次幂,再把结果赋给该变量 | a **= 2 就是 a = a ** 2 |
- 简单赋值运算符(=)最基础的赋值运算符,它能把右侧表达式的值赋给左侧的变量。
# 把整数 10 赋值给变量 num
num = 10
print(num)
# 把字符串 "Hello" 赋值给变量 str_val
str_val = "Hello"
print(str_val)
- 加法赋值运算符(+=)运算符会先把变量的值与右侧表达式的值相加,再将结果赋给该变量。
a = 5
a += 3 # 等同于 a = a + 3
print(a)
- 减法赋值运算符(-=)运算符会先把变量的值减去右侧表达式的值,再将结果赋给该变量。
b = 10
b -= 4 # 等同于 b = b - 4
print(b)
- 乘法赋值运算符(*=)运算符会先把变量的值与右侧表达式的值相乘,再将结果赋给该变量。
c = 2
c *= 5 # 等同于 c = c * 5
print(c)
- 除法赋值运算符(/=)运算符会先把变量的值除以右侧表达式的值,再将结果赋给该变量,结果为浮点数。
d = 12
d /= 3 # 等同于 d = d / 3
print(d)
- 整除赋值运算符(//=) 运算符会先把变量的值除以右侧表达式的值,再将结果(整数部分)赋给该变量。
e = 13
e //= 3 # 等同于 e = e // 3
print(e)
- 取模赋值运算符(%=)运算符会先计算变量的值除以右侧表达式的值的余数,再将余数赋给该变量。
f = 15
f %= 4 # 等同于 f = f % 4
print(f)
- 幂赋值运算符(**=)运算符会先计算变量的值的右侧表达式次幂,再将结果赋给该变量。
g = 2
g **= 3 # 等同于 g = g ** 3
print(g)
易错点
- 除了用等号赋值之外,其余的赋值方式在数学中是没有的,所以除了等号外都是易错点。
模拟考题
考题1 单选题
已知变量a=2,b=3,执行语句a%=a+b后,变量a的值为( )。
- A. 0 B. 2 C. 3 D. 12
考题2 单选题
已知变量a=5,b=6,执行语句a*=a+b后,变量a的值为( )。
- A. 11 B. 30 C. 31 D. 55
比较运算符
知识点详解
- 比较运算符又称为关系运算符,其最大的特点就是返回值只有两种:
True
或者False
。 - 比较运算用于对常量、变量或表达式的结果进行大小比较,如果这种比较是成立的,则返回True(真),反之则返回False(假)。
表-比较运算符
符号 | 解释 |
---|---|
== | 比较两个值是否相等,若相等则返回 True ,否则返回 False |
!= | 比较两个值是否不相等,若不相等则返回 True ,否则返回 False |
> | 比较左边的值是否大于右边的值,若是则返回 True ,否则返回 False |
< | 比较左边的值是否小于右边的值,若是则返回 True ,否则返回 False |
>= | 比较左边的值是否大于或等于右边的值,若满足条件则返回 True ,否则返回 False |
<= | 比较左边的值是否小于或等于右边的值,若满足条件则返回 True ,否则返回 False |
- 等于运算符(==)用于比较两个值是否相等。如果相等,返回 True;否则返回 False。
a = 5
b = 5
print(a == b) # 输出: True
c = "hello"
d = "world"
print(c == d) # 输出: False
- 不等于运算符(!=)用于比较两个值是否不相等。如果不相等,返回 True;否则返回 False。
a = 10
b = 20
print(a != b) # 输出: True
c = "apple"
d = "apple"
print(c != d) # 输出: False
- 大于运算符(>)用于比较左边的值是否大于右边的值。如果是,返回 True;否则返回 False。
a = 15
b = 10
print(a > b) # 输出: True
c = 5
d = 8
print(c > d) # 输出: False
- 小于运算符(<)用于比较左边的值是否小于右边的值。如果是,返回 True;否则返回 False。
a = 3
b = 7
print(a < b) # 输出: True
c = 9
d = 2
print(c < d) # 输出: False
- 大于等于运算符(>=)用于比较左边的值是否大于或等于右边的值。如果满足条件,返回 True;否则返回 False。
a = 10
b = 10
print(a >= b) # 输出: True
c = 12
d = 15
print(c >= d) # 输出: False
- 小于等于运算符(<=)用于比较左边的值是否小于或等于右边的值。如果满足条件,返回 True;否则返回 False。
a = 5
b = 8
print(a <= b) # 输出: True
c = 9
d = 3
print(c <= d) # 输出: False
- 比较不同数据类型
- 在 Python 中,某些情况下可以比较不同数据类型的值,但需要注意规则:数字类型(如整数和浮点数)可以相互比较,Python 会自动处理类型转换。
a = 5 b = 5.0 print(a == b) # 输出: True
- 字符串比较是按字典序进行的,即按照字符的 Unicode 编码值依次比较。
python a = "apple" b = "banana" print(a < b) # 输出: True,因为 'a' 的 Unicode 编码小于 'b' 的编码
- 链式比较
- Python 支持链式比较,这使得代码更加简洁易读。
x = 5 print(1 < x < 10) # 输出: True,等价于 (1 < x) and (x < 10)
易错点
==
和=
:在编程中,经常会出现将==
误写成=
的情况,因为我们习惯将口头上的“等于”写成=
,但是我们口头上的“等于”可能有两种意思:- 一种是将一个值赋值给另外一个变量,这时候,使用
=
; - 而有时候我们所说的“等于”表示的是比较两个对象是否相等,这时候,要使用
==
,如下所示。
- 一种是将一个值赋值给另外一个变量,这时候,使用
>>>a = 5 # 把5赋值给a,返回值是5
>>>a == 5 # 看a是否和5相等,返回值只有True或者False
==
和is
的区别:初学Python,大家可能对is
比较陌生,很多人会误将它和==
的功能混为一谈,但其实is
与==
有本质上的区别,完全不是一码事儿:==
用来比较两个变量的值是否相等is
则用来比对两个变量引用的是否是同一个对象,如下所示。
通过上面的案例我们可以看出,a和b的值虽然是相等的,但是,a并不是b。>>>a = [5,2] >>>b = [5,2] >>>print(a==b) True >>>print(a is b) False
模拟考题
考题1 单选题
执行语句print(10==10.0),结果为( )。
- A. 10 B. 10.0 C. True D. False
考题2 单选题
下列代码的运行结果是( )。
a=0
b=False
print(a==b)
- A. 0 B. False C. True D. error
逻辑运算符
知识点详解
Python 中的逻辑运算符只有3个:and、or和not。
表-逻辑运算符
符号 | 解释 |
---|---|
and | 逻辑与,当两个操作数都为 True 时返回 True ,否则返回 False ,遵循短路求值原则 |
or | 逻辑或,只要两个操作数中有一个为 True 就返回 True ,两个都为 False 时返回 False ,遵循短路求值原则 |
not | 逻辑非,一元运算符,对布尔值取反,操作数为 True 时返回 False ,为 False 时返回 True |
- 逻辑与(and)
- 当且仅当两个操作数都为 True 时,and 运算符返回 True;
- 否则返回 False。它遵循短路求值原则,即如果第一个操作数为 False,则不会再计算第二个操作数,因为无论第二个操作数是什么,整个表达式的结果都已经确定为 False。
# 示例 1:两个操作数都为 True result1 = True and True print(result1) # 输出: True # 示例 2:第一个操作数为 False result2 = False and True print(result2) # 输出: False # 示例 3:短路求值 def func(): print("函数被调用") return True # 第一个操作数为 False,不会调用 func() result3 = False and func() print(result3) # 输出: False
- 逻辑或(or)
- 只要两个操作数中有一个为 True,or 运算符就返回 True;
- 只有当两个操作数都为 False 时,才返回 False。同样遵循短路求值原则,如果第一个操作数为 True,则不会再计算第二个操作数,因为整个表达式的结果已经确定为 True。
# 示例 1:两个操作数都为 False result1 = False or False print(result1) # 输出: False # 示例 2:第一个操作数为 True result2 = True or False print(result2) # 输出: True # 示例 3:短路求值 def func(): print("函数被调用") return False # 第一个操作数为 True,不会调用 func() result3 = True or func() print(result3) # 输出: True
- 逻辑非(not)一元运算符,用于对一个布尔值取反。
- 如果操作数为 True,则返回 False;
- 如果操作数为 False,则返回 True。
# 示例 1:操作数为 True result1 = not True print(result1) # 输出: False # 示例 2:操作数为 False result2 = not False print(result2) # 输出: True 结合使用逻辑运算符 逻辑运算符可以结合使用来构建更复杂的条件表达式。在这种情况下,需要注意运算符的优先级,not 优先级最高,其次是 and,最后是 or。你也可以使用括号来明确指定运算顺序。 python # 示例:结合使用逻辑运算符 x = True y = False z = True result = (x and y) or (not z) print(result) # 输出: False
- 用于非布尔值的逻辑运算
- 逻辑运算符不仅可以用于布尔值,还可以用于其他数据类型。在这种情况下,Python会将非布尔值隐式转换为布尔值进行判断。通常,0、None、空列表、空字符串等被视为 False,其他值被视为 True。
# 示例:非布尔值的逻辑运算 a = 0 b = 5 result = a and b # 由于 a 为 False,返回 a print(result) # 输出: 0 result = a or b # 由于 a 为 False,返回 b print(result) # 输出: 5
综上所述,逻辑运算符在 Python 中是非常有用的工具,用于实现复杂的条件判断和逻辑控制。通过合理使用这些运算符,可以使代码更加简洁和高效。
易错点
- and运算是False惰性求值,所以只要前面的值是False,则不需要看后面的值。
- or 运算是True惰性求值,所以只要前面的值是True或者非0,则不需要看后面的值。
- 在Python中,True不仅仅是1,只要是非0及非空的对象都被认为是True,所以and、or的返回值不一定只有True和False,如下所示。
>>>print(123 or 22 ) 123 >>>print(20 and "abc") abc
模拟考题
考题1 单选题
假设a=20,b=3,那么a or b的结果是( )。
- A. 20 B. False C. True D. 3
考题2 单选题
已知x=5,y=6,则表达式not(x!=y)的值为( )。
- A. True B. False C. 5 D. 6
运算符的优先级
知识点详解
所谓优先级,就是当多个运算符同时出现在一个表达式中时,先执行哪个运算符。
表-运算符的优先级
优先级 | 运算符 | 描述 |
---|---|---|
1 | ( ) | 括号,强制改变运算顺序 |
2 | ** | 幂运算 |
3 | +x 、-x 、~x | 正号、负号、按位取反 |
4 | * 、/ 、// 、% | 乘法、除法、整除、取模 |
5 | + 、- | 加法、减法 |
6 | << 、>> | 按位左移、按位右移 |
7 | & | 按位与 |
8 | ^ | 按位异或 |
9 | | | 按位或 |
10 | < 、<= 、> 、>= 、!= 、== | 比较运算符(小于、小于等于、大于、大于等于、不等于、等于) |
11 | is 、is not | 身份运算符(判断两个对象是否为同一对象) |
12 | in 、not in | 成员运算符(判断元素是否在序列中) |
13 | not x | 逻辑非 |
14 | and | 逻辑与 |
15 | or | 逻辑或 |
16 | := | 海象运算符(Python 3.8+ 支持,可在表达式内部为变量赋值) |
易错点
运算符除了要考虑优先级之外,还需要考虑运算符的结合性,所谓结合性,就是当一个表达式中出现多个优先级相同的运算符时,先执行哪个运算符:
- 先执行左边的叫左结合性,先执行右边的叫右结合性。比如
1000/ 25 * 16
- 由于乘除是同一级别运算符,那是先算哪一个呢?根据四则混合运算的原则,我们学习过的运算符多数属于左结合性(即先算左边的),只有幂(**)、逻辑非(not)是右结合性。
- Python 逻辑运算返回为True时,值不一定是True或者1,而可以是表达式的值,这一点与其他编程语言有很大的区别,我们一定要注意。
模拟考题
考题1 单选题
在下面的运算符中,按照运算优先级,哪一个是最高级?( )
- A. ** B. * C. +vD. //
考题2 单选题
假设a=2,b=1,c = a and b - 1,那么c的值是( )。
- A. 3 B. 1 C. 2 D. 0
考题3 单选题
print(23 > 42 or 121>12 and 7 % 3 == 4 %3) 的结果是( )。
- A. False B. True C. 3 D. 4
turtle库
海龟绘图是对 最早在 Logo 中引入的受欢迎的几何绘图工具 的实现,它由 Wally Feurzeig, Seymour Papert 和 Cynthia Solomon 在 1967 年开发。