# 一、选择题(32分)
# 1、python不支持的数据类型有(A)
# A、char
# B、int
# C、float
# D、list
# 2.下列执行的结果是(E)
# x = 'foo' x为字符串类型
# y = 2 y是int类型
# print(x+y) 不同类型的数据不可以相加
# A. foo B. foofoo C. foo2 D. 2 E.An exception is thrown
# 3、关于字符串下列说法错误的是(B)
# A、字符应该视为长度为1的字符串
# B、字符串以\0标志字符串的结束
# C、既可以用单引号,也可以用双引号创建字符串
# D、在三引号字符串中可以包含换行回车等特殊字符
# 4、以下不能创建一个字典的语句是(C)
# A、dic1 = {}
# B、dic2 = {123:345}
# C、dic3 = {[1,2,3]:'uestc'} 字典的K是不可变数据类型C选项的[1,2,3]为列表而列表是可变数据类型
# D、dic3 = {(1,2,3):'uestc'}
# 5. Kvps = {‘1’:1,’2’:2}
# theCopy = kvps
# kvps[‘1’] = 5
# sum = kvps[‘1’] + theCopy[‘1’]
# Print (sum) 结果为(D)
# A.1 B.2 C.7 D.10
# 6、以下何者是不合法的布尔表达式:(B)
# A. x in range(6)
#B.3=a
# C.e>5 and 4==f
#D(x-6)>5
# 7、下列表达式的值为True的是(B)
# A. 5+4j>2-3j B.3>2==2
# C.e>5 and 4==f D.(x-6)>5
A选项为复数类型 复数不能进行相加
# 8、已知x=43,ch=‘A’,y = 1,则表达式(x>=y and ch<‘b’ and y)的值是(B)
# A、0
# B、1
# C、出错D、True
# 9、下列表达式中返回 为True的是:(C)
# A、3>2>2 错误
# B、’abc’>’xyz’ 字符串可以比较只不过比较的是字符的ASCII码的大小 a的ASCII码比x的ASCII码小倆个字符串的第一个字符比较已经有结果所以B选项是错误的
# C、0x56 > 56 0x表示十六进制 十六进制的56确实大于56
# D、(3,2)>(‘a’,’b’) 数字和字符串的类型不同不能进行比较
# 10、下列Python语句正确的事(多选)(AD)
# A、min = x if x < y else y
# B、max = x > y ? x : y
# C、if(x>y) print(x)
# D、while True:pass
# 11.若k为整形,下述while循环执⾏的次数为:(A或者B)
# k=1000
# while k>1:
# print k python2中 print不加括号
# k=k/2
# A.9 B.10
# C.11 D.100
在pytho2中结果是9 在python3中结果是10 上例是以python2为例严格说结果为A
# 12、以下叙述正确的是:(B)
# A、continue语句的作用是结束整个循环的执行
# B、只能在循环体内使用break语句
# C、在循环体内使用break语句或continue语句的作用相同
# D、从多层循环嵌套中退出时,只能使用goto语句
# 13、关于python中的复数,下列说法错误的是
# A、表示复数的语法是real+image j
# B、实部和虚部都是浮点数
# C、虚部必须后缀j且j不区分大小写
# D、方法conjugate返回复数的共轭复数
# 14、下面的语句哪个会无限循环下去:(B)
# A、for a in range(10):
# time.sleep(10)
# B、while 1<10:
# time.sleep(10)
# C、while True:
# break
# D、a = [3,-1,',']
# for i in a[:]:
# if not a:
# break
15、下面的代码,哪些会输出1,2,3三个数字(多选,选错不得分):(BD)
# A 、for i in range(3):
# print(i)
# B、aList = [0,1,2]
# for i in aList:
# print(i+1)
# C、i = 1
# while i < 3:
# print(i)
# i+=1
# D、for i in range(3):
# print(i+1)
# 16、Python如何定义一个函数:(C)
# A、class <name>(<type> arg1,<type> arg2,…<type> argN)
# B、function <name>(arg1,arg2,…argN)
# C、def <name>(arg1,arg2,…argN)
# D、def <name>(<type> arg1,<type> arg2,…<type> argN)
# 二、填空题(10分)
# 1、以下函数需要在其中饮用一个全局变量k,请填写语句:
# def fun()
# global k
(global k)
# k = k+1
# 2、L=range(100)
# 1) 取第一到第三个元素 [:3]
# 2) 取倒数第二个元素 [-2] 或者[98]
# 3) 取后十个元素_list [-10:]
# 4) 把L复制给L1用_ L1 = L.copy()
# 3、判断dict有没有某个key用的方法是 in
# 4、获取list的元素个数,和向末尾追加元素的方法分别是 len(list) append()
# 5.以下的代码的输出将是什么:
# [123]
# [10, 'a']_____
# def extendList(val,list=[]):list.append(val)
# return list
# list1 = extendList(10)
# list2 = extendList(123,[])
# list3 = extendList(‘a’)
# print “list1 = %s”%list1
# print “list2 = %s”%list2
# print “list3 = %s”%list3
# 6.下⾯程序的输出结果是:(yes)
# y=False
# z=False
# if x or y and x:
# print "yes"
# else:
# print "no"
# 三、简答题(20分)
# 1、如何判断一个变量是不是字符串 type(s)
# 2、is 和 == 的区别 is比较内存 ==比较值是否相等
# 3、Python⾥⾯如何实现tuple和list的转换。 tuple(list) list(tuple)
# 4、list和tuple有什么不同 tuple不可变
# 5、如何得到列表list的交集与差集。
# 6、 Python中定义函数时如何书写可变参数和默认参数? 可变参数在默认参数之前
# 7、 *args和**kwargs在什么情况下会使⽤到?请给出使⽤**kwargs的事例
不能确定具体的参数个数 示例:装饰器的使用
def test(func):
def inner(*args,**kwargs):
#函数执行之前
ret = func(*args,**kwargs)
#函数执行之后
return ret
return inner
# 8、请描述unicode,utf-8,gbk等编码之间的关系?
# 9、 如何使用python删除一个文件
import os
os.remove()
# 10、 def func(a,b,*args,c=0,**kwargs):
# pass
# *args,**kwargs的作用是什么?
*args:用来接收多余的位置参数 返回一个元组
**kwargs 用来接收多余的关键字参数 返回一个字典
# 四、写代码(38分)
# 1、 d={‘a’:1,’b’:2,’c’:3}请打印出key、value对(3分)
for k in d.keys(): for v in d.values():
print(k) print(v)
# 2、请写出⼀段Python代码实现删除⼀个list⾥⾯的重复元素。(6分)
li=[1,2,3,4,5,5,6,7,7]
for i in li:
if li.count(i) >= 2:
li.remove(i)
print(li)
# 3、使⽤Python/C 上机解决以下题⽬(13分)
# 1)
# 斐波那契数列1,2,3,5,8,13,21.....根据这样的规律,编程求出400万以内最⼤的斐波那契数,并求出他
# 是第⼏个斐波那契数。
for
# 要求写⼀段代码,实现两个字典的相加,不同的key对应的值保留,相同的key对应的值相加后保
# 留,如果是字符串就拼接,如上⽰例得到结果为:
# dictc = {"a":1,"b":5,"c":3,"d":9,"e":7,"m":9,"f":"hello","k":"world"}
# dicta = {"a":1,"b":2,"c":3,"d":4,"f":"hello"}
# dictb = {"b":3,"d":5,"e":7,"m":9,"k":"world"}
# dicta.update(dictb)
# dicta['b'] = 5
# print(dicta)
# 5、什么是装饰器?写⼀个装饰器,可以打印输出⽅法执⾏时长的信息(8分)
import time
def wraper(f):
def inner(*args,**kwargs):
start = time.time()
res = f(*args,**kwargs)
end = time.time()
print(end - start)
return res
return inner
@wraper
def test():
time.sleep(2)
print('我是被修饰的函数')
test()
# 6、 请写出log的实现(主要功能是打印函数名)(8分)
# @log
# def now():
# print ‘2017-08-31’
# >>>now()
# 输出:
# call now():
# 2017-08-31
def log(f):
def inner(*args,**kwargs):
print('call','now()')
res = f(*args,**kwargs)
return res
return inner
@log
def now():
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
# # def select(data,fields):
# # # TODO:implementation
# # return result
# def select(data,fields):
# fields_lst = fields.split('|')
# for key in data:
# if type(data[key]) == dict:
# pass
# return result