Python新手入门必会42问 《Python入门42章经》

1、为什么将这种语言称为Python?

    Python的名字来自70年代Monty Python的Flying Circus的BBC喜剧系列 。设计师需要一个简短,独特且略显神秘的名称。由于他是该节目的粉丝,所以他认为这个名字很棒,因此他决定将其命名为Python。

2、仅列出几个用于开发Web应用程序的Python Web框架吗?

  Python提供了各种Web框架。一些流行的框架是:

· Django
· Tornado
· Flask
· Sanic
· Web2py

3、什么是PEP 8?

    Pep8是用于可读性和长期可维护性的编码标准和样式指南。它目的在帮助python开发人员编写更具可读性的代码。这不是代码正常工作的要求,只是应该遵循的良好编码习惯。

4、Python使用哪种IDE?

    有许多用于Python开发的IDE。一些流行的IDE是:

· Pycharm IDE
· Pydev IDE
· Wing IDE
· Eric Python IDE
· Vim IDE
· IPython Notebook
· Visual Studio

5、Python可以在哪些操作系统上运行?

    Python是一种跨平台的语言,适用于Windows,Unix,Linus,MacOS等所有操作系统。

6、python是区分大小写的语言吗?

    Python是区分大小写的语言区分大小写意味着x与X不同。dog的变量与Dog的变量不同。

7、PYTHONPATH环境变量的目的是什么?

    设置 PYTHONPATH 环境变量是使Python模块可用于从任何目录导入的简便方法。当你在python中导入模块时,除了其他一些目录外,python还在PYTHONPATH中的目录中搜索该模块。

8、全部导入怎么搞?

    从模块导入*,您将在自己的命名空间中导入所有函数和类,这可能与您自己定义的函数冲突。另外,您也不确切知道要导入的内容,也无法从某些模块轻松地导入某些东西(可读性)。

9、Python 3 vs Python2中的print语句如何表示?

    在Python 2.x中,print实际上是一个特殊的语句,而在 Python 3.x中 ,print语句已被print()函数代替。这意味着我们必须将要打印的对象包装在括号中。Python 2的附加括号没有问题,但是相反,如果我们调用不带括号的print函数,Python 3将引发语法错误。

10、如何将输入读取为整数/浮点数?

    Python中的input()方法返回字符串。使用int()/ float()将结果显式转换为整数。

x = int(input("Enter a number: "))
y = float(input("Enter a number: "))

11、Python支持哪些数据类型?

    Python的数据类型构建在语言的核心中。遵循Python官方文档中使用的层次结构方案,它们是数字类型,序列,集合和映射。

数值类型: int, long, float, complex.

序列: String, bytes, byte array, list, tuple.

集合装:set, frozen set.

对应关系: dict。

12、什么是Python装饰器?

装饰器 是一个函数,它的功能并延伸后者函数的行为,而不显式地修改它

13、Python中是否有switch..case语句?

No。Python中没有开关或大小写。

14、我们如何在Python中使用“〜”获取主目录?

在Unix和Windows上,返回带有〜或〜user初始部分的参数替换为该用户的主目录。

import os
home = str(os.path.expanduser('~'))
print(home)

或者
 
import os
home = str(os.path.expanduser('~user'))
print(home)

15、python中“ //”运算符的作用是什么?

“ //”用于整除分割

5//2=2

16、如何针对多个值测试一个变量?

在这种情况下,可以使用“ in”运算符。

x=2
if x in (1,2,3,4,5):
  print("found")
else:
  print("Not found")

上面的语句验证... x = 1或x = 2或x = 3或x = 4或x = 5。

如何在Python中调用外部命令
子流程模块允许您生成新流程,连接到其输入/输出/错误管道,并获取其返回代码。所述 subprocess.call() 方法由运行ARGS中描述的命令。等待命令完成,然后返回returncode属性。

Windows示例

from subprocess import call
call(["dir"])

Unix范例
 
from subprocess import call
call(["ls", "-l"])

17、对象名称前有单下划线还是双下划线?

_abc:“内部使用”指示器较弱。例如,从X import *不会导入名称以单个下划线开头的对象。
__abc:解释程序用_classname__abc替换此名称,以确保该名称不会与另一个类中的相似名称重叠。
Python从用户读取单个字符?

while True:
  userInput = input('>>')
  if len(userInput) == 1:
      break
  print ("You should enter only one character")

18、在Python中使用双引号和单引号

Python没有对char的单引号和对字符串的双引号的限制。

两者是一样的,您使用的根据偏好。

print('Single Quotes')
print("Double Quotes")

19、python中的raw_input()和input()有什么区别?

在Python 2中,raw_input()完全接受用户键入的内容,并将其作为字符串传递回。
在Python 3中,raw_input()重命名为input(),因此现在input()返回确切的字符串,并删除了旧的input()。
Xrange和range有什么区别?
在python 2.x中,range()返回一个列表, xrange() 返回一个xrange对象,有点像迭代器,并根据需要生成数字。在Python 3中,没有xrange(),但是range()函数的行为类似于Python 2中的xrange。如果要编写将在Python 2和Python 3上运行的代码,则应使用range()。

for x in range(5):
  print(x)

输出
 
0
1
2
3
4

20、如何在命令提示符下退出python脚本?

要离开交互式外壳并返回控制台(系统外壳),请按Ctrl-Z ,然后在Windows上按 Enter,或在OS X或Linux上按Ctrl-D。另外,您也可以运行python命令exit()!

21、Python中的负索引是什么?

在python中,我们可以同时使用正负索引。 python中使用负索引从列表的最后一个元素,元组或任何其他支持索引的容器类开始进行索引。

-1表示最后一个索引,-2表示倒数第二个索引,依此类推。

lst = [1,2,3,4,5]
print(lst[-1])
print(lst[-2])
print(lst[-5])

输出
 
5
4
1

22、Python是面向对象的吗?

是。Python是一种 面向对象的语言,该程序围绕结合了数据和功能的对象构建。Python类提供了面向对象编程的所有标准功能。它是C ++和Modula-3中的类机制的混合。

23、为什么Python不能完全面向对象?

Python是一种面向对象的语言,但不是纯语言。Python不支持 强封装,这只是与术语“面向对象”相关的众多功能之一。

24、什么是类?如何在Python中创建它?

Python对象仅仅是数据(变量)和作用于这些数据的方法(函数)的集合。并且,类是对象的蓝图。

这是一个简单的类定义。

class MyClass:
MyVar = 0

25、如何在Python中将字符串转换为整数?

Python int()方法 是将字符串转换为整数值的标准内置函数。您使用包含数字作为参数的字符串来调用它,它返回转换为实际整数的数字。

print (int("100") + 1) Return 101

26、如果str ='Hello World!',print str * 2的输出是什么?

它将打印“ Hello World!”。两次。

str = "Hello World!"
print(str*2) Return "Hello World!Hello World!"

27、如何大写字符串中每个单词的首字母(Python)?

字符串的.title()方法(ASCII或Unicode都可以)将字符串中每个单词的首字母大写。

str = "python hello world"
print(str.title()) Return "Python Hello World"

28、如何检查由字母数字字符组成的字符串?

isalnum() 方法 检查字符串是否包含字母数字字符。

print ('123abc'.isalnum()) Return True
print ('123#$%abc'.isalnum()) Return False

29、如何检查所有字符都是数字的字符串?

如果字符串中的所有字符都是数字并且至少有一个字符, Python str.isdigit()方法将返回true,否则返回false。

 
print ("12345".isdigit()) return True
print ("12345abc".isdigit()) return False

30、如何删除字符串中所有前导和尾随空格?

您可以使用 strip() 在Python中修剪空白。

str = "    hello World!   "
print(str.strip())    Return "hello World!"

31、什么时候使用字典代替列表?

仅在需要将有意义的map(或关联)到值时使用“ 字典”,而“列表”仅将位置(或索引)映射(或关联到)值。

32、如何按键对字典排序?

import operator
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
sorted_x = sorted(x.items(), key=operator.itemgetter(0))
print(sorted_x)

输出
 
[(0, 0), (1, 2), (2, 1), (3, 4), (4, 3)]

33、如何按值对字典排序?

import operator
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
sorted_x = sorted(x.items(), key=operator.itemgetter(1))
print(sorted_x)

输出
 
[(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]

34、列表理解是什么意思?

列表理解为创建列表提供了一种简洁的方法。常见的应用是创建新列表,其中每个元素是应用于另一个序列的每个成员或可迭代的某些操作的结果,或者创建满足特定条件的那些元素的子序列。

lst = [x**2 for x in range(10)]
print(lst)

输出
 
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

和...一样 :

 
lst = []
for x in range(10):
  lst.append(x**2)
print(lst)

输出
 
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

35、如何克隆或复制列表?

Python 3.3+添加了 list.copy() 方法,该方法应与切片速度一样快:

newlist = old_list.copy()

36、如何从列表中删除重复项?

itemList = ['1', '2', '3', '3', '6', '4', '5', '6']
newList = []
[newList.append(item) for item in itemList if item not in newList]
print(newList)

输出
 
['1', '2', '3', '6', '4', '5']

37、Python用来迭代数字序列的内置函数是什么?

的 range() 是将被用于迭代数序列的内置函数。

for num in range (1, 5):
   print (num)

38、Python支持多少种序列?这些是什么?

Python支持六种序列类型,它们是:

· strings
· unicode strings
· lists
· tuples
· buffers
· range objects

39、解释打开文本文件并显示其内容的最短方法吗?

with open("index.txt") as f: s = f.read()
print (s)

40、如何在Python中将stdout重定向到文件?

您可以在执行python文件时使用shell重定向。

python test.py > output.txt

41、如何以相反的顺序显示文本文件的内容?

的 rstrip() 方法返回访问以相反的顺序给定的序列的迭代器。

for line in reversed(list(open("index.txt"))):
    print(line.rstrip())

42、解释什么是Dogpile 效果?如何防止这种影响?

当缓存过期并且网站同时被众多请求访问时,就会发生 “ Dogpile ”效应。之所以触发,是因为我们允许多个请求执行昂贵的查询。使用信号量锁定可以防止Dogpile 效应。如果值过期,则第一个进程获取锁并开始生成新值。所有后续请求均检查是否已获取锁定并提供过时的内容。生成新值后,将释放锁定。

本文地址

更新时间:2020-09-04 18:34:30

本文由 智慧煮粥 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
原文链接:http://zz.zzhub.cn/archives/python42
最后更新:2020-09-04 18:34:30

评论

Your browser is out of date!

Update your browser to view this website correctly. Update my browser now

×