完成功能B后,有条件地调用功能A.

时间:2012-11-23 09:02:11

标签: python repeat function

到目前为止,我有两个类似的函数函数def A()和函数def B(),它可以工作,但我想这样做,以便在用户完成函数{{1 }},...他可以选择退出,或者在函数B()中写入数据再次开始这个过程

从理论上讲,用户可以在他(例如)点击A()退出程序之前重复该过程一百万次。

我将如何实现这一目标?

ENTER

2 个答案:

答案 0 :(得分:1)

最好将A()的功能与B()合并并传递一个标志,但这里有一个解决方案,允许在A()之后调用B(),直到用户点击RETURN

def A():
    print 'Processing in A!'

def B():

    choice = ''
    print 'Processing in B!'

    while choice.lower().strip() != 'r':    
        choice = raw_input("Press R to repeat, RETURN to exit: ").lower().strip()            
        if choice == '':
            return False
        if choice  == 'r':
            return True

while B():
    A()

输出:

Processing in B!
Press R to repeat, RETURN to exit: R
Processing in A!
Processing in B!
Press R to repeat, RETURN to exit: r
Processing in A!
Processing in B!
Press R to repeat, RETURN to exit: notR
Press R to repeat, RETURN to exit: 

一些注意事项:

lower()会返回用户键入的所有小写字符,以便rR被视为相同。

strip()从输入中删除任何前导或尾随空格。

答案 1 :(得分:1)

怎么样:

i = "r"
while i != "q":
    A()
    B()
    i = raw_input("Press Q to quit, press any other key to repeat with def A (parameters):").lower().strip()