python选择题和填空题_python练习题总结

本文提供了一系列Python编程的选择题和填空题,涵盖了数据类型、操作符、字符串、字典、循环、函数等多个核心概念。通过解答这些题目,读者可以巩固Python基础知识,提升编程能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、选择题(32分)

1、python不支持的数据类型有 A

A、char

B、int

C、float

D、list

2. E

x = “foo”

y = 2

print(x+y)

A.foo B.foofoo C.foo2 D.2 E.An exception isthrown

3、关于字符串下列说法错误的是 B

A、字符应该视为长度为1的字符串

B、字符串以\0标志字符串的结束

C、既可以用单引号,也可以用双引号创建字符串

D、在三引号字符串中可以包含换行回车等特殊字符

4、以下不能创建一个字典的语句是 C

A、dic1 = {}

B、dic2 = {123:345}

C、dic3 = {[1,2,3]:'uestc'}

D、dic3 = {(1,2,3):'uestc'}

5.Kvps = {‘1’:1,’2’:2} D

theCopy = kvps

kvps[‘1’] = 5

sum = kvps[‘1’] + theCopy[‘1’]

Print sum

A.1 B.2 C.7 D.10

6、以下何者是不合法的布尔表达式: B

A.x inrange(6) B.3=a

C.e>5 and4==f D(x-6)>5

7、下列表达式的值⼀定为True的是 B

A.5+4j>2-3j B.3>2==2

C. e>5 and4==f D.(x-6)>5

8、已知x=43,ch=‘A’,y = 1,则表达式(x>=y andch<‘b’ andy)的值是 B

A、0

B、1

C、出错

D、True9、下列表达式中返回 为True的是: C

A、3>2>2 #2是等于2的B、’abc’>’xyz’ 比较的是ascii

C、0x56 > 56

D、(3,2)>(‘a’,’b’) #数字和字符串是不能进行比较的10、下列Python语句正确的是(多选) AD

A、min = x ifx < y elsey

B、max = x > y ? x : y

C、if(x>y) print(x)

D、while True:pass11.若k为整形,下述while循环执⾏的次数为: B

k=1000

whilek>1:

print k

k=k/2

A.9 B.10 #python2中先是先有print k的,python是向下取整的,所以选9也是对的C.11 D.100 #python中是print(k)12、以下叙述正确的是: B

A、continue语句的作用是结束整个循环的执行 #本次循环B、只能在循环体内使用break语句

C、在循环体内使用break语句或continue语句的作用相同

D、从多层循环嵌套中退出时,只能使用goto语句 #goto是C语言中的13、关于python中的复数,下列说法错误的是 B

A、表示复数的语法是real+image j

B、实部和虚部都是浮点数

C、虚部必须后缀j且j不区分大小写

D、方法conjugate返回复数的共轭复数

14、下面的语句哪个会无限循环下去: B

A、fora inrange(10):

time.sleep(10)

B、while1<10:

time.sleep(10)

C、while True:

breakD、a = [3,-1,',']

fori ina[:]:

if nota:

break15、下面的代码,哪些会输出1,2,3三个数字(多选,选错不得分): BD

A 、fori inrange(3):

print(i)

B、aList = [0,1,2]

fori inaList:

print(i+1)

C、i = 1

whilei < 3:

print(i)

i+=1

D、fori inrange(3):

print(i+1)

16、Python如何定义一个函数: C

A、class( arg1, arg2,… argN)

B、function (arg1,arg2,…argN)

C、def(arg1,arg2,…argN)

D、def( arg1, arg2,… argN)

二、填空题(10分)

1、以下函数需要在其中饮用一个全局变量k,请填写语句:

deffun()

__global k_______________

k = k+1

2、L=range(100)

1) 取第一到第三个元素___list(L[:3])___

2) 取倒数第二个元素__l[-2]_____

3) 取后十个元素_ l[-11:-1]______

4) 把L复制给L1用__l1 = list(l).copy()_____

3、判断dict有没有某个key用的方法是__get__in(in比较好)___

4、获取list的元素个数,和向末尾追加元素的方法分别是__len append____ _______

5.以下的代码的输出将是什么: _______

defextendList(val,list=[]):

list.append(val)

returnlist

list1 = extendList(10)

list2 = extendList(123,[])

list3 = extendList(‘a’)

print “list1 = %s”%list1

print “list2 = %s”%list2

print “list3 = %s”%list3

结果是:list1 = [10, 'a']

list2 = [123]

list3 = [10, 'a']

6.下⾯程序的输出结果是:____yes_____

x=Truey=Falsez=False

ifx ory andx:

print("yes")

else:

print('no')

三、简答题(20分)

1、如何判断一个变量是不是字符串

答,假设变量a

使用print(type(a))方法,如果返回结果为str就说明该变量是字符串类型的

2、is和 == 的区别

对于数字来说,is和==是没有区别的

对于is判断的是内存地址,==判断的是值

3、Python⾥⾯如何实现tuple和list的转换。

元祖转换成列表list(tuple)

列表转换成元祖tuple(list)

4、list和tuple有什么不同

list是可变类型

tuple是不可变类型

5、如何得到列表list的交集与差集。

列表先转换为集合

集合相减得到差集

集合&集合得到交集

然后再将集合转为列表

6、Python中定义函数时如何书写可变参数和默认参数?

*args,key=1,**kwargs

7、*args和**kwargs在什么情况下会使⽤到?请给出使⽤**kwargs的事例

参数个数不确定的时候会用到,*args 在按位置传入的参数

**kwargs在按关键字传入参数

8、请描述unicode,utf-8,gbk等编码之间的关系?

9、如何使用python删除一个文件

importos

os.remove()

10、deffunc(a,b,c=0,*args,**kwargs):

pass*args,**kwargs的作用是什么?

答:*args接收按位置传参时传入的多余的参数,**kwargs接收按关键字传参时,传入的多余的参数

四、写代码(38分)

1、d={‘a’:1,’b’:2,’c’:3}请打印出key、value对(3分)

d={'a':1,'b':2,'c':3}for key ind:print(key,d[key]) #这种方法好的原因是,节约内存

2、请写出⼀段Python代码实现删除⼀个list⾥⾯的重复元素。(6分)

set1 =set(list)

list=list(set1)

方法二:

list= [1,2,3,4,1]

new_list=[]for i inlist:if i not innew_list:

new_list.append(i)print(new_list)

3、使⽤Python/C 上机解决以下题⽬(13分)

1)

斐波那契数列1,2,3,5,8,13,21.....根据这样的规律,编程求出400万以内最⼤的斐波那契数,并求出他

是第⼏个斐波那契数。

方法一:

count=0

a= 1b=0

c=0while c < 4000001:

count+= 1c= a+b

b=a

a=cprint(count-1)

方法二:

count= 2a,b= 1,2

while a+b < 4000000:

c= a+b

a=b

b=c

count+= 1

print(c)print(count)

2)

dicta = {"a":1,"b":2,"c":3,"d":4,"f":"hello"}

dictb = {"b":3,"d":5,"e":7,"m":9,"k":"world"}

要求写⼀段代码,实现两个字典的相加,不同的key对应的值保留,相同的key对应的值相加后保

留,如果是字符串就拼接,如上⽰例得到结果为:

dictc = {"a":1,"b":5,"c":3,"d":9,"e":7,"m":9,"f":"hello","k":"world"}

方法一:

dic={}

dicta= {"a":1,"b":2,"c":3,"d":4,"f":"hello"}

dictb= {"b":3,"d":5,"e":7,"m":9,"k":"world"}for i indicta:ifdictb.get(i):

dic[i]=dicta[i]+dictb[i]

dicta.update(dictb)

dicta.update(dic)

dic=dictaprint(dic)

方法二

dicta = {"a":1,"b":2,"c":3,"d":4,"f":"hello"}

dictb= {"b":3,"d":5,"e":7,"m":9,"k":"world"}

dic=dictafor key indictb:if key indic:

dic[key]= dic[key]+dictb[key]else:

dic[key]=dictb[key]print(dic)

5、什么是装饰器?写⼀个装饰器,可以打印输出⽅法执⾏时长的信息(8分)

importtimedefwrapper(func):def inner(*args,**kwargs):

start_time=time.clock()

time.sleep(2)

ret= func(*args,**kwargs)

end_time=time.clock()

new_time= (end_time -start_time)return print(new_time)returninner

@wrapperdeffunc():print('aaa')

func()

6、请写出log的实现(主要功能是打印函数名)(8分)

@log

defnow():

print ‘2017-08-31’

>>>now()

输出:

call now():

2017-08-31

deflog(func):def inner(*args,**kwargs):print('call now():')

ret= func(*args,**kwargs)returnretreturninner

@logdefnow():print('2017-08-31')

now()

附加题(20分)

有⼀个数据结构如下所⽰,请编写⼀个函数从该结构数据中返回由指定的字段和对应的值组成的字

典。如果指定字段不存在,则跳过该字段。(10分)

data:{"time":"2016-08-05T13:13:05",

"some_id":"ID1234",

"grp1":{ "fld1":1,

"fld2":2},

"xxx2":{ "fld3":0,

"fld5":0.4},

"fld6":11,

"fld7":7,

"fld46":8}

fields:由"|"连接的以"fld"开头的字符串,如:fld2|fld3|fld7|fld19

defselect(data,fields):

#TODO:implementationreturnresult

defselect(data,fields):

fields_lst = fields.split(‘|’)

forkey indata:

iftype(data[key]) == dict:

pass

returnresult

fileds = 'fld2|fld3|fld7|fld19'data={"time":"2016-08-05T13:13:05","some_id":"ID1234","grp1":{ "fld1":1,"fld2":2},"xxx2":{ "fld3":0,"fld5":0.4},"fld6":11,"fld7":7,"fld46":8}def select(*args,**kwargs):

result={}

filed_list= fileds.split('|')for key indata:if key infiled_list:

result[key]=data[key]elif type(data[key]) ==dict:for inner_key indata[key]:if inner_key infiled_list:

result[inner_key]=data[key][inner_key]returnresultprint(select(data,fileds))

data={"time":"2016-08-05T13:13:05","some_id":"ID1234","grp1":{ "fld1":1,"fld2":2},"xxx2":{ "fld3":0,"fld5":0.4},"fld6":{ "key":{"fld19":1}},"fld7":7,"fld46":8}

#压栈思想,也可以使用递归的方法去写

defselect(data,fileds):

l=[data]

field_lst= fileds.split('|')

result={}whilel:

s=l.pop()for key ins:if type(s[key])==dict:

l.append(s[key])elif key infield_lst:

result[key]=s[key]returnresult

fileds= 'fld2|fld3|fld7|fld19'

print(select(data,fileds))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值