LYLlllhhh 发表于 2021-2-2 16:54:27

作业不会做

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

Peteryo01223 发表于 2021-2-2 17:18:07

本帖最后由 Peteryo01223 于 2021-2-2 17:21 编辑

如此?
>>> str1 = '<a href="http://www.fishc.com/dvd" target="_blank">鱼C资源打包</a>'
>>> str1.index('www.fishc.com')
16
>>> length = len('www.fishc.com')
>>> str1
'www.fishc.com'
>>>
你这是哪里的题?原题怎么问的呢?

qiuyouzhi 发表于 2021-2-2 17:19:12

更简单的?(正则
__import__("re").findall('<a href="(.*?)" target="_blank">鱼C资源打包</a>', str1)
我当时做的时候是人工数出来的...

Twilight6 发表于 2021-2-2 17:50:03


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

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

笨鸟学飞 发表于 2021-2-2 17:52:01

str1 = '<atarget="_blank">鱼C资源打包</a>'
result = 'www.fishc.com'
length = len(result)
for index,each in enumerate(str1):
      if index+length > len(str1):
                print('搜索完成!')
                break
      elif str1 == result:      
                print('起始索引:%d,结束索引:%d' % (index,(index+length)))

按你的学习进程,这段代码比较适合你理解

sunrise085 发表于 2021-2-2 19:48:28

两种方式:一种切片,一种正则
import re
str1 = '<a href="http://www.fishc.com/dvd" target="_blank">鱼C资源打包</a>'
print(re.findall(r"//(.*?)/",str1))#正则

print(str1.split('/'))#切片

Daniel_Zhang 发表于 2021-2-3 00:00:25

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

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

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

list1 = str1.split('"')
for each in list1:
      if "http" in each:
                print(each)

LYLlllhhh 发表于 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'
这是第一问的原题哦~

LYLlllhhh 发表于 2021-2-3 09:08:55

qiuyouzhi 发表于 2021-2-2 17:19
更简单的?(正则

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

哎呀,我还没学到呢。不过也谢谢啦

LYLlllhhh 发表于 2021-2-3 09:10:13

笨鸟学飞 发表于 2021-2-2 17:52
按你的学习进程,这段代码比较适合你理解

懵懵懂懂看的懂?我的进度还没到那。谢谢呀!

LYLlllhhh 发表于 2021-2-3 09:11:23

sunrise085 发表于 2021-2-2 19:48
两种方式:一种切片,一种正则

emmm,我去参透一下,谢谢~

LYLlllhhh 发表于 2021-2-3 09:21:22

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

想问问for each 后面的是哪个知识点?我忘了,谢谢~

Daniel_Zhang 发表于 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 这个字符串(请勿点击链接,只是一个示例而已,不会链接到任何地方)

如果有,就把这个元素打印出来
页: [1]
查看完整版本: 作业不会做