< 於心怡的作业一

於心怡的作业一

代码


f = open('作业一素材.txt', 'r', encoding='utf-8')
txt = f.read()
f.close()
txt=txt.replace('顺丰控股股份有限公司\nS.F. HOLDING CO., LTD.','') #将页脚内容替换为空
lst = txt.split()

for i in range(1,len(lst)):
    if (lst[-i].find('.') == -1)&(lst[-i].find(',') == -1):  #最后一词没有标点
        if lst[-i].isalpha():   #最后一词是单词,输出
            last_word = lst[-i]
            print(last_word)
            break
        else:    #最后一词不是单词,跳过,进入下一次循环
            continue
    else:
        last_word = lst[-i][:-1] #最后一词有标点,删去标点
        if last_word.isalpha():   #最后一词删去标点后是单词,输出
            print(last_word)
            break
        else:   #最后一词不是单词,跳过,进入下一次循环
            continue

print('最后一个单词的长度为',len(last_word))

结果

结果截图

附加题代码



  def  cutsentence(string):    #定义分割单句函数
      l=[]
      s=[]
      for item in string:
          if item in [',','。','!','?',';','——',] :
              s.append(item)
              l.append(''.join(s))
              s=[]
          else:
              s.append(item)
      return(l)

  f = open('作业一附加选做题素材.txt', 'r', encoding='utf-8')
  txt = f.read()
  f.close()
  txt=txt.replace('顺丰控股股份有限公司\nS.F. HOLDING CO., LTD.','') #将页脚内容替换为空
  txt = txt.replace('\n','')  #去掉换行符便于单句的分割
  lst = cutsentence(txt)   #调用自定义分割函数
  #单句分割方法2
  #import re
  #lst = re.split('[,。!?;——]',txt)
  last_sent = lst[-1]
  lst2 = txt.split('。')  #以句号进行整句分割
  last_sent2 = lst2[-2]
  print('最后一个单句为:',last_sent,'句子的长度是:',len(lst[-1]))
  print('最后一个整句为:',last_sent2+'。','句子的长度是:',len(lst2[-2])+1)



结果

结果截图

解释

对于单句的分割。方法1是自定义函数。方法2是使用re.split,即可实现多个分隔符的分割。
当使用split("。")时,遇到“。”进行一次分割,结果的列表里会多出一个内容为空的元素,并且用于分割的“。”会消失,所以在整句计数时,长度+1。(分割单句使用re.split()时也要注意这两点)