Python一级考试笔记【源源老师】
前置知识:(了解即可)
-
Python常见的几种编程环境:IDLE(自带)、Visual Studio Code、Jupyter、pyCharm;
-
python版本:python3 和 python2(版本之间互不兼容)
-
IDLE的两种开发模式:交互模式、文件模式
- 交互模式
- 文件模式(最常见的Python文件后缀名:.py 或者.pyw)
- IDLE操作
命令 | 解释 |
---|---|
Ctrl+N | 新建文件(N:new) |
Ctrl+S | 保存文件(S:save) |
Ctrl+O | 打开文件(O:open) |
F5 | 运行程序 |
Tab | 代码缩进 |
# | 单行代码注释 |
‘’’ ‘’’ | 多行代码注释 |
- python保留字
Python中保留字是指被编程语言所保留的特殊单词,这些单词有着特定的含义和功能,不能被用作变量名、函数名或类名等标识符。Python有35个保留字,比如:False,True,None,and,as,def,del,elif,else,for,while,from,if,import,in,is,not,or 等等。
01. input()输入函数
如果想让用户在键盘输入内容,可以使用 input() 函数;
说明 | 语法 |
---|---|
函数名 | input(object) |
参数 | object–可以是空。 |
返回值类型 | 字符串 |
# input()输入的内容,不管字面上是什么都是字符串类型
a = input()
print(a)
print(type(a))
- 如果加上提示内容,可以很好的提示用户正确的输入;
# 有提示的输入
b = input("请输入一个数,1-9之间:")
print(b)
通过输入的两个数值进行加减运算,必须进行转换;
# 通过输入进行数值计算
c = int(input("请输入第一个数,1-9之间:"))
d = int(input("请输入第二个数,1-9之间:"))
print("%d+%d=%d"%(c, d, c+d))
02. print()输出函数
- 简单的输出
# 注意1:括号和双引号(单双均可)必须是英文状态下的
print("Hello, Python")
# 简单的数字输出
print(123)
- 输出的内容可以多条数据,默认空格隔开显示,可以通过参数更改:
# 输出时,默认会以空格来隔开显示
print(123, 456, 789)
- sep:用来间隔多个对象,比如这里我们用 “-” 来间隔
# 注意,sep参数的值需要通过双引号包含
print(123, 456, 789, sep="-")
- 默认情况下一个print输出后会自动换行
print(123)
print(456)
- 上面的例子等价于这样:
print(123, end="\n")
print(456)
- end: 可以指定结尾用什么符号
# 我们指定输出123后,用 --- 作为结尾
print(123, end="---")
print(456)
print 总结:
说明 | 语法 |
---|---|
函数名 | print(objects, sep=’ ‘, end=’\n’) |
参数 | objects --表示输出的对象。 |
sep – 用来间隔多个对象。 | |
end – 用来设定以什么结尾。默认值是换行符 \n。 | |
返回值 | 无 |
03. 变量
1. 变量的声明
# 声明一个变量
# 注意1:= 不是等于的意思,是 赋值 的意思
# 注意2:阅读代码从右边向左边阅读,意为:将数字123赋值给变量a
a = 123
# 输出a
print(a)
print(A) #Python中的英文是区分大小写的,大写的A和小写的a不是一种东西;这样写会报错
# a变量被替换
a = 456
print(a)
2. 命名的规则
-
变量名可以包含字母、数字、下划线,但数字不能在变量名首位;
- abc(合法)、a123(合法)、_xyz(合法)、2b(不合法)
-
Python中的关键字(即保留字)无法作为变量名,比如:def、class,使用会直接报错
# 关键字错误命名
def = 123
class = 123
print(class) #报错啦
# 中文命名
xiaoMing = 12
print(xiaoMing) #打印12
04.字符串
1.字符串写法
Python字符串支持使用单引号、双引号和三引号三种写法。
print('Hello World!!!')
print("Hello World!!!")
print('''Hello World!!!''')
2. 字符串的拼接
字符串的连接可以使用 +号 或者 逗号 ,具体如下:
# 字符串拼接,+号紧凑,逗号松散
print("我"+"和"+"你")
print("我" + "和" + "你")
print("我","和","你")
# 变量同理
a = "我"
b = "你"
print(a + b)
结果:
我们还可以使用 * 号来对字符串进行拼接组合,比如:
a = "*"*3
print(a) #结果:***
下面的例子中,如果我们想要输出字符串小明666,直接用加号拼接是不行的,这样会报错。
name = '小明'
num = 666
res = name + num
print(res)
使用"+"运算符连接字符串时,两边的操作数必须都是字符串类型。如果有其他类型的操作数,需要先将其转换为字符串类型,再进行拼接。正确的做法是:
name = '小明'
num = str(666)
res = name + num
print(type(res)) #<class 'str'>
3. 输出格式
格式符 | 说明 |
---|---|
%d | 格式化整数,会直接取整 |
%f | 格式化浮点数,可以设置保留的小数点 |
%s | 字符串 |
name = "小明"
age = 3.33
weight = 1.23456
print("我的名字叫%s,今年%d岁了,身高%.2f"%(name, age, weight)) #我的名字叫小明,今年3岁了,身高1.23
- %10.2f:可以理解为10个占位符,不足的用空格占用;
- %10s和%-10s:可以理解为占用10个位置,占用前面和占用后面的区别;
05. 布尔类型
1. 关系运算符
布尔类型的值,是专门用于各种表达式的判断,表达式的运算符如下:
名称 | 关系运算符 | 表达式返回值 |
---|---|---|
大于 | > | 成立返回True,否则为False |
小于 | < | 成立返回True,否则为False |
等于 | == | 成立返回True,否则为False |
大于等于 | >= | 成立返回True,否则为False |
小于等于 | <= | 成立返回True,否则为False |
不等于 | != | 成立返回True,否则为False |
# 表达式返回值
print(6 > 5) #True
print(6 > 7) #False
print(6 < 7) #True
print(6 < 5) #False
print(6 == 6) #True
print(6 == 7) #False
print(6 >= 7) #False
print(6 <= 7) #True
print(6 != 7) #True
2. 逻辑运算符
除了关系运算符之外,还有一种叫做逻辑运算符,具体如下:
名称 | 逻辑运算符 | 表达式返回值 |
---|---|---|
and | x and y | x和y同时为True时,返回True,否则返回False |
or | x or y | x和y只要其中之一为True,返回True,否则返回False |
not | not x | x为True时,结果为False,否则为True |
print(0 and 1) #0
print(1 and 2) #2
print(0 or 1) #1
print(1 or 2) #1
# 表达式
print(5 > 6 and 5 > 4) #False
print(7 > 6 and 5 > 4) #True
print(5 > 6 or 5 > 4) #True
print(5 > 6 or 5 < 4) #False
print(not 5 > 6) #True
print(not True) #False
06. 类型转换
1. 数据类型
类型名 | 转换函数 | 说明及示例 |
---|---|---|
整型 | int() | 将合法的字符数值或浮点数转换成整数 |
字符串型 | str() | 将任意内容转换成字符串型 |
浮点型 | float() | 将合法的字符数值或整数转换成浮点数 |
布尔型 | bool() | 将任意内容转换成布尔型 |
为了判断一个变量或内容,可以采用**type()**函数;
说明 | 语法 |
---|---|
函数名 | type(object) |
参数 | object --需要判断类型的内容 |
返回值 | 返回一个<class ‘类型符号’> |
# 使用type()获取四种类型
print(type(10))
print(type(10.15))
print(type("哈哈"))
print(type(True)) #注意:首字母需要大写
print(type(False)) #注意:首字母需要大写
结果:
2. 类型转换
print(int("123"))
print(int(123.34))
print(float("123"))
print(bool(0))
print(bool(1))
print(type(str(123))) # 将整型转换成字符串时,无法直观的检查出,所以需要用type()判断;
结果:
-
以上类型转换,有一些条件:
- 转换成整数时,包含字母或其它字符都不能转成整数,只有纯数字才可以
- 浮点数同上;
- 布尔型只能转换成True和False;
07. 四则运算
1. 算术运算符
虽说叫做四则运算,但其实运算符往往不止加减乘除这四种:
运算 | 符号 | 格式 | 结果 |
---|---|---|---|
加 | + | 1 + 1 | 2 |
减 | - | 2 - 1 | 1 |
乘 | * | 3 * 4 | 12 |
除 | / | 6 / 2 | 3.0 |
整除 | // | 9 // 7 | 1 |
求余 | % | 10 % 8 | 2 |
幂 | ** | 2**3 | 8 |
注意:
- 在编程语法中乘法 x 用 ***** 号代替,除法 ÷ 用 / 代替。
- 除法 / 是保留小数的,而整除 // 是直接取整的。
- 幂运算中:2**3,2为底数,3为指数,换算成乘法为:2 x 2 x 2 = 8。
运算符的优先顺序:
运算符说明 | Python运算符 | 优先级顺序 |
---|---|---|
小括号 | ( ) | 高——>低 |
乘方 | ** | |
乘、除、取余、取整 | *、/、%、// | |
加减 | +、- | |
比较运算符 | ==、!=、>、>=、<、<= | |
逻辑非 | not | |
逻辑与 | and | |
逻辑或 | or |
#小括号
number = (3 + 2) * 2
print(number) #10
#乘方
number = 3 * 2 ** 2
print(number) # 12
number = 8 / 2 ** 2
print(number) # 2.0
number = 7 % 2 ** 2
print(number) # 3
number = 7 // 2 ** 2
print(number) # 1
#乘法
number = 5 + 2 * 2
print(number) # 9
#除法
number = 5 - 2 / 2
print(number) # 4.0
#取余数
number = 5 - 2 % 2
print(number) # 5
#取整数
number = 5 + 2 // 2
print(number) # 6
#加减运算高于比较运算
print(5 < 3 + 2) # False
print(5 == 3 + 3) # False
#比较运算高于not
print(not 6<=6) #False
#not高于and
print(True and not False) #True
#and高于or
print(True or True and False) #True
2. 变量自运算
- 自运算,就是让变量本身的值累计运算,比如累加、累减等;
- += 累加,a += 1,相当于a = a + 1;
- -= 累减,a -= 1,相当于a = a -1;
- 注意:Python不支持a++语法;
# 累加
a = 1
a+=1
print(a) #2
08. 小海龟turtle库
1. turtle库入门
turtle,即:海龟;和随机库一样,是Python中一种 绘图工具 库,也叫 海龟库。默认是从原点(0,0)位置开始画图。
法名 | 返回值说明 | 方法简写 |
---|---|---|
.forward(d) | 面朝当前方向前进d个距离,d单位是像素 | fd |
.back(d) | 同上,后退 | bk |
# 引入海龟库,并给海龟取别名为t
import turtle as t
# 画一笔,向前(默认向右)画100步(单位:像素)
t.forward(100)
2. 角度的概念
在绘制图形时,有时需要转向,那么就需要调整前进箭头的指向(角度)即可
方法名 | 方法说明 |
---|---|
.left(a) | 左转a度,a的取值范围:0~360 |
.right(d) | 右转 |
import turtle as t
# 向前100步
t.forward(100)
# 拐个弯,向左拐90度
t.left(90)
# 再向前100步
t.forward(100)
# 拐个弯,向右拐90度
t.right(90)
结果:
3. 设置箭头造型
为什么叫小海龟呢?因为箭头是可以设置为小海龟的,当然,默认是箭头
方法名 | 方法说明 |
---|---|
.shape() | 箭头的造型:arrow、turtle、circle、square、triangle、classic |
.hideturtle() | 绘图结束后,隐藏箭头 |
.showturtle() | 显示海龟 |
import turtle as t
# 造型设置为海龟
t.shape('turtle')
t.forward(100)
t.hideturtle()
09. 绘制多种图形
1. 正方形
如图:
分析:正方形四条边相等,拐弯的角度为:360 / 4 = 90°
import turtle as t
t.shape('turtle')
t.forward(100)
t.left(90) #左拐90度
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
2. 等边三角形
如图:
分析:等边三角形三条边相等,内角和为180度,所以每一个内角为180/3=60度,外角为120度
import turtle as t
t.shape('turtle')
t.forward(100)
t.right(120) #右拐120度
t.forward(100)
t.right(120)
t.forward(100)
3. 圆
圆的绘制,有自己单独的方法:.circle()
方法名 | 方法说明 |
---|---|
.circle(r,extent,steps) | 绘制一个圆,可以设置三个参数,其中extent,steps可以省略 |
上面参数: | 参数说明: |
r | r是半径,若r>0,左拐画圆;若r<0,右拐画圆 |
extent | 可选值,弧形的角度 |
steps | 可选值,多边形边数 |
- 圆圈:
import turtle as t
t.shape('turtle')
t.circle(100)
- 半圆:
import turtle as t
t.shape('turtle')
t.circle(100,180)
- 圆内三角形:
import turtle as t
t.circle(50,steps=3)
- 圆内多边形:
import turtle as t
t.shape('turtle')
t.circle(100,360,6)
思考:画一个小雪人,如图所示:
方法一:
import turtle as t
t.shape('turtle')
t.circle(50)
t.circle(-100)
方法二:
import turtle as t
t.shape('turtle')
t.circle(50)
t.right(180) #海龟向右旋转180度【当然,向左旋转180度也可以】
t.circle(100)
4. 五角星
如图:
分析:五角星的五个内角和为180度,所以每一个内角为180/5=36度,外角为144度
import turtle as t
t.shape('turtle')
t.forward(100)
t.right(144) # 右拐144度
t.forward(100)
t.right(144)
t.forward(100)
t.right(144)
t.forward(100)
t.right(144)
t.forward(100)
10. 画笔设置
1. 画笔设置
海龟库绘制时的线条是可以设置的:包括颜色、粗细以及绘制速度等
方法名 | 方法说明 |
---|---|
.speed(s) | 设置绘图的速度:0或大于10表示瞬间绘制,1~10之间,1最慢,10最快 |
.color(p,q]) | p: 边框和画笔 q:填充颜色【如果只有p参数,则设置所有颜色,包括边框和填充颜色】 |
.pencolor© | 设置画笔颜色,绘制的线条以及笔头的轮廓部分 |
.pensize(s) | 设置画笔粗细,填入数字,最小值1 |
import turtle as t
t.shape('turtle')
# 设置颜色,red:边框和画笔 green:填充
t.color("red","green")
t.circle(100) #注意画笔这些要提前在画圆之前设置好
结果:
我们再看一下,如果设置了t.pencolor,会出现什么情况:
import turtle as t
t.shape('turtle')
t.color("red","green")
# 设置画笔颜色
t.pencolor("yellow")
t.circle(100)
结果:黄色边框覆盖了红色边框,因为t.pencolor颜色设置是在t.color之后,如果他们交换位置,那么红色边框将会覆盖黄色边框。
除此之外,我们还可以设置画笔粗细和设置绘制速度
import turtle as t
t.shape('turtle')
t.color("red","green")
# 设置画笔粗细
t.pensize(20)
# 设置绘制速度
t.speed(8)
t.circle(100)
结果:
2. 填充设置
如何在绘制好的封闭区域进行填充呢?比如一个圆
方法名 | 方法说明 |
---|---|
.fillcolor© | 设置填充的颜色 |
.begin_fill() | 在需要填充的封闭区域前设置 |
.end_fill() | 在需要填充的封闭区域后设置 |
import turtle as t
t.shape('turtle')
t.color("red","green")
t.begin_fill() # 开始填充
# t.fillcolor("orange") #可以在这里改变填充的颜色,将绿色改为橙色
t.circle(100)
t.end_fill() # 结束填充
结果:
3. 画布设置
画布:绘图的区域,我们可以设置它的大小和初始位置。
方法名 | 方法说明 |
---|---|
.screensize(width,height,bg) | 设置画布的大小【默认大小为(400,300)】 |
上面参数 | 参数说明 |
width | 宽 |
height | 高 |
bg | 背景颜色 |
import turtle
turtle.screensize(200,200,'green')
结果:
11. 抬笔和落笔
1. 坐标的概念
默认情况下,海龟绘图在屏幕原点(0,0)位置开始。我们可以设置对应坐标让其在指定位置绘制.
方法名 | 说明 |
---|---|
.goto(x, y) | 到达指定坐标(x,y) |
import turtle as t
t.circle(100)
# 将画笔在y轴上移50的位置
t.goto(0,50)
t.circle(50)
结果:
- 虽然,我们绘制出了同心圆,但暴露了一个问题:当绘制第二个圆时,笔头划过路过的区域,并没有抬笔,此时,我们需要通过抬笔和落笔来解决。
2. 抬笔与落笔
每次当笔头要位移绘制时,我们需要将笔头抬起,然后再绘制处再落笔即可
方法名 | 说明 | 简写 |
---|---|---|
.penup() | 设置画笔抬起,此时无法绘制内容 | .up() |
.pendown() | 设置画笔落下,此时可以绘制内容 | .down() |
import turtle as t
t.goto(0,0)
t.circle(100)
t.penup() #抬笔
t.goto(0,50)
t.pendown() #落笔
t.circle(50)
结果:
画图案例练习:
- 案例演练1:
如图:
分析:圆的半径:200/2 = 100
import turtle as t
t.circle(100)
t.penup()
t.goto(200,0)
t.pendown()
t.circle(100)
案例演练2:美国盾牌
如图:
分析:由外到里,逐个画出(6步)
- 先画最外层的红圈
- 白色圆圈
- 里面的红圈
- 蓝色圈
- 五角星
- 白色五边形
import turtle as t
t.speed(8)
#最外层的红圈
t.penup()
t.goto(0,-200)
t.pendown()
t.color('red') #设置边框颜色和填充色
t.begin_fill() #开始填充
t.circle(200)
t.end_fill()
#白色圈
t.penup()
t.goto(0,-150)
t.pendown()
t.color('white')
t.begin_fill() #开始填充
t.circle(150)
t.end_fill()
#里面的红圈
t.penup()
t.goto(0,-100)
t.pendown()
t.color('red')
t.begin_fill() #开始填充
t.circle(100)
t.end_fill()
#蓝色圈
t.penup()
t.goto(0,-50)
t.pendown()
t.color('blue')
t.begin_fill() #开始填充
t.circle(50)
t.end_fill()
#五角星
t.penup()
t.goto(-40,10)
t.pendown()
t.color('white')
t.begin_fill() #开始填充
for i in range(5):
t.forward(80)
t.right(144)
t.end_fill()
#白色五边形
t.penup()
t.goto(0,-20)
t.pendown()
t.color('white')
t.begin_fill() #开始填充
t.circle(16,steps=5)
t.end_fill()
12. 画点
方法名 | 说明 |
---|---|
.dot(r,c) | 绘制一个指定直径和颜色的圆点 |
上面参数 | 参数说明 |
r | 直径 |
c(可省略) | 颜色 |
举例:
import turtle as t
t.dot(400,'green')
t.hideturtle() #隐藏箭头
结果:
1. 美国盾牌
分析:用dot实现
import turtle as t
t.dot(400,'red')
t.dot(300,'white')
t.dot(200,'red')
t.dot(100,'blue')
#五角星
t.penup()
t.goto(-40,10)
t.pendown()
t.color('white')
t.begin_fill() #开始填充
for i in range(5):
t.forward(80)
t.right(144)
t.end_fill()
#白色五边形
t.penup()
t.goto(0,-20)
t.pendown()
t.color('white')
t.begin_fill() #开始填充
t.circle(16,steps=5)
t.end_fill()
结果:
2. 画人脸
import turtle as t
#圆脸
t.penup()
t.goto(0,-200)
t.pendown()
t.circle(200)
#左眼
t.penup()
t.goto(-100,50)
t.pendown()
t.dot(40,'blue')
#右眼
t.penup()
t.goto(100,50)
t.pendown()
t.dot(40,'blue')
#鼻子
t.penup()
t.goto(0,50)
t.pendown()
t.circle(-50,steps=3)
#画嘴
t.penup()
t.goto(-150,-70)
t.pendown()
t.goto(0,-170)
t.goto(150,-70)