乐趣区

关于python:Python面试题之基础篇一

Python 根底篇

1、为什么学习 Python

家里有在这个 IT 圈子外面,也想让我接触这个圈子,而后给我倡议学的 Python,而后本人通过百度和向有学过 Python 的同学理解了 Python,Python 这门语言,入门比较简单,它简略易学,生态圈比拟弱小,波及的中央比拟多,特地是在人工智能,和数据分析这方面。在将来我感觉是往自动化,人工智能这方面倒退的,所以学习了 Python。

2、通过什么路径学习 Python

刚开始接触 Python 的时候,到网上外面跟着视频学根底,再起初网上到看技术贴,而后看到有人举荐廖雪峰的 Python 教程,

练我的项目到 GitHub 下面找一些小我的项目学习。

3、谈谈对 Python 和其余语言的区别

Python 属于解释型语言,当程序运行时,是一行一行的解释,并运行,所以调式代码很不便,开发效率高,

还有龟叔给 Python 定位是任其自在倒退、优雅、明确、简略,所以在每个畛域都有建树,所有它有着十分弱小的第三方库。

特点:

语法简洁柔美,功能强大,规范库与第三方库都十分弱小,而且应用领域也十分广

可移植性,可扩展性,可嵌入性

毛病:运行速度慢

  • 解释型

    • python/php
  • 编译型

    • c/java/c#
  • Python 弱类型

    (1)与 java 相比:在很多方面,Python 比 Java 要简略,比方 java 中所有变量必须申明能力应用,而 Python 不须要申明, 用大量的代码构建出很多性能;(高效的高级数据结构)

(2)与 php 相比:python 规范包间接提供了工具,并且绝对于 PHP 代码更易于保护;

(3)Python 与 c 相比:

Python 和 C Python 这门语言是由 C 开发而来。

对于应用:Python 的类库齐全并且应用简洁,如果要实现同样的性能,Python 10 行代码能够解决,C 可能就须要 100 行甚至更多。

对于速度:Python 的运行速度相较与 C,绝逼是慢了。

Python 的劣势:

1、Python 易于学习;

2、用大量的代码构建出很多性能;(高效的高级数据结构)

3、Python 领有最成熟的程序包资源库之一;

4、Python 齐全反对面向对象;

5、Python 是跨平台且开源的;

6、动静类型。

4、简述解释型和编译型编程语言

解释型:就是边解释边执行(Python,php)

编译型:编译后再执行(c、java、c#)

5、Python 的解释器品种以及相干特点?

CPython

当咱们从 Python 官方网站下载并装置好 Python 3.6 后,咱们就间接取得了一个官网版本的解释器:CPython。这个解释器是用 C 语言开发的,所以叫 CPython。在命令行下运行 python 就是启动 CPython 解释器。

CPython 是应用最广的 Python 解释器。教程的所有代码也都在 CPython 下执行。

IPython

IPython 是基于 CPython 之上的一个交互式解释器,也就是说,IPython 只是在交互方式上有所加强,然而执行 Python 代码的性能和 CPython 是齐全一样的。好比很多国产浏览器尽管外观不同,但内核其实都是调用了 IE。

CPython 用 >>> 作为提示符,而 IPython 用 In [序号]: 作为提示符。

PyPy

PyPy 是另一个 Python 解释器,它的指标是执行速度。PyPy 采纳 JIT 技术,对 Python 代码进行动静编译(留神不是解释),所以能够显著进步 Python 代码的执行速度。

绝大部分 Python 代码都能够在 PyPy 下运行,然而 PyPy 和 CPython 有一些是不同的,这就导致雷同的 Python 代码在两种解释器下执行可能会有不同的后果。如果你的代码要放到 PyPy 下执行,就须要理解 PyPy 和 CPython 的不同点。

Jython

Jython 是运行在 Java 平台上的 Python 解释器,能够间接把 Python 代码编译成 Java 字节码执行。

IronPython

IronPython 和 Jython 相似,只不过 IronPython 是运行在微软.Net 平台上的 Python 解释器,能够间接把 Python 代码编译成.Net 的字节码。

小结:

Python 的解释器很多,但应用最宽泛的还是 CPython。如果要和 Java 或.Net 平台交互,最好的方法不是用 Jython 或 IronPython,而是通过网络调用来交互,确保各程序之间的独

PyPy

由 Python 写的解释器,它的执行速度是最快。PyPy 采纳 JIT 技术,对 Python 代码进行动静编译(留神不是解释),

绝大部分 Python 代码都能够在 PyPy 下运行,然而 PyPy 和 CPython 有一些是不同的,这就导致雷同的 Python 代码在两种解释器下执行可能会有不同的后果。

Jython

Jython 是运行在 Java 平台上的 Python 解释器,能够间接把 Python 代码编译成 Java 字节码执行。

IronPython

IronPython 和 Jython 相似,只不过 IronPython 是运行在.Net 平台上的 Python 解释器,能够间接把 Python 代码编译成.Net 的字节码。

小结:

Python 的解释器很多,但应用最宽泛的还是 CPython。如果要和 Java 或.Net 平台交互,最好的方法不是用 Jython 或 IronPython,而是通过网络调用来交互,确保各程序之间的独立性。

6、位和字节的关系

 1 字节 = 8 位
位(bit),数据存储是以“字节”(Byte)为单位,数据传输是以大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个 0 或 1(即一个二进制),二进制是形成存储器的最小单位,每 8 个位(bit,简写为 b)组成一个字节(Byte,简写为 B),字节是最小一级的信息单位 

7、b、B、KB、MB、GB 的关系

b ---> 位 (bit)    
B ---> 字节      一个字节等于 8 位
1B = 8 bit
1kb = 1024 B
1 MB = 1024 KB
1 GB = 1024 MB

8、PE8 标准

1、应用 4 个空格而不是 tab 键进行缩进。2、每行长度不能超过 79
3、应用空行来距离函数和类,以及函数外部的大块代码
4、必要时候,在每一行下写正文
5、应用文档正文,写出函数正文
6、在操作符和逗号之后应用空格,然而不要在括号外部应用
7、命名类和函数的时候应用统一的形式,比方应用 CamelCase 来命名类,应用 lower_case_with_underscores 来命名函数和办法
8、在类中总是应用 self 来作为默认
9、尽量不要应用魔法办法
10、默认应用 UTF-8,甚至 ASCII 作为编码方式
11、换行能够应用反斜杠,最好应用圆括号。12、不要在一句 import 中多个库,13、空格的应用 

9、通过代码实现如下转换 (进制之间转换)

# 二进制转换成十进制 -->int
v = "0b1111011"
b = int(v,2)
print(b)  # 123
# 十进制转换成二进制 --->bin
v2 = 18
print(bin(int(v2)))
# 0b10010
# 八进制转换成十进制
v3 = "011"
print(int(v3))
# 11
# 十进制转换成八进制:---> oct
v4 = 30
print(oct(int(v4)))
# 0o36
# 十六进制转换成十进制:v5 = "0x12"
print(int(v5,16))
# 18
# 十进制转换成十六进制:---> hex
v6 = 87
print(hex(int(v6)))
# 0x57

10、请编写一个函数实现将 IP 地址转换成一个整数

 请编写一个函数实现将 IP 地址转换成一个整数。如 10.3.9.12 转换规则为:10           00001010

        3            00000011

        9            00001001

        12           00001100

再将以上二进制拼接起来计算十进制后果:00001010 00000011 00001001 00001100 =?def v1(addr):
    # 取每个数
    id = [int(x) for x in addr.split(".")]
    print(id)
    return sum(id[i] << [24, 16, 8, 0][i] for i in range(4))
print(v1("127.0.0.1"))
# [127, 0, 0, 1]
# 2130706433

泛滥 python 培训视频,尽在 segmentfault 学习网,欢送在线学习!

退出移动版