2015-10-16 56 views
0

这是一件简单的事情,我不知道为什么这不起作用,因为我之前在其他语言中做过很多次,也许我错过了一些东西。无论如何,我有一个功能,做一些事情,当我调用不同的功能时,我尝试调用该功能。调用一个函数内部的函数

语境:让人不解的是字面上行字符串和字的列做了一个让人不解的是,我们正在寻找拼图

第一功能

def lr_occurrences(puzzle, word):  
    return puzzle.count(word) 

二级功能字

def do_tasks(puzzle, name):  
    print('Number of times', name, 'occurs left-to-right: ', end='')  
    lr_occurrences(puzzle, name) 

然而,当我打电话

do_tasks(PUZZLE1,'whatever') 

的外壳,在弹出的唯一的事情是“的次数......”的事情,但如果我叫

lr_occurences(PUZZLE1,'whatever') 

它工作完全正常返回值。

任何想法?

回答

0

您正在致电lr_occurrences(puzzle, name),然后放弃结果。或者像在之前的那个函数中那样打印它,或者返回它。

def do_tasks(puzzle, name):  
    print('Number of times', name, 'occurs left-to-right: ', end='')  
    print(lr_occurrences(puzzle, name)) 

或者:

def do_tasks(puzzle, name):  
    print('Number of times', name, 'occurs left-to-right: ', end='')  
    return lr_occurrences(puzzle, name) 

如果返回它,你将不得不调用打印到do_tasks,例如因为它出现了。

+0

Ahhhhh我试图打印它,但它给了一个语法错误,所以我认为我错了,结果我忘了把括号哈哈。谢谢! –

0

你永远不会对返回值做任何事情。将其退回或打印出来。

0

do_tasks功能应该是这样的:

def do_tasks(puzzle, name):  
    print('Number of times', name, 'occurs left-to-right: ', end='')  
    return lr_occurrences(puzzle, name) 

注意添加return,使得由lr_occurrences回到do_tasks值,然后通过do_tasks返回给调用者。