Q1: 请写出一段Python实现删除一个列表中的重复元素?

#使用set

a=[1,2.3,1,5,6,7,5]

print(set(a))

Q2:一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

if __name__ == '__main__':

i = 1

x = 100

sum = 0

while i <= 10:

sum += x

x = x/2

sum += x

i += 1

print('一共经过%f米,第10次反弹的高度是%f'%(sum, x))

Q3: Python中浅拷贝和深拷贝怎么用?

浅拷贝copy.copy(),没有拷贝子对象,所以原始数据改变,子对象改变。

深拷贝copy.deepcopy(),包含对象里面的子对象的拷贝,所以原始对象的改变不会造成深拷贝里的任何子元素的改变,这样,在改变更新对象的时候,原对象才能不受影响,也就是保持原始数据不变

import copya = [1, 2, 3, 4, ['a', 'b']]  # 原始对象b = a  # 赋值

c = copy.copy(a)  # 对象拷贝,浅拷贝

d = copy.deepcopy(a)  # 对象拷贝,深拷贝

a.append(5)  # 修改对象a

a[4].append('c')

print(a)

print(b)

print(c)

print(d)

Q4: Python中打开文件可以自动关闭的关键字是什么?

#使用with

with open("d:\\test.txt",'r') as f:

print f.readlines()

Q5: 列出python中可变数据类型和不可变数据类型,并简述原理

不可变数据类型:数值型、字符串型string和元组tuple。

不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象(一个地址)

可变数据类型:列表list和字典dict;

允许变量的值发生变化,即如果对变量进行append之类操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。

Q6:介绍一下except用法和作用?

try…except…except…[else…][finally…]

执行try下的语句,如果引发异常,则执行过程会跳到except语句。对每个except分支顺序尝试执行,如果引发的异常与except中的异常组匹配,执行相应的语句。如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。

try下的语句正常执行,则执行else块代码。如果发生异常,就不会执行

如果存在finally语句,最后总是会执行。

Q7:用Python实现打印99乘法表

for i in range(1,10):

for j in range(1,i+1):

print ("%s*%s=%s "%(i,j,i*j),end="")

print()

Q8:Python中dict和json格式怎么转换

#dict转json:

import json
dict1 = {"zhangfei":1, "liubei":2, "guanyu": 4, "zhaoyun":3}
myjson = json.dumps(dict1)

#json转dict:

mydict = json.loads(myjson)

Q9:字符串实现反转

str1 = 'iruance'
str1[::-1]

Q10: 将2个元组合并成一个字典(1个元组的值为key,另1个元组的值为value形式)

a = ("zhangfei", "guanyu")
b = (66, 80)
dict(zip(a,b))

Q11: 简述装饰器的作用

装饰器是一种特殊的闭包,就是在闭包的基础上传递了一个函数,然后覆盖原来函数的执行入口,以后调用这个函数的时候,就可以额外实现一些功能了。

import time
def log(func):
    def inner_log(*args, **kw):
        print("Call: {}".format(func.__name__))
        return func(*args, **kw)
    return inner_log

@log
def timer():
    print(time.time())

Q12: 写一个冒泡排序

list1 = [2, 5, 8, 9, 3, 11]
def paixu(data, reverse=False):
    if not reverse:
        for i in range(len(data) - 1):
            for j in range(len(data) - 1 - i):
                if data[j] > data[j+1]:
                    data[j], data[j+1] = data[j+1], data[j]
        return data
    else:
        for i in range(len(data) - 1):
            for j in range(len(data) - 1 - i):
                if data[j] < data[j+1]:
                    data[j], data[j+1] = data[j+1], data[j]
        return data

print(paixu(list1, reverse=True))

Q13: Flask与Django的区别是什么?

Flask是“microframework”,主要用来编写小型应用程序,不过随着Python的普及,很多大型程序也在使用 Flask。同时,在Flask中,我们必须使用外部库。

Django适用于大型应用程序。它提供了灵活性,以及完整的程序框架和快速的项目生成方法。可以选择不同的数据库,URL结构,模板样式等。

Q14: 正则re.complie作用?

re.compile是将正则表达式编译成一个对象,加快速度,并重复使用

Q15: 有哪些提高Python运行效率的方法?

a. 使用生成器,因为可以节约大量内存;

b. 循环代码优化,避免过多重复代码的执行;

c. 核心模块用Cython  PyPy等,提高效率;

d. 多进程、多线程、协程;

e. 多个if elif条件判断,可以把最有可能先发生的条件放到前面写,这样可以减少程序判断的次数,提高效率。

Q16:有一个列表list=[2,11,16,5,9],不用sort方法,怎么实现从小到大排序?

#利用min()方法求出最小值,原列表删除最小值,新列表加入最小值,递归调用获取最小值的函数,反复操作。

list=[2,11,16,5,9]

new_list=[]

def getmin(list):

a=min(list) #获取列表最小值

list.remove(a)  #删除最小值

new_list.append(a) #将最小值加入新列表

if len(list)>0:  #保证列表中的最小值都获取完并加入新列表

get_min(list)

return new_list

new_list=get_min(list)

print new_list

Q17: Python中arg和*kwarg作用是什么?

允许我们在调用函数的时候传入多个实参,

*arg会把位置参数转化为tuple
**kwarg会把关键字参数转化为dict

def test(*arg, **kwarg):
    if arg:
        print("arg:", arg)
    if kwarg:
        print("kearg:", kwarg)
test('ni', 'hao', key='world')

Q18: Python面向对象的继承有什么特点?

a. 同时支持单继承与多继承,当只有一个父类时为单继承,当存在多个父类时为多继承。

b. 子类会继承父类所有的属性和方法,子类也可以覆盖父类同名的变量和方法。

c. 在继承中基类的构造(__init__())方法不会被自动调用,它需要在其派生类的构造中专门调用。

d. 在调用基类的方法时,需要加上基类的类名前缀,且需要带上 self 参数变量。区别于在类中调用普通函数时并不需要带上 self 参数。

Q19: 如何判断是函数还是方法?

与类和实例无绑定关系的 function 都属于函数(function)
与类和实例有绑定关系的 function 都属于方法(method)

普通函数:

def func1():
    pass
print(func1)

类中的函数:

class People(object):
     def func2(self):
         pass
     @staticmethod
     def func3():
         pass
     @classmethod
     def func4(cls):
         pass
people = People()
print(people.func2)

Q20: Python会不会出现内存泄露,为什么?

当对象之间互相引用的时候再删除的时候,可能会造成无法释放对象的情况,出现泄漏

Python编程题汇总(附答案)相关推荐

  1. docker常见面试题_测试面试题集锦(四)| Linux 与 Python 编程篇(附答案)

    本文为霍格沃兹测试学院学员学习笔记,进阶学习文末加群. 本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的.网络搜集(完善).工作日常讨论等,分为以下十个部分,供大家参考.如 ...

  2. python中json如何存放字节数组中_测试面试题集锦(四)| Linux 与 Python 编程篇(附答案)...

    本文为霍格沃兹测试学院学员学习笔记,进阶学习文末加群. 本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的.网络搜集(完善).工作日常讨论等,分为以下十个部分,供大家参考.如 ...

  3. 测试面试题集锦(四)| Linux 与 Python 编程篇(附答案)

    原文链接 本文为霍格沃兹测试学院学员学习笔记,进阶学习文末加群. 本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的.网络搜集(完善).工作日常讨论等,分为以下十个部分,供大 ...

  4. Python编程题汇总

    Python编程复习 1.1找出列表中单词最长的一个 找出列表中单词最长的一个def test():a = ["hello", "world", "y ...

  5. python课设代码_python课程编程题汇总(上)

    python编程题汇总 众所周知,由于疫情的原因,大家都在上网课,我也不例外啦~ 用这个贴子来记录也和大家分享一下我们课上的编程讨论题 中篇在此→python课程编程题汇总(中) 下篇在此→pytho ...

  6. python课程编程题汇总(中)

    python编程题汇总 众所周知,由于疫情的原因,大家都在上网课,我也不例外啦~ 用这个贴子来记录也和大家分享一下我们课上的编程讨论题 上篇在这→python课程编程题汇总(上) 下篇在这→pytho ...

  7. python编程序人民币向美元转换_python课程编程题汇总(上)

    python编程题汇总 众所周知,由于疫情的原因,大家都在上网课,我也不例外啦~ 用这个贴子来记录也和大家分享一下我们课上的编程讨论题 1.货币转换 编写货币转换程序 描述: 人民币和美元是世界上通用 ...

  8. 100+Python编程题给你练(附答案)

    大家如果能坚持独立思考完成以下题目,一定可以帮大家轻松 get Python 的编程技能.目前,这个项目已经获得了 3994 Stars,2952 Forks. Github 地址:Python-pr ...

  9. Python编程题每日一练day1(附答案)

    Python编程题每日一练day1

  10. python 判断是不是汉字危机阅读答案_汉字危机_现代文阅读题在线测试(附答案)_高三语文_在线做题网...

    汉字危机 _ 现代文阅读题在线测试(附答案) _ 高三语文 _ 在线做题网 汉字危机 王小峰 中国的书写交流进入键盘划时代只有十几年, 任何一个初次接触电脑的人通过简单的学 习都能迅速掌握文字输入. ...

最新文章

  1. VIO在走廊弱纹理环境下的优化——VINS-Mono的点线紧耦合优化
  2. 再谈 $* 和 $@ 在 Bash 中的表现
  3. Guest权限突破8法(整理)
  4. linux 完全卸载软件方法
  5. 自定义的OnFileSaveAs函数无法响应
  6. 《深入理解Android:卷III A》一一第3章 深入理解AudioService
  7. (转)tomcat配置访问项目时不需要加项目名称
  8. java根据field名获取变量_Java反射有多强?这5大神奇功能,你需要了解!
  9. 凯撒密码加密器(命令行版)
  10. 计算机辅助汽车人机工程未来挑战,汽车人机工程学
  11. ORL Face94 LFW
  12. 为什么要升级PLM系统
  13. 02-Hadoop集群搭建
  14. angular Tabs (ui.bootstrap.tabs)
  15. php获取汉字的首字母,PHP获取汉字的首字母
  16. 2022-2028年中国保健食品行业市场运营格局及前景战略分析报告
  17. 年底大标预备!2019通信招投标大势到底是怎样的?
  18. 研究生发论文的流程?
  19. Mysql磁盘空洞的成因以及重建表的几种方式
  20. 揭示win32 api拦截细节

热门文章

  1. WIn10桌面美化(一)Rainmeter的使用
  2. java正则表达式的语法详解及常用方法
  3. 增值税发票税控开票软件数据接口规范
  4. Wireshark使用教程用户手册
  5. 网络协议分析-TCP协议分析
  6. 如何用VS2015手撕白菜
  7. SMA、SPI、LTE
  8. 词法分析器的java代码_利用Java实现简单的词法分析器实例代码
  9. 割平面法 matlab,割平面法matlab
  10. kettle中的switch_kettle 教程(三):条件判断 Switch Case