1,简述列举了解的编程语言及语言间的区别?

Python      解释型语言,代码简洁,易懂
C语言 编译型语言,底层语言
c++ 编译型语言,在C语言基础上加了面向对象
Java 混合型语言,可拓展性高
Golang 编译型语言,强类型,代码规范,高并发 语言特点: 灵活简洁,语言优美 可读性强, 语言类型:
解释型:逐行转化,运行效率低,性能差,开发效率高。兼容性好,跨平台
编译型 :一次性编译成二进制文件,执行效率高,兼容性差,
动态语言:不用声明变量的数据类型(脚本类语言)
静态语言:需要声明变量的数据类型 第三方库:python定位是任其发展,开源库很多,应用领域广

2,列举Python2和Python3的区别?

python2只更新支持到2020年
print:2不加括号,3加括号
input:2中用户输入解析为int类型,raw_input为字符串类型,3直接是字符串类型
range:2是列表,xrange是可迭代对象;3是可迭代对象
继承关系:2是新式类+经典类;3是新式类
数字表示:2,int和long(长整形,超出2**63-1,数字末尾有一个L);3所有整型都是int

3,看代码写结果:

v1 = 1 or 2
# v1 = 1 v2 = 3 and 3 or 9 and 0
# v2 = 7

4,以下的值有什么不同?

v1 = [1,2,3]
v2 = [(1),(2),(3)]
v3 = [(1,),(2,),(3,)] """
v1 是普通列表,元素为int
v2 是列表里面加了小括号,和v1一样,int类型
v3 列表嵌套元祖,元组的元素为int
"""

5,用一行代码实现数值交换。

a = 1
b = 2 a,b = b,a

6,Python中单引号、双引号、三引号的区别?

双引号可以互相包含,避免转义
三引号支持长字符串的换行,会保留其格式

7,is和==的区别?

is 是判断内存地址是否一致
== 是判断两个对象的值是否相等

8,python里如何实现tuple和list的转化?

tuple(list)     # 列表转元组
list(tuple) # 元组转列表

9,如何实现字符串 name='老男孩'的反转?

name = "老男孩"
name = name[::-1]

10,两个set如何获取交集、并集、差集?

# 交集
set(a)&set(b)
# 并集
set(a)|set(b)
# 差集
set(a)-set(b)

11,那些情况下, y != x - (x-y)会成立?

x,y是两个不相等的非空集合

12,Python中如何拷贝一个对象?

# copy模块
[:]
copy.copy() # 浅拷贝
copy.deepcopy() # 深拷贝

13,简述 赋值、浅拷贝、深拷贝的区别?

赋值:将多个变量指向同一个内存地址
浅拷贝:只拷贝第一层元素地址,只有修改第一层元素时不受影响
深拷贝:不可变数据类型内存地址共用,可变数据类型重新开辟空间

14,pass的作用?

pass  占位符  与  ...的用法一样

15,阅读代码写结果:

import copy
a = [1,2,4,5,['b','c']]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)
a.append(5)
a[4].append('d')
print(b)
# [1,2,4,5,['b','c','d'],5]
print(c)
# [1,2,4,5,['b','c','d']]
print(a)
# [1,2,4,5,['b','c','d'],5]

16,用Python实现9 * 9 乘法表。

for i in range(1, 10):
for x in range(1, i + 1):
print(f"{i} * {x} = {i * x}",end=" ")
print("")

17,用Python显示一个斐波那契数列。

18,如何删除列表中重复的值?

list(set(list))

19,一个大小为100G的文件etl_log.txt, 要读取文件中的内容, 写出具体过程代码?

with open(r'etl_log.txt','r',enconding='utf-8') as f:
for i in f:
info = f.readlines()
print(info)

20,a = dict(zip(("a","b","c","d","e"),(1,2,3,4,5))) 请问a是什么?

a是字典,
a = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

21,lambda关键字的作用?

定义匿名函数,自带for循环

22,*arg和**kwarg作用?

*args 接收多余的位置参数
**kwargs 接收多余的关键字参数

23,如何在函数中设置一个全局变量 ?

global 全局变量

24,filter、map、reduce的作用?

filter  过滤
map 映射
reduce 累计算

25,什么是匿名函数?匿名函数有什么作用?

lambda函数就是匿名函数
作用:简化代码

26,Python递归的最大层数?

官方:1000
实测:995-998

27,什么是迭代器?什么是可迭代对象?

迭代器:具有__iter__()和__next__()方法
可迭代对象:具有__iter__()方法就是可迭代对象

28,什么是生成器?

具有yield的关键字就是生成器,生成器的本质是迭代器
装饰器的本质是闭包,在不修改源代码及其调用方式的前提下,外增加功能

29,什么是装饰器及应用场景?

登录,类

30,什么是反射及应用场景?

通过字符串操作对象的方法和属性

判断用户的输入

31,写一个普通的装饰器。

def warpper(func):
def inner():
print("111")
func()
print("222")
return inner @warpper
def func():
print("被装饰的函数")

32,写一个带参数的装饰器。

def func_z(func):
def inner(*args,**kwargs):
print("我是装饰器,装饰你了啊")
ret = func(*args,**kwargs)
return ret
return inner @func_z
def func_b(*args,**kwargs):
print("我是被装饰的函数,来啊,你过来啊")

33,求结果:

def num():
return [lambda x:i*x for i in range(4)]
print([m(2) for m in num()]) # [6,6,6,6]

34,def(a, b=[])这种写法有什么陷阱?

默认参数可变,容易在后面引用的时候,读取到之前使用的值,因为列表的内存地址没有变。

35,看代码写结果

def func(a,b=[]):
b.append(a)
return b
v1 = func(1)
v2 = func(2,[10,20])
v3 = func(3)
print(v1,v2,v3) """
[1,3]
[10,20,2]
[1,3]
"""

36,看代码写结果:

def func(a,b=[]):
b.append(a)
return b
v1 = func(1)
print(v1)
# [1]
v2 = func(2,[10,20])
print(v2)
# [10,20,2]
v3 = func(3)
print(v3)
# [1,3]

37,请编写一个函数实现将ip地址换成一个整数。

如 10.3.9.12 转换规则为:
10 00001010
3 00000011
9 00001001
12 00001100
再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?

38,请查找一个目录下的所有文件(可能存在文件嵌套)。

import os
os.listdir()

39,求结果:

import math
print (math.floor(5.5)) # 5

40,是否使用过functools中的函数?其作用是什么?

from functools import reduce
reduce 累计算

41,re的match和search区别?

match:  从开头进行查找,查找到就停止,找不到返回None
search: 查找全文,找到就停止,找不到就返回None

42,用Python匹配HTML tag的时候,<.>和<.?>有什么区别?

.* 贪婪匹配 匹配多个任意字符
.*? 非贪婪 只匹配一次

43,如何生成一个随机数?

import random

random.random()

44,super的作用?

按照mro的顺序进行继承

45,双下划线和单下划线的区别?

双线划线:__ 是Python中强制定义为私有
单下划线:_ 是程序员约定的私有方法

46,@staticmethod和@classmethod的区别?

47,实现一个单例模式(加锁)。

import threading

class Singleton():
state = None
lock = threading.RLock() def __init__(self,name):
self.name = name def __new__(cls,*args,**kwargs):
if cls.state:
return cls.state
with cls.lock:
if cls.state:
return cls.state
cls.state = object.__new__(cls)
return cls.state

48,栈和队列的区别?

栈:先进后出
队列:先进先出

49,一下代码输出是什么?请给出答案并解释。

class Parent(object):
x = 1
class Child1(Parent):
pass
class Child2(Parent):
pass
print Parent.x, Child1.x, Child2.x
"""
1,1,1
两个child都继承了parent,并没有自己的属性或方法
"""
Child1.x = 2
print Parent.x, Child1.x, Child2.x
"""
1,2,1 child1添加了属性,就近原则使用自己x的值,child2没有,继承父类
"""
Parent.x = 3
print Parent.x, Child1.x, Child2.x
"""
3,2,3
parent和chile1有自己的x方法,就近使用自己的,chiild2没有自己的x,继承父类中的x
""

常见python面试题的更多相关文章

  1. 常见python面试题-手写代码系列

    1.如何反向迭代一个序列 #如果是一个list,最快的方法使用reversetempList = [1,2,3,4]tempList.reverse()for x in tempList:    pr ...

  2. 常见的 35 个 Python 面试题及答案

    1. Python 面试问题及答案 作为一个 Python 新手,你必须熟悉基础知识.在本文中我们将讨论一些 Python 面试的基础问题和高级问题以及答案,以帮助你完成面试.包括 Python 开发 ...

  3. python公司面试题集锦 python面试题大全

    问题一:以下的代码的输出将是什么? 说出你的答案并解释. class Parent(object): x = 1 class Child1(Parent): pass class Child2(Par ...

  4. Python基础面试,看这篇文章画重点吧,Python面试题No1

    为什么有这个系列的文章 一直想写一些更加基础的文章,但是总是想不到好的点子,最近到了就业季,一大堆学生面临就业了,正好,从Python的面试题出发,分析和解答一些常见的面试题,并且总结一些文字. 每一 ...

  5. 【Python】【面试必看】Python笔试题

    前言 现在面试测试岗位,一般会要求熟悉一门语言(python/java),为了考验求职者的基本功,一般会出 2 个笔试题,这些题目一般不难,主要考察基本功.要是给你一台电脑,在编辑器里面边写边调试,没 ...

  6. Python面试题整理-更新中

    几个链接: 编程零基础应当如何开始学习 Python ? - 路人甲的回答 网易云课堂上有哪些值得推荐的 Python 教程? - 路人甲的回答 怎么用最短时间高效而踏实地学习 Python? - 路 ...

  7. python 面试题4

    Python面试题 基础篇 分类: Python2014-08-08 13:15 2071人阅读 评论(0) 收藏 举报 最近,整理了一些python常见的面试题目,语言是一种工具,但是多角度的了解工 ...

  8. 很全的 Python 面试题

    很全的 Python 面试题 Python语言特性 1 Python的函数参数传递 看两个例子:           Python   1 2 3 4 5 a = 1 def fun(a):      ...

  9. 关于面试总结-python笔试题(递归)

    前言 本篇继续收集一些常见的python笔试题,以基础知识为主,递归是面试最喜欢考的一个问题,不管是做开发还是测试,都无法避免考递归.本篇结合实际案例,讲下几种关于递归的场景. 计算n的阶乘 计算n! ...

随机推荐

  1. 写Blog的准备工作Window Live Writer

    以下是博客园的帮助博客: Windows Live Writer配置步骤 感觉里面的几篇推荐文档都可以看一下,至于代码高亮插件,个人选择的还是SyntaxHighlighter. 一. 关于写blog ...

  2. shell awk学习3

    需求: 某文件aa的内容如下: a/p1/p2b/pp1c/ppp1/ppp3d/p1/p2/p3e/p1/p2/p3/p4 期望输出结果: a /p1 /p2 b /pp1 c /ppp1 /ppp ...

  3. commons-dbutils实现增删改查

    1.maven依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...

  4. Linux网络课程学习第六天

    本节课程主要内容:针对第四章节进行了收尾,以及对第五章的用户身份与文件权限进行了详细讲解. 学习心得:干货很多,收获满满.

  5. ip连接mysql时报不能连接

    问题:springboot项目在用localhost连接mysql时没问题,但当localhost换成ip时出现 该问题:message from server: "Host 'DESKTO ...

  6. mysql常用函数及关键字汇总

    关键字 1...mysql包含之in SELECT count(1) as count FROM 表名 a,表名 b WHERE a.主键 = b.外键  and a.字段 in('1','2,'3' ...

  7. Common Subsequence POJ - 1458 最长公共子序列 线性DP

    #include <iostream> #include <algorithm> #include <string> #include <cstring> ...

  8. Codeforce 519B - A and B and Compilation Errors

    A and B are preparing themselves for programming contests. B loves to debug his code. But before he ...

  9. vim光标操作

    v可视模式 ve可视模式但不包括selection o操作符等待模式 i插入模式 r替换模式(命令模式下,按r,输入一个字符将替换光标所在处字符) c命令行常规模式 ci命令行插入模式 cr命令行替换 ...

  10. HDFS写入数据

    HDFS副本摆放策略 不同的版本副本摆放策略可能并不一致,HDFS主要采用一种机架感知(rack-ware)的机制来实现摆放策略. 由于不同的机架上节点间通信要通过交换机(switches),同一机架 ...