[英]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.