本文内容均收集自互联网,并对内容不恰当地方进行适当修改。更多请访问从今天开始种树
正文
答:Python 是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第三方库,它是一门强类型的可移植、可扩展,可嵌入的解释型编程语言,属于动态语言。拿 C
语言和 Python
比: Python
的第三方类库比较齐全并且使用简洁,很少代码就能实现一些功能,如果用 C 去实现相同的功能可能就比较复杂。但是对于速度来说 Python 的运行速度相较于 C 就比较慢了。
答:解释型语言是在运行程序的时候才翻译,每执行一次,要翻译一次,效率较低。 编译型就是直接编译成计算机可以执行的,只翻译一次,所以效率相对来说较高。
答:CPython
c 语言开发的,使用最广的解释器IPython
基于 cPython 之上的一个交互式计时器,交互方式增强功能和 cPython
一样PyPy
目标是执行效率,采用 JIT
技术。对 Python
代码进行动态编译,提高执行效率JPython
运行在 Java 上的解释器,直接把 Python
代码编译成 Java
字节码执行IronPython
运行在微软 .NET
平台上的解释器,把 Python
编译成 . NET
的字节码。
print
在 Python3
中是函数必须加括号,Python2 中 print
为 class
。
Python2 中使用 xrange
,Python3 使用 range
。
Python2 中默认的字符串类型默认是 ASCII
,Python3 中默认的字符串类型是 Unicode
。
Python2 中/的结果是整型,Python3 中是浮点类型。
Python2 中声明元类:metaclass= MetaClass
,Python3`中声明元类:
class some(metaclass=MetaClass): pass
答:Python2 有 int
和 long
类型。int 类型最大值不能超过 sys.maxint
,而且这个最大值是平台相关的。可以通过在数字的末尾附上一个L
来定义长整型,显然,它比 int
类型表示的数字范围更大。在 Python3 里,只有一种整数类型 int,大多数情况下,和 Python2中的长整型类似。
答:xrange
是在 Python2 中的用法,Python3 中只有 range xrange
用法与 range
完全相同,所不同的是生成的不是一个 list
对象,而是一个生成器。
答:PEP8
通常会听别人提到,但是具体的指什么内容呢,简单介绍下。 《Python Enhancement Proposal #8》(8 号 Python 增强提案)又叫 PEP8,他针对的 Python 代码格式而编订的风格指南。
答:通过 import this
语句可以获取其具体的内容。它告诉大家如何写出高效整洁的代码。
答:DocStrings
文档字符串是一个重要工具,用于解释文档程序,帮助你的程序文档更加简单易懂。主要是解释代码作用的。
答:PEP 484 引入了类型提示,这使得可以对 Python 代码进行静态类型检查。 在使用 Ide 的时候可以获取到参数的类型,更方便传入参数。使用格式如下
def foo(num: int) -> None: print(f"接收到的数字是:{num}")
介绍下这个简单例子,我们可以在函数的参数部分使用参数名+:+类型,来指定参数可以接受的类型,这里的话就是 num
参数为 int
类型,然后后面->接的是返回值的类型。这里返回值为 None,然后通过 fstring
格式化字符串输出传入的数字。
答:类:总是使用首字母大写单词串,如 MyClass
。内部类可以使用额外的前导下划线。 变量:小写,由下划线连接各个单词。方法名类似 常量:常量名所有字母大写 等
答:总体来说分为两种,单行注释和多行注释。
单行注释在行首是 #。
多行注释可以使用三个单引号或三个双引号,包括要注释的内容。
答:可以使用 docstring
配合类型注解
答:可以通过变量名:类型的方式如下
a:str = "this is string type"
答:不允许 tab 键和空格键混用,这种现象在使用 sublime 的时候尤为明显。
一般推荐使用 4 个空格替代 tab 键。
答:可以是可以,但是不推荐。因为一次导入多个模块可读性不是很好,所以一行导入一个模块会比较好。同样的尽量少用 from modulename import *
,因为判断某个函数或者属性的来源有些困难,不方便调试,可读性也降低了。
答:给文件命名的时候不要和标准库库的一些模块重复,比如 abc。 另外要名字要有意义,不建议数字开头或者中文命名。
答:pylint
和 flake8
答: Python3 中有六个标准的数据类型:字符串(String
)、数字(Digit
)、列表(List
)、元组(Tuple
)、集合(Sets
)、字典(Dictionary
)。
答: 从对象内存地址方向来说
可变数据类型:在内存地址不变的情况下,值可改变(列表和字典是可变类型,但是字典中的 key 值必须是不可变类型)
不可变数据类型:内存改变,值也跟着改变。(数字,字符串,布尔类型,都是不可变类型)可以通过 id() 方法进行内存地址的检测。
答: 这个得看清题目是要求两个单词首字母都要大写,如果只是第一个单词首字母大小的话,只使用 capitalize
即可,但是这里是两个单词,所以用下面的方法。
"hello world".title()
答:可以通过 isdigit()
方法,例子如下
s1 = "12223".isdigit() print(s1) s2 = "12223a".isdigit() print(s2) #结果如下: #True #False
- 将字符串”ilovechina”进行反转
s1 = "ilovechina"[::-1] print(s1)
答:%s,format,fstring
(Python3.6 开始才支持,现在推荐的写法)
答:因为题目要是写一个函数所以我们不能直接使用 strip()
,不过我们可以把它封装到函数啊
def strip_function(s1): return s1.strip() s1 = " adabdw " print(strip_function(s1))
答:切片使用的考察,最后两个即开始索引是 -2,代码如下
a = "123456" print(a[-2::])
a= "S".encode("gbk").decode("utf-8",'ignore') print(a)
28. (1)s=”info:xiaoZhang 33 shandong”,用正则切分字符串输出[‘info’, ‘xiaoZhang’, ‘33’, ‘shandong’]。(2)a = “你好 中国 “,去除多余空格只留一个空格。
答:
(1)我们需要根据冒号或者空格切分
import re s = "info:xiaoZhang 33 shandong" res = re.split(r":| ", s) print(res)
(2)
s = "你好 中国 " print(" ".join(s.split()))
(1) 使用字符串的 lower()
方法。
(2)单独使用单引号和双引号没什么区别,但是如果引号里面还需要使用引号的时候,就需要这两个配合使用了,然后说三引号,同样的三引号也分为三单引号和三双引号,两个都可以声名长的字符串时候使用,如果使用 docstring
就需要使用三双引号。
list(set(AList))
s = "1,2,3" print(s.split(","))
A、B 中相同元素:print(set(A)&set(B))
A、B 中不同元素:print(set(A)^set(B))
l = [[1,2],[3,4],[5,6]] x=[j for i in l for j in i] print(x)
答:使用 extend 和 + 都可以。
a = [1,5,7,9] b = [2,2,6,8] a.extend(b) print(a)
import random a = [1, 2, 3, 4, 5] random.shuffle(a) print(a)
答:del
可以根据索引(元素所在位置)来删除的,没有返回值。 pop
可以根据索引弹出一个值,然后可以接收它的返回值。
- 按照字典的内的年龄排序
d1 = [ {'name': 'alice', 'age': 38}, {'name': 'bob', 'age': 18}, {'name': 'Carl', 'age': 28}, ]
print(sorted(d1, key=lambda x:x["age"]))
答: 合并字典方法很多,可以使用 a.update(b)
或者下面字典解包的方式
a = {"A":1,"B":2} b = {"C":3,"D":4} print({**a,**b})
把字典的 key 和 value 值调换;
d = {'a':'1', 'b':'2'} print({v:k for k,v in d.items()})
zip
的使用,但是最后记得把 zip
对象再转换为字典。
a = ("a", "b") b = (1, 2) print(dict(zip(a, b)))
A:{1:0,2:0,3:0} B:{"a":0, "b":0, "c":0} C: {(1,2):0, (2,3):0} D: {[1,2]:0, [2,3]:0}
D
因为只有可 hash
的对象才能做字典的键,列表是可变类型不是可 hash
对象,所以不能用列表做为字典的键。
答:
s = {"A":1,"B":2} #方法一: dict_new = {value:key for key,value in s.items()}
#方法二: new_s= dict(zip(s.values(),s.keys()))
答: Python 中的类型转换,一般通过类型强转即可完成 tuple 转 list 是 list()
方法 list
转 tuple
使用 tuple()
方法
答: 这个题目考察了 Python 标准库的 itertools
模快的掌握情况,该模块提供了操作生成器的一些方法。 对于生成器类型我们使用 islice 方法来实现切片的功能。例子如下
from itertools import islice gen = iter(range(10)) #iter()函数用来生成迭代器 #第一个参数是迭代器,第二个参数起始索引,第三个参数结束索引,不支持负数索引 for i in islice(gen,0,4): print(i)
答:通过把列表生产式的中括号,改为小括号我们就实现了生产器的功能即,
(i for i in range(3))
答: 这个题目一共三种方式,第一种是在字符串的前面加一个 b
,第二种可以使用 bytes
方法,第三种使用字符串 encode
方法。具体代码如下,abc 代表三种情况
a = b"hello" b = bytes("你好", "utf-8") c = "你好".encode("utf-8") print(a, b, c)
a = (1,2,3,[4,5,6,7],8) a[2] = 2
答: 我们知道元组里的元素是不能改变的所以这个题目的答案是出现异常。
a = (1,2,3,[4,5,6,7],8) a[3][0] = 2
答:前面我说了元组的里元素是不能改变的,这句话严格来说是不准确的,如果元组里面元素本身就是可变类型,比如列表,那么在操作这个元素里的对象时,其内存地址也是不变的。a[3] 对应的元素是列表,然后对列表第一个元素赋值,所以最后的结果是: (1,2,3,[2,5,6,7],8)
未完待续
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论