一、浮点数
之前讲过的,有序 : 列表 元组 字符串
数字类 :int flost complex bool
散列累 :集合和字典
浮点数:--包含所有小数 和复数
复数:a +bj 实部和虚部
复数之间不能比较大小
试题收藏

# 老男孩Python全栈7期练习题(面试真题模拟) # 一、选择题(32分) # 1、python不支持的数据类型有 # A、char # B、int # C、float # D、list # C # 2. # x = “foo” # y = 2 # print(x+y) # A.foo B.foofoo C.foo2 D.2 E.An exception is thrown #E # 3、关于字符串下列说法错误的是 # A、字符应该视为长度为1的字符串 # B、字符串以 标志字符串的结束 # C、既可以用单引号,也可以用双引号创建字符串 # D、在三引号字符串中可以包含换行回车等特殊字符 #B # 4、以下不能创建一个字典的语句是 # A、dic1 = {} # B、dic2 = {123:345} # C、dic3 = {[1,2,3]:'uestc'} # D、dic3 = {(1,2,3):'uestc'} #c # 5.Kvps = {‘1’:1,’2’:2} # theCopy = kvps # kvps[‘1’] = 5 # sum = kvps[‘1’] + theCopy[‘1’] # Print sum # A.1 B.2 C.7 D.10 #D # 6、以下何者是不合法的布尔表达式: # A.x in range(6) B.3=a # C.e>5 and 4==f D(x-6)>5 # B # 7、下列表达式的值⼀定为True的是 # A.5+4j>2-3j B.3>2==2 # C. e>5 and 4==f D.(x-6)>5 #B # 8、已知x=43,ch=‘A’,y = 1,则表达式(x>=y and ch<‘b’ and y)的值是 # A、0 # B、1 # C、出错 # D、True #B # 9、下列表达式中返回 为True的是: # A、3>2>2 # B、’abc’>’xyz’ # C、0x56 > 56 # D、(3,2)>(‘a’,’b’) #C # 10、下列Python语句正确的事(多选) # A、min = x if x < y else y # B、max = x > y ? x : y # C、if(x>y) print(x) # D、while True:pass #A#D # 11.若k为整形,下述while循环执⾏的次数为: # k=1000 # while k>1: # print k # k=k/2 # A.9 B.10 # C.11 D.100 #B # 12、以下叙述正确的是: # A、continue语句的作用是结束整个循环的执行 # B、只能在循环体内使用break语句 # C、在循环体内使用break语句或continue语句的作用相同 # D、从多层循环嵌套中退出时,只能使用goto语句 #B # 13、关于python中的复数,下列说法错误的是 # A、表示复数的语法是real+image j # B、实部和虚部都是浮点数 # C、虚部必须后缀j且j不区分大小写 # D、方法conjugate返回复数的共轭复数 #B # 14、下面的语句哪个会无限循环下去: # 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 #B # 15、下面的代码,哪些会输出1,2,3三个数字(多选,选错不得分): # 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) #B D # 16、Python如何定义一个函数: # 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) #C # 二、填空题(10分) # 1、以下函数需要在其中饮用一个全局变量k,请填写语句: # def fun() # _____global k____________ # k = k+1 # 2、L=range(100) # 1) 取第一到第三个元素_list()___ list( range(100)[:3]) # 2) 取倒数第二个元素__list[l][-2]_____list( range(100)[-2]) # 3) 取后十个元素___list[l][-10:]____ list( range(100)[-10:]) import copy # 4) 把L复制给L1用__l1=l.copy_____ range 没有copy方法所以要用 import 模块 导入 l1 = copy.copy(l) # 3、判断dict有没有某个key用的方法是_in______ # 4、获取list的元素个数,和向末尾追加元素的方法分别是_len()_____ ___append()____ # 5.以下的代码的输出将是什么: lis1=_[10,'a']___list2 =[123]___list3 = [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______ # x=True # y=False # z=False # if x or y and x: # print "yes" # else: # print "no" # 三、简答题(20分) # 1、如何判断一个变量是不是字符串 #type()==str # 2、is 和 == 的区别 #is 是判断内存地址的 ==是比较值的 # 3、Python⾥⾯如何实现tuple和list的转换。 #tuple(list) list(tuple) # 4、list和tuple有什么不同 #list 是可变的 tuple的第一层元素是不可变的 # 5、如何得到列表list的交集与差集。 # 转集合set(list) 然后用 & 和 - # 6、Python中定义函数时如何书写可变参数和默认参数? #*args,默认,**kwargs # 7、*args和**kwargs在什么情况下会使⽤到?请给出使⽤**kwargs的事例 在参数数量不固定的时候,示例:储存用户名和密码信息等一些个人信息时 # 8、请描述unicode,utf-8,gbk等编码之间的关系? #gbk是中国人使用的 编码里边兼容了ascii码,每个汉字是两个字节 unicode 也叫万国码,是iso国际组织为了发明一种通用的编码而诞生的,他有两个字节的 #也有四个字节的 ,utf - 8是一种可变字节的编码是对unicode的优化 一个汉字三个字节 # 9、如何使用python删除一个文件 调用os 模块然后 remove('文件路径') # 10、def func(a,b,c=0,*args,**kwargs): # pass # *args,**kwargs的作用是什么? #当有更多的位置参数和关键字参数和要传入的时候用他们接受 # 四、写代码(38分) # 1、d={‘a’:1,’b’:2,’c’:3}请打印出key、value对(3分) d={'a':1,'b':2,'c':3} for k ,v in d.items(): print(k,v) for i in d: print(i,d[i]) # 2、请写出⼀段Python代码实现删除⼀个list⾥⾯的重复元素。(6分) l = [1,2,1,3] l = list(set(l)) print(l) l1 = [] for i in l: if i not in l1: l1.append(i) print(l1) # 3、使⽤Python/C 上机解决以下题⽬(13分) # 1) # 斐波那契数列1,2,3,5,8,13,21.....根据这样的规律,编程求出400万以内最⼤的斐波那契数,并求出他 # 是第⼏个斐波那契数。 def f1(): a =1 yield 1 b =2 yield 2 while True: c = a + b yield c a =b b = c count=0 for i in f1(): if i >=4000000: break count += 1 l = i print(count,l) a = 1 b = 2 count = 1 while b<4000000: c = a + b a =b b = c count+=1 print(count,a) # 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"} dicta = {"a":1,"b":2,"c":3,"d":4,"f":"hello"} dictb = {"b":3,"d":5,"e":7,"m":9,"k":"world"} dictc = dicta.copy() for i in dictb: if i in dictc: dictc[i] = dictc[i] + dictb[i] else:dictc[i] = dictb[i] print(dictc) # 5、什么是装饰器?写⼀个装饰器,可以打印输出⽅法执⾏时长的信息(8分) import time def wrapper(func): def inner(*args,**kwargs): start = time.time() ret = func(*args,**kwargs) print(time.time()-start) return ret return inner # 6、请写出log的实现(主要功能是打印函数名)(8分) # @log # def now(): # print ‘2017-08-31’ # >>>now() # 输出: # call now(): def log(func): def inner(*args,**kwargs): print('这是调用的%s函数'%(func.__name__)) ret = func(*args,**kwargs) return ret return inner # 2017-08-31 # 附加题(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(fields): # fields_lst = fields.split('|') # data1 = data.copy() # result={} # for key in data: # if type(data[key]) == dict: # data1.update(data[key]) # for i in fields_lst: # if i in data1: # result[i]=data1[i] # return result # msg = input('请输入您的内容:') # print(select(msg)) # fields ='fld2|fld3|fld7|fld19' fields_lst = fields.split('|') l = [data] result={} while l: d = l.pop() for i in d: if type(i) ==dict: l.append(i) else: if i in fields_lst: result[i]=data[i] print(result) fields ='fld2|fld3|fld7|fld19' fields_lst = fields.split('|') print(fields_lst) l = [data] result={} while l: d = l.pop() for i in d: if type(d[i]) ==dict: l.append(d[i]) else: if i in fields_lst: result[i]=d[i] print(result)