2022/12/10牛客网python专项练习学习笔记

1、下面程序运行结果为:

1

2

3

4

5

6

for in range(5):

    i+=1

    print("-------")

    if i==3:

      continue

    print(i)

A ------- 1 ------- 2 ------- ------- 4 ------- 5

B ------- 1 ------- 2

C ------- 1 ------- 2 ------- 3

D ------- 1 ------- 2 ------- 4 ------- 5

解析:

循环5次,当i=1,2,4,5时,print(i),当i=3时,继续循环;所以输出1,2,4,5

正确答案:A

2、在python3中,下列程序运行结果为:

1

2

3

4

5

strs = ['a''ab''abc''abcd']

dicts ={}

for in range(len(strs)):

    dicts[i] = strs[i]

print(dicts)

A [0: 'a', 1: 'ab', 2: 'abc', 3: 'abcd']

B {1: 'a', 2: 'ab', 3: 'abc', 4: 'abcd'}

C {0: 'a', 1: 'ab', 2: 'abc', 3: 'abcd'}

D [1: 'a', 2: 'ab', 3: 'abc', 4: 'abcd']

解析:

dicts={},是字典,print(dicts)输出也应该是字典,而不是列表;

range(len(strs))循环4次,字典中是从0开始的,所以输出的结果为{0: 'a', 1: 'ab', 2: 'abc', 3: 'abcd'}

正确答案:C

3、在Python3中,有关字符串的运算结果为:

1

2

3

4

5

strs = 'I like python and java'

one = strs.find('n')

print(one)

two = strs.rfind('n')

print(two)

A 12,12

B 15,15

C 12,15

D None,None



知识点普及:

  • string.find(str, beg=0, end=len(string))

  检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1

  • string.rfind(str, beg=0, end=len(string))

        类似于 find()函数,不过是从右边开始查找.

  • string.index(str, beg=0, end=len(string))

        类似于 find()函数,但是找不到报异常. 

  • string.rindex(str, beg=0, end=len(string))

        类似于 rfind()函数,但是找不到报异常.




解析:

strs.find('n')检查'n'是否在字符串strs中,结果为 是 ,返回开始的索引值(13)-1,因此第一个返回结果为12;

strs.rfind('n')返回‘n’最后一次出现在字符串strs中的位置(即从左到右开始查找‘n’),因此第二个返回结果为15;

正确答案:C

4、已知print_func.py的代码如下:

1

2

3

4

5

6

print('Hello World!')

print('__name__value: ', __name__)

def main():

    print('This message is from main function')

if __name__ =='__main__':

    main()

print_module.py的代码如下:

1

2

import print_func

print("Done!")

运行print_module.py程序,结果是:

A 、Hello World!
       __name__ value: print_func
       Done!

B、Hello World!
      __name__ value: print_module
      Done!

C、Hello World!
       __name__ value: __main__
      Done!

D、Hello World!
      __name__ value:
      Done!



知识点普及:

__name__属于Python中的内置类属性,代表对应程序名称。如果当前运行的程序是主程序,此时__name__的值就是__main__,反之,则是对应的模块名。

__main__一般作为函数的入口,尤其在大型工程中,常常有if__name__=="__main__":来表明整个工程开始运行的入口。

在导入文件时,文件中所有没有缩进的代码都会被执行一遍。



解析:

import print_func 导入print_func后,先执行print_func.py中的代码,输出 Hello World!,

print('__name__value: ', __name__)依次输出“__name__value:”,“print_func”

然后判断if __name__ =='__main__':的结果为假,什么也不执行,再输出“Done!”

正确答案:A

5、根据以下程序,下列选项中,说法正确的是()

class Vector:

    __slots__='x','y'

    def __init__(self):

        pass

class Vector3d(Vector):

    __slots__='x','z'

    def __init__(self):

        pass

vector = Vector()

vector3d = Vector3d()

A 若子类没有定义__slots__属性,则子类可以继承父类的__slots__属性

B Vector类的实例对象vector会自动获得实例属性x和y

C Vector3d类的实例对象vector3d最多只能允许属性x和z

D Vector3d类的实例对象vector3d最多只能允许属性x、y和z



知识点拓展:

python中的new-style class要求继承Python中的一个内建类型, 一般继承object,也可以继承list或者dict等其他的内建类型。

在python新式类中,可以定义一个变量__slots__,作用是阻止在实例化类时为实例分配dict,

默认情况下每个类都会有一个dict,通过__dict__访问,这个dict维护了这个实例的所有属性;

实例对象的实例属性最多只能在__slots__属性值的范围内;

  1. 子类未声明__slots__时,不继承父类的__slots__,即此时子类实例可以随意赋值属性
  2. 子类声明__slots__时,继承父类的__slots__,即此时子类的__slots__为其自身+父类的__slots__


解析:

正确答案:D

6、Which numbers are printed?()

1

2

3

4

for in range(2):

    print i

for in range(4,6):

    print i

A  2, 4, 6

B  0, 1, 2, 4, 5, 6

C  0, 1, 4, 5

D  0, 1, 4, 5, 6, 7, 8, 9

E  1, 2, 4, 5, 6

解析:

第一层循环,循环2次,输出0,1

第二层循环,循环2次,输出4,5

正确答案:C

7、下列代码输出为:

1

2

3

str = "Hello,Python";

suffix = "Python";

print (str.endswith(suffix,2));

A  True

B  False

C  语法错误

D  P



知识点普及:

str.endswith(suffix, start, end) 或 str[start,end].endswith("suffix"),用于判断字符串str是否以suffix结尾。

  • str:被查找的字符串
  • suffix:查找的字符串/元素/元组
  • start:开始查找的位置
  • end:结束查找的位置

 (  默认start为0,end为suffix的长度  len(suffix)   )

返回值:如果str被查找的位置中存在suffix,则 返回True,不存在 则 返回False;

若查找的suffix为空,则返回值 通常为 True。



解析:

str.endswith(suffix,2),str“python”(suffix)的位置在2,“Hello,Python”分别对应[0,1,2],所以返回 True。

正确答案:A

8、在Python3中,执行

1

print([2in [123])

A  True

B  False

C  [2]

D  报错

解析:

元组[2] 在 元组[1,2,3] 中并不存在,所以返回False。

正确答案:B

9、在Python3中,以下程序结果为:

1

2

3

one = (123)

two = ('a''b')

print(one+two)

A  None

B  报错

C  (1, 2, 3, 'a', 'b')

D  [1, 2, 3, 'a', 'b']

解析:

元组可以合并,“+”表示连接,所以输出元组(1,2,3,'a','b')

正确答案:C

10、在Python3中,下列说法正确的是:

1

2

lists = [122345]

print(lists.index(2))

A  1

B  2

C  3

D  None



知识点普及:

lists.index(a)表示在lists中查找 a 第一次出现时的下标,



解析:

lists.index(2)即为在lists = [122345]中查找2第一次出现时的下标,并输出。所以为1。

正确答案:A

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值