第二次考试 试题

# Python11  期第二次考试(基础数据类型与函数部分)# 考试时长:3个小时                               满分:105分# 一,选择题(每题2分,共24分)# 1、python不支持的数据类型有## A、char## B、int## C、float## D、list# 2、## x = “foo”## y = 2## print(x+y)##  A.foo   B.foofoo     C.foo2     D.2     E.TypeError

# 3、关于字符串下列说法错误的是## A、字符串应该视为长度为1的字符串## B、字符串可以转化成数字## C、既可以用单引号,也可以用双引号创建字符串## D、在三引号字符串中可以包含换行回车等特殊字符## 4、以下不能创建一个字典的语句是## A、dic1 = {}## B、dic2 = {123:345}## C、dic3 = {[1,2,3]:‘uestc‘}## D、dic3 = {(1,2,3):‘uestc‘}## 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## 6、已知x=43,ch=‘A’,y = 1,则表达式(x>=y and ch <‘b’ and y)的值是# A、0      B、1     C、出错     D、True# 7、下列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## 8、若k为整形,下述while循环执 的次数为:## k=1000# while k>1:# print(k)# k=k/2##  A.9           B.10       C.11      D.100# 9、以下叙述正确的是:# A、continue语句的作用是结束整个循环的执行# B、只能在循环体内使用break语句# C、在循环体内使用break语句或continue语句的作用相同# D、从多层循环嵌套中退出时,只能使用goto语句# 10、下面的语句哪个会无限循环下去:## 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# 11、下列说法正确的是(多选,选错不得分):#这题有争议# A,# a = [1,2,3]# b = [1,2,3]# a与b指向同一个内存地址。# B,# i1 = 356# I2 = 356# i1 与 i2是同一个内存地址。# C,# s1 = ‘laonanhai’# s2 = ‘laonanhai’# s1 与 s2 是同一个内存地址。# D,tu = (1) tu是元组类型。# 12、下面的代码,哪些会输出1,2,3三个数字(多选,选错不得分):# A、# for i in range(3):## print(i)## print(i+1)# 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)

#答案1.A 2.E 3.A 4.C 5.D 6.B 7.AD 8.B 9.B 10.B 11.C 12.ABD

# 二,简答题(共42分)# 1、is 和 == 的区别 (2分)#答:is是内存地址的比较,‘==’是数值比较# 2、Python 如何实现tuple和list的转换。(2分)#答:# # 元祖转换列表:# tu=(1,2,3)# li=list(tu)# print(li)# # 列表转换元祖:# li=[1,2,4]# tu1=tuple(li)# print(tu1)# 3、list和tuple有什么不同 (2分)#答:1,list列表属于可变数据类型,tuple属于不可变数据类型;2,list可以进行增删改查的动作,tuple一般不能动,儿# 子不能改,孙子可以改。tuple只可以查看# 4、*args和**kwargs在什么情况下会使到?请给出使 **kwargs的事例(2分)#答:在传参不确定有几个参数的时候会使用到,(动态传参)# def func(*args,**kwargs):#     print(111)# print(func(1,2,3,a=4,b=5))

# 5、Python中什么数据类型存在小数据池?小数据池有什么作用?(2分)#答:int,-5---256以内有小数据池,str有特殊字符不存在小数据池。作用:节省内存空间# 6、在Python3x版本中,s1 = ‘老男孩’,如何将s1转化成utf-8的bytes类型?转化成功之后,得到了s2,如何将s2转化成# gbk的bytes类型(请写出具体代码)?(3分)# 答:# s1=‘老男孩‘# s2=s1.encode(‘utf-8‘)# print(s2)# s3=s2.decode(‘utf-8‘)# s4=s3.encode(‘gbk‘)# print(s4)

# 7、有如下操作,最后dic的结果是什么?为什么?(2分)# dic = dict.fromkeys([‘barry‘,‘alex‘,],[])# dic[‘barry‘].append(666)#  print(dic)#答:{‘barry‘: [666], ‘alex‘: [666]}   因为字典里两个K对应的列表是同一个列表。默认参数为可变数据类型# 8、请描述unicode,utf-8,gbk等编码之间的关系?(2分)#unicode为非bytes类型,python3默认此编码,utf-8和gbk编码为bytes类型,三者之间可以转换,解码用encode,编码用decode# 9、l = [1,1,2,2,3,4,5,5,6,6,7,8]将此列表去重。(2分)# 答:list(set(l))#  10、有如下代码,写出最后结果,并解释为什么。(3分)# l1 = [1,[22,33,44],3,4,]# l2 = l1#  l3 = l1.copy()# l1.append(666)#  l1[1].append(‘55‘)# Print(l1,l2,l3)#答:[1, [22, 33, 44, ‘55‘], 3, 4, 666] [1, [22, 33, 44, ‘55‘], 3, 4, 666] [1, [22, 33, 44, ‘55‘], 3, 4]# 原因:赋值运算公用一个内存地址,python执行顺序为从上到下依次执行,l1增加了两个元素,l2跟l1一样,浅copy,l3不增加666# 11、有如下代码,说出l1与l2的关系?(2分)# l1 = [1,2,3,4,5]# l2 = l1[:]#答:l2对1进行切片操作,结果为[1, 2, 3, 4, 5],浅copy# 12、‘1,2,3’如何变成[‘1’,’2’,’3’]? [‘1’,’2’,’3’]如何变成[1,2,3]?(写具体代码)(4分)#答:# s= ‘1,2,3‘# l1 = s.strip().split(‘,‘)# print(l1)# l2=[]# for i in l1:#     l2.append(eval(i))# print(l2)

# 13、如何生成[1,4,9,16,25,36,64,81,100]尽量用一行实现。(2分)#答:# l=[i**2  for i in range(1,11)]# print(l)# 14、map(str,[1,2,3,4,5,6,7,8,9])输出什么?(2分)#答:迭代器或者迭代器地址或者map对象# 15、下面代码输出结果是什么?两次list1的结果相同么?为什么?(4分)# def extendList(val,list=[]):#      list.append(val)#      return list#  list1 = extendList(10)# print(‘list1=%s‘%list1)#  list2 = extendList(123,[])# print(‘list2=%s‘%list2)#  list3 = extendList(‘a‘)# print(‘list3=%s‘%list3)#  print(‘list1=%s‘%list1)# 答:list1=[10]# list2=[123]# list3=[10, ‘a‘]# list1=[10, ‘a‘]# 不相同,默认参数为可变数据类型,指向的是同一个# 16、下面代码的执行结果是什么?为什么?(4分)#  a = 1#   def func1():#       global  a#          a += 1#      print(a)#   func1()# 答:报错# 这段代码呢?# def wrapper():#           a = 1#           def inner():#             nonlocal  a#               a += 1#               print(a)#           inner()#     wrapper()# 答:内部作用域不能对外部作用域的变量进行改变。# 17、什么是闭包(closure),为什么要用它?(2分)#答:闭包就是内层函数对外层函数(非全局)变量的引用。#闭包有节省内存空间的作用,能开辟一个特殊的空间,保存变量数据,还能方便函数调用,可以作为装饰器的一部分装饰函数,所以要用他# 三,代码题。## 1、用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb#  name=[‘oldboy’,‘alex‘,‘wusir‘](4分)map  lambda# name=[‘oldboy‘,‘alex‘,‘wusir‘]# ret = map(lambda x:x+‘_sb‘,[‘oldboy‘,‘alex‘,‘wusir‘])# for i in ret:#     print(i)

# 2,用filter函数过滤出单价大于100的股票。(4分)# portfolio = [#   {‘name‘: ‘IBM‘, ‘shares‘: 100, ‘price‘: 91.1},#     {‘name‘: ‘AAPL‘, ‘shares‘: 50, ‘price‘: 543.22},#     {‘name‘: ‘FB‘, ‘shares‘: 200, ‘price‘: 21.09},#     {‘name‘: ‘HPQ‘, ‘shares‘: 35, ‘price‘: 31.75},#     {‘name‘: ‘YHOO‘, ‘shares‘: 45, ‘price‘: 16.35},#     {‘name‘: ‘ACME‘, ‘shares‘: 75, ‘price‘: 115.65}]# 答:

# m = filter(lambda k: k[‘price‘] > 100, portfolio)# print(list(m))#

# 3,有文件t1.txt里面的内容为:(6分)# id,name,age,phone,job#     1,alex,22,13651054608,IT#     2,wusir,23,13304320533,Tearcher#     3,taibai,18,1333235322,IT# 利用文件操作,将其构造成如下数据类型。# [{‘id‘:‘1‘,‘name‘:‘alex‘,‘age‘:‘22‘,‘phone‘:‘13651054608‘,‘job‘:‘IT‘},# ......]#答:# l1 = []# with open(‘t1.txt‘,encoding=‘utf-8‘) as f1:#     l2 = f1.readline().strip().split(‘,‘)#     for i in f1:#         l3 = i.strip().split(‘,‘)#         dic = {}#         for j in range(len(l3)):#             dic[l2[j]] = l3[j]#         l1.append(dic)# print(l1)

## 4,写程序完成下列功能:(20分,有5分加分项,共计25分)## 1),启动程序,首页面应该显示成如下格式:#     欢迎来到博客园首页#     1:请登录#     2:请注册#     3:文章页面#     4:日记页面#     5:评论页面#     6:收藏页面#     7:注销#     8:退出程序# 2),用户输入选项,3~6选项必须在用户登录成功之后,才能访问成功。# 3),用户选择登录,用户名密码从register文件中读取验证,三次机会,没成功则结束整个程序运行,# 成功之后,可以选择访问3~6项,访问页面之前,必须要在log文件中打印日志,# 日志格式为-->用户:xx 在xx年xx月xx日 执行了 %s函数,访问页面时,页面内容为:欢  迎xx用户访问评论# (文章,日记,收藏)页面# 4),如果用户没有注册,则可以选择注册,注册成功之后,可以自动完成登录(完成自动登录+5 分),# 然后进入首页选择。# 5),注销用户是指注销用户的登录状态,使其在访问任何页面时,必须重新登录。# 6),退出程序为结束整个程序运行。#答:

status_dic = {    ‘username‘: None,    ‘status‘: False,}

flag1 = True

def login(*args,**kwargs):    i = 0    while i < 3:        if args:            status_dic[‘username‘] = args[0]            status_dic[‘status‘] = True            return True        else:            username = input(‘请输入用户名:‘).strip()            password = input(‘请输入密码:‘).strip()            with open(‘register‘,encoding=‘utf-8‘) as f1:                for line in f1:                    line_list = line.strip().split()                    if username == line_list[0] and password == line_list[1]:                        print(‘登录成功‘)                        status_dic[‘username‘] = username                        status_dic[‘status‘] = True                        return True                else:                    print(‘输入不正确,请重新输入,还剩%s机会‘ % (2-i))                    if i == 2: return Quit()                i += 1

def register(*args, **kwargs):    flag = True    while flag:        username = input(‘请输入要注册的用户名:‘)        f1 = open(‘register‘,encoding=‘utf-8‘)        for i in f1:            if username in i:                print(‘用户名重复,请重新输入‘)                f1.close()                break        else:            f1.close()            password = input(‘请输入要注册的密码:‘).strip()            f2 = open(‘register‘, encoding=‘utf-8‘, mode=‘a‘)            f2.write(‘\n{}\t{}‘.format(username, password))            f2.close()            print(‘恭喜你,注册成功,已经自动为您登录,现在跳转到首页...‘)            return login(username,password)

def wrapper(func):          #func 函数名    def inner(*args,**kwargs):          #2        if status_dic[‘status‘]:            ret = func(*args,**kwargs)          #4            return ret        else:            print(‘请先进行登录‘)            if login():                ret = func(*args, **kwargs)                return ret    return innerimport timedef log_record(func):       #func==inner1    def inner(*args,**kwargs):          #1        struct_time = time.localtime()        time_now = time.strftime("%Y-%m-%d %H:%M:%S", struct_time)        with open(‘log_func‘,‘a‘,encoding=‘utf-8‘) as f1:            f1.write(‘用户:%s 在%s 执行了 %s函数\n‘%(status_dic[‘username‘],time_now,func.__name__))        ret = func(*args,**kwargs)     #5        return ret    return inner

@wrapper            #article = wrapper(article)    里article==inner1    外article==inner2@log_record           # article=log_record(article)  里article,函数名   外article==inner1def article():          #3    print(‘欢迎%s访问文章页面‘ % status_dic[‘username‘])

@wrapper@log_recorddef diary():    print(‘欢迎%s访问日记页面‘ % status_dic[‘username‘])

@wrapper@log_recorddef comment():    print(‘欢迎%s访问评论页面‘ % status_dic[‘username‘])

@wrapper@log_recorddef enshrine():    print(‘欢迎%s访问收藏页面‘ % status_dic[‘username‘])

def login_out():    status_dic[‘username‘] = None    status_dic[‘status‘] = False    print(‘注销成功‘)

def Quit():    global flag1    flag1 = False    return flag1

choice_dict = {1: login,2: register,3: article,4: diary,5: comment,6: enshrine,7: login_out,8: Quit,}

while flag1:    print(‘欢迎来到博客园首页\n1:请登录\n2:请注册\n3:文章页面\n4:日记页面\n5:评论页面\n6:收藏页面\n7:注销\n8:退出程序‘)    choice = input(‘请输入您选择的序号:‘).strip()    if choice.isdigit():        choice = int(choice)        if 0 < choice <= len(choice_dict):                choice_dict[choice]()        else:            print(‘您输入的超出范围,请重新输入‘)

else:        print(‘您输入的选项有非法字符,请重新输入。‘)

原文地址:https://www.cnblogs.com/zzw731862651/p/8762206.html

时间: 2024-11-12 23:27:06

第二次考试 试题的相关文章

[家里蹲大学数学杂志]第041期中山大学数计学院 2008 级数学与应用数学专业《泛函分析》期末考试试题 A

1 ( 10 分 ) 设 X 是 Banach 空间, f 是 X 上的线性泛函. 求证: f∈L(X) 的充分必要条件是 N(f)={x∈X; f(x)=0} 是 X 的闭线性子空间. 证明: 必要性. 设 N(f)?xn→x , 则 f(x)==limn→∞f(xn)(f∈X?)limn→∞0=0. 充分性. 用反证法. 若 f 无界, 则 ? n∈N, ? xn∈X, s.t. |f(xn)|>n∥xn∥, 而 ∥∥∥xnf(xn)∥∥∥<1n.(1) 令 yn=xnf(xn)?x1f(

2016年上半年软件设计师考试试题上午卷(26-50题)

获得武功秘籍,修的一身好功夫,就能如鱼得水般行走于江湖中.获得软考真题,取得命题方向,成功通过考试就游刃有余.下面希赛软考学院为您整理了2016年上半年软件设计师考试真题上午卷,助你轻松备考. 2016年上半年软件设计师考试试题上午卷(26-50题) ●进程P1.P2.P3.P4和P5的前趋图如下图所示: 若用PV操作控制进程P1.P2.P3.P4和P5并发执行的过程,则需要设置5个信号S1.S2.S3.S4和S5,且信号量S1-S5的初值都等于零.下图中a和b处应分别填(26):c和d处应分别

2016年上半年软件设计师考试试题上午卷(1-25题)

获得武功秘籍,修的一身好功夫,就能如鱼得水般行走于江湖中.获得软考真题,取得命题方向,成功通过考试就游刃有余.下面希赛软考学院为您整理了2016年上半年软件设计师考试真题上午卷,助你轻松备考. 2016年上半年软件设计师考试试题上午卷(1-25题) ●VLIW是(1)的简称. A.复杂指令系统计算机 B.超大规模集成电路 C.单指令流多数据流 D.超长指令字 ●主存与Cache的地址映射方式中,(2)方式可以实现主存任意一块装入Cache中任意位置,只有装满才需要替换. A.全相联 B.直接映射

2016年上半年软件设计师考试试题上午卷(51-75题)

获得武功秘籍,修的一身好功夫,就能如鱼得水般行走于江湖中.获得软考真题,取得命题方向,成功通过考试就游刃有余.下面希赛软考学院为您整理了2016年上半年软件设计师考试真题上午卷,助你轻松备考. 2016年上半年软件设计师考试试题上午卷(51-75题) ●数据的物理独立性和逻辑独立性分别是通过修改(51)来完成的. A.外模式与内模式之间的映像.模式与内模式之间的映像 B.外模式与内模式之间的映像.外模式与模式之间的映像 C.外模式与模式之间的映像.模式与内模式之间的映像 D.模式与内模式之间的映

Java语言程序设计期中考试试题

Java语言程序设计期中考试试题 一.编程题 1. 抽象类 创建闭合图形抽象类(ClosedFigure),定义抽象方法计算面积:创建继承平面图形抽象类的两个子类椭圆(Ellipse)和矩形(Rectangle),在子类中实现计算图形面积的方法.设计测试类Test1进行相应的测试,根据不同类型的平面图形进行相应的面积计算.(30分) 提示:根据椭圆第一定义,用a表示椭圆长半轴的长,b表示椭圆短半轴的长,且a>b>0, 椭圆面积公式:L=πab 2.接口 创建接口Speakable和Runer,

2018-03-11 20165235 祁瑛 Java第二周考试总结

20165235 祁瑛 Java第二周考试总结 课后习题p16 代码编写 class Person { void speakHello (){ System.out.print("nin hao "); System.out.println("nice to meet you"); } } public class Xiti { public static void main (String arg[]){ Person zhang = new Person();

20165315 第二次考试课下补做

20165315 第二次考试课下补做 课上内容的补做,结果截图 参考http://www.cnblogs.com/rocedu/p/6766748.html 编程实现1!+2!+3!+... + N!的功能,N由命令行传入,比如类名为SumofRecur, java SumofRecur 8 给出1!+2!+3!+... + 8!的值, 提交运行结果的截图(至少五张),注意测试正常,异常,边界情况, 比如java SumofRecur -8,java SumofRecur 0,java Sumo

.C#认证考试试题汇编:第一单元:1,11 第二单元:1,11

第一单元1,11 好久没用异或都快忘了,就让我们一起来了解哈啥子事异或 说的这个,就不经意让我想起书上的几种交换值得方法了 我这儿说的交换的方法是,不使用第三个变量来交换,而是两个 实现条件是C a=100,b=10;第一种 缺点可能会如果超出范围溢出a=a+b; a=110,b=10b=a-b; b=100,a=110a=a-b; a=-10,b=100b=100,a=10;第二种 缺点可能会如果超出范围溢出a=a*b;a=1000,b=10b=a/b;b=100,a=1000a=a/b;a=

C#认证考试试题汇编: 第二单元:1,11

1. using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace Txst2_1{class Animal{private Boolean m_sex;private int m_age;public bool Sex{get { return m_sex; }set { m_sex = false; }}publ