python基本的知识。

1.简述解释型和编译型编程语言?

  对于语言来说,各种编程语言本质没什么不同,所谓的‘解释型’和‘编译型’指的是执行机制上的不同。

  解释型语言是它执行机制使用一个,‘解释器’来执行,解释器对于程序员是一句一句‘翻译’,成机器语言来执行。例如shell脚本语言。效率比较低。

  编译型语言是它执行机制使用一个,‘编译器’来编译成机器语言,然后就可以直接运行这个编译成的‘可执行文件’,例如C语言。效率比较高,但也不能一概而论。

你也可以为解释型语言写个编译器来编译,这样它就成了‘编译语言’。

你也可以为变一下语言写个解释器家执行,这样它就成了‘解释型语言’。

2.Python解释器种类以及特点?

  Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的五种Python解释器:

Cpython:

  c语言开发的,使用最广的解释器。

Ipython:

  基于cpython之上的一个交互式计时器,交互方式增强,功能和cPython一样

PyPy:

  目标是执行效率。瞎用JIT技术,对python代码进行动态编译,提高执行效率

Jpython:

  运行在Java上的解释器,直接吧python代码编译成Java字节码执行。

Ironpython:

  运行在微软.NET平台上的解释器,把python编译成.ENT的字节码。

3.位和字节的关系?

  位(bit),数据存储是以“字节”(Byte)为单位,数据传输是以大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位,是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。

4.b、B、KB、MB、GB 的关系?

  1TB=1024GB,
  1GB=1024MB;
  1MB=1024KB;
  1KB=1024B;
  1B=8bit。

5.请至少列举5个 PEP8 规范(越多越好)。

  (1) 缩进。4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。

  (2)每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。

  (3)不要在一句import中多个库,比如import os, sys不推荐。

  (4)各种右括号前不要加空格。

  (5) if/for/while语句中,即使执行语句只有一句,也必须另起一行。

  (6) 块注释,在一段代码前增加的注释。在‘#’后加一空格。段落之间以只有‘#’的行间隔。

  (7)模块命名尽量短小,使用全部小写的方式,可以使用下划线。

6.python递归的最大层数?

  在python中默认最大递归次数是998。

7.ascii、unicode、utf-8、gbk 区别?

 

ASCII1个字节英文

    

Unicode2个字节(生僻字4个)所有语言

 

UTF-81-6个字节,英文字母1个字节,汉字3个字节,生僻字4-6个字节所有语言

  最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。

  

  但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。

  你可以想得到的是,全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。

  因此,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

  Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。

  新的问题又出现了:如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。

  所以,本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。

  UTF-8编码有一个额外的好处,就是ASCII编码实际上可以被看成是UTF-8编码的一部分,所以,大量只支持ASCII编码的历史遗留软件可以在UTF-8编码下继续工作。

 

8.字节码和机器码的区别?

  机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU。

  通常意义上来理解的话,机器码就是计算机可以直接执行,并且执行速度最快的代码。

  字节码(Bytecode)是一种包含执行程序、由一序列 op 代码/数据对 组成的二进制文件字节码是一种中间码,它比机器码更抽象,需要直译器转译后才能成为机器码的中间代码。

  

 

 

 

 

 

 

 

 

 

 

 

 

 

  

转载于:https://www.cnblogs.com/zc980112/p/10081331.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值