python字符串集合面试笔试题

python字符串面试笔试题

  • 1: 以下代码的输出是?
s = 'foo'
t = 'bar'
print('barf' in 2 * (s + t))

A.True
B.Fasle

+运算符连接字符串,而*运算符创建多个副本。 2 *(s + t)的结果是'foobarfoobar',它确实包含字符串'barf'。

  • 2: 以下代码的输出是?
print(ord('foo'))

A.102
B.102 111 111
C.异常

ord()函数返回给定字符的整数值。 但是您只能指定一个字符(长度为1的字符串):

  • 3: 给出字符串s的从倒数第一个开始,每3个取一个的切片表达式是什么?

A.s[::-3]
B.s[::3]
C.s[:3:-1]

切片表达式中的第三个索引为-3,表示从倒数第一个开始,每3个取一个。第一个和第二个索引应为-1(最后一个字符)和0(第一个字符)。 这些使用默认值即可。

  • 4: s = 'foobar', 下面哪个表达式的结果和其他不同

A.s[::5]
B.s[0] + s[-1]
C.s[::-1][::-5]
D.s[::-5]
E.s[::-1][-1] + s[len(s)-1]

  • 5: s = 'foobar',下面哪些表达式为True

A.s[::-1][::-1] is s
B.s[::-1][::-1] == s
C.s[:] == s
D.s[:] is s

s [:]创建对原始字符串s的实际引用。 因此,不仅s和s [:]相等,而且它们也具有相同的id():

s [::-1]反转s,但创建对新对象的引用。 附加的[::-1]切片会再次将其反转,因此它等于原始的s。 但这不是同一对象:

>>> s = 'foo'
>>> id(s)
60155776
>>> id(s[:])
60155776
>>> s = 'foo'
>>> id(s)
60155776
>>> id(s[::-1][::-1])
63665824
  • 6: 用f字符串补全 返回'Hello, my name is name.'
def greet(person):
    return # Use an f-string

A.f'Hello, my name is {person}.'
B.f'Hello, my name is person.'
C.f'Hello, my name is {%person}.'

f字符串看起来像普通的字符串,但以f或F为前缀。f字符串中的变量用花括号括起来。

  • 7: 以下代码的输出是?
print(
    '$100 $200 $300'.count('$'),
    '$100 $200 $300'.count('$', 5, 10),
    '$100 $200 $300'.count('$', 5)
)

A.3 2 1
B.3 1 1
C.3 1 2
D.3 1 0

str.count() 计算指定字符串中给定子字符串的出现次数。第二个和第三个参数表示值,解释为字符串切片:该方法包含字符串中以字符位置开始的部分,直到但不包括

  • 8: s = 'foo-bar-baz',下面哪些表达式和s相等。

A.s.center(15)
B.s.strip('-')
C.'-'.join(s.partition('-'))
D.'-'.join(s.split('-'))
E.s.upper().lower()

  • 9: 下面哪些表达式可以创建包含5个null (0x00)的 bytes.
    A.bytes(5)
    B.bytes('\x00\x00\x00\x00\x00', 'utf-8')
    C.bytes([0] * 5)
    D.bytes((0, 0, 0, 0, 0))

bytes(5)的参数可为整数,字符串和编码或迭代类型。 但不能是多个整数。

  • 10: 以下代码的输出是?
list((b'abcde' + 'fghi')[3:6])

A.[b'd', b'e', b'f']
B.[100, 101, 102]
C. b'def'
D. 异常

  • 11: 在Python中,字符串是…

A. str对象
B. 字符数组
C. 不变的
D. 可变的

  • 12: 以下哪一项给予字母“e”的前两次出现时将字符串分开?

A.'e'.split("dededede", maxsplit = 2)

B."dededede".split('e', maxsplit = 2)

C.'e'.split("dededede", 2)

D. "dededede".split('e', 2)

  • 13: 以下哪些数学运算符可用于连接字符串:

A. -
B. +
C. /
D. *

  • 14: s="hello",一行代码将s反序转换成'olleh'

  • 15: 哪些方法可以实现字符串连接

A. join()
B. +
C. %
D. format()
E. f-string

以上答案在订阅号pythontesting 输入 答案 可以获取。

参考资料

python集合面试笔试题

image

  • 1 哪些关于Python的set类型的描述是正确的:

A. 集合可能包含可变元素。

B. 集合是可变的。

C. 集合中元素的顺序很重要。

D. 给定元素不能出现在集合中多次。

  • 2 以下哪些定义集合{'a','b','c'}:

A. s = {('a', 'b', 'c')}

B. s = {'a', 'b', 'c'}

C. s = set('abc')

D. s = set(['a', 'b', 'c'])

E. s = set('a', 'b', 'c')

  • 3 s = {100, 200, 300}, 以下哪个语句不能正确产生s与集合{300,400,500}的并集:

A. s.union([300, 400, 500])

B. s.union(set([300, 400, 500]))

C. s.union({300, 400, 500})

D. s | [300, 400, 500]

E. s | set([300, 400, 500])

  • 4 {'b', 'a', 'r'} & set('qux')的结果是:

A. {'b', 'r', 'a'}

B.set()

C.{}

D.{'q', 'r', 'x', 'u', 'b', 'a'}

  • 5 {1, 2, 3, 4, 5} - {3, 4} ^ {5, 6, 7} 的结果是:

A. {1, 2}

B.{1, 2, 6, 7}

C.{3, 4, 5, 6, 7}

D.set()

  • 6 集合s定义如下:s = {'foo', 'bar', 'baz', 'qux'}。哪些删除了元素'bar':

A. del s['bar']

B.s.discard('bar')

C. s.difference_update({'bar'})

D.s.pop()

E. s -= {'bar'}

F. s &= {'foo', 'baz', 'qux'}

  • 7 求以下代码的输出:
set1 = {1, 2, 3} 
set2 = set1.add(4) 
print(set2) 

A. {1, 2, 3, 4}
B {1, 2, 3}
C 语法错误
D None

  • 8 求以下代码的输出:
set1 = {1, 2, 3} 
set2 = {4, 5, 6} 
print(len(set1 + set2)) 

A 3
B 6
C 不确定
D 错误

  • 9 求以下代码的输出:
A = {0, 2, 4, 6, 8}; 
B = {1, 2, 3, 4, 5}; 
 
print( A - B)

A {0, 1, 2, 3, 4, 5, 6, 8}
B {0, 8, 6}
C {2, 4}

  • 10 求以下代码的输出:
A = {0, 2, 4, 6, 8}; 
B = {1, 2, 3, 4, 5}; 
 
print( A ^ B) 

A {0, 1, 2, 3, 4, 5, 6, 8}
B {2, 4}
C {0, 8, 6}
D {0, 1, 3, 5, 6, 8}

以上答案在订阅号pythontesting 输入 答案 可以获取。

posted @ 2023-04-25 21:25  磁石空杯  阅读(163)  评论(0编辑  收藏  举报