青少年软件编程(Python)等级考试试卷(一级)
2.执行语句y=4**3后,变量y的值为?【单项】*
5.已知变量a=2,b=3,执行语句a%=a+b后,变量a的值为?【单项】*
6.Turtle库中,画笔绘制的速度范围为?【单项】*
8.Python编程语言的注释语句是以( )开头的?【单项】*
9.a="我要做作业",b=“我要学习”,以下哪种是可以输出这两句中文的?【单项】*
11.Python中,用什么方式实现代码快速缩进?*
13.在turtle库中的指令,以下哪个不会使得海龟发生位置移动变化的?【单项】*
14.下列哪个函数的功能是将字符串和数字转换成整数?【单项】*
15.Turtle库中,用于将画笔移动到坐标(x,y)位置的命令是?【单项】*
16.以下哪个变量命名不符合Python规范?【单项】*
17.以下哪个不是Python开发工具?【单项】*
18.下列代码运行的结果是?【单项】
19.要抽出一个三位数的个位上的数字,如三位数479,可以输入以下哪个代码可以获得其中的个位数上的9?【单项】*
20.下面图形最有可能是哪个选项的代码执行后的效果?【单项】
21.海龟作图中,默认的海龟方向的朝向是?【单项】*
22.结果是?【单项】
23.在turtle库中的指令,以下哪条指令与颜色无关的?【单项】*
25.Turtle库中,设置画粗细的命令是?【单项】*
28.在Python中,input("请输入"),运行后如果输入3+8,则返回结果为11。【判断题】*
29.as,is,class是Python中常用保留字,不可以作为变量名。【判断题】*
30.当启动IDLE时,默认打开的是交互式编程环境,如果要编写连续的程序,需要使用脚本式编程环境,在IDLE中菜单栏中选择File→New File新建打开。【判断题】*
31.使用三层双引号或三层单引号都可以做多行注释。【判断题】*
36.时间转换:输入一个总秒数,计算是几小时几分钟几秒,并一行输出【计算题】
要 求:a)输入一行,一个整数,表示总秒数;
1.画一个由两个直角三角形组成的正方形,边长为180像素;
2.左上三角形填充为黄色,右下三角形填充为红色;如上图;
3.设置画笔速度为1,线条为黑色; 
4.画图结束,隐藏并停止画笔。
Python 是一种通用编程语言,其在科学计算和机器学习领域具有广泛的应用。如果我们打算利用 Python 来执行机器学习,那么对 Python 有一些基本的了解就是至关重要的。本Python 入门系列体验就是为这样的初学者精心准备的。
在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也是允许的了。
保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:
在Python中,#表示单行注释,实例如下:
多行注释可以使用多个#号或者使用'''和""",实例如下:
得到负数或是两个数相减 |
两个数相乘,或者是返回一个被重复若干次的字符串 |
比较两个对象是否不相等 |
所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。
如果x为False,x and y返回x的值,否则返回y的计算值。 |
如果x为True,x or y 返回x的值,否则返回y的计算值。 |
按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:
下表中变量 a 为 60,b 为 13二进制格式如下:
参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0。 | |
只要对应的两个二进制位有一个为1时,结果位就为1。 | |
当两对应的二进位相异时,结果为1。 | |
对数据的每个二进制位取反,即把1变为0,把0变为1。 | |
运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 | |
把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 |
【例子】有关二进制的运算,参见“位运算”部分。
有了这个三元操作符的条件表达式,你可以使用一条语句来完成以上的条件判断和赋值操作。
海象运算符,可在表达式内部为变量赋值。Python3.8版本新增运算符。 |
除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
如果在指定的序列中找到值返回 True,否则返回 False。 |
如果在指定的序列中没有找到值返回 True,否则返回 False。 |
身份运算符用于比较两个对象的存储单元。
is 是判断两个标识符是不是引用自一个对象 |
is not 是判断两个标识符是不是引用自不同对象 |
注:id()函数用于获取对象内存地址。
【例子】比较的两个变量均指向不可变类型。
【例子】比较的两个变量均指向可变类型。
以下表格列出了从最高到最低优先级的所有运算符:
按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
乘,除,求余数和取整除 |
赋值运算符(从右往左结合) |
运行下面一段代码看看结果是什么?
Python3中有六个标准的数据类型:
【例子】通过print()可以看出a的值,以及类(class)是int。
Python里面万物皆对象(object),整型也不例外,只要是对象,就有相应的属性 (attributes) 和方法(methods)。
dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。
对它们有个大概印象就可以了,具体怎么用,需要哪些参数 (argument),还需要查文档。看个bit_length()的例子。
【例子】找到一个整数的二进制表示,再返回其长度。
有时候我们想保留浮点型的小数点后n位。可以用decimal包里的Decimal对象和getcontext()方法来实现。
Python 里面有很多用途广泛的包 (package),用什么你就引进 (import) 什么。包也是对象,也可以用上面提到的dir(decimal) 来看其属性和方法。
除了直接给变量赋值True和False,还可以用bool(X)来创建变量,其中X可以是
【例子】bool 作用在基本类型变量:X 只要不是整型 0、浮点型 0.0,bool(X) 就是 True,其余就是 False。
【例子】bool 作用在容器类型变量:X 只要不是空的变量,bool(X) 就是 True,其余就是 False。
此外,还可以通过isinstance来判断:
当你指定一个值时,Number对象就会被创建:
你也可以使用del语句删除一些对象引用。
你可以通过使用del语句删除单个或多个对象,例如:
以下是print()函数的语法:
【例子】没有参数时,每次输出后都会换行。
【例子】每次输出结束都用end设置的参数&结尾,并没有默认换行。
【例子】item值与'another string'两个值之间用sep设置的参数&分割。由于end参数没有设置,因此默认是输出解释后换行,即end参数的默认值为\n。
二进制有三种不同的表示形式:原码、反码和补码,计算机内部使用补码来表示。
原码:就是其二进制表示(注意,有一位符号位)。
反码:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反)。
补码:正数的补码就是原码,负数的补码是反码+1。
符号位:最高位为符号位,0表示正数,1表示负数。在位运算中符号位也参与运算。
~ 把num的补码中的 0 和 1 全部取反(0 变为 1,1 变为 0)有符号整数的符号位在 ~ 运算中同样会取反。
只有两个对应位都为 1 时才为 1
只要两个对应位中有一个 1 时就为 1
只有两个对应位不同时才为 1
异或操作的性质:满足交换律和结合律
通过 ^ 快速交换两个整数。 通过 ^ 快速交换两个整数。
通过 a & (-a) 快速获取a的最后为 1 位置的整数。
一个数的二进制表示可以看作是一个集合(0 表示不在集合中,1 表示在集合中)。
比如集合 {1, 3, 4, 8},可以表示成 01 00 01 10 10 而对应的位运算也就可以看作是对集合进行的操作。
注意:整数在内存中是以补码的形式存在的,输出自然也是按照补码输出。
【例子】C#语言输出负数。
是不是很颠覆认知,我们从结果可以看出:
所以为了获得负数(十进制表示)的补码,需要手动将其和十六进制数0xffffffff进行按位与操作,再交给bin()进行输出,得到的才是负数的补码表示。
【例子】猜数字v1.0
if语句支持嵌套,即在一个if语句中嵌入另一个if语句,从而构成不同层次的选择结构。
【例子】Python 使用缩进而不是大括号来标记代码块边界,因此要特别注意else的悬挂问题。
【例子】升级版猜数字v1.1
【例子】在进行单元测试时,可以用来在程序中置入检查点,只有条件为 True 才能让程序正常工作。
while语句最基本的形式包括一个位于顶部的布尔表达式,一个或多个属于while代码块的缩进语句。
while循环的代码块会一直循环执行,直到布尔表达式的值为布尔假。如果不慎进入无限循环你可以使用 CTRL+C 来中断循环。特别需要注意冒号和缩进。
如果布尔表达式不带有<、>、==、!=、in、not in等运算符,仅仅给出数值之类的条件,也是可以的。当while后写入一个非零整数时,视为真值,执行循环体;写入0时,视为假值,不执行循环体。也可以写入str、list或任何序列,长度非零则视为真值,执行循环体;否则视为假值,不执行循环体。
【例子】猜数字升级版v2.0
【例子】布尔表达式返回0,循环终止。
当while循环正常执行完的情况下,执行else输出,如果while循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容。需要注意冒号和缩进。
for循环是迭代循环,在Python中相当于一个通用的序列迭代器,可以遍历任何有序序列,如str、list、tuple等,也可以遍历任何可迭代对象,如dict。
每次循环,迭代变量被设置为可迭代对象的当前元素,提供给代码块使用。
当for循环正常执行完的情况下,执行else输出,如果for循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容,与while - else语句一样。
用 enumerate(A) 不仅返回了 A 中的元素,还顺便给该元素一个索引值 (默认从 0 开始)。此外,用 enumerate(A, j) 还可以确定索引起始值为 j。
break语句可以跳出当前所在层的循环。
continue终止本轮循环并开始下一轮循环。
pass 语句的意思是“不做任何事”,如果你在需要有语句的地方不写任何语句,那么解释器会提示出错,而 pass 语句就是用来解决这些问题的。
pass是空语句,不做任何操作,只起到占位的作用,其作用是为了保持程序结构的完整性。尽管pass语句不做任何操作,但如果暂时不确定要在一个位置放上什么样的代码,可以先放置一个pass语句,让代码可以正常运行。
【例子】选择排序v1.0
【例子】选择排序v2.0
#外边一层循环控制行数
#里面一层循环控制每一行中的列数
print("你的余额不足,请充值") print("购买后余额不足,请重新输入")
print("提示:中奖数据有六位数,每位数为0或者1") n2=input("请猜测中奖数据:(输入的数字为0或1)")
input("请问还要继续么?结束请输入no,继续请任意输入字符:")
异常就是运行期检测到的错误。计算机语言针对可能出现的错误定义了异常类型,某种错误引发对应的异常时,异常处理程序将被启动,从而恢复程序的正常运行。
EOFError:没有内建输入,到达EOF标记
IOError:输入/输出操作失败
OSError:操作系统产生的异常(例如打开一个不存在的文件)
KeyError:字典中查找一个不存在的关键字
MemoryError:内存溢出(可通过删除对象释放内存)
NameError:尝试访问一个不存在的变量
ReferenceError:弱引用试图访问已经垃圾回收了的对象
TypeError:不同类型间的无效操作
FutureWarning:关于构造将来语义会有改变的警告
ImportWarning:用于在导入模块过程中触发的警告
BytesWarning:与字节或字节码相关的警告
try 语句按照如下方式工作:
首先,执行try子句(在关键字try和关键字except之间的语句)
如果没有异常发生,忽略except子句,try子句执行后结束。
如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略。如果异常的类型和except之后的名称相符,那么对应的except子句将被执行。最后执行try - except语句之后的代码。
如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。
一个try语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。
处理程序将只针对对应的 try 子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。
try-except-else语句尝试查询不在dict中的键值对,从而引发了异常。这一异常准确地说应属于KeyError,但由于KeyError是LookupError的子类,且将LookupError置于KeyError之前,因此程序优先执行该except代码块。所以,使用多个except代码块时,必须坚持对其规范排序,要从最具针对性的异常到最通用的异常。
【例子】一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组。
最后一个except子句可以忽略异常的名称,它将被当作通配符使用。你可以使用这种方法打印一个错误信息,然后再次把异常抛出。
不管try子句里面有没有发生异常,finally子句都会执行。
【例子】如果一个异常在try子句里被抛出,而又没有任何的except把它截住,那么这个异常会在finally子句执行后被抛出。
如果在try子句执行时没有发生异常,Python将执行else语句后的语句。
如果没有异常执行这块代码
使用except而不带任何异常类型,这不是一个很好的方式,我们不能通过该程序识别出具体的异常信息,因为它捕获所有的异常。
异常处理并不仅仅处理那些直接发生在 try 子句中的异常,而且还能处理子句中调用的函数(甚至间接调用的函数)里抛出的异常。
Python 使用raise语句抛出一个指定的异常。