1.list(map(str, [1, 2, 3]))的执行结果为
['1', '2', '3']
map() 会根据提供的函数对指定序列做映射
2.语句x = 3==3, 5执行结束后,变量x的值为
True,5
3.已知 x = 3,并且id(x)的返回值为 496103280,那么执行语句 x += 6 之后,表达式 id(x) == 496103280 的值为
False
+号操作对可变对象和不可变对象都会改变id,+=号操作改变不可变对象id,不改变可变对象id,数字是不可变对象。
4.Python语句’’.join(list(‘hello world!’))执行的结果是
'hello world!'
5.Python语句list(range(1,10,3))执行结果为
[1, 4, 7]
6.切片操作list(range(6))[::2]执行结果为
[0, 2, 4]
7.Python 3.x语句 print(1, 2, 3, sep=’:’) 的输出结果为
1:2:3
8.使用列表推导式得到100以内所有能被13整除的数的代码可以写作
list = [i for i in range(100) if i%13 == 0]
9.已知 vec = [[1,2], [3,4]],则表达式 [col for row in vec for col in row] 的值为
[1, 2, 3, 4]
10.表达式 ‘Hello world’.upper() 的值为
'HELLO WORLD'
11.已知 x = ‘123’ 和 y = ‘456’,那么表达式 x + y 的值为
'123456'
12.表达式 ‘a’.join(‘abc’.partition(‘a’)) 的值为
'aaabc'
partition() 方法用来根据指定的分隔符将字符串进行分割,返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。
13.表达式 ‘Hello world!’[-4:] 的值为
'rld!'
14.已知 ,那x = (3,)么表达式 x * 3 的值为
(3, 3, 3)
15.如何实现“1,2,3”变成[‘1’,‘2’,‘3’]
'1,2,3'.split(',')
16.如何实现[‘1’,‘2’,‘3’]变成[1,2,3]
list = [int(i) for i in a]
17.已知列表 x = [1, 2, 3, 4],那么执行语句 del x[1] 之后x的值为
[1, 3, 4]
18.表达式 {1, 2, 3} < {3, 4, 5} 的值为
False
19.表达式 dict(zip([1, 2], [3, 4])) 的值为
{1: 3, 2: 4}
zip():将可迭代的对象作为参数,将对象中对应的元素打包成一个个远足,然后这些元祖的列表
zip([1,2],[3,4]) ==> [ ( 1 , 3 ) , ( 2 , 4 ) ]
dict():转换为字典 ==> { 1 : 3 , 2 : 4 }
20.已知 x = [[1,3,3], [2,3,1]],那么表达式 sorted(x, key=lambda item:item[0]+item[2]) 的值为
[[2, 3, 1],[1, 3, 3]]
21.表达式 sorted(random.sample(range(5), 5)) 的值为
[0, 1, 2, 3, 4]
sample(sequence, k)方法返回一个列表,其中从序列中随机选择指定数量的项目。sequence为序列,k为返回列表的大小
22.已知 x = [3, 2, 3, 3, 4],那么表达式 [index for index, value in enumerate(x) if value==3] 的值为
[0, 2, 3]
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标。本题列出等于3的值的偏移量。
>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter'] >>> list(enumerate(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] >>> list(enumerate(seasons, start=1)) # 下标从 1 开始 [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
23.如何用列表生成式生成[1,4,9,16,25,36,49,64,81,100]
list = [i*i for i in range(1,11)]
24.如果用一行代码实现1~100的求和
sum(range(1,101))
25.假设列表对象aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片aList[3:7]得到的值是
[6, 7, 9, 11](二)判断题
1.带有else子句的循环如果因为执行了break语句而退出的话,则会执行else子句中的代码。
错
2.使用列表对象的remove()方法可以删除列表中首次出现的指定元素,如果列中不存在要删除的指定元素则抛出异常。
对
3.可变集合有:列表,字典。 不可变集合有:数字,字符串,元组。
对
4.定义Python函数时,如果函数中没有return语句,则默认返回空值None。
对
5.== 比较的是内容相等,is 比较的是内存地址相等。
对(三)编程题
1.鸡兔同笼问题。假设共有鸡、兔30只,脚90只,求鸡、兔各有多少只。
for i in range(1,31):
j=30-i
if i*2+j*4 == 90:
break
print("鸡有{0}只,兔有{1}只".format(i,j))
运行结果:鸡有15只,兔有15只
2.编写程序,计算百钱买百鸡问题。假设公鸡5元一只,母鸡3元一只,小鸡1元三只,现在有100块钱,想买100只鸡,问有多少种买法?
for x in range(1,101):
for y in range(1,101):
z = 100-5*x-3*y
z1 = 3*z
if x+y+z1==100:
print(x,y,z1)
运行结果:
4 18 78 8 11 81 12 4 84
所以共有三种。
3.判断101-200之间有多少个素数,并输出所有素数。
def isPrime(n):
if n <= 1:
return False
i = 2
while i*i <= n:
if n % i == 0:
return False
i += 1
return True
num = 0
for i in range(1,101):
if isPrime(i):
num+=1
print(num)
运行结果:25
4.题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;
利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,
可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;
40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,
高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,
从键盘输入当月利润I,求应发放奖金总数?
lirun = float(input("当月利润为:"))
jiangjin = 0.0
if lirun <= 100000:
jiangjin = lirun*0.1
if 100000 1000000:
jiangjin = 100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(lirun-1000000)*0.01
print("奖金为:",jiangjin)



