python基础题

大家尽可能别把答案删掉自己做一遍 一定让初学者怀疑人生

一、选择题(32分)
1、python不支持的数据类型有:(A)
  A、char  B、int  C、float  D、list
2、x = “foo”
y = 2
print(x+y) (E)
  A.foo   B.foofoo   C.foo2   D.2   E.An exception is thrown
 解释:不同数据类型不可以相加,但是字符串可以与数字相乘,以上例题若改为print(x*y),结果为B答案
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‘}
解释:字典的key值必须为不可变数据类型
5.答案为:(D)
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
解释:kvps与thecopy是赋值关系,指向的为同一个内存地址,一个发生变化,则均会发生变化
6、以下何者是不合法的布尔表达式:(B)
  A.x in range(6)   B.3=a  C.e>5 and 4==f   D(x-6)>5
解释:py2中range()为列表类型,xrange()为一个生成器,py3中只有range(),与py2中的xrange()性质基本相同,A答案在这三种环境中均为合法的bool值,
bool表达式即有判断作用的语句,B答案为赋值,无判断作用
7、下列表达式的值为True的是:(无答案)
  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
解释:结果与y值相同,若表达式改为:(x>=y and ch<‘b’ and y>0),则结果为:True
9、下列表达式中返回 为True的是:(C)
  A、3>2>2  B、’abc’>’xyz’  C、0x56 >56  D、(3,2)<(‘a’,’b’)
解释:A、B结果为False,正确答案为C,十六进制数字比十进制大,D答案不合法,int与str数据类型不可以比较,若改为(‘a‘,2)<(‘b‘,3)则输出True
10、下列Python语句正确的事:(AD)
  A、min = x if x < y else y    B、max = x > y ? x : y (c语言三元运算符) C、if(x>y) print(x)    D、while True:pass
11.若k为整形,下述while循环执的次数为:(A)
k=1000
  while k>1:
    print k
    k=k/2
  A.9   B.10  C.11   D.100
解释:通过print语句判断为py2中代码,py2中除法为向下取整
12、以下叙述正确的是:(B)
  A、continue语句的作用是结束整个循环的执行       B、只能在循环体内使用break语句
  C、在循环体内使用break语句或continue语句的作用相同    D、从多层循环嵌套中退出时,只能使用goto语句
13、关于python中的复数,下列说法错误的是:(B)
   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
k = k+1
2、L=range(100) #生成器可以可以直接作为列表取值
  1) 取第一到第三个元素_______L[0:4]
  2) 取倒数第二个元素_______L[-2]
  3) 取后十个元素_______L[-10:]
  4) 把L复制给L1用_______L1=L.copy()
3、判断dict有没有某个key用的方法是_______dic.get(key)
4、获取list的元素个数,和向末尾追加元素的方法分别是______len() _______append()
5.以下的代码的输出将是什么: _______

def extendList(val,list=[]):
list.append(val)
return list
list1 = extendList(10)
list2 = extendList(123, [])
list3 = extendList(‘a‘)
print(‘list1 = % s‘ %list1) #输出结果为:list1 = [10, ‘a‘]
print(‘list2 = % s‘ %list2) #输出结果为:list2 = [123]
print(‘list3 = % s‘ %list3) #输出结果为:list3 = [10, ‘a‘]
解释:函数中可变默认参数存在陷阱,重复调用会使原默认参数发生变化
6.下 程序的输出结果是:_________yes

x=True
y=False
z=False
if x or y and x:
print "yes"
else:
print "no"
三、简答题(20分)
1、如何判断一个变量是不是字符串。------if type(name)==str
2、is 和 == 的区别。
3、Python 如何实现tuple和list的转换。------tuple(),list()
4、list和tuple有什么不同。------list为可变数据类型,tuple为不可变数据类型
5、如何得到列表list的交集与差集。------利用set(),将列表转换为集合数据类型,利用difference()方法求差集,利用intersection()方法求交集
6、Python中定义函数时如何书写可变参数和关键字参数?------顺序为(位置参数,*args,关键参数,**kwargs)
7、*args和**kwargs在什么情况下会使 到?请给出使 **kwargs的事例------定义函数时参数不确定时用,例装饰器
8、请描述unicode,utf-8,gbk等编码之间的关系?
9、如何使用python删除一个文件
  import os
  os.remove(‘file’)
10、def func(a,b,*args,c=0,**kwargs):pass ,*args,**kwargs的作用是什么?
四、写代码(38分)
1、d={‘a’:1,’b’:2,’c’:3}请打印出key、value对(3分)

#思路一:
d={‘a‘:1,‘b‘:2,‘c‘:3}
for i in d:
print(i,d)
#思路二:
d = {‘a‘: 1, ‘b‘: 2, ‘c‘: 3}
for a,b in d.items():
print(a, b)
2、请写出 段Python代码实现删除 个list 的重复元素。(6分)

#方法一:
li=[1,‘a‘,2,4,2,‘a‘]
se=set(li)
li=list(se)
print(li)
#方法二:
li=[1,‘a‘,2,4,2,‘a‘]
result=[]
for i in range(0,len(li)):
for j in range(i+1,len(li)):
if li==li[j]:
result.append(li)
for i in li:
if i not in result:
result.append(i)
print(result)
3、使 Python/C 上机解决以下题 (13分)
1)、斐波那契数列1,2,3,5,8,13,21.....根据这样的规律,编程求出400万以内最大的斐波那契数,并求出他是第 个斐波那契数。
li=[1,2]
while li[-1]<4000000:
li.append(li[-1]+li[-2])
del li[-1]
print(li[-1])
print(len(li))
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‘}
dic={}
for key1 in dicta:
for key2 in dictb:
if key1==key2:
dic[key1]=dicta[key1]+dictb[key2]
for a in dicta:
if a not in dic:
dic[a]=dicta[a]
for b in dictb:
if b not in dic:
dic=dictb
print(dic)
5、什么是装饰器?写 个装饰器,可以打印输出 法执 时长的信息(8分)
  装饰器:在不修改原函数内容及调用方式上,实现函数的功能扩展

import time
def timmer(func):
def inner(*args,**kwargs):
start=time.time()
ret=func(*args,**kwargs)
end=time.time()
print(end-start)
return ret
return inner
@timmer
def name(a,b):
print(‘%s+%s等于%s‘ %(a,b,a+b))
name(3,5)
6、请写出log的实现(主要功能是打印函数名)(8分)
  @log
  def now():
    print ‘2017-08-31’
  >>>now()
  输出: call now():
  2017-08-31

def log(func):
def inner(*args,**kwargs):
print(‘call %s()‘ %func.__name__)
ret=func(*args,**kwargs)
return ret
return inner
@log
def now():
print(‘2017-08-31‘)
now()

data={‘time‘:‘2016-08-05T13;13:05‘,
‘some_ID‘:‘ID1234‘,
‘graps1‘:{‘fld1‘:1,‘fld2‘:2},
‘xxx2‘:{‘fld3‘:0,‘fld5‘:0.4},
‘fld6‘:11,
‘fld7‘:7,
‘fld‘:8
}
# 类递归思想 # 栈的思想
fields = ‘fld2|fld3|fld7|fld9‘
fields_lst = fields.split(‘|‘) #[‘fld2‘, ‘fld3‘, ‘fld7‘, ‘fld9‘]
result = {}
data_lst = [1]
while data != 1:
for key in data:
if key in fields_lst:
result[key] = data[key]
if type(data[key]) == dict:
data_lst.append(data[key])
data = data_lst.pop()
print(result)

原文地址:https://www.cnblogs.com/xcsg/p/10449654.html

时间: 2024-11-05 20:41:51

python基础题的相关文章

Python基础课:一起学习python基础题

python最近老火了,万能开发语言,很多小伙伴们要么初学,要么从别的开发语言转过来的,如果你能把下面几道基础题不费劲的写出来,基础应该可以打80分,可以进行进阶的学习了,如果下面的题目如果做不出来,拜托不要耽误时间,赶快打好基础,勿在浮沙筑高台. 题目出给新鸟打基础的,实现答案的方法千千万,如果老鸟有更厉害的答案就不要喷了,先谢谢了. 还有新鸟先不要看答案,不要看答案,不要看答案,(重要的事情说三遍)自己先去解,用自己最简单的想法去实现,能用python自带的方法就不要自己造轮子. 好啦,开始

Python基础题(二)

1.写函数,,用户传入修改的文件名,与要修改的内容,执行函数,完成批了修改操作 def modify_file(filename,old,new): import os with open(filename,'r',encoding='utf-8') as \read_f,open('.bak.swap','w',encoding='utf-8') as write_f: for line in read_f: if old in line: line=line.replace(old,new)

python面试题二:Python 基础题

1.位和字节的关系? 2.b.B.KB.MB.GB 的关系? 3.请至少列举5个 PEP8 规范(越多越好). 4.通过代码实现如下转换: 二进制转换成十进制:v = “0b1111011”?        十进制转换成二进制:v = 18?        八进制转换成十进制:v = “011”?       十进制转换成八进制:v = 30?       十六进制转换成十进制:v = “0x12”?       十进制转换成十六进制:v = 87 5.请编写一个函数实现将IP地址转换成一个整数

Python 基础练习 PAT水题(二)

#学习笔记 #用以练习Python基础 # 原题链接:https://www.patest.cn/contests/pat-b-practise/1011 1011. A+B和C (15) 给定区间[-231, 231]内的3个整数A.B和C,请判断A+B是否大于C. 输入格式: 输入第1行给出正整数T(<=10),是测试用例的个数.随后给出T组测试用例,每组占一行,顺序给出A.B和C.整数间以空格分隔. 输出格式: 对每组测试用例,在一行中输出"Case #X: true"如果

Python 基础练习 PAT水题(三)

#学习笔记 #用以练习python基础 # 原题链接:https://www.patest.cn/contests/pat-b-practise/1039 1039. 到底买不买(20) 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子:如果不是,那么告诉她缺了多少珠子. 为方便起见,我们用[0-9].[a-z].[A-Z]范围内的字符来表示颜色

Python 基础练习 PAT水题(一)

#学习笔记 #用以练习Python基础 # #原题链接 https://www.patest.cn/contests/pat-b-practise/1046 1046. 划拳(15) 划拳是古老中国酒文化的一个有趣的组成部分.酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字.如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒.两人同赢或两人同输则继续下一轮,直到唯一的赢家出现. 下面给出甲.乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒. 输入格式: 输

Python 基础练习 PAT水题(四)

#学习笔记 #用以练习python基础 # 原题链接:https://www.patest.cn/contests/pat-b-practise/1050 1050. 螺旋矩阵(25) 本题要求将给定的N个正整数按非递增的顺序,填入"螺旋矩阵".所谓"螺旋矩阵",是指从左上角第1个格子开始,按顺时针螺旋方向填充.要求矩阵的规模为m行n列,满足条件:m*n等于N:m>=n:且m-n取所有可能值中的最小值. 输入格式: 输入在第1行中给出一个正整数N,第2行给出N

Python基础数据类型题

Python基础数据类型 题考试时间:三个小时 满分100分(80分以上包含80分及格)1,简述变量命名规范(3分) 1.必须是字母,数字,下划线的任意组合. 2.不能是数字开头 3.不能是python中的关键字 4.变量不能是中文 5.变量不能过长 6, 变量要具有可描述性 2,字节和位的关系.(2分)8位等于1个字节3,'A太白'使用utf-8编码时,占的位数和字节数,是多少?使用gbk编码时,占的位数和字节数,是多少.(2分)'A太白'使用utf-8编码时,占56位和7个字节,使用gbk编

python基础面试题整理---从零开始 每天十题(01)

最近在弄flask的东西,好久没写博客的,感觉少了点什么,感觉被别人落下好多,可能渐渐的养成了写博客的习惯吧.也是自己想学的东西太多了(说白了就是基础太差了,只是know how,不能做到konw why). 不说那些毒鸡汤了,我们来说说我们今天的python基础面试题吧. 一,Q:python的优缺点有什么? A:优点: 1,基础语法简单易学,对于初学者来说,语法还是相对简单的,比较容易学习,网上的学习资料也很多.    2,面向对象,在python里继承和封装较多,而python的多态还是相