python练习题--牛客网

1.https://www.nowcoder.com/test/question/done?tid=24193506&qid=141954 

Python 中字符串的前导 r 代表原始字符串标识符,该字符串中的特殊符号不会被转义,适用于正则表达式中繁杂的特殊符号表示。

最典型的例子,如要输出字符串 \n,由于反斜杠的转义,因此一般的输出语句为:

1

print "\\n"

这里的 \\ 将被转义为 \ 。而采用原始字符串输出时,则不会对字符串进行转义:

1

print r"\n"

因此本题答案为 C,输出 \nwoow 。注意前导标识符 r 不会被输出,只起标记作用。

 

2. https://www.nowcoder.com/test/question/done?tid=24193506&qid=141941#summary

多重赋值:x=y=z=1

多元赋值:x,y,z=1,3,'a string'

增量赋值:x+=1

但是y=(x=x+1)

并不适用python,等号右边不能是赋值语句

3.

 b是B的实例(instance),也是A的实例(instance),

b不是B的子类(subclass)

4.

1.xrange() 函数用法与 range 完全相同,

        所不同的是生成的不是一个数组,而是一个生成器。

2.0的任何次方的值都为1

所以答案为:

                0**0=1 , 1**1=1, 2**2=4

 

5.

原来 Python2 的 math.floor() 函数返回值是浮点型,请大家注意!所以答案应该为5.0。

python3 返回的是整型

6.

sys.argv是命令参数表,包括文件名

argv[0]: 【path】/my.py

argv[1]: v1

argv[2]: v2

7.

 

在 Python 中万物皆为对象,函数也不例外,函数作为对象可以赋值给一个变量、可以作为元素添加到集合对象中、可作为参数值传递给其它函数,还可以当做函数的返回值,这些特性就是第一类对象所特有的。

8.

ython标识符可以使用下划线 字母 数字组成

但是数字不允许作为标识符的开头出现

9.

python 中的标准数据类型:
图片说明
其中数字类型有:
图片说明
注意:
string 不是 char!!!!
可变数据类型:列表list[ ]、字典dict{ }
不可变数据类型:整型int、字符串str' '、元组tuple()

 

10.

答案选B,因为Python 中浮点数的运算存在误差,动手实践就能得到验证,如下图所示:

具体原因是1.2 - 1.0的值不是0.2,而是0.19999999999999996

11、

 

C语言中字符串使用'\0'作为结束符以防止越界,但python中字符串其实是一个固定长度的字符数组,并不需要结束符。

12、

这道题考察的是Python的变量作用于(即LEGB规则) 

LEGB规则,表示的是Local -> Enclosed -> Global -> Built-in,其中的箭头方向表示的是搜索顺序。

  • Local 可能是在一个函数或者类方法内部。
  • Enclosed 可能是嵌套函数内,比如说 一个函数包裹在另一个函数内部。
  • Global 代表的是执行脚本自身的最高层次。
  • Built-in 是Python为自身保留的特殊名称。

因此,如果某个name:object映射在局部(local)命名空间中没有找到,接下来就会在闭包作用域(enclosed)进行搜索,如果闭包作用域也没有找到,Python就会到全局(global)命名空间中进行查找,最后会在内建(built-in)命名空间搜索(注:如果一个名称在所有命名空间中都没有找到,就会产生一个NameError)。

13、

本题主要考察 Python 基本语法与运算符的使用,下面逐个分析每个选项:

A、三元运算符的使用。基本语法为:

1

if condition else b

上述语句当 condition 为真时等于 a,为假时等于 b。因此 A 选项改为下列语句则正确:

1

min = x if x<y else y

B、还是三元运算符的使用,只不过 B 选项的用法在 C、Java 等语言中成立,在 Python 中没有此用法,正确用法参见选项 A。

C、if 语句缺少冒号,并且正确用法如下:

1

if (x>y): print x

D、while 语句与 pass 语句的使用。pass语句为空语句,意义只是为了保持程序结构的完整性。该选项写法正确,故选 D。

 14、

由于比较运算符优先级大于逻辑运算符,根据上表,当 a > 'b',即 'a' > 'b' 为 Fasle 时('a' 的 ASCII 码比 ‘b’ 小),返回值为 'c',故答案选C。

15、

选项 A:Python 中复数的表示方法;

选项 B:复数的实部与虚部均为浮点数;

选项 C:虚部的后缀可以是 “j” 或者 “J”;

选项 D:复数的 conjugate 方法可以返回该复数的共轭复数

 16、

try:的语句出现异常才会执行except后的语句,如果正常,则执行完try后执行else。另外,finally语句不管有无异常都会执行。

17、

Python2 中除法默认向下取整,因此 1/2 = 0,为整型。

For (plain or long) integer division, the result is an integer. The result is always rounded towards minus infinity: 1/2 is 0, (-1)/2 is -1, 1/(-2) is -1, and (-1)/(-2) is 0.

而 Python3 中的除法为正常除法,会保留小数位,因此 1/2 = 0.5,为浮点型。

可参考官方文档:

Python2 Numeric Types

Python3 Numeric Types

18、 

python中主要存在四种命名方式:

1、object #公用方法

2、_object #半保护

                 #被看作是“protect”,意思是只有类对象和子类对象自己能访问到这些变量,

                  在模块或类外不可以使用,不能用’from module import *’导入。

                #__object 是为了避免与子类的方法名称冲突, 对于该标识符描述的方法,父

                  类的方法不能轻易地被子类的方法覆盖,他们的名字实际上是

                  _classname__methodname。

3、_ _ object  #全私有,全保护

                       #私有成员“private”,意思是只有类对象自己能访问,连子类对象也不能访

                          问到这个数据,不能用’from module import *’导入。

4、_ _ object_ _     #内建方法,用户不要这样定义

 

19、

  1. __init__ 方法为初始化方法, __new__方法才是真正的构造函数。
  2. __new__方法默认返回实例对象供__init__方法、实例方法使用。
  3. __init__ 方法为初始化方法,为类的实例提供一些属性或完成一些动作。
  4. __new__ 方法创建实例对象供__init__ 方法使用,__init__方法定制实例对象。
  5. __new__是一个静态方法,而__init__是一个实例方法。

20、

Python 中的 tuple 结构为 “不可变序列”,用小括号表示。为了区别数学中表示优先级的小括号,当 tuple 中只含一个元素时,需要在元素后加上逗号。
详情可参考文档中的解释:

>>> print(type((1,)))

<class 'tuple'>

>>> print(type((1)))

<class 'int'>

21、

python里面%d表数字,%s表示字符串,%%表示一个%;

单引号内嵌套单引号需要转义字符/;单引号内嵌套双引号不需要嵌套;

双引号内嵌套双引号需要转义字符/;双引号内引用单引号不需要转义字符;

>>> A=12
>>> B='test:%d'%A
>>> print(B)

test:12

>>> ' Let\'s go!' 

"Let's go!

22、

__name__:name是一个变量,前后加了__ __标记为系统变量,__name__用于标识模块的名字的一个系统变量。

当我单独执行一个模块,我的这个系统变量的值为__main__

当我在模块2导入“这个模块”后,”这个模块”的__name__值为这个模块的名称:“这个模块”。在不同的场所用更方便你理解的化名。

‘__main__’:是顶级代码执行的作用域的名称。

 

 


Python 支持连续比较,'a' < 'b' < 'c' 相当于 'a' < 'b' and 'b' < 'c',其本质是字符 ASCII 码的大小比较,该判断式结果为 True。

 

  • 7
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值