首页 / PYTHON / 笨办法学Python3 ex49
笨办法学Python3 ex49
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了笨办法学Python3 ex49,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2095字,纯文字阅读大概需要3分钟。
内容图文
![笨办法学Python3 ex49](/upload/InfoBanner/zyjiaocheng/597/368287b7bde54701a70a9636eea576bb.jpg)
笨办法学Python3 ex49 被测试代码, 分析了ex49 Python老大 Zed写的源码, 自己学着写了一个有一点不一样, 还没有写最后几个抛错类和sentence类, 不知道直接用书上的,会不会有问题.
不管了, 先试着传入列表,简单的测试一下, 为了看出三个分析者拿到的word_list是什么糖果, 直接在三个函数第一行就打印了拿到的糖果. 测试文件还没写, 感觉有点烧脑子.
下面是运行结果
我在parse_sub里: [('noun', 'fighter'), ('throw', 'will'), ('verb', 'kill'), ('throw', 'the'), ('noun', 'bear'), ('throw', 'and'), ('noun', 'beefs')]
('noun', 'fighter')
我在parse_verb里: [('verb', 'kill'), ('throw', 'the'), ('noun', 'bear'), ('throw', 'and'), ('noun', 'beefs')]
('verb', 'kill')
我在parse_obj里: [('noun', 'bear'), ('throw', 'and'), ('noun', 'beefs')]
('noun', 'bear')
下面是被测试源文件
# %%writefile parser.py
li =[('throw', 'the'), ('noun', 'fighter'),('throw', 'will'),('verb', 'kill'),('throw', 'the'),('noun', 'bear')]
def peek(word_list): # [('throw' , 'the')('noun', 'car'), ('verb', 'hit'),('noun', 'me')]
if word_list:
word = word_list[0]
return word[0] # return 'noun'
else:
pass
def match(word_list): # 整理者 分析前整理拿到的列表
if word_list:
word = word_list.pop(0) # 分析一个删除一个,避免后面重复工作
return word
else:
pass
def parse_sub(word_list): # 主语分析者
new_word_list = skip(word_list)
print('我在parse_sub里:', new_word_list)
if peek(new_word_list) == 'noun':
return match(new_word_list)
else:
print('我需要主语')
def parse_verb(word_list): # 谓语分析者
new_word_list = skip(word_list)
print('我在parse_verb里:', new_word_list)
if peek(new_word_list) == 'verb':
return match(new_word_list)
else:
print('我需要谓语')
def parse_obj(word_list): # 宾语分析者
new_word_list = skip(word_list)
print('我在parse_obj里:', new_word_list)
if peek(new_word_list) == 'noun':
return match(new_word_list)
elif peek(new_word_list) == 'direction':
return match(new_word_list)
elif peek(new_word_list) == 'verb':
return ('noun', 'Someone')
else:
print('我需要宾语')
def skip(word_list): #垃圾分析者
while peek(word_list) == 'throw':
word_list.pop(0)
return word_list
print(parse_sub(li))
print(parse_verb(li))
print(parse_obj(li))
内容总结
以上是互联网集市为您收集整理的笨办法学Python3 ex49全部内容,希望文章能够帮你解决笨办法学Python3 ex49所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。