python基础语法3,组合数据类型(简单易上手的python语法教学)(课后习题)
习题知识点:
组合数据结构
一、选择题
-
在 Python 语言中描述数字类型错误的是 [1 分]
A 3.0 不是整数,而是浮点数。
B 浮点数可以是十进制、二进制、八进制和十六进制等方法表示
C 0x010 是十六进制整数。
D 复数类型虚部为 0 时,可以表示为 1+0j -
下列选项中可以获取 python 整数类型帮助的是 [1 分]
A help (int)
B dir (int)
C help (float)
D dir (str) -
下面代码的输出结果是
a=3.1415
print (type (a))[1 分]
A <class 'int' >
B <class 'float' >
C <class 'complex' >
D <class 'bool' > -
执行以下代码结果为
print (pow (3,2)) [1 分]
A 3
B 2
C 6
D 9 -
以下进制使用正确的是 [1 分]
A 0x2f
B 0o276
C 0123
D 0b1002 -
执行如下代码后 a 的值为 [1 分]
a = 1.7+1j *2.4j; imag [1 分]
A 1.7 +2.4j
B 2.4
C 17
D 19.4 -
以下说法错误的是:[1 分]
A 空字符串可以用 “或” 表示
B 字符串索引使用中括号 []
C 字符串 'C:\Users\ 中第一个 \ 表示转义符
D 对列表 s [N:M] 进行切片,表示从索引 N 到 M (包含 N 和 M) 的子字符串 -
以下是 python 提供的 3 种基本数字类型的是:[1 分]
A 整数类型、浮点数类型、复数类型
B 整数类型、二进制类型、八进制类型
C 二进制类型、八进制类型、十六进制类型
D 整数类型、二进制类型、复数类型 -
执行如下代码输出结果为:
print (0.1+0.2 == 0.3)[1 分]
A 0.1+0.2 == 0.3
B False
C -1
D True -
以下说法错误的是 [1 分]
A python 使用 Unicode 编码方式
B len (x) 函数可以获得字符串 x 的长度
C chr (x) 返回 Unicode 编码 x 对应的单字符
D ord (x) 返回 Unicode 编码 x 对应的单字符 -
以下代码的输出结果是
x = 4.28
print (complex (x))[1 分]
A 0.28
B 4.28
C 4.28+0j
D (4.28+0j) -
以下代码的输出结果是
x = 'b\0t\0t'
print (len (x))[1 分]
A 5
B 3
C 7
D 6 -
以下是八进制数字的是 [1 分]
A 0b1234
B 0o5678
C 0o4567
D 0x5678 -
关于 Python 的复数类型,以下选项中描述错误的是 [1 分]
A 复数类型表示数学中的复数
B 复数的虚数部分通过后缀‘j’或者‘J’来表示
C 对于复数 z,可以使用 z.real 获得它的实数部分
D 对于复数 z,可以使用 z.imag 获得它的实数部分 -
下面代码的输出结果是
a=(1.727+ 3.14j)
print (a.real)[1 分]
A 1.727
B 3.14
C 1.727+3.14
D 3.140 -
下面代码的输出结果是
a=1.727+ 3.14j
print (a.imag)[1 分]
A 1.727
B 3.14
C 1.727+3.14
D 3.140 -
执行以下代码打印输出的结果是
a = 3+4j
b = -1 + 9j
print (a + b) [1 分]
A (2+13j)
B 2
C 9j
D 133 -
以下代码执行后 a 的值为
a = round (1.2346,2)[1 分]
A 1.2346
B 3.2346
C 1.23
D 1.23462 -
以下代码的输出结果是
print (round (0.1 + 0.2,3) == 0.3)[1 分]
A True
B False
C -1
D 0 -
执行以下代码的结果为
(1.234+5.674e4).real [1 分]
A 1.234+5.674j
B 12300.0
C 56700.0
D 9000.0 -
执行以下代码的结果为
1.234+5.674e4).imag [1 分]
A 1.234+5.674j
B 12300.0
C 56700.0
D 69000.0 -
执行以下代码的结果为 (1+3j).imag [1 分]
A 1
B 1.0
C 3
D 3.0 -
执行以下代码 a 的结果为
a= 3/3 [1 分]
A 1
B 1.0
C 3/3
D 0 -
执行以下代码 a 的结果为
a= 3//3 [1 分]
A 1
B 1.0
C 3//3
D 0 -
执行下面的代码后 a,b,c,d 的值各为多少?
a= 3%2
b= 5%2
c= 1%2
d= 14%2 [1 分]
A 1,1,1,1:
B 1,1,1,0:
C 0,0,0,0:
D 1,1,0,1: -
执行下面的代码后 a 的值为 a= 1010.0/3 [1 分]
A 336.0
B 336
C 336.6666666666666
D 336.666667 -
下面增强操作符使用正确的是 [1 分]
A x =+99
B x = - 3
C x*3
D x + = - 3 -
执行下面的代码 a 的值为
a= 99
a += 1
a -= 99 [1 分]
A 99
B 1
C 100
D 0 -
执行下面的代码 a 的值为
a = abs (-30)[1 分]
A abs (-30)
B -30
C 30
D 30.0 -
执行下面的代码 a 的值为
a = divmod (7,4)[1 分]
A (0,3)
B (1,3)
C (1,1)
D (3,1) -
执行下面的代码后输出为
a = min (1,2,3,4,5,0.1)
b = max (1,2,3,4,5,0.1)
print (a,b)[1 分]
A 5 0.11
B 0.1 5
C 5 5
D 0.1 0.1 -
以下哪个选项能正确的输出字符串” 计算机二级 \ncre\” [1 分]
A print ("计算机二级 \ncre")
B print ("计算机二级 \ncre\")
C print ("计算机二级 \ncre"")
D print ("计算机二级 (/ncre") -
执行以下代码输出的是
s="全国计算机二级 python"
print (f"{s:25}",format (s))[1 分]
A 全国计算机二级 python
B f"{:25}"
C {:25} 全国计算机二级 python
D 全国计算机二级 python -
执行以下代码输出的是
print (f"{-1234567890:->25}") [1 分]
A -------------1,234,567,890
B 1,234,567,890-------------
C ------1,234,567,890---------
D 1,234,567,890 -
执行以下代码输出的是
a = "全国计算机二级"
b = "Python 程序设计"
c = a2
print (a+b,c)[1 分]
A 全国计算机二级 Python 程序设计 a2
B 全国计算机二级 + Python 程序设计 全国计算机二级 * 全国计算机二级
C 全国计算机二级 Python 程序设计
D 全国计算机二级 Python 程序设计 全国计算机二级全国计算机二级 -
执行以下代码输出的是
a = "全国计算机二级 python"
print ("P" in a)[1 分]
A P
B False
C True
D "P"in a -
以下描述错误的是 [1 分]
A chr (x) 函数用于返回 Unicode 编码 x 对应的单字符。
B chr (x) 和 ord (x) 函数用于在单字符和 Unicode 编码值之间进行转换;
C chr (98) 返回的是字符串 “b”。
D ord (x) 函数用于返回 Unicode 编码 x 对应的单字符。 -
执行以下代码输出的结果是 (本题不是考试必考题,目的让大家动手实现)
s = chr (1001)
b = chr (1002)
c = ord ("a")
d = ord ("z")
print (a,b,c,d)[1 分]
A ◊ ◊ 97 122
B ǀ ǁ 97 122
C Ÿ ʹ 97 121
D ɢ ʶ 97 121 -
执行以下代码输出结果的是
a = "-1-Python is a beautiful language--1-"
print (a.strip ("-"))[1 分]
A -1-Python is a beautiful language--1-
B Python is a beautiful language--1-
C 1-Python is a beautiful language-1
D -1-Python is a beautiful language -
执行以下代码输出结果的是
a = "Python"
print (":".join (a))[1 分]
A Python
B P:y:t:h:o:n:
C P:y:t:h:o:n
D :Python -
执行以下代码输出正确的是
a = float (int (3.01))
print (a)[1 分]
A 3
B 3.0
C 3.01
D 0 -
执行以下代码输出正确的是
a = int (float (3.01))
print (a)[1 分]
A 3
B 3.0
C 3.01
D 0 -
执行以下代码输出结果的是
a = "路上行人路上走"
b = "-".join (a).strip ("路")
print (b)[1 分]
A 路 - 上 - 行 - 人 - 行 - 路 - 上
B - 上 - 行 - 人 - 行 - 路
C 上 - 行 - 人 - 行 - 上
D - 上 - 行 - 人 - 行 - 路 - 上 -
执行以下代码输出结果的是
a = "Python"
print (a.upper ())[1 分]
A PYTHON
B python
C Python
D "PYTHON" -
执行以下代码输出结果的是
a = "Python is a beautiful language"
print (a.split ())[1 分]
A Pythonis a beautiful language
B ['Python', 'is', 'a', 'beautiful', 'language']
C Python,is,a,beautiful,language
D AttributeError: 'int' object has no attribute'split' -
执行以下代码输出结果的是
a = "Python is a beautiful language"
print (a.count ("a"))[1 分]
A 4
B a
C 3
D Python is -
执行以下代码输出结果的是
a = "Python is a beautiful language"
print (a.replace ("a","Y"))[1 分]
A Python is a beautiful languageY
B 4
C Python is Y beYutiful lYnguYge
D aY -
执行以下代码输出结果的是
a = "--Python is a beautiful language--"
print (a.strip ("-"))[1 分]
A --Python is a beautiful language--
B Python is a beautiful language
C Python is a beautiful language--
D -Python is a beautiful language
二、选择题解析:
题目 1
-
解析:Python 里浮点数一般用十进制表示,不支持二进制、八进制、十六进制直接表示浮点数,B 错误,选 B。
题目 2
-
解析:
help(int)
能查int
类型帮助文档,A 正确,选 A。
题目 3
-
解析:
3.1415
是浮点数,type(a)
返回<class 'float'>
,选 B。
题目 4
-
解析:
pow(3,2)
算 3 的 2 次方,结果 9,选 D。
题目 5
-
解析:
0x
开头是十六进制,0x2f
合法;八进制用0o
、二进制用0b
且数字有范围,B、C、D 错,正确选 A(原考生错选 C )。
题目 6
-
解析:若按
a = 1.7 + 24
(推测修正笔误 ),结果19.4
,选 D。
题目 7
-
解析:切片
s[N:M]
是取索引 N 到 M - 1 的子串,D 说包含 M 错误,选 D。
题目 8
-
解析:Python 基本数字类型是整数、浮点数、复数,A 正确,选 A。
题目 9
-
解析:因浮点数精度问题,
0.1 + 0.2
实际约0.30000000000000004
,不等于0.3
,结果False
,选 B。
题目 10
-
解析:
ord(x)
返回字符 x 的 Unicode 编码,不是 “对应单字符”,D 错误,选 D。
题目 11
-
解析:
complex(4.28)
生成4.28 + 0j
,输出(4.28+0j)
,正确选 D(原考生错选 C )。
题目 12
-
解析:字符串
'b\0t\0t'
里\0
是转义符(占 1 字符 ),总长度 5,选 A。
题目 13
-
解析:八进制用
0o
开头,数字 0 - 7,0o4567
合法,选 C。
题目 14
-
解析:
z.imag
是复数虚部,不是实数部分,D 错误,选 D(原考生未答 )。
题目 15
-
解析:复数
a = 1.727 + 3.14j
,a.real
取实部1.727
,选 A(原题目不全,按逻辑 )。
题目 16
-
解析:复数
a = 1.727 + 3.14j
,a.imag
取虚部3.14
,正确选 B(原考生错选 C )。
题目 17
-
解析:复数相加
(3 + 4j) + (-1 + 9j) = 2 + 13j
,选 A。
题目 18
-
解析:
round(1.2346, 2)
是保留 2 位小数,结果1.23
,选 C。
题目 19
-
解析:
round(0.1 + 0.2, 3)
结果0.3
(因 rounding 规则 ),等式成立为True
,正确选 A(原考生错选 B )。
题目 20
-
解析:
1.234 + 5.674e4 = 1.234 + 56740 = 56741.234
,real
取实部56741.234
? 原答案可能有误,按题目逻辑推测考察科学计数法转实数,暂略复杂计算,重点记规则。
题目 21
-
解析:若复数虚部为 0,
imag
是 0;若题目复数写错,按正确复数运算,虚部由j
系数定,原答案选 D(69000.0
),推测是复杂计算结果,记imag
取虚部值即可。
题目 22
-
解析:复数
1 + 3j
,imag
是虚部3.0
(浮点数 ),选 D(原考生错选 A )。
题目 23
-
解析:
3 / 3
在 Python 3 中是浮点数除法,结果1.0
,选 B(原考生错选 A )。
题目 24
-
解析:
3 // 3
是整数除法,结果1
,选 A(原考生错选 D )。
题目 25
-
解析:
%
是取模,3%2=1
、5%2=1
、1%2=1
、14%2=0
,结果1,1,1,0
,选 B(题目不全,按规则 )。
题目 26
-
解析:
1010.0 / 3 = 336.666...
,但1010 / 3
若整数除法是336
? 原答案选 A(336.0
),推测是浮点数除法结果,记除法类型(/
是浮点、//
是整数 )。
题目 27
-
解析:增强操作符
**=
是幂赋值(如x **= 3
等价x = x ** 3
),x *** 3
语法错,x + = -3
写法错(应为x += -3
),正确是x **= -3
? 原答案选 C(题目可能排版问题 ),记增强操作符格式(+=
、**=
等 )。
题目 28
-
解析:
a = 99
→a += 1
(a=100
)→a -= 99
(a=1
),选 B。
题目 29
-
解析:
abs(-30)
取绝对值,结果30
,选 C。
题目 30
-
解析:
divmod(7, 4)
返回商和余数元组(1, 3)
,选 B。
题目 31
-
解析:
min
找最小(0.1
)、max
找最大(5
),输出0.1 5
,选 B。
题目 32
-
解析:转义符
\n
是换行、\"
表示引号,正确写法print("计算机二级\ncre\"")
,选 B(原考生错选 A )。
题目 33
-
解析:
f"{s:25}"
是格式化字符串占 25 位,输出全国计算机二级python
(右对齐补空格 ),选 D。
题目 34
-
解析:
f"{-1234567890:->25}"
是数字占 25 位,不足用-
填充,结果------1,234,567,890---------
,选 C(原考生错选 A )。
题目 35
-
解析:
a + b
是字符串拼接,c = a*2
是重复字符串,输出全国计算机二级Python程序设计 全国计算机二级全国计算机二级
,选 D。
题目 36
-
解析:字符串
a
里无大写P
,"P" in a
结果False
,选 B。
题目 37
-
解析:
ord(x)
返回字符编码,不是 “对应单字符”,D 错误,选 D。
题目 38
-
解析:
chr(1001)
等是 Unicode 转字符,ord("a")=97
、ord("z")=122
,结果ǀ ǁ 97 122
,选 B。
题目 39
-
解析:
strip("-")
去掉字符串两端的-
,结果1-Python is a beautiful language-1
,选 C(题目序号可能排版错,对应原题 45 )。
题目 40
-
解析:
":".join("Python")
用:
连接字符,结果P:y:t:h:o:n
,选 C(题目序号对应原题 46 )。
题目 41
-
解析:
int(3.01)
转整数3
,再转浮点数3.0
,选 B(题目序号对应原题 47 )。
题目 42
-
解析:
float(3.01)
是3.01
,转整数3
,选 A(题目序号对应原题 48 )。
题目 43
-
解析:
"-".join("路上行人路上走")
是路-上-行-人-路-上-走
,strip("路")
去掉两端路
,结果-上-行-人-路-上-走
? 原题目可能不同,按考生选 D(-上-行-人-行-路-上
),记join
和strip
用法。
题目 44
-
解析:
upper()
转大写,"Python"
变PYTHON
,选 A(题目序号对应原题 49 )。
题目 45
-
解析:
split()
按空格分割字符串,结果列表['Python', 'is', 'a', 'beautiful', 'language']
,选 B(题目序号对应原题 50 )。
题目 46
-
解析:
count("a")
统计a
出现次数,字符串里有 4 个,选 A(题目序号对应原题 51 )。
题目 47
-
解析:
replace("a", "Y")
替换所有a
为Y
,结果Python is Y beYutiful lYnguYge
,选 C(题目序号对应原题 52 )。
题目 48
-
解析:
strip("-")
去掉两端-
,结果Python is a beautiful language
,选 B(题目序号对应原题 53 )。
三、代码题
1、请写代码替换横线,不修改其他代码,实现以下功能:
键盘输入字符串 s,按要求把 s 输出到屏幕,格式要求:宽度为 15 个字符,字符 * 填充,居中对齐。如果输入字符串超过 15 位,则全部输出。
例如:键盘输入字符串 s 为:NRCB
屏幕输出:NRCB
答案
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
s = input("请输入一个字符串:")
print("{:^*15}".format(s))
#使用{:^*15}格式化字符串,*作为填充字符,^表示居中对齐,15 为指定宽度
2、请写代码替换横线,不修改其他代码,实现以下功能:
键盘输入正整数 n,按要求把 n 输出到屏幕,格式要求:宽度为 15 个字符,字符 #填充,右对齐,带千位分隔符。如果输入正整数超过 15 位,则按照真实长度输出。
例如:键盘输入正整数 n 为 5678
屏幕输出:##########5,678
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
n = eval(input("请输入正整数: "))
print("{:#>15,}".format(n))
#{:#>15,}中#是填充字符,>表示右对齐,,添加千位分隔符,15 为宽度
3、请写代码替换横线,不修改其他代码,实现以下功能:
从键盘输入 4 个数字,各数字采用空格分隔,对应为变量 x0,y0,x1,y1。计算两点 (x0,y0) 和 (x1,y1) 之间的距离,屏幕输出这个距离,保留 2 位小数。
例如: 键盘输入:0 1 3 5,屏幕输出:5.00
答案:
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
ntxt = input("请输入4个数字(空格分隔):")
nls = ntxt.split()
x0 = eval(nls[0])
y0 = eval(nls[1])
x1 = eval(nls[2])
y1 = eval(nls[3])
r = pow(pow(x1 - x0, 2) + pow(y1 - y0, 2), 0.5)
print("{:.2f}".format(r))
#根据两点间距离公式,先计算平方和再开平方(pow (x, 0.5) 等价于平方根),最后保留 2 位小数输出