龙空技术网

全国青少年软件编程等级考试python一级,教学干货知识点整理

星空超野勇士 139

前言:

现时大家对“c语言左补0”大概比较关注,同学们都需要学习一些“c语言左补0”的相关文章。那么小编同时在网上收集了一些有关“c语言左补0””的相关文章,希望看官们能喜欢,朋友们快快来学习一下吧!

本文是全国青少年软件编程等级考试-python语言科目-一级-教学干货的大整理,教师可以用于编程教学的知识点汇总,学生也可以用来作为复习材料。

主要内容:

编程考级一级的语法知识点整理知识点案例和丰富图解一级信息学词汇表等级考试简介

全国青少年软件编程等级考试,python语言考级分为1到6级。

python等级考试适龄范围8-18周岁

python 1-2级 适合年级:3-6年级 (小学)

python 3-4级 适合年级:6-9年级 (初中)

python 5-6级 适合年级:高中1-3年级 (高中)

试卷题型和答题时间

一级题型有单选,判断,编程三种题型。

单选25题,每题2分,总分50分。

判断10题,每题2分,总分20分。

编程2题,两题总分为30分。

试卷的答题时间是60分钟。

python一级编程知识IDLE打开方式:

菜单栏打开方式,菜单栏找到python文件夹,点击打开。

创建桌面快捷方式,双击打开。

右键点击python文件,选择Eidt with IDLE/Edit with IDLE 3.xx

两种编程模式:

1,命令行交互式编程:输入一行,执行一行。

打开IDEL就可以在输入位置编写和运行,运行方式是按回车键。

优点:运行方便打开即用

缺点:不适合大型复杂程序,运行过的代码行无法修改,需要重新输入并按回车执行。

2,程序文件编程:写很多行代码一起执行。

在IDLE中执行file/new file,编写保存代码,运行方式是run/run module

优点:开发大型复杂程序,程序可反复修改运行。

缺点:需要创建和组织若干数量的代码文件,相对耗时。

3,日常开发中,使用文件编程场景会更多更普遍。

IDLE常用操作

file/new file 新建文件 ctrl+n

file/open 打开文件 ctrl+o

file/save 保存文件 ctrl+s

file/save as 另存文件 ctrl+shift+s

file/recent files 近期文件列表

run/run module 运行程序 F5

options/configure IDLE 设置编辑器字体等

python常用扩展名

.py 是最常用的程序文件的扩展名,这种程序由python.exe运行,运行时候会弹出控制台窗口。在windows系统下,双击.py文件会自动由python.exe运行当前程序,会弹出命令行窗口,常用的输入和输出在命令行窗口内完成。

.pyw是由pythonw.exe运行,运行的时候不会弹出命令行窗口,通常用来开发gui程序。在window是系统下,双击.pyw文件会自动由pythonw.exe运行当前程序,不会弹出命令行窗口。

下面的turtle界面程序,如果分别以.py和.pyw保存,在双击程序文件之后,py会弹出命令行窗口,pyw则不会弹出。tkinter界面程序也是一样的情况。

--------------------------------------------------------------------

import turtle

p=turtle.Pen()#创建画笔

p.width(8)#设置线条粗细

p.pencolor("blue")#设置线条颜色

p.left(180)#让海龟转到反方向

p.forward(50)

p.left(90)

p.forward(50)

p.forward(50)

p.left(90)

p.forward(50)

p.left(90)

p.forward(50)

p.left(90)

p.forward(50)

turtle.exitonclick()#窗口点击退出

--------------------------------------------------------------------------

turtle和tkinter都是python内置的gui开发模块,提供gui组件进行界面程序开发,turtle使用tkinter作为其底层模块,二者可以混合使用。turtle和tkinter程序可以用py和pyw两种方式保存和运行,区别就在于是否需要弹出命令行窗口。

.pyi文件是Python中的类型提示文件,用于提供代码的静态类型信息,一般用于帮助开发人员进行类型检查和静态分析,.pyi文件的命名约定通常与相应的.py文件相同,以便它们可以被自动关联在一起。

hello.pyi

def hello(name: str) -> None:print(f"hello {name}")

.pyi文件的命名约定通常与相应的.py文件相同,以便它们可以被自动关联在一起。

.pyc文件是由.py文件经过编译后生成的字节码文件,因为是二进制文件所以我们无法正常阅读里面的代码,其加载速度相对于之前的.py文件有所提高,可以实现源码隐藏。pyc文件包含了已编译的字节码,它可以更快地被Python解释器加载和执行,因为解释器无需再次编译源代码。

.pyd

.pyd是Python扩展模块的扩展名,pyd一般是p ython外的其他语言如c/C++编写的python扩展模块,即python的一个动态链接库,与dll文件相当,用于表示使用其他语言编写的二进制Python扩展模块文件。

.pyd文件是编译后的二进制文件,它包含了编译后的扩展模块代码以及与Python解释器交互所需的信息。

此外,.pyd文件通过import语句在Python中导入和使用,就像导入普通的Python模块一样。

由于C或C++的执行速度通常比纯Python代码快,可以使用扩展模块来优化Python代码的性能,尤其是对于计算密集型任务。

.pyx

.pyx是Cython源代码文件的扩展名。

Cython是一种编译型的静态类型扩展语言,它允许在Python代码中使用C语言的语法和特性,以提高性能并与C语言库进行交互。

.ipynb是Jupyter Notebook文件的扩展名,它代表"IPython Notebook"。

IDEL界面知识

1,交互式编程

● 标题栏下方是菜单栏

● >>> Python 输入提示符,等待用户输入内容

● 版本相关信息,主要用于显示当前 Python 的版本

2,程序文件编程

●标题栏显示当前文件的名称

●代码编辑区,用户输入Python程序代码

●文件名两侧出现*,表示文件尚未保存

运行程序的方式

通常我们首先保存文件,在windows环境中,可以通过以下几种方式运行程序 :

●执行菜单项:Run -> Run Module 。

●程序在IDLE中打开的时候,按F5键。

●在资源管理器中双击对应的程序,.py自动由python.exe执行,.pyw自动由pythonw.exe执行。

●通过命令行窗口运行对应的程序,进入程序目录,执行: python 程序名.py。

python程序的注释方法

单行注释

单行注释通常写在代码行的末尾或者上一行,通常用来注释单行代码或者简短的说明,单行注释使用#开头。

单行注释在IDLE中是红色文字,醒目的标记为是注释内容。

多行注释

多行注释通常写在文件头部,函数头部,或者需要大段落解释的地方,多行注释用"""作为注释开头,用"""作为注释结尾。

多行注释在IDLE中是绿色文字,醒目的标记为是多行注释内容。

python程序的注释方法

单行注释

单行注释通常写在代码行的末尾或者上一行,通常用来注释单行代码或者简短的说明,单行注释使用#开头。

单行注释在IDLE中是红色文字,醒目的标记为是注释内容。

多行注释

多行注释通常写在文件头部,函数头部,或者需要大段落解释的地方,多行注释用"""作为注释开头,用"""作为注释结尾。

多行注释在IDLE中是绿色文字,醒目的标记为是多行注释内容。

python程序的注释方法

单行注释

单行注释通常写在代码行的末尾或者上一行,通常用来注释单行代码或者简短的说明,单行注释使用#开头。

单行注释在IDLE中是红色文字,醒目的标记为是注释内容。

多行注释

多行注释通常写在文件头部,函数头部,或者需要大段落解释的地方,多行注释用"""作为注释开头,用"""作为注释结尾。

多行注释在IDLE中是绿色文字,醒目的标记为是多行注释内容。

代码字体设置

通过Options/Configure IDLE/"Fonts/Tabs"设置代码编辑区的字体。

Font Face设置字体名称,Size设置字体大小,Bold设置是否粗体显示。

代码缩进方式

python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。 缩进的空格数是可变的,但是同一个代

码块的语句必须包含相同的缩进空格数。同一个代码块缩进数的空格数不一致,会导致运行错误。

设置代码缩进的方式:Options/Configure IDLE/"Fonts/Tabs",其中Indentation Width是设置缩进空格数的位置。Python标准的缩进的空格数量是:4。

变量的创建

Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 在 Python 中,

变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。

变量的赋值

等号(=)用来给变量赋值。

使用格式:

变量名=值

c = 100 # int整型

pi = 3.14 # float浮点型

name = "hello" # string字符串类型

变量的命名规则

变量的名称可以由数字字母和下划线组成,但是数字不能用作开头,变量名称不能用保留字keyword。

多个变量赋值

同时为多个变量赋值的方式如下,分为:

1为多个变量赋值相同,

2为多个变量赋值不同。

a = b = c = 1 #n个变量被赋予相同的数值。

a, b, c = 1, 2, "runoob" #n个变量赋值为不同的值。

交换变量

a=10

b=20

a,b=b,a #这个语法python可以,c++中交换两个变量需要借助一个临时变量

保留字

python保留字又称关键字,key word,我们不能把它们用作任何标识符名称。Python内置提供了keyword模块,这个模块提供属性和方法,帮助我们获得关键字列表,以及关于关键字的常用方法。

获得关键字列表kwlist

keyword.kwlist是当前版本的所有关键字的列表,kwlist 是keyword list的简写方式:

import keyword

keyword.kwlist

关键字列表:

['False', 'None', 'True', 'and', 'as', 'assert', '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']

判断一个单词是否为关键字keyword.iskeyword(wordStr)

使用keyword.iskeyword(字符串s),这个方法,可以用来判断字符串s是否为关键字,返回布尔值结果。

例如: keyword.iskeyword("include") ,判断include是否为python的关键字。

import keyword

a= keyword.iskeyword("include")

print(a)

输出语句print

print语句在交互窗口中输出文字信息。

使用格式1:

print(表达式, end=结束符)

表达式是能够输出内容的代码表达式,最终以字符串形式输出在交互式窗口,end是输出的结束符,默认是换行符。

例如:

print("hello world")

使用格式2:

print(表达式1,表达式2,表达式...n, end=结束符)

多个表达式之间在输出时候,会自动加上空格进行分隔,表达式n表示某个想要输出的内容表达式。

例如:

print("hello","world","have","fun")

Python基本数据类型

Python基本数据类型一般分为6种 :

数值( Number )、字符串( String )、列表 ( List)、元组( Tuple )、字典( Dictionary )、集合( Set)。

这六种类型根据可变特征分为:

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)

可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)

在等级考试的一级中,我们需要掌握的是: 数值和字符串的一部分知识。元组,列表,字典,集合将会在二级或更高级别中学习。

数值Number类型又划分为:整数,浮点数,布尔,复数(不考)。

数值/整数类型int

整数类型分为如下几类:

十进制整数,默认的整数类型,无需添加整数前缀字符。

二级制整数,二进制整数前缀字符是0b或0B,0是数字字符,b是binary首字母。

八进制整数,八进制整数前缀字符是0o或0O,0是数字字符,o是octal首字母。

十六进制整数,十六进制整数前缀是0x或0X,0是数字字符,x是hex末尾字符。

例如下面不同进制的10所对应的十进制数字:

n=10 >>>10

n=0b10 >>>2

n=0o10 >>>8

n=0x10 >>>16

数值/浮点数类型float

浮点数类型与数学中的实数类型相对应,Python的浮点数类型只能够用十进制形式,可以用一般写法表示,也可以写为科学记数法来表示浮点数。

a=3.14 >>>3.14

b=3.14e+2 >>>314.0

c=3.14e-2 >>>0.0314

d=3.14e2 >>>314.0 科学计数法中e后面是正数,可以省略+号

浮点数计算的不确定尾数问题

n=0.1+0.2

浮点数0.1+0.2的实际运行结果是: 0.30000000000000004,比正确的结果多了“尾巴”,这种情况在多种编程语言中经常出现,我们称为“不确定尾数”问题,两个浮点数进行运算可能会出现这种“不确定尾数”情况,根本原因是浮点数的二进制数和十进制数不存在严格的对等关系,所以在多种编程语言中都会存在这种现象。这种问题会对程序计算过程和结果产生一定的影响。

Python语言可以用round()函数解决这个问题,round(x,d)可以实现对参数x四舍五入方式保留d位小数。

n=0.1+0.2

print(n) # 0.30000000000000004

n=round(n,1)

print(n) # 0.3

数值/布尔类型bool

布尔类型是表示逻辑真和逻辑假的类型,其值要么为True,要么为False,即用来描述是(逻辑真)或者否(逻辑假)。

布尔类型参与数学计算的时候,True会自动作为1,False会自动作为0,例如下面的例子

c1=True

c2=True

c3=c1+c2#c1和c2都作为1,所以c3=1+1

数值/复数类型complex

复数类型与数学中的复数相对应,其值由实数部分和虚数部分组成,虚数部分的基本单位是j。复数类型的一般形式为:x+yj,其中x是复数的实数部分,yj是复数的虚数部分,这里的x和y都是实数。

对于一个复数,可以用.real和.imag获得实数部分和虚数部分的值。

虚数部分不能单独存在,如果复数没写实数部分,python会自动添加0.0作为实数部分的内容。

※注意:复数部分的知识是高年级数学知识,高等数学,大一学习,目前不在一级考核范围内,略微了解即可。

a=1+2j #创建复数

type(a)

>>> <class 'complex'>

>>> a.real #实数部分

1.0

>>> a.imag #虚数部分

2.0

a=3j #未指定实数部分,默认实数部分为0.0

a.real

>>>0.0

a.imag

>>>3.0

字符串类型str

●Python中的字符串是用引号引起来的,Python中的字符串不能改变。s="hello"

●Python 没有单字符类型,单字符就是长度为 1 的字符串。

●Python字符串内容使用单引号和双引号都可以,但是前后要一致。

●引号内容中不能再出现同一种引号,可以出现另外的一种。如:s="我吃2个'桃子',很甜。"

●多行字符串内容可以用"""或''',类似与多行注释,可以包含多行文字内容。

字符串加法和乘法

●字符串的 a+b 运算表示字符串a和b拼接为一个新的字符串。

●字符串的 a*n 运算表示把n个字符串a拼接为一个新的字符串。

●字符串只支持加法和乘法运算,其它运算符不支持,使用的话会报错。

加法和乘法的案例

print("H"+"ello"+" "+"World!") #多个字符串相加

>>> Hello World!

print("hello "*3) #字符串a*数字n,表示n个a拼接为一个新字符串

>>> hello hello hello

转义字符和禁止转义

转义字符(Escape character)

在编程中,定义一些字母前加反斜杠"\",用来表示不能显示出来的ASCII字符,如\0,\t,\n等,就称为转义字符。

转义字符也可以用\开头,后面加转义字符的ascii码的八进制数来表示,例如\n也可以表示为\12,\n转义字符的十进制ascii码是10,八进制是12。

\n 代表换行;\' 代表单引号;\"代表双引号;\t代表制表符。

python语言可以在字符串字面量前面加r,强制字符串内禁止转义。

如 r"我爱下雪的天\n我爱银装素裹的山" 此时会让字符串字面量中的转义字符失效,会输出显示。

print("hello\nworld")

print(r"我爱下雪的天\n我爱银装素裹的山")

字符串format()格式化

-> 1,字符串format()指令

format是对字符串执行格式化

语法格式:

字符串实例.format(参数1,参数2,…,参数N)

返回值是对内容实现替换过的新字符串。

案例

"我有{}个苹果,{}个桔子。".format(2,3)

format的返回结果是:我有2个苹果,3个桔子。

字符串中有两个{},format参数有2个,返回{}被按顺序格式化替换为2和3的新字符串。

{}我们可以叫做一个“槽”,表示将会被format指令参数替换的位置。

我们要保证字符串中的“槽”数量与format()中参数数量一致。

如下面的案例,槽数量是2,format参数数量也是2。

"我有{}个苹果,{}个桔子。".format(2,3)

如果槽对应的参数不是按顺序一一对应,则可以在槽{}中标明对应的参数序号。

例如下面案例,在两个{}中分别添加了1、0序号

"小明去{1},捡到了{0}".format("琥珀","长白山")

-> 2,format格式控制详解

使用format()方法时,除了可以在槽“{}”中设置参数序号之外,也可以设置其他格式控制信息,基本语法格式如下:

{<参数序号>:<格式控制标记>}

其中<格式控制标记>用于控制参数显示时的格式,包括6个可选字段:

<填充>、<对齐>、<宽度>、<,千分位>、<.精度>、<类型>

上面的6个字段可以组合使用,例如,<宽度>、<对齐>和<填充>就经常一起使用。

●<填充>字段

如果“:”后面如果带<填充>字符,只能是一个字符;如果没有<填充>字符,默认为空格。

●<对齐>字段

“^”“<”“>”,分别表示居中、左对齐和右对齐,

●<宽度>字段

控制槽“{}”的输出字符长度。如果该槽“{}”对应的format()参数长度比指定的<宽度>大,则使用参数实际长度;如果该参数的实际长度小于指定的<宽度>,则以<填充>字符补充不足位数。

●<,千分位>字段

表示千分位,用于显示数字的千位分隔符,适用于整数和浮点数。

●<.精度>字段

有两种使用含义:对于字符串内容,精度表示输出的最大长度;对于浮点数内容,精度表示小数部分输出的有效位数。如果实际长度(位数)大于有效长度,就要对参数作截断处理(四舍五入);如果实际长度小于有效长度,以实际长度为准。

●<类型>字段

表示输出整数和浮点数的格式,具体格式如下。

b输出整数的二进制形式

c输出整数对应的Unicode字符

d输出整数的十进制形式

o输出整数的八进制形式

x输出整数的小写16进制形式

X输出整数的大写16进制形式

e输出浮点数对应的小写e的科学记数法形式

E输出浮点数对应的小写E的科学记数法形式

f输出浮点数的标准浮点数形式

%输出浮点数的百分数形式

3,控制小数位数案例

format中对{}输出的小数内容控制位数,方法是在对应的{}写 {:.nf},n就是要保留的位数,例如保留两位小数,应该写{:.2f}

下面的程序,对n的内容输出两次,一个是原样输出,一个是保留两位小数

n=3.1415926

print("完整:{},两位小数:{:.2f}".format(n,n))

4,控制填充-对齐-宽度的案例

x="PYTHON"

"{0:*^30}".format(x) #0号槽,内容宽度不足用*填充 ; ^居中<左对齐>右对齐 ;宽度30字符

>>>'************PYTHON************'

5,输出数字的进制类型案例

>>> x = 'The pen values {:d} yuan!' #十进制

>>> print(x.format(30))

The pen values 30 yuan!

>>> x = 'The pen values {:b} yuan!' #二进制

>>> print(x.format(30))

The pen values 11110 yuan!

>>> x = 'The pen values {:o} yuan!' #八进制

>>> print(x.format(30))

The pen values 36 yuan!

>>> x = 'The pen values {:x} yuan!' #十六进制

>>> print(x.format(30))

The pen values 1e yuan!

f-string方法实现格式化

f-string是执行字符串格式化的新语法,自 Python 3.6起可用。

f-string提供了一种更快,更易读,更简明且不易出错的在 Python 中格式化字符串的方式。f-string的前缀为f或者F,在字符串中使用{}括号,{}中可以包含变量、表达式或函数调用,最终完成格式化内容填充。

-> 1,f-string中用变量格式化

name="张三"

age=10

#使用format()方式

print("名字:{},年龄:{}".format(name,age))

#使用f-string方式,会更加简洁

print(f"名字:{name},年龄:{age}")

-> 2,使用f-string对字典取值

外层使用双引号,字典属性读取要用单引号

外层使用单引号,字典属性读取要用双引号

user={"name":"刘备","country":"蜀国"}

#注意:外层使用双引号,字典属性读取要用单引号

print(f"{user['name']}的国家是{user['country']}")

#注意:外层使用单引号,字典属性读取要用双引号

print(f'{user["name"]}的国家是{user["country"]}')

-> 3,f-string转义字符

在{}外可以写反斜杠语法的转义字符

{}内不能写反斜杠字符

#f-string转义字符,在{}外可以写反斜杠语法的转义字符

#下面的\"是双引号转义字符,\n是换行转义字符

print(f"名字:\"{user['name']}\",换行\n下一行啦!")

#{}表达式内不能用反斜杠的转义字符语法

#print(f"名字:{user[\"name\"]}")#此行会引发报错

#编译错误: f-string的表达式部分不能包含反斜杠

#f-string expression part cannot include a backslash

-> 4,输出小数的位数控制

{内容:.nf}表示对内容保留n为小数,四舍五入

a=3.1415926

#:.nf是保留n位小数

print(f"{a:.3f}")#保留3位小数

-> 5,填充-对齐-宽度控制

对齐控制字符: ^居中,<左对齐,>右对齐

a="PY"

print(f"{a:*^10}") #输出a,宽度10个字符,居中对齐,不足10两边补*占位

>>>'****PY****'

使用格式控制字符串完成格式化

使用格式控制字符来完成字符串中对应位置的替换,生成目标字符串。

格式:

"字符串"%(参数列表)

%s 表示字符串

%d 表示整数, %nd表示位宽为n,不足则左侧补空格; %0nd表示宽度为n,不足左侧补0

%f 表示浮点数,%.nf表示控制小数为n位小数

a="xingkong"

b=len(a)

c=3.1415926

f=True

str = "a=%s,b=%02d,c=%.2f,d=%d,f=%s"%(a,b,c,c,f)

print(str)

>>> a=xingkong,b=08,c=3.14,d=3,f=True

type(x)数据类型查询

type(x)函数用来获得参数x的类型,返回结果是类型对象。

a=10

b=3.14

c=True

d="hello world"

print( type(a) )

print( type(b) )

print( type(c) )

print( type(d) )

输出结果

<class 'int'>

<class 'float'>

<class 'bool'>

<class 'str'>

使用type()判断数据类型

type(3.14) == float #结果是True

数据类型转换

数据类型之间可以进行转换,我们通过转换函数进行此方面的工作,在python一级中,我们要用到的类型转换函数是:str(),int(),float(),bool(),在二级的时候,会用到的类型转换函数有:list(),dict(),tuple()。

下面我们介绍一级中要用的转换函数。

int() 函数

int() 函数用于将一个字符串或数字转换为整型。

语法:

int(x, base=10)

参数

x -- 字符串或数字。

base -- 进制数,默认十进制。

返回值,返回int整型数据。

int() # 不传入参数时,得到结果0

int(3) # 把整数内容转为int

int(3.14) # 把浮点数内容转为int

int('30') # 把浮点数的字符串内容转为int

int('3.14') # 不能对浮点数的字符串转换为int,ValueError: invalid literal for int() with base 10: '3.14'

int('12',16) # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制

int('0x12',16) # 可以写进制前缀字符,结果同上行

float()函数

float() 函数用于将整数和字符串转换成浮点数。

语法:

float(x)

参数

x -- 整数或字符串

返回值,返回float浮点数。

float(1) # 1.0把int内容转float

float("3.14") # 3.14 把浮点数的字符串转float

float("10") # 10.0把整数的字符串转 float

float(True) # 1.0把布尔值转为float

float("5ab") # 不支持的转换,ValueError: could not convert string to float: '5ab'

float("True") # 不支持的转换,could not convert string to float: 'True'

str() 函数

str() 函数将对象 x 转换为字符串.

语法:

str(object='')

参数

object -- 对象。

返回值,返回一个对象的string字符串格式。

str(3.14) #'3.14'

str(100) #'100'

str(True) #'True'

bool() 函数

bool()函数用于把内容转为布尔值。

语法:

bool(x)

参数

x-- 待转换内容:数值,字符串等

返回值,布尔值True或False,x为0和False结果为逻辑假,x为其余的值为逻辑真。

bool(1) #True,1为逻辑真

bool(0) #False,0为逻辑假

bool(0.0) #False,0.0为逻辑假

bool("0") #True,任何字符串都是逻辑真,与字符串内容无关

bool("False") #True,任何字符串都是逻辑真,与字符串内容无关

eval()求值函数

eval这个函数会把里面的字符串参数的引号去掉,把中间的内容当成Python的表达式代码执行,eval函数会执行这段代码并且返回求值结果。

我们可以用eval()函数做数据类型的转换,例如把数字字符串转为数值类型,其优点是:可以接受不固定的整数或浮点数字符串,传入的是整数字符串就自动转int类型的数值,传入的是浮点数字符串就自动转为float类型的数值,所以更具灵活性。

注意:在电子学会的在线考试平台上,目前不支持eval()函数做字符串到数值类型的转换,所以在考试期间,要让学生根据题意去使用int()或者float()函数做类型转换。

下面是把字符串转换为数值的案例

eval("3.14") #返回3.14

eval("100") #返回100

eval("abs(-300)") #返回 300

a=1

b=2

c=eval("(a+b)*b**b")

print(c) #(1+2)*2**2=3*4=12

eval()函数做数值类型转换只是其用途之一,其更强大的地方在于:把字符串内容转为真正的表达式代码去执行,所以可以完成更加有用的功能。

eval()函数可能会执行对系统有风险的代码,所以在开发程序的时候要注意防范,比如:不要对任何input()输入或其它方式读入的字符串做eval(),可能会造成恶意代码的执行。如果用户直接通过os这个模块来调用system方法可以执行任何的终端命令,这是非常危险的事情。

eval()掌握程度要求: 在一级和二级中学会用eval()转换数据类型即可。

※eval()函数的完整格式如下,更高级的用法,可以安排在更高级别作为扩展深入学习掌握:

eval(expression[, globals[, locals]])

expression – 表达式。

globals – 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。

locals–变量作用域,局部命名空间,如果被提供,可以是任何映射对象。

返回值:返回表达式计算结果。

输入语句input

input()语句

其接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型。

语法

input(prompt)

参数说明:

prompt: 提示信息

返回值,返回字符串类型。

a = input("请输入a:")

type(a) # 显示返回值的类型

因为input返回的数据类型是字符串类型,所以在需要数学计算的程序中,需要把输入的内容转为数值类型,根据需要转为int,float,bool类型。

转为数值类型,可以使用上面的int(),float()或bool()

a=float(input("请输入长度:"))

b=float(input("请输入宽度:"))

赋值运算符=

给变量赋值,例如 pi=3.14

数学运算符

如下运算符是完成两个操作数基本数学运算的功能,

+ 求x加上y

- 求x减去y

* 求x乘以y

/ 求x除以y

% 模除运算,求余数

** 幂运算,求x的y次幂

// 整除取比/运算小的整数

注意:

//整除运算是取比/运算的结果更小的整数,

5//2的结果是2,比5/2更小的整数是2。

-5//2的结果是-3,比-5/2更小的整数是-3。

复合赋值运算符

复合赋值运算符是一种对变量自身数学运算的简便写法,参考如下的描述,理解各种运算符的功能。

+= 加法复合运算符 n += a 等效于 n = n + a

-= 减法复合运算符 n -= a 等效于 n = n - a

*= 乘法复合运算符 n = a 等效于 n = n a

/= 除法复合运算符 n /= a 等效于 n = n / a

%= 模除复合运算符 n %= a 等效于 n = n % a

**= 幂运算复合运算符 n **= a 等效于 n = n** a

//= 整除复合运算符 n //= a 等效于 n = n // a

比较运算符

比较运算符是对两个操作数进行比较的结果,返回比较的布尔结果: True或者False

== 获得a是否等于b的布尔结果

!= 获得a是否不等于b的布尔结果

> 获得a是否大于b的布尔结果

< 获得a是否小于b的布尔结果

>= 获得a是否大于等于b的布尔结果

<= 获得a是否小于等于b的布尔结果

逻辑运算符

逻辑运算包括:逻辑与and,逻辑或or,逻辑非not。

and x and y 表示x和y是否同时为逻辑真,返回布尔值。

or x or y 表示x或y至少一个是逻辑真,返回布尔值。

not not x 表示取x的相反布尔值。

多个逻辑与运算的取值规则

and运算符从左向右依次计算,向右计算过程中遇到结果为假的表达式或者末尾终止,后边的不会继续执行。

and运算结果是最后一个参与计算的表达式的值。

要点是:遇假停止

例如

3 and 4 结果是4

3 and True 结果是True

3 and True and 5 结果是5

5 and 2 and False and 7 and 12 结果是False

多个逻辑或运算的取值规则

or运算符从左向右依次计算,向右计算过程中遇到结果为真的表达式或者末尾终止,后边的不会继续执行。

or运算结果是最后一个参与计算的表达式的值。

要点:遇真停止

例如:

2 or 3 结果是2

4 or True 结果是4

-1 or -2 结果是-1

0 or False or 5 or 8 结果是5

False or 0 or 0 or True 结果是True

逻辑与或非之间的优先级

当逻辑与,逻辑或,逻辑非 混合运算的时候,优先级从高到低如下:

●逻辑非

●逻辑与

●逻辑或

逻辑与或非混合运算-程序例子

18 and not 1 or not 0 #not优先级最高, not 1结合,not 0结合

18 and False or True #18 and False 结合

False or True #最后只剩下or运算,从左至右,遇到真停止

True #这就是最后结果

判断范围的逻辑与表达式的简写方式举例

a=10 #变量a=10

b= a>=10 and a<=20 #判断a是否在[10,20]范围内的逻辑与表达式

c= 10<=a<=20 #上一行的简化写法,python可以,c++不可以

运算符优先级

以下表格列出了从高到低的优先级,上面的行优先级高于下面的行:

** 幂运算

~ 按位取反

+ - 正负号

* / % // 乘,除,求余数和取整除

+ - 加法减法

>> << 右移,左移运算符

& 按位与

^ 按位异或

| 按位或

== != <= < > >= 比较运算符

is is not is和is not身份运算符

in not in in和not in成员运算符

not 逻辑非

and 逻辑与

or 逻辑或

运算符优先级计算题案例1

a= 3*2**3+ -2*4- -5*-2**2

print(a)

>>>-4

计算步骤

a=3*2**3+ -2*4- -5*-2**2 #幂运算优先级最高,先完成计算

a=3*8 + -2*4- -5*-4 #正负号优先级高于其它,完成正负值取值

a=3*8 + (-2)*4- (-5)*(-4) #括号是演示可视化的正负数

a=24 +(-8) -20 #上一步的乘法计算结果

a=-4 #上一步的加法计算结果

运算符优先级计算题案例2

a= -2++2-+2--5

print(a)

>>>3

计算步骤

a= -2++2-+2--5 #原始计算式,正负号优先级最高

a= (-2)+(+2)-(+2)-(-5) #完成正负号的取值

a=3 #完成上一步的加减法计算

注意:

在Python中没有++和--运算符,所以上面两个案例中的++和--可以正常完成计算,同样的表达式在c++等其它含有++和--运算符的语言中,是行不通的。

在python中幂运算符是**,在c++等其它语言中没有这个运算符。

在python中整除运算符是//,在c++等其它语言中没有这个运算符。

turtle绘图模块turtle模块的介绍

turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

turtle和tkinter的关系,turtle使用tkinter模块作为其绘图能力的底层模块,turtle和tkinter都是gui窗口运行方式,turtle提供了窗口,画布,画笔(海龟)等对象,画笔(海龟)对象提供了画笔动作状态控制,颜色控制,矢量图形绘图等简单易用的指令,帮助孩子进行图形程序的开发。turtle依靠其丰富的绘图能力,即可以开发出来面向过程的程序,可以开发出相对复杂的面向对象的可交互程序,对孩子的在数学图形的编程能力提高上有非常大的作用。

turtle窗口的尺寸控制和位置

turtle.setup()设置窗体大小及位置

turtle.setup(width,height,startx,starty)

setup()设置窗体大小及位置 格式:turtle.setup(width,height,startx,starty)。

4个参数中的后面两个是可选的。

setup函数不是必须的,只有当需要控制绘图窗体大小的时候才调用。

startx和starty如果不写,则窗口默认出现在屏幕的中心位置。

import turtle

turtle.setup(800,600,0,0) #用turtle模块.setup

import turtle

p=turtle.Pen() # Pen()和Trutle()功能一样

p.screen.setup(800,600,0,0) #Pen和Turtle实例用screen.setup

获取turtle窗口的尺寸

turtle.window_width() 读取窗体宽度

turtle.window_height() 读取窗体高度

返回数值

设置画布的尺寸screensize(w,h)

画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置。

设置画布大小我们可以用screensize(w,h)。

turtle.screensize()设置和读取画布的尺寸

读取方式

a=turtle.screensize() #返回一对数字

设置方式

turtle.screensize(w,h) #设置画布宽度w,高度h

窗口和画布的关系

窗口是应用程序窗口。画布是我们进行图形绘制的方形区域。画布显示在窗口内部,当画布尺寸比窗口尺寸大的时候,我们只能看到画布的一部分。当画布的尺寸大于窗口的尺寸时候,turtle窗口会自动出现滚动条,此时我们可以通过滚动条查看被遮挡的画布内容。

turtle的2D坐标系知识重要性

2d坐标部分的数学知识在这里我们需要做重点的讲解,帮助学生建立2d空间内的各种数学概念: 原点,坐标轴,角度方向,顺逆时针的旋转,相对方向和绝对方向,点,线,长方形,正方向,多边形,圆形,圆心,半径,弧线,扇形等,这些在数学科目中都是非常重要的概念。尤其是对于小年级的孩子来说,数学思维能力的提高非常显著,所以说turtle给孩子数学几何方面的锻炼意义非常重大。

坐标原点和坐标轴的正方向

turtle画布的原点在中心位置

x轴正方向指向右方

y轴正方向指向上方

坐标轴和坐标的概念

什么是坐标轴?

红色的线叫做x轴,坐标中的x值是描述横向位置(水平位置),正数方向在右侧。

蓝色的线叫做y轴,坐标中的y值是描述纵向位置(垂直位置),正数方向在上方。

什么是坐标?

坐标用来描述物体的位置,包括一对数字,写作:(x,y),分别是水平位置x和垂直位置y。

坐标案例

坐标,先说水平位置x,再说垂直位置y。

水平位置x在200,垂直位置y在150。

最终写为(x:200,y:150)或者(200,150)

坐标定位练习案例

对于年龄稍小的孩子,对于坐标部分的知识理解会吃力一些,需要针对此情况加强训练,让更小的孩子能建立空间感和方位感,提高想象力,做到脑中有图。我们可以借助更加形象生动的教学工具帮助孩子学习和训练。

绝对方向和相对方向

绝对方向是指屏幕的方向,就是屏幕的上下左右方向。

相对方向是指小海龟的前后左右方向,左转left(),右转right()指令,是相对小海龟自身的方向。

绝对方向和相对方向,在很多情况下是不同的。

角度正负方向

海龟向左侧旋转(逆时针)是角度的正数方向。

海龟向右侧旋转(顺时针)是角度的负数方向。

turtle模块提供了非常丰富的指令,下面介绍一些常用的指令。

导入模块import turtle

海龟模块需要进行导入才能够使用,在python中import指令是导入需要的模块,导入模块之后,我们可以使用模块提供的资源。

导入turtle模块之后,如果没有自己创建海龟实例,turtle会自动创建一个实例为我们使用。

这只自动创建的海龟的使用方式,如下

turtle.指令名(参数1,参数2,...)

如果程序只要唯一的画笔(海龟)进行画图,则使用这只默认的海龟即可,导入turtle模块之后,调用任意一个turtle的指令,则可以让这只海龟出现在画布上。

使用举例

import turtle

turtle.goto(0,0)

turtle.up()

turtle.pencolor("red")

我们可以导入模块的时候,为模块起别名,比如为turtle模块起一个简短的名字p,后面的程序通过别名就可以正常的使用。

使用举例

import turtle as t

t.pencolor("red")

t.goto(100,0)

海龟和画笔名称的小提示:

在turtle模块中有两个类:Pen和Turtle,其功能一样,只是名称不同,读者把下文中出现的海龟画笔当做一样的东西理解即可,不必纠结。

创建新的画笔(海龟)Pen(),Turtle()

如果我们想手动创建画笔(海龟)的实例,可以用Pen()和Turtle(),这两个函数是Pen和Turtle类的构造函数,在一级阶段,学生没有学习类的知识,把这两个构造函数当做可以使用的指令来介绍即可,在更高级别学习了类的知识之后,再做构造方法(函数)讲解。

在此阶段,我们掌握了用Pen()或Turtle()能创建一个画笔(海龟)就可以了。

Pen()和Turtle()的使用场景是:自己想手动创建实例,或者需要在程序中创建多个海龟实例,这时候便可以拿来使用。

p=turtle.Pen()

p=turtle.Turtle()

p.left(90) #调用实例的方法(函数)举例

注意:考试平台目前不支持Pen()指令,考试期间告知学生使用其它方式进行绘图。

前进forward(n)

让海龟沿着其当前头部指向的方向,移动n像素。

turtle.forward(n) #调用默认海龟的方法,下文相同不再赘述

p.forward(n) #调用手动创建的海龟的方法,下文相同不再赘述

后退backward(n)

让海龟沿着其当前尾部指向的方向,移动n像素。

turtle.backward(n)

p. backward (n)

左转left(n)

让海龟向其自身的左手方向,旋转n度,n可以是正负数,海龟的角度正方向是逆时针方向,即左手方向。左转即是让海龟朝向逆时针方向旋转。

turtle.left(n)

p.left(n)

右转right(n)

让海龟向其自身的右手方向,旋转n度,n可以是正负数,海龟的角度正方向是逆时针方向,即左手方向。右转即是让海龟朝向顺时针方向旋转。

turtle.right(n)

p.right(n)

抬笔up()

up()是抬笔,在抬笔的时候,笔尖不接触画布,移动画笔是不会绘制线条的。

turtle.up()

p.up()

落笔down()

down()是落笔,在落笔的时候,笔尖接触画布,移动画笔是可以绘制线条的。

turtle.down()

p.down()

移动到坐标goto(x,y)

goto是移动向坐标(x,y)的指令,可以看到海龟移动的过程。x,y是具体的坐标。

turtle.goto(x,y)

p.goto(x,y)

画笔线条粗细width(n) ,pensize(n)

这两个指令功能相同,用于设置画笔线条的粗细为n像素,n是像素数量。

turtle.width(n)

turtle.pensize(n)

p.width(n)

p.pensize(n)

画笔(海龟)移动速度speed(n)

设置海龟的移动速度,默认值是3。

速度0是最快的速度,速度1到10是普通速度(1最慢10最快)。

turtle.speed(n)

p.speed(n)

设置画笔线条颜色pencolor(s)

设置画笔线条的颜色为s,线条颜色也是海龟轮廓线的颜色,

此指令可以改变绘制线条颜色和海龟轮廓线颜色。

线条颜色是海龟实例的属性,多只海龟实例可以设置为不同的线条颜色。

turtle.pencolor(s)

p.pencolor(s)

设置画笔填充颜色fillcolor(s)

设置画笔填充色的颜色为s,填充颜色也是海龟图像内的颜色,

此指令可以改变绘制填充颜色和海龟内部填色。

填充颜色是海龟实例的属性,多只海龟实例可以设置为不同的填充颜色。

turtle.fillcolor(s)

p.fillcolor(s)

设置画笔线条颜色和填充颜色color(sp,sf)

设置海龟线条颜色为sp,填充颜色为sf,通过一个指令同时设置两个颜色属性的值。

turtle.color(sp,sf)

p.color(sp,sf)

turtle模块的颜色值类型: 名称,rgb值,十六进制值

turtle和tkinter都可以使用三种颜色值类型

1,颜色名称字符串(最常用)

使用颜色名称字符串,如:"red","blue","orange",..等。

设置错误的颜色会报错: bad color。 如"HiThere"

turtle.pencolor("red")

2,rgb元组颜色值

使用(r,g,b)元组,其中r,g,b的值可以用[0,1]的数字。如红色为: (1,0,0)。

设置错误的颜色会报错: bad color sequence。 如(255,1,1)

turtle.pencolor((1,0,0))

3,十六进制颜色值

使用十六进制颜色值,如红色为:"#ff0000",绿色:"#00ff00"。

设置错误的颜色会报错: bad color。 如"#kk0000"

turtle.pencolor("#ff0000")

绘制圆点dot(d,color)

让海龟绘制直径为d,颜色为color的圆点。color参数可以不写,如果不写默认和画笔颜色相同。

turtle.dot(d,color)

p.dot(d,color)

绘制圆圈circle(r,a,n)

让海龟绘制圆圈,半径为r,旋转度数为a,多边形的边数为n。

本指令在一级知识中属于难点,需要重点掌握。如:绘制弧线,绘制扇形。

第二和第三参数可以不写

第一个参数必须写,表示圆圈的大小,可以正负数。

第二个参数如果不写,默认是360度,表示绘制整个圆圈,可以正负数。

第三个参数如果不写,表示绘制圆形,如果绘制正n边型就需要指定多边形的边数n。

turtle.circle(r,a,n)

p.circle(r,a,n)

圆圈的圆心和当前笔头圆心不是重合的,圆心在海龟左侧(或右侧),海龟在圆的边缘上,海龟绕行圆心进行绘制。

绘制一个扇形

开发程序绘制一个半径为100的扇形,线条黑色,粗细3,扇形开始的角度是0度,结束的角度是60度,扇形的圆心在原点位置,在原点位置绘制直径10的红色圆点,绘制结束隐藏海龟。

import turtle as t

r=100

a=60

t.width(3)

t.forward(r)

t.left(90)

t.circle(r,a)

t.left(90)

t.forward(r)

t.dot(10,"red")

t.hideturtle()

开始填色begin_fill()

开始填充颜色,begin_fill()和end_fill()要结合使用,我们把绘制封闭几何体图形的指令写在begin_fill()和end_fill()之间,用begin_fill()开头,用end_fill()结尾,在调用end_fill()之后颜色会被填充上。如果绘制的图形没有正确封闭,或者线条产生重叠,可能会填充出错误的样子。

一个待填色的封闭几何体图形在绘制填色时候就需要成对使用begin_fill和end_fill,如果程序中需要多次对不同的几何体完成填色,则需要多次使用begin_fill和end_fill指令对。

另外在使用这对指令之前,要先通过fillcolor(s)或者color(sp,sf)设置好填充色,否则默认的填充色是黑色。在程序中可以多次使用fillcolor()设置待填充颜色。

turtle.begin_fill()

p.begin_fill()

结束填色end_fill()

结束填充颜色,调用此命令之后,颜色被填入封闭几何体。

turtle.end_fill()

p.end_fill()

设置角度seth(n), setheading(h)

这两个指令功能一样的,设置海龟实例的旋转角度为n。

left(n)和right(n)是在海龟当前角度基础上旋转n度,seth(n)是直接设置旋转到某个角度。

turtle.seth(n)

p.seth(n)

图章stamp()

把海龟当前在画笔上显示的外观图像复印到画布上,在画布上产生一个海龟影像的照相。

turtle.stamp()

p.stamp()

设置画布背景色bgcolor(s)

设置海龟画布的背景色

turtle.bgcolor(s)

p.screen.bgcolor(s) #手动创建的实例通过:实例.screen.bgcolor(s)访问

设置画笔(海龟)图形shape(s)

海龟的图形样式默认是一个箭头图像,我们可以用shape指令更改其外观图像,shape(名称)有如下类型 :

arrow,turtle,circle,square,triangle, classic,默认值是classic(箭头)

turtle.shape(s)

p.shape(s)

设置画笔图形尺寸shapesize(w,h,n), turtlesize(w,h,n)

这两个指令功能一样,用来设置海龟图像放大倍数和轮廓线粗细,改变了海龟图像的外观。

w是横向放大倍数,默认是1,

h 是纵向放大倍数,默认是1,

n 是轮廓线的粗细,默认是1,

turtle.shapesize(w,h,n)

p.shapesize(w,h,n)

案例:

p1.goto(0,50)

p2.goto(0,-50)

p1.shape("turtle")

p2.shape("turtle")

p1.shapesize(5,5,3)

p2.shapesize(5,5,3)

p1.color("brown","orange")

p2.color("blue","cyan")

显示海龟(画笔)showturtle()

在画布上显示海龟的图像

turtle.showturtle()

p.showturtle()

隐藏海龟(画笔)hideturtle()

在画布上隐藏海龟的图像

turtle.hideturtle()

p.hideturtle()

清空绘制内容turtle.clear()

清空turtle窗口,但是turtle的位置和状态不会改变

turtle.clear()

p.clear()

清空绘制内容并重置turtle.reset()

清空窗口,重置turtle状态为起始状态

turtle.reset()

p.reset()

文本输入框textinput()

文本输入框,弹出输入框界面,用以完成文本内容的输入,

格式: textinput(弹窗标题,内容文字) 返回字符串。

turtle.textinput(...)

p.screen.textinput(...)

注意:如果点击取消,返回值是None。

color=turtle.textinput("颜色输入","请输入多边形的填充颜色")

print("输入的颜色是:{}".format(color))

数字输入框numinput()

数字输入框,弹出输入框界面,用以完成数字内容的输入,

格式: numinput(弹窗标题,内容文字) 返回数字(浮点数类型)

turtle.numinput(...)

p.screen.numinput(...)

注意:如果点击取消,返回值是None

如果输入的是非数值型,则弹框提示输入的非有效浮点数。

(提示输入的不是浮点数,请重试!)

num=turtle.numinput("数字输入","请输入多边形的边数")

print("输入的边数是:{}".format(num))

绘制文字write()

turtle.write(s [,font=("fontname",font_size,"font_type")])

写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项

案例

import turtle

p=turtle.Pen()#创建画笔

p.dot(10,"orange")

p.pencolor("red")

p.write("第1个文字",align="left",font=("宋体",12,"normal"))

p.goto(0,50)

p.dot(10,"orange")

p.pencolor("brown")

p.write("第2个文字",align="right",font=("楷体",14,"italic"))

p.goto(0,100)

p.dot(10,"orange")

p.pencolor("blue")

p.write("第3个文字",align="center",font=("黑体",16,"bold"))

p.hideturtle()

※用gif图片自定义海龟的图形 (扩展知识)

可以用外部gif图片作为海龟的图形,方式是

首先,turtle.register_shape(gif图片文件名),

然后,调用海龟实例.shape(gif图片文件名)。

注意:使用gif image shape的海龟实例,调用left(n),right(n),seth(n)之后,图像不会进行旋转,这是一个缺乏表现力的不足。对此大家可以使用CompoundShape创建自定义的矢量图形。

import turtle

p=turtle.Pen()

#只支持gif格式,如下两种方式都可以

#p.screen.register_shape("bullet1.gif")#同下

turtle.register_shape("bullet1.gif")#同上

#查看现在的所有可用图形,包括默认提供的shapes

print(p.screen.getshapes())

#让海龟实例改变形状

p.shape("bullet1.gif")

※用复合图形自定义海龟的图形CompoundShape (扩展知识)

通过CompoundShape可以自定义扩展海龟的形状,海龟预制的形状有: arrow,turtle,circle,square,triangle, classic,默认值是classic(箭头),开发更加丰富图形要求的题目显然不够灵活。如此我们可以用自定义的复合几何体图形来完成海龟图像的重新定制,可以更加灵活的开发需要的图形题目。相对于用gif image shape,CompoundShape是可以改变角度的,left(n),right(n),seth(n)都正常使用,便于开发gui交互程序。对于更高级别学习的时候,比如带有交互功能的面向对象的程序题目,本知识点将会非常有用。在一二级节点作为扩展知识即可。

过程是:

1创建turtle.Shape("compound"),创建一个复合图形,这个Shape实例,我们可以添加自定义几何体组件。

2 对CompoundShape使用addcomponent添加几何体组件。

3 用turtle.register_shape(图形名称, CompoundShape实例)注册海龟图形到模块图形表中。

4 调用海龟实例.shape(图形名称)

我们需要使用Shape类,Shape类有三种类型,分别如下:

-> polygon 多边形

-> image gif图片

-> compound 复合图形,复杂的自定义图形,当然要选用这个类型。

CompoundShape实例.addcomponent方法的解释

给Shape图形中添加一个几何体组件,指定这个几何体的填充和线条色,我们可以为Shape添加多个不同的几何体,完成复杂的组合图形。

语法

Shape实例. addcomponent(多边形顶点序列, 填充色, 线条色)

参数:

多边形顶点序列为顶点坐标列表或元组,格式为: [[y0,x0],[y1,x1],...] ,注意:此处顶点坐标格式写为(y,x)

填充色是多边形的内部填充色,可以写颜色名或十六进制颜色值

线条色是多边形的线条颜色,可以写颜色名或十六进制颜色值

案例程序

制作自定义海龟图形CompoundShape,图形几何体信息如下。

import turtle

p=turtle.Pen()

#创建CompoundShape复合图形

s = turtle.Shape("compound")

#顶点列表用元组和列表都可以

poly1 = [(0,0),(10,-5),(0,10),(-10,-5)]#注意:序列中每个数据(y,x),y朝下正数

s.addcomponent(poly1, "cyan", "black")#fillColor,lineColor

poly2 = ((0,0),(10,-5),(0,5),(-10,-5))#注意:序列中每个数据(y,x)

s.addcomponent(poly2, "light blue", "black")

p.screen.register_shape("myShape", s)#注册此图形

p.shape("myShape")#画笔改变为myShape

p.shapesize(5,5,2)#缩放5倍,轮廓线2像素

turtle模块完整指令列表

完整的指令可以查看turtle官方网站,完整指令列表如下

Turtle motion

Move and draw

forward() | fd()backward() | bk() | back()right() | rt()left() | lt()goto() | setpos() | setposition()setx()sety()setheading() | seth()home()circle()dot()stamp()clearstamp()clearstamps()undo()speed()

Tell Turtle’s state

position() | pos()towards()xcor()ycor()heading()distance()

Setting and measurement

degrees()radians()

Pen control

Drawing state

pendown() | pd() | down()penup() | pu() | up()pensize() | width()pen()isdown()

Color control

color()pencolor()fillcolor()

Filling

filling()begin_fill()end_fill()

More drawing control

reset()clear()write()

Turtle state

Visibility

showturtle() | st()hideturtle() | ht()isvisible()

Appearance

shape()resizemode()shapesize() | turtlesize()shearfactor()settiltangle()tiltangle()tilt()shapetransform()get_shapepoly()

Using events

onclick()onrelease()ondrag()

Special Turtle methods

begin_poly()end_poly()get_poly()clone()getturtle() | getpen()getscreen()setundobuffer()undobufferentries()

Methods of TurtleScreen/Screen

Window control

bgcolor()bgpic()clearscreen()resetscreen()screensize()setworldcoordinates()

Animation control

delay()tracer()update()

Using screen events

listen()onkey() | onkeyrelease()onkeypress()onclick() | onscreenclick()ontimer()mainloop() | done()

Settings and special methods

mode()colormode()getcanvas()getshapes()register_shape() | addshape()turtles()window_height()window_width()

Input methods

textinput()numinput()

Methods specific to Screen

bye()exitonclick()setup()title()python一级单词表

下面的内容是一级考级中常见的词汇,是进行python编程的必备词汇量,需要让学生牢记,日常训练要提高输入准确率,提高输入速度。

_【序号:1】_______

☞英文:python

☞中文:原意蟒蛇,编程语言名称

☞音标: [ˈpaɪθɑːn]

--------------------

_【序号:2】_______

☞英文:print

☞中文:打印

☞音标:[prɪnt]

--------------------

_【序号:3】_______

☞英文:file

☞中文:文件

☞音标:[faɪl]

--------------------

_【序号:4】_______

☞英文:save

☞中文:保存

☞音标:[seɪv]

--------------------

_【序号:5】_______

☞英文:open

☞中文:打开

☞音标:[ˈoʊpən]

--------------------

_【序号:6】_______

☞英文:copy

☞中文:复制

☞音标:[ˈkɑːpi]

--------------------

_【序号:7】_______

☞英文:cut

☞中文:日常:切,割;计算机:剪切

☞音标:[kʌt]

--------------------

_【序号:8】_______

☞英文:paste

☞中文:粘贴

☞音标:[peɪst]

--------------------

_【序号:9】_______

☞英文:control

☞中文:控制

☞音标: [kənˈtroʊl]

--------------------

_【序号:10】_______

☞英文:ctrl

☞中文:控制的简写

☞音标: [kənˈtroʊl]

--------------------

_【序号:11】_______

☞英文:shift

☞中文:转移;挪动;变换;更替;

☞音标:[ʃɪft]

--------------------

_【序号:12】_______

☞英文:space

☞中文:空间;空格

☞音标:[speɪs]

--------------------

_【序号:13】_______

☞英文:backspace

☞中文:回退键;回删键

☞音标:[ˈbækspeɪs]

--------------------

_【序号:14】_______

☞英文:enter

☞中文:开始进入;开始进行

☞音标:[ˈentər]

--------------------

_【序号:15】_______

☞英文:error

☞中文:错误;差错;

☞音标:[ˈerər]

--------------------

_【序号:16】_______

☞英文:import

☞中文:导入

☞音标:[ˈimpɔːrt]

--------------------

_【序号:17】_______

☞英文:turtle

☞中文:海龟

☞音标:[ˈtɜːrtl]

--------------------

_【序号:18】_______

☞英文:as

☞中文:像;如同;作为;当作

☞音标:[æz , əz]

--------------------

_【序号:19】_______

☞英文:shape

☞中文:形状,外形

☞音标: [ʃeɪp]

--------------------

_【序号:20】_______

☞英文:circle

☞中文:圆形

☞音标: [ˈsɜːrkl]

--------------------

_【序号:21】_______

☞英文:square

☞中文:正方形

☞音标: [skwer]

--------------------

_【序号:22】_______

☞英文:triangle

☞中文:三角形

☞音标: [ˈtraɪæŋɡl]

--------------------

_【序号:23】_______

☞英文:arrow

☞中文:箭头

☞音标: [ˈæroʊ]

--------------------

_【序号:24】_______

☞英文:pen

☞中文:笔;钢笔;

☞音标:[pen]

--------------------

_【序号:25】_______

☞英文:define

☞中文:定义

☞音标:[dɪˈfaɪn]

--------------------

_【序号:26】_______

☞英文:color

☞中文:颜色

☞音标:[ˈkʌlər]

--------------------

_【序号:27】_______

☞英文:goto

☞中文:去;去往;

☞音标:[ˈgoʊˌtu]

--------------------

_【序号:28】_______

☞英文:speed

☞中文:速度

☞音标:[spiːd]

--------------------

_【序号:29】_______

☞英文:delay

☞中文:延迟,拖延;

☞音标:[dɪˈleɪ]

--------------------

_【序号:30】_______

☞英文:up

☞中文:向上;在上面;

☞音标: [ʌp]

--------------------

_【序号:31】_______

☞英文:down

☞中文:向下;在下面;

☞音标: [daʊn]

--------------------

_【序号:32】_______

☞英文:left

☞中文:左边;左转弯

☞音标:[left]

--------------------

_【序号:33】_______

☞英文:right

☞中文:右边;右转弯

☞音标: [raɪt]

--------------------

_【序号:34】_______

☞英文:forward

☞中文:向前;前进;

☞音标:[ˈfɔːrwərd]

--------------------

_【序号:35】_______

☞英文:backward

☞中文:向后;倒退

☞音标:[ˈbækwərd]

--------------------

_【序号:36】_______

☞英文:heading

☞中文:v.朝(某方向)行进;n.标题

☞音标:[ˈhedɪŋ]

--------------------

_【序号:37】_______

☞英文:set

☞中文:设置

☞音标:[set]

--------------------

_【序号:38】_______

☞英文:center

☞中文:中心

☞音标: [ˈsentər]

--------------------

_【序号:39】_______

☞英文:width

☞中文:宽度

☞音标: [wɪdθ]

--------------------

_【序号:40】_______

☞英文:height

☞中文:高度

☞音标:[haɪt]

--------------------

_【序号:41】_______

☞英文:length

☞中文:长度

☞音标: [leŋθ]

--------------------

_【序号:42】_______

☞英文:len

☞中文:长度简写;求长度函数

☞音标: [lɛn]

--------------------

_【序号:43】_______

☞英文:format

☞中文:格式化

☞音标:[ˈfɔːrmæt]

--------------------

_【序号:44】_______

☞英文:dot

☞中文:点;小圆点;

☞音标:[dɑːt]

--------------------

_【序号:45】_______

☞英文:fill

☞中文:填充颜色

☞音标: [fɪl]

--------------------

_【序号:46】_______

☞英文:begin

☞中文:开始

☞音标: [bɪˈɡɪn]

--------------------

_【序号:47】_______

☞英文:end

☞中文:终止,终结,结尾

☞音标: [end]

--------------------

_【序号:48】_______

☞英文:size

☞中文:大小

☞音标: [saɪz]

--------------------

_【序号:49】_______

☞英文:number

☞中文:数字

☞音标:[ˈnʌmbər]

--------------------

_【序号:50】_______

☞英文:num

☞中文:数字的简写

☞音标:---

--------------------

_【序号:51】_______

☞英文:integer

☞中文:整数

☞音标:[ˈɪntɪdʒər]

--------------------

_【序号:52】_______

☞英文:int

☞中文:integer简写,编程:转为整数的函数

☞音标: [ɪnt]

--------------------

_【序号:53】_______

☞英文:float

☞中文:编程:浮点数数据类型

☞音标:[floʊt]

--------------------

_【序号:54】_______

☞英文:evaluate

☞中文:估计;评价;评估

☞音标:[ɪˈvæljueɪt]

--------------------

_【序号:55】_______

☞英文:eval

☞中文:估计;评价;评估的简写

☞音标:[eˈvæl]

--------------------

_【序号:56】_______

☞英文:string

☞中文:编程:字符串数据类型,多个字符组成一串

☞音标: [strɪŋ]

--------------------

_【序号:57】_______

☞英文:str

☞中文:转换为字符串

☞音标:[es ti: ɑːr]

--------------------

_【序号:58】_______

☞英文:input

☞中文:输入

☞音标: [ˈɪnpʊt]

--------------------

_【序号:59】_______

☞英文:bool

☞中文:布尔数据类型

☞音标:[bʊl]

--------------------

_【序号:60】_______

☞英文:true

☞中文:原意:确实的,真正的,编程:逻辑真;是

☞音标: [truː]

--------------------

_【序号:61】_______

☞英文:false

☞中文:原意:错误的,不真实的,编程:逻辑假;否

☞音标: [fɔːls]

--------------------

_【序号:62】_______

☞英文:and

☞中文:原意:与,编程:逻辑与

☞音标: [ənd , ænd]

--------------------

_【序号:63】_______

☞英文:or

☞中文:原意:或,编程:逻辑或

☞音标:[ɔːr]

--------------------

_【序号:64】_______

☞英文:not

☞中文:原意:不,编程:逻辑非

☞音标: [nɑːt]

--------------------

_【序号:65】_______

☞英文:setup

☞中文:安装,设置

☞音标:[ˈsɛˌtʌp]

--------------------

_【序号:66】_______

☞英文:screen

☞中文:屏幕

☞音标:[skriːn]

--------------------

_【序号:67】_______

☞英文:show

☞中文:显示

☞音标: [ʃoʊ]

--------------------

_【序号:68】_______

☞英文:hide

☞中文:隐藏

☞音标: [haɪd]

--------------------

_【序号:69】_______

☞英文:visible

☞中文:是否显示

☞音标: [ˈvɪzəbl]

--------------------

_【序号:70】_______

☞英文:position

☞中文:位置

☞音标: [pəˈzɪʃn]

--------------------

_【序号:71】_______

☞英文:pos

☞中文:位置的简写

☞音标:[pɑs]

--------------------

_【序号:72】_______

☞英文:clear

☞中文:清理,清空

☞音标: [klɪr]

--------------------

_【序号:73】_______

☞英文:reset

☞中文:重置

☞音标: [ˌriːˈset]

--------------------

_【序号:74】_______

☞英文:stamp

☞中文:印记,图章,把图案印在...上

☞音标: [stæmp]

--------------------

_【序号:75】_______

☞英文:background

☞中文:背景

☞音标:[ˈbækɡraʊnd]

--------------------

_【序号:76】_______

☞英文:classic

☞中文:典型的,传统的

☞音标: [ˈklæsɪk]

--------------------

_【序号:77】_______

☞英文:write

☞中文:写

☞音标:[raɪt]

--------------------

_【序号:78】_______

☞英文:text

☞中文:文本,文稿

☞音标:[tekst]

--------------------

_【序号:79】_______

☞英文:align

☞中文:对齐

☞音标:[əˈlaɪn]

--------------------

_【序号:80】_______

☞英文:font

☞中文:字体

☞音标:[fɑːnt]

--------------------

_【序号:81】_______

☞英文:normal

☞中文:正常的,一般的

☞音标: [ˈnɔːrml]

--------------------

_【序号:82】_______

☞英文:italic

☞中文:斜体的,斜体字

☞音标:[ɪˈtælɪk]

--------------------

_【序号:83】_______

☞英文:bold

☞中文:粗体;大胆的

☞音标:[fɑːnt]

--------------------

_【序号:84】_______

☞英文:towards

☞中文:朝向;朝着;以xxx为目标

☞音标:[tɔːrdz]

--------------------

_【序号:85】_______

☞英文:distance

☞中文:距离;间距

☞音标:[ˈdɪstəns]

--------------------

_【序号:86】_______

☞英文:register

☞中文:注册;登记;记录

☞音标:[ˈredʒɪstər]

--------------------

_【序号:87】_______

☞英文:coordinate

☞中文:坐标

☞音标:[koʊˈɔːrdɪneɪt]

标签: #c语言左补0 #python1级