0
def monster(name):

    with open('yvd.txt') as fd:
        input=[x.strip('|').split('|') for x in fd.readlines()]
        to_search={x[0]:x for x in input}
        print('\n'.join(to_search[name]))
monster_name=input('Input monster to search: ')
monster(monster_name)

好的,所以我正在尝试monster通过用户输入调用该函数。input要求用户输入要搜索的怪物的名称。然后该函数monster搜索输入的怪物并将其打印出来。但是我如何让它在函数中可以调用字符串呢?

输出示例:

Input monster to search: Boogie Man
    Traceback (most recent call last):
    File "C:\Users\Trevor\Desktop\yvd_read.py", line 8, in <module>
    monster(monster_name)
    TypeError: 'str' object is not callable
>>> 
4

2 回答 2

0

您需要替换 python 内置函数 raw_input 来读取值而不是输入。请参阅此处输入函数的文档。这是更新的代码:

def monster(name):

with open('yvd.txt') as fd:
    user_input=[x.strip('|').split('|') for x in fd.readlines()]
    to_search={x[0]:x for x in input}
    print('\n'.join(to_search[name]))

monster_name=raw_input('Input monster to search: ')
monster(monster_name)
于 2013-03-24T03:28:00.053 回答
0

问题是方法输入。您应该改用raw_input。input 尝试评估字符串,但 raw_input 只是将用户写入的字符串放入变量中。

于 2013-03-24T03:20:00.540 回答