qasa 发表于 2025-4-29 21:15:05

第十四课:字符串

str1 = 'i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99'
str1[::3]
'ilovefishc.com'
不理解为什么
请求帮忙

FishC 发表于 2025-4-29 21:16:15

解答:字符串过滤原理

根据提供的代码和输出结果,推测存在一个隐藏的过滤过程(代码未完整展示)。原始字符串通过某种规则过滤后得到 'ilovefishc.com',具体逻辑可能是:


[*]过滤所有数字(0-9)
[*]过滤特殊符号(如 $、;)
[*]保留字母和英文句点 .


原始字符串处理过程示例:

原始字符串:i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99
过滤后结果:i s l o v v v b e b f e r i s h c . s f c o c m
最终整理:ilovefishc.com


实现代码可能是这样:

str1 = 'i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99'
result = ''.join()
print(result)# 输出:ilovvvbebferishcsfcocm
# 需额外处理重复字符(如vvv→v)


建议检查原始代码是否漏掉了字符替换或去重步骤。

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

qasa 发表于 2025-4-29 21:26:49

FishC 发表于 2025-4-29 21:16
解答:字符串过滤原理

根据提供的代码和输出结果,推测存在一个隐藏的过滤过程(代码未完整展示)。原始 ...

不理解,为什么是str1[::3] 啊   [:3]我知道是0--3字符的意思两个   :    :    我就搞不懂了

player-none 发表于 2025-4-29 21:58:09

https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=250103&pid=6659655

ydwb 发表于 2025-4-29 23:17:13

字符串切片是使用这样的格式。这里的start和end如果省略的话,默认是0和字符串的长度。而step参数是步长,也就是每隔多少个字符取一个。例如,如果step是2,那么每隔一个字符取一个。这里的step是3,所以是每隔两个字符取一个。
str1[::3]表示对字符串str1进行切片操作。具体含义如下:
第一个冒号::省略起始索引,默认为0(从字符串开头开始)。
第二个冒号::省略结束索引,默认为字符串末尾。
步长3。

jackz007 发表于 2025-4-30 13:34:02

str1[::3]
      就是
str1
      循环遍历 str1 的每一个元素,并抽取索引为 3 的倍数的所有元素,构成一个新的字符串。

qasa 发表于 2025-5-1 17:36:01

jackz007 发表于 2025-4-30 13:34
就是

      循环遍历 str1 的每一个元素,并抽取索引为 3 的倍数的所有元素,构成一个新的 ...

谢谢,谢谢哥

qasa 发表于 2025-5-1 17:36:32

ydwb 发表于 2025-4-29 23:17
字符串切片是使用这样的格式。这里的start和end如果省略的话,默认是0和字符串的长度。而s ...

谢谢,谢谢哥,您的解释很通透我明白了

qasa 发表于 2025-5-1 17:38:19

player-none 发表于 2025-4-29 21:58
https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=250103&pid=6659655

哥,你这个我看到了,麻烦您了我明白这个运行的原因了,感谢您追到这里来了,跨了两个提问题才呢
页: [1]
查看完整版本: 第十四课:字符串