繁体   English   中英

pprint中的运行时调用

[英]Run time call within pprint

如何在运行时在pprint内部传递值?

import nltk, sys
from pprint import pprint
from nltk.corpus import framenet as fn
#Word = raw_input("enter a word: ")
pprint(fn.frames(r'(?i)Medical_specialties'))
f = fn.frame(256)
f.ID
f.name
f.definition
print f
print '\b'
pprint(sorted([x for x in f.FE]))
pprint(f.frameRelations)
print

在运行时,我需要从用户那里得到一个单词并将其传递给fn.frames函数以代替Medical_specialties,后者再抛出一系列帧作为与该单词相关的帧ID。 然后,我可以呼叫这些号码以进一步查询。

输出:

[<frame ID=256 name=Medical_specialties>]

尽管您碰巧正在使用nltk ,但您的问题nltk无关(或者与pprint ):您需要从用户输入一个字符串,然后在前面加"(?i)"以进行构造您所需的正则表达式。

既然这就是您要做的,那么最简单的解决方案是:

word = raw_input("enter a word: ")
rexp = "(?i)" + word
pprint(fn.frames(rexp))

将字符串组合在一起的一种更强大的方法是使用python的C样式字符串格式或更新的format()语法。 例如,要在输入“单词”之前和之后指定单词边界,您可以这样做(C样式语法):

rexp = r"(?i)\b%s\b" % word

您可能会发现上面的链接很难理解,因此,请尝试以下说明投票率很高的SO问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM