鱼C论坛

 找回密码
 立即注册
查看: 1659|回复: 12

作业不会做

[复制链接]
发表于 2021-2-2 16:54:27 | 显示全部楼层 |阅读模式

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

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

x
如果使用负数作为索引值进行分片操作,按照第三题的要求你能够正确目测出结果吗?
这个怎么用内置方法数呢?
有字符串:str1 = '<a href="http://www.fishc.com/dvd" target="_blank">鱼C资源打包</a>',请问如何提取出子字符串:'www.fishc.com',这里面我是分别用index数出“w"和”m"的位置的,还有别的更简单的方法嘛?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-2 17:18:07 | 显示全部楼层
本帖最后由 Peteryo01223 于 2021-2-2 17:21 编辑

如此?
  1. >>> str1 = '<a href="http://www.fishc.com/dvd" target="_blank">鱼C资源打包</a>'
  2. >>> str1.index('www.fishc.com')
  3. 16
  4. >>> length = len('www.fishc.com')
  5. >>> str1[16:(16+length)]
  6. 'www.fishc.com'
  7. >>>
复制代码

你这是哪里的题?原题怎么问的呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-2 17:19:12 | 显示全部楼层
更简单的?(正则
  1. __import__("re").findall('<a href="(.*?)" target="_blank">鱼C资源打包</a>', str1)[0]
复制代码

我当时做的时候是人工数出来的...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-2-2 17:50:03 | 显示全部楼层

学到后面会有学部分有关数据提取的,比如正则,那时候直接进行数据提取即可

以现在的知识除了直接 index 或者数 没有什么更好的方法了

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

使用道具 举报

发表于 2021-2-2 17:52:01 | 显示全部楼层
  1. str1 = '<a  target="_blank">鱼C资源打包</a>'
  2. result = 'www.fishc.com'
  3. length = len(result)
  4. for index,each in enumerate(str1):
  5.         if index+length > len(str1):
  6.                 print('搜索完成!')
  7.                 break
  8.         elif str1[index:index+length] == result:      
  9.                 print('起始索引:%d,结束索引:%d' % (index,(index+length)))
复制代码


按你的学习进程,这段代码比较适合你理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-2 19:48:28 | 显示全部楼层
两种方式:一种切片,一种正则
  1. import re
  2. str1 = '<a href="http://www.fishc.com/dvd" target="_blank">鱼C资源打包</a>'
  3. print(re.findall(r"//(.*?)/",str1)[0])#正则

  4. print(str1.split('/')[2])#切片
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-3 00:00:25 | 显示全部楼层
不知道你有没有学过 str 的 split 函数
用 split('"') 切割所有的双引号(注意这里是单个的双引号,并非成对的)
然后地址都是 http 或者 https 开头的,那么就直接匹配 http 就够了(不论是 http 或者是 https 都会被匹配到)
然后满足条件 print 出来就可以了

其实也可以直接获取 href 的位置,然后往后挪一位就行了
href 你可以理解为网址链接的意思,href 和链接之间没有任何杂物,除了单个的双引号,但是 split 的时候已经被铲除了

  1. str1 = '<a href="http://www.fishc.com/dvd" target="_blank">鱼C资源打包</a>'

  2. list1 = str1.split('"')
  3. for each in list1:
  4.         if "http" in each:
  5.                 print(each)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-3 09:08:00 | 显示全部楼层
Peteryo01223 发表于 2021-2-2 17:18
如此?

你这是哪里的题?原题怎么问的呢?

str1 = '<a href="http://www.fishc.com/dvd" target="_blank">鱼C资源打包</a>',如果使用负数作为索引值进行分片操作,请问如何提取出子字符串:'www.fishc.com'
这是第一问的原题哦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-3 09:08:55 | 显示全部楼层
qiuyouzhi 发表于 2021-2-2 17:19
更简单的?(正则

我当时做的时候是人工数出来的...

哎呀,我还没学到呢。不过也谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-3 09:10:13 | 显示全部楼层
笨鸟学飞 发表于 2021-2-2 17:52
按你的学习进程,这段代码比较适合你理解

懵懵懂懂看的懂?我的进度还没到那。谢谢呀!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-3 09:11:23 | 显示全部楼层
sunrise085 发表于 2021-2-2 19:48
两种方式:一种切片,一种正则

emmm,我去参透一下,谢谢~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-3 09:21:22 | 显示全部楼层
Daniel_Zhang 发表于 2021-2-3 00:00
不知道你有没有学过 str 的 split 函数
用 split('"') 切割所有的双引号(注意这里是单个的双引号,并非成 ...

想问问for each 后面的是哪个知识点?我忘了,谢谢~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-3 11:22:17 | 显示全部楼层
本帖最后由 Daniel_Zhang 于 2021-2-3 11:23 编辑
LYLlllhhh 发表于 2021-2-3 09:21
想问问for each 后面的是哪个知识点?我忘了,谢谢~


for each in list1 就是遍历整个 list1 里面的每一个元素

if "http" in each:    就是如果元素里面包含了 http 这个字符串

比如说 http://example.html 就包括了 http 这个字符串(请勿点击链接,只是一个示例而已,不会链接到任何地方)

如果有,就把这个元素打印出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-13 21:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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