1、解释一下 Python 中 pass 语句的作用?

答:pass 实际上就是一个占位符,在写一个函数但是不确定里面写啥的时候,这个时候可以使用 pass。示例如下def foo():

pass

2、简述你对 input()函数的理解

答:在 Python3 中 input 函数可以接收用户输入的字符串。

然后根据程序的需要转换成所需格式即可。

3、Python 中的 is 和==

答:先说==,它的作用是判断两个对象的值是否相同,然后说 is,is 表示的谁是谁,这也就意味着对象完全相等。我们知道一个对象有各自的内存地址和对应的值,当内存地址和值都相同的时候使用 is 可以得到结果 True。另外需要注意的下面两点特殊的情况。这些变量很可能在许多程序中使用。通过池化这些对象,Python 可以防止对一直使用的对象进行内存分配调用。

(1)介于数字-5 和 256 之间的整数

(2)字符串仅包含字母、数字或下划线

4、Python 中的作用域

答:

Python 中,一个变量的作用域总是由在代码中被赋值的地方所决定

当 Python 遇到一个变量的话它会按照这的顺序进行搜索

本地作用域(Local)--->当前作用域被嵌入的本地作用域(Enclosing locals)--->全局/模块作用域(Global)--->内置作用域(Built-in)

5、三元运算写法和应用场景?

答:Python 中的三元运算又称三目运算,是对简单的条件语句的简写。 是一种比较 Pythonic 的学法,形式为:val = 1 if 条件成立 else 2 代码示例如下:a = 2

b = 5

# 普通写法

if a > b:

val = True

else:

val = False

# 改为三元运算符后

val = a if a > b else b

print(val) # 5

6、了解 enumerate 么?

答:enumerate 可以在迭代一个对象的时候,同时获取当前对象的索引和值。 代码示例如下from string import ascii_lowercase

s = ascii_lowercase

for index, value in enumerate(s):

print(index, value)

7、列举 5 个 Python 中的标准模块

答: pathlib:路径操作模块,比 os 模块拼接方便。 urllib:网络请求模块,包括对 url 的结构解析。 asyncio: Python 的异步库,基于事件循环的协程模块。 re:正则表达式模块。 itertools:提供了操作生成器的一些模块。

8、如何在函数中设置一个全局变量

答:# 通过使用 global 对全局变量进行修改。

n = 0

def foo():

global n

n = 100

foo()

print(n)

x = 0

9、pathlib 的用法举例

答:pathlib 可以对文件以及文件的其他属性进行操作。比较喜欢的一点是路径拼接符"/"的使用,之前在公众号中写过 pathlib 一些其他的用法这里就不一一例举了。

10、Python 中的异常处理,写一个简单的应用场景

答: 比如在计算除法中出现为 0 的情况出现异常try:

1 / 0

except ZeroDivisionError as e:

print(e.args)

11、Python 中递归的最大次数,那如何突破呢?

答:Python 有递归次数限制,默认最大次数为 1000。通过下面的代码可以突破这个限制import sys

sys.setrecursionlimit(1500) # set the maximum depth as 1500

另外需要注意的是 sys.setrecursionlimit() 只是修改解释器在解释时允许的最大递归次数,此外,限制最大递归次数的还和操作系统有关。

12、什么是面向对象的 mro

答:Python 是支持面向对象编程的,同时也是支持多重继承的。一般我们通过调用类对象的 mro()方法获取其继承关系。

13、isinstance 作用以及应用场景?

答:isinstance 是判断一个对象是否为另一个对象的子类的,例如我们知道在 Python3 中 bool 类型其实是 int 的子类,所以我们可以对其检测。print(isinstance(True,int))

14、什么是断言?应用场景?

答:在 Python 中是断言语句 assert 实现此功能,一般在表达式为 True 的情况下,程序才能通过。#author:陈祥安

#公众号:Python 学习开发

#assert()方法,断言成功,则程序继续执行,断言失败,则程序报错

# 断言能够帮助别人或未来的你理解代码,

# 找出程序中逻辑不对的地方。一方面,

# 断言会提醒你某个对象应该处于何种状态,

# 另一方面,如果某个时候断言为假,

# 会抛出 AssertionError 异常,很有可能终止程序。

def foo(a):

assert a==2,Exception("不等于 2")

print("ok",a)

if __name__ == '__main__':

foo(1)

15、lambda 表达式格式以及应用场景?

答:lambda 表达式其实就是一个匿名函数,在函数编程中经常作为参数使用。 例子如下a = [('a',1),('b',2),('c',3),('d',4)]

a_1 = list(map(lambda x:x[0],a))

16、待定

17、dir()是干什么用的?

答:当在使用某一个对象不知道有哪些属性或者方法可以使用时,此时可以通过 dir() 方法进行查看。

18、一个包里有三个模块,demo1.py、demo2.py、demo3.py,但使用 from tools import *导入模块时,如何保证只有 demo1、demo3 被导入了。

答: 增加_init_.py 文件,并在文件中增加:__all__ = ['demo1','demo3']

19、列举 5 个 Python 中的异常类型以及其含义

答:

AttributeError 对象没有这个属性

NotImplementedError 尚未实现的方法

StopIteration 迭代器没有更多的值

TypeError 对类型无效的操作

IndentationError 缩进错误

20、copy 和 deepcopy 的区别是什么?

答: copy.copy()浅拷贝,只拷贝父对象,不会拷贝对象的内部的子对象。 copy.deepcopy()深拷贝,拷贝对象及其子对象。

21、代码中经常遇到的args,*kwargs 含义及用法。

答: 在函数定义中使用 args 和kwargs 传递可变长参数。args 用来将参数打包成 tuple 给函数体调用。 kwargs 打包关键字参数成 dict 给函数体调用。

22、Python 中会有函数或成员变量包含单下划线前缀和结尾,和双下划线前缀结尾,区别是什么?

答: "单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量; "双下划线" 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。

以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入;以双下划线开头的(__foo)代表类的私有成员;

以双下划线开头和结尾的(_foo)代表 Python 里特殊方法专用的标识,如 _init()代表类的构造函数。

代码示例class Person:

"""docstring for ClassName"""

def __init__(self):

self.__age = 12

self._sex = 12

def _sex(self):

return "男"

def set_age(self,age):

self.__age = age

def get_age(self):

return self.__age

if __name__ == '__main__':

p=Person()

print(p._sex)

#print(p.__age)

#Python 自动将__age 解释成 _Person__age,于是我们用 _Person__age 访问,这次成功。

print(p._Person__age)

23、w、a+、wb 文件写入模式的区别

答: w 表示写模式支持写入字符串,如果文件存在则覆盖。 a+ 和 w 的功能类型不过如果文件存在的话内容不会覆盖而是追加。 wb 是写入二进制字节类型的数据。

24、举例 sort 和 sorted 的区别

答: 相同之处 sort 和 sorted 都可以对列表元素排序,sort() 与 sorted() 的不同在于,sort 是在原位重新排列列表,而 sorted() 是产生一个新的列表。 sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

25、什么是负索引?

答:负索引一般表示的是从后面取元素。

26、pprint 模块是干什么的?

答:pprint 是 print 函数的美化版,可以通过 import pprint 导入。示例如下import pprint

pprint.pprint("this is pprint")

27、解释一下 Python 中的赋值运算符

答:通过下面的代码列举出所有的赋值运算符a=7

a+=1

print(a)

a-=1

print(a)

a*=2

print(a)

a/=2

print(a)

a**=2

print(a)

a//=3

print(a)

a%=4

print(a)

28、解释一下 Python 中的逻辑运算符

答:Python 中有三个逻辑运算符:and、or、notprint(False and True) #False

print(7<7 or True) #True

print(not 2==2) #False

29、讲讲 Python 中的位运算符

答:按位运算符是把数字看作二进制来进行计算的。Python 中的按位运算法则如下:

下表中变量 a 为 60,b 为 13,二进制格式如下:

a = 0011 1100

b = 0000 1101

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a = 1100 0011

enter image description here

30、在 Python 中如何使用多进制数字?

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

二进制数字由 0 和 1 组成,我们使用 0b 或 0B 前缀表示二进制数

print(int(0b1010))#10

使用 bin()函数将一个数字转换为它的二进制形式

print(bin(0xf))#0b1111

八进制数由数字 0-7 组成,用前缀 0o 或 0O 表示 8 进制数

print(oct(8))#0o10

十六进数由数字 0-15 组成,用前缀 0x 或者 0X 表示 16 进制数

print(hex(16))#0x10

print(hex(15))#0xf

31、怎样声明多个变量并赋值?

答:Python 是支持多个变量赋值的,代码示例如下#对变量 a,b,c 声明并赋值

a,b,c = 1,2,3

python 作用域 前缀_Python面试题:杂项内容相关推荐

  1. python 作用域 前缀_Python 之作用域和名字空间

    作用域与名字空间 Python有一个核心概念是名字空间(namespace),namespace是一个name到object 的映射关系,Python有很多namespace,因此,在代码中如果碰到一 ...

  2. python作用域链_Python 中的作用域准则

    0x00 前言 因为最早用的是 Java 和 C#,写 Python 的时候自然也把 Python 作用域的想的和原有的一致. Python 的作用域变量遵循在大部分情况下是一致的,但也有例外的情况. ...

  3. python 作用域 前缀_TENSORFLOW变量作用域(VARIABLE SCOPE)

    举例说明 TensorFlow中的变量一般就是模型的参数.当模型复杂的时候共享变量会无比复杂. 官网给了一个case,当创建两层卷积的过滤器时,每输入一次图片就会创建一次过滤器对应的变量,但是我们希望 ...

  4. python 猴子补丁_python面试题精讲——monkey patch(猴子补丁)

    前言本次依然是选自python面试题系列,将一个比较偏的概念,可能很多人没怎么听说过--猴子补丁,其实所讲的内容很简单,它得益于python灵活的语法.一切皆对象的思想,一起来看看看看吧!目录一.什么 ...

  5. python 作用域嵌套_python嵌套作用域问题

    之前都不太理解这个... 在Python中,使用一个变量之前不必预先声明它,但是在真正使用它之前,它必须已经绑定到某个对象:而名字绑定将在当前作用域中引入新的变量,同时屏蔽外层作用域中的同名变量,不论 ...

  6. python周志_Python几周学习内容小结

    环境配置 学习python首先是要配置环境,我们选择了Anaconda. 什么是Anaconda:专注于数据分析的python发行版本. 为什么选择Anaconda:省事省心,分析利器 至于下载和安装 ...

  7. python程序设计试卷_Python程序设计试题库

    < Python 程序设计>题库 一.填空题 第一章基础知识 1 . Python 安装扩展库常用的是 ________ 具.( pip ) 2 . Python 标准库 math 中用来 ...

  8. python怎么发送邮件_Python面试题之如何用Python来发送邮件?

    1 #! /usr/bin/env python 2 #coding=utf-8 3 import sys 4 import time 5 import poplib 6 import smtplib ...

  9. python智能识别_Python人工智能识别文字内容(OCR)

    环境准备 安装pytesseract和PIL安装这两个包可以借助pip命令行安装 pip install PIL pip install pytesseract 安装识别引擎tesseract-ocr ...

最新文章

  1. Quartz-Cron表达式统计最近几次的执行时间
  2. java重写6,java重写equals()方法和hashCode()方法
  3. 三种常用SoC片上总线的分析与比较 (Z)
  4. ASP.NET Core 自定义认证方式--请求头认证
  5. 前端学习(2354):image组件的基本使用
  6. Linux Software RAID的rebuild速度。
  7. 静态注册BroadcastReceiver的注销问题
  8. Android 属性动画简单分析(一)
  9. php监听input,js实时监听input中值变化
  10. mysql桦仔_带您理解SQLSERVER是如何执行一个查询的
  11. 计算机应用基础是背的吗,计算机应用基础Excel2003电子表格系统
  12. 长春SEO优化:SEO优化开篇——内容优化
  13. 移动互联网开发入门Android Studio ,适合刚学习的
  14. 论文领读|基于 VQVAE 的长文本生成
  15. codeforces 1255 B. Fridge Lockers
  16. 使用nginx配置图片代理
  17. Intellij IDEA入门到精通(二)
  18. 安卓wifi调试助手(单片机wifi上位机)
  19. JavaSE 18 Java基础语法 → 标识符关键字
  20. 常见文件的加密工具类

热门文章

  1. SaaS加速器II 能力中心:互利互补 共享商业红利
  2. 教你怎么样在 Java8 中优雅的避开空指针异常
  3. Lua基本语法-lua与C#的交互(相当简单详细的例子)
  4. 汇编语言-第四章 第一个程序
  5. window上安装mysql数据库
  6. HDU 3826 Squarefree number:题目解答源码
  7. 一个由印度人编写的VC串口类
  8. 隐藏讨厌的桌面挂载卷图标
  9. 经典排序算法 - 鸽巢排序Pigeonhole sort
  10. Python 与 Excel结合