【发布时间】:2015-07-20 21:54:20
【问题描述】:
我有一个字符串s="expences > drinks" 被发送到一个函数。在该函数中,我应该使用raw_input() 添加新值,直到我输入一个空字符串。
这些输入中的每一个都应添加到初始字符串中。在空字符串的情况下,函数必须返回包含所有先前添加的单词的字符串。
我试图通过调用函数本身并将更改的字符串传递给它来实现它,但它只返回第一个添加的单词。我还尝试避免使用while True: 从自身调用函数,如果为空字符串,则中断循环并返回值。但是这些变体都不能正常工作。
请解释我做错了什么以及最pythonic的方法是什么。
代码如下:
#!/usr/bin/env python -tt
# -*- coding: utf-8 -*-
def create_sub_cat(parent):
print "creating subcat\n %s > " %(parent)
conf=raw_input("type new subcat or press \"ENTER\" to save changes\n")
if conf!="":
parent+=" > "+conf
create_sub_cat(parent)
return parent
s="expences > drinks"
print create_sub_cat(s)
【问题讨论】:
-
好吧,当你递归调用函数时,你并没有对返回值做任何事情。您既不是
returning 它的结果,也不是在使用它。