python进阶的面试题及答案

1. 如何把字符串转换为全大小写?

全小写:lower()函数
全大写:upper()函数
判断字符串是否是全大写/全小写–使用isupper()和islower()函数

>>> "Afjdjf".isupper()
False
>>> "Afjdjf".islower()
False
>>> "Afjdjf".istitle()
True
>>> "AABB".istitle()
False
>>>

2. python中的pass语句有什么作用?

我们在写代码时,有时可能只写了函数声明而没想好函数怎么写,但为了保证语法的正确必须输入一些东西,这时候可以使用pass语句。

  • 类似的break语句可以跳出循环
  • continue语句可以调到下一轮循环

3.请解析下python中的闭包?

闭包:在一个外函数中定义了一个内涵数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用

 1 #闭包函数的实例
 2 # outer是外部函数 a和b都是外函数的临时变量
 3 def outer( a ):
 4     b = 10
 5     # inner是内函数
 6     def inner():
 7         #在内函数中 用到了外函数的临时变量
 8         print(a+b)
 9     # 外函数的返回值是内函数的引用
10     return inner
11 
12 if __name__ == '__main__':
13     # 在这里我们调用外函数传入参数5
14     #此时外函数两个临时变量 a是5 b是10 ,并创建了内函数,然后把内函数的引用返回存给了demo
15     # 外函数结束的时候发现内部函数将会用到自己的临时变量,这两个临时变量就不会释放,会绑定给这个内部函数
16     demo = outer(5)
17     # 我们调用内部函数,看一看内部函数是不是能使用外部函数的临时变量
18     # demo存了外函数的返回值,也就是inner函数的引用,这里相当于执行inner函数
19     demo() # 15
20 
21     demo2 = outer(7)
22     demo2()#17

4. 解析下python中的//,%和**运算符

  • // — 执行地板除法,返回结果的整数部分(向下取整)
>>> 11//2
5
>>> 7//3
2
>>>`
  • % ---- 取模符号,返回除法后的余数
>>> 11%3
2
>>> 7%3
1
  • ** — 表示取幂 , a**b返回a的b次方
>>> 10**2
100
>>> 3**3
27

5. 在python中有多少中运算符?解释一下算术运算符?

有7种运算符:

  1. 算术运算符:+ - * / % ** //
  2. 关系运算符:== != <> < > <= >=
  3. 赋值运算符: = += -= *= /= %= ** = //=
  4. 逻辑运算符: and or not
  • and:布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。
  • 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。
  • 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。
  1. 位运算符: *按位运算是把数字看作二进制来进行计算的,如变量a=60,b=13,二进制格式如下:
a = 0011 1100

b = 0000 1101

a&b = 0000 1100   按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0。 
(a & b) 输出结果 12 ,二进制解释: 0000 1100

a|b = 0011 1101  按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1
(a | b) 输出结果 61 ,二进制解释: 0011 1101

a^b = 0011 0001   按位异或运算符:当两对应的二进位相异时,结果为1
(a ^ b) 输出结果 49 ,二进制解释: 0011 0001

~a  = 1100 0011   按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1
(~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。

<<	左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。

>>	右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数
  1. 成员运算符:
  • in - -如果在指定的序列中找到值返回 True,否则返回 False。
  • not in - -如果在指定的序列中没有找到值返回 True,否则返回 False。
  1. 身份运算符: 身份运算符用于比较两个对象的存储单元
  • is 是判断两个标识符是不是引用自一个对象
    • x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
  • is not 是判断两个标识符是不是引用自不同对象
    • x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。
      算术运算符的解释
  • 加号— 将两个对象的值相加
  • 减号 — 将第一个对象的值减去第二个对象的值
  • 乘号 — 将两个对象的值相乘
  • 除号 — 将第一个对象的值除以第二个对象的值
    python进阶的面试题及答案_第1张图片

6. 解释下python中的关系运算符

关系运算符就是用来比较两个对象: 是否大于、小于、等于、不等于。。。

7. 如何获取字典中的所有键、值?

使用 字典名.keys() 来获取字典中的所有键
使用 字典名.values() 来获取字典中的所有键

8. 什么标识符不建议使用下划线开头?

因为在 Python 中以下划线开头的变量为私有变量,如果你不想让变量私有,就不要使用下划线开头。

9. 如何声明多个变量并赋值?

有两种方式:拆包、同时赋值
a,b,c=3,4,5
a=b=c=3

10. 什么是元组的解封装?

首先我们来介绍元组封装:
mytuple=(3, 4, 5)
print(mytuple) #(3, 4, 5)
现在我们将这些值解封装到变量x,y,z中
x,y,z=mytuple
print(x+y+z) #12

10. 谈谈python多进制?

我们在python中,除十进制外还可以使用二进制、八进制和十六进制

  1. 二进制数字由0和1组成,我们使用0b或0B前缀表示二进制数
    print(int(0b1010))#10
  2. 使用bin()函数将一个数字转换为它的二进制形式
    print(bin(0xf))#0b1111
  3. 八进制数由数字0-7组成,用前缀0o或0O表示8进制数
    print(oct(8))#0o10
  4. 十六进数由数字0-15组成,用前缀0x或者0X表示16进制数
    print(hex(16))#0x10
    print(hex(15))#0xf
>>> int('1101',2)  
13
>>> int('0o226',8)   #00226 0:阿拉伯数字零   o:小写英文字母 o    226:八进制数
150
>>> int('0x96',16)
150

python进阶的面试题及答案_第2张图片
python进阶的面试题及答案_第3张图片
python进阶的面试题及答案_第4张图片

你可能感兴趣的:(python,面试题)