鱼C论坛

 找回密码
 立即注册
查看: 3001|回复: 5

[已解决]pre = len(s[s.find('.')+1:]),看不懂len语法中的内容

[复制链接]
发表于 2022-10-13 10:54:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
pre = len(s[s.find('.')+1:])
“ +1:”是什么意思
最佳答案
2022-10-13 11:18:10
本帖最后由 lymww 于 2022-10-13 11:19 编辑

pre = len(s[s.find('.')+1:])
我的分析是,s是个字符串,s.find('.')是查找该字符串中‘.’的位置,会返回该字符在字符串中的下标值。
s.find('.')+1    就代表坐标值+1
s[s.find('.')+1:]     这句话代表的是字符串s的切片写法,表示的取字符串中‘.’后的内容
len(s[s.find('.')+1:])    表示 所取内容的长度是多少


其实你只要去了解字符串的切片方法就能看懂这句代码


这里我写了个列子,你看是不是这样
s = 'hfahfaf.3214eertqrq'
j = s.find('.')  # 返回.在字符串中的首次出现的下标
print('\'.\'在字符串s中的下标为:{}'.format(j))
h = s[s.find('.')+1:]  # 获取字符.后面的内容
print('字符串s中\'.\'后面的内容为:{}'.format(h))
print('字符串s中\'.\'后面的内容长度为:{}'.format(len(h)))


运行结果为:
'.'在字符串s中的下标为:7
字符串s中'.'后面的内容为:3214eertqrq
字符串s中'.'后面的内容长度为:11

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-13 11:09:15 | 显示全部楼层
参考 https://docs.python.org/zh-cn/3/reference/datamodel.html#types 中的“序列”一段
以及您的语法结构拆分是有误的, +1 和 : 并不紧密结合。如果有需要,参考 https://docs.python.org/zh-cn/3/library/stdtypes.html?highlight=str%20find#str.find
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-13 11:10:39 | 显示全部楼层
不是+1:
而是 (s[s.find('.')+1):
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-13 11:18:10 | 显示全部楼层    本楼为最佳答案   
本帖最后由 lymww 于 2022-10-13 11:19 编辑

pre = len(s[s.find('.')+1:])
我的分析是,s是个字符串,s.find('.')是查找该字符串中‘.’的位置,会返回该字符在字符串中的下标值。
s.find('.')+1    就代表坐标值+1
s[s.find('.')+1:]     这句话代表的是字符串s的切片写法,表示的取字符串中‘.’后的内容
len(s[s.find('.')+1:])    表示 所取内容的长度是多少


其实你只要去了解字符串的切片方法就能看懂这句代码


这里我写了个列子,你看是不是这样
s = 'hfahfaf.3214eertqrq'
j = s.find('.')  # 返回.在字符串中的首次出现的下标
print('\'.\'在字符串s中的下标为:{}'.format(j))
h = s[s.find('.')+1:]  # 获取字符.后面的内容
print('字符串s中\'.\'后面的内容为:{}'.format(h))
print('字符串s中\'.\'后面的内容长度为:{}'.format(len(h)))


运行结果为:
'.'在字符串s中的下标为:7
字符串s中'.'后面的内容为:3214eertqrq
字符串s中'.'后面的内容长度为:11

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-13 11:58:28 | 显示全部楼层
本帖最后由 jackz007 于 2022-10-13 11:59 编辑
pre = len(s[s.find('.')+1:])
s . find('.')              # 字符串 s 中第一个 '.' 字符的索引
s[s . find('.') + 1:]      # 字符串 s 中第一个 '.' 字符以后的部分(不包括 '.')
len(s[s . find('.') + 1:]) # 字符串 s 中第一个 '.' 字符以后的部分(不包括 '.') 的长度
例如:
s = 'abc.12345678'
pre = len(s[s.find('.')+1:]) = 8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-13 15:51:10 | 显示全部楼层
lymww 发表于 2022-10-13 11:18
pre = len(s[s.find('.')+1:])
我的分析是,s是个字符串,s.find('.')是查找该字符串中‘.’的位置,会返 ...

谢谢,明白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 22:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表