作业一

代码


  import requests
  import re
  text = requests.get('http://www.yyschools.com/courses/FinancialData/Presentation/chapter02_WarmUp_Python/%E4%BD%9C%E4%B8%9A%E4%B8%80%E7%B4%A0%E6%9D%90.txt')
  text.encoding = 'utf-8'
  text = text.text
  pat = '([a-zA-Z]*?)\W'
  limit = re.search('顺丰控股', text).start()
  text = text[:limit]
  k = re.compile(pat).findall(text)
  k = [i for i in k if i]
  print(f'最后一个单词为{k[-1]},其长度为', len(k[-1]))

  附加题
  import requests
  import re
  text = requests.get('http://www.yyschools.com/courses/FinancialData/Presentation/chapter02_WarmUp_Python/%E4%BD%9C%E4%B8%9A%E4%B8%80%E7%B4%A0%E6%9D%90.txt')
  text.encoding = 'utf-8'
  text = text.text
  pat = '([a-zA-Z]*?)\W'
  limit = re.search('顺丰控股', text).start()
  text = text[:limit]
  k = re.compile(pat).findall(text)
  k = [i for i in k if i]
  print(f'最后一个单词为{k[-1]},其长度为', len(k[-1]))


结果

结果

解释

引用get得到地址下的pdf文件,发现其格式有问题,改成utf-8格式,再用文本形式读取 进行正则表达式匹配,匹配大小写字母和空格字符,即为全文匹配,题目要求是顺丰控股前的内容,所以 找到顺丰控股的下标,读取顺丰控股前的所有内容,再用compile进行分割匹配,再使用for循环语句,因为在布尔类型中空格表示的是否,所以 for循环将所有非空格字符储存在新的列表里,即得到类似split函数分割的内容。附加题也是同样思路,只是匹配要求变成了句子