我必须用递归函数做一个时间表代码。我必须要求用户输入一个数字,然后打印出从1到12的时间表。我必须使用递归函数,不允许使用for
循环或{
def times_tables(num):
def multiply(x):
product = x * num
if x < 12:
print (str(multiply(x + 1)))
user = input("Enter a number: ")
times_tables(user)
如果我在times_tables
函数中定义x
,那么每次函数运行时,它都会被设置回我第一次设置的值。谢谢你的帮助。在
我不确定我是否理解你的任务,但我的尝试是:
你没有修改x,x是通过值传递的,这意味着它被复制了。在
如果你想把退出条件保持在递归之外,你需要一种直接从递归中写X的方法,这可能会涉及到一个全局(错误的做法所以要避免)。在
你需要在multiply中有退出条件,因为这是你的递归,在这种情况下,你的X会增加,你将检查正确的递增值。或者像ruggfrancesco建议的那样一起改变功能
相关问题 更多 >
编程相关推荐