面试题整理

一、基础题

1、Python的特点和优点是什么?
解释性,动态特性,面向对象,语法简洁,开源,丰富的社区资源
2、深拷贝和浅拷贝的区别是什么?
深拷贝是将对象本身复制给另一个对象。这意味着如果对对象的副本进行更改时不会影响原对象。在Python中,使用deepcopy()函数进行深拷贝;
浅拷贝是将对象的引用复制给另一个对象。因此,如果在副本中进行更改,则会影响原对象。在Python中,使用copy()函数进行浅拷贝。
3、Python中的三元表达式
condition_is_true if condition else condition_is_false
例如:
def myabs(x):
  return x if x>0 else -x
4、解释Python中的help()函数和dir()函数?
help()函数返回帮助文档和参数说明
dir()函数返回对象中的所有成员(任何类型的属性和方法)
5、当退出Python时是否释放所有内存分配?
答案是否定的。那些具有对象循环引用或者全局命名空间引用的变量,在Python退出是往往不会被释放;另外不会释放C库保留的部分内容。
6、什么是猴子补丁?
在运行期间动态修改一个类或模块。
猴子补丁主要有以下几个用处:
在运行时替换方法、属性等
在不修改第三方代码的情况下增加原来不支持的功能
在运行时为内存中的对象增加patch而不是在磁盘的源代码中增加
7、解释*args和**kw?
*args事可变参数,**kw是关键字参数
8、编程实现计算文件中的大写字母数
import os
os.chdir('.')
with open('test.txt') as f:
  count=1
  for n in f.read():
    if n.isupper():
      count+=1
  print(count)
9、什么是负索引?
与正索引不同,负索引是从右边开始检索。
10、如何随机打乱列表中元素,要求不引用额外的内存空间?
用random包中的shuffle()函数来实现。
import random
l=[3, 4, 8, 0, 5, 7, 6, 2, 1]
random.shuffle(l)
print(l)
11、Python区分大小写吗?
区分
12、Python中标识符的命名规则?
Python中的标识符可以是任意长度,但必须遵循以下命名规则:
(1)只能以下划线或者 A-Z/a-z 中的字母开头。
(2)其余部分只能使用 A-Z/a-z/0-9。
(3)Python 标识符区分大小写。
(4)关键字不能作为标识符。Python 有以下这些关键字:

 13、如何删除字符串中的前置空格?

前置空格是第一个非空格字符前的所有空格,使用lstrip()函数来删除
如果想去除后置空格,使用rstrip()函数
同时删除前置空格和后置空格使用strip()函数
例如:str.lstrip(' abcd ') str.rstrip(' abcd ') str.strip(' abcd ')
14、Python中的pass语句有什么作用?
占位
在写代码时,有时可能只写了函数声明而没想好函数怎么写,但为了保证语法检查的正确必须输入一些东西。在这种情况下,使用pass语句。
15、解释 Python 中的//,%和**运算符?
//运算符执行地板除法,返回结果的整数部分 (向下取整)。
% 是取模符号。返回除法后的余数。
**符号表示取幂. a**b返回a的b次方。
18、解释Python中的逻辑运算符?
Python中有三个逻辑运算符:and、or、not
18、解释Python中的成员运算符?
使用in和not in运算符我们可以判断某个值是否在成员中。
18、解释Python中的身份运算符?
is和not is运算符可以判断两个对象是否相同。
19、解释Python中的位运算符?
与(&)返回按位与结果
或(|)返回按位或结果
异或(^)返回按位异或结果
取反(~)返回按位取反结果
左移位(<<)将符号左边数的二进制左移右边数位
右移位(>>)将符号左边数的二进制右移右边数位
20、如何在Python使用多进制数字?
除十进制以外,在Python中还可以使用二进制、八进制、十六进制。
bin()、oct()、hex()
21、解释Python中的闭包?

原文地址:https://www.cnblogs.com/xidian2014/p/10269554.html