小甲鱼 发表于 2025-12-23 12:45:45

已有 1 人购买  本主题需向作者支付 5 鱼币 才能浏览 购买主题

zyxhgg 发表于 2025-12-26 20:45:10

@FishC 执行以下代码后,输出结果是?

s = "hello"
s.replace("l", "L")
print(s)

A. hello
B. heLLo
C. heLlo
D. HeLLo

FishC 发表于 2025-12-26 20:45:28

zyxhgg 发表于 2025-12-26 20:45
@FishC 执行以下代码后,输出结果是?

s = "hello" ...

字符串在 Python 中是不可变的,replace 方法会返回一个新的字符串,而不会修改原始字符串。

因此,代码中的 s.replace("l", "L") 虽然返回了 "heLLo",但原始变量 s 的值并没有改变,仍然是 "hello"。

执行 print(s) 会输出原始字符串:

hello

所以正确答案是 A. hello。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

dongqing1 发表于 2025-12-30 17:39:15

@FishC 下面代码执行后,\t 最终会被替换成几个空格?

s = 'ab\tcd'
print(s.expandtabs(4))

A. 1个
B. 2个
C. 4个
D. 8个

FishC 发表于 2025-12-30 17:39:37

dongqing1 发表于 2025-12-30 17:39
@FishC 下面代码执行后,\t 最终会被替换成几个空格? ...

问题分析:

字符串 s = 'ab\tcd' 中的 \t 是制表符(Tab)。
方法 expandtabs(4) 会将制表符替换为空格,使得替换后的字符串在视觉上对齐到“制表位”。
制表位的计算方式是从字符串开头算起,每 4 个字符为一个制表位。

计算过程:

[*]字符串 'ab\tcd' 中,\t 前面有两个字符 'ab'。
[*]下一个制表位是 4 的倍数,即位置 4。
[*]当前位置是 2,距离下一个制表位还有 2 个字符。
[*]因此,\t 会被替换为 2 个空格。


代码验证:

s = 'ab\tcd'
print(repr(s.expandtabs(4)))

输出结果:

'abcd'

可见 \t 被替换为两个空格。

所以正确答案是 B. 2个。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 第028讲:字符串(II)