Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >python递归函数与全局变量误差

python递归函数与全局变量误差
EN

Stack Overflow用户
提问于 2018-06-02 03:07:15
回答 1查看 367关注 0票数 0

我正在模拟代码擦除字符串开头的所有零。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def fact(n):
    if n==1:
        return 1
    return n * fact(n - 1)

我的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution:
    def eraseZero(self,x):
        if str(x)[0]!='0':
            x = str(x)[0:]
            return x
        else:
            x = str(x)[1:]
        return eraseZero(x)



s1 = Solution()
s1.eraseZero('000789')
print(s1.eraseZero('000789'))

然而,我得到了一个错误:

D:\Python27\python.exe D:/pyProject/LintCode&LeetCode/medium.py回溯(最近一次调用):文件"D:/pyProject/LintCode&LeetCode/medium.py",第13行,s1.eraseZero('000789') File "D:/pyProject/LintCode&LeetCode/medium.py",第8行,eraseZero返回eraseZero(x) NameError:全局名称'eraseZero‘

为什么?以及如何提前fix.thanks!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-02 03:08:53

由于eraseZero是类Solution的一部分,而不是全局定义的,因此应该使用该类的实例self来调用它,无论是在类内还是类外部调用它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution:
    def eraseZero(self,x):
        if str(x)[0]!='0':
            x = str(x)[0:]
            return x
        else:
            x = str(x)[1:]
        return self.eraseZero(x) # <-----------



s1 = Solution()
s1.eraseZero('000789')
print(s1.eraseZero('000789'))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50656270

复制
相关文章
python 递归与高阶函数
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
py3study
2018/08/02
9830
python递归函数讲解_Python递归函数实例讲解
本文实例讲述了python二分查找算法的递归实现方法.分享给大家供大家参考,具体如下: 这里先提供一段二分查找的代码: def binarySearch(alist, item): first = 0 last = len(alist)-1 found = False while first<=last and not found: midpoint = (first + last)//2 if alist[midpoint] == item: found = True else: if ite
全栈程序员站长
2022/11/17
3.4K0
python递归函数讲解_Python递归函数实例讲解
Python 递归函数
递归函数 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n,用函数 fact(n)表示,可以看出: fact(n) = n! = 1 * 2 * 3 * ... * (n-1) * n = (n-1)! * n = fact(n-1) * n 所以,fact(n)可以表示为 n * fact(n-1),只有n=1时需要特殊处理。 于是,fact(n)用递归的方式写出来就是:
bear_fish
2018/09/20
1.2K0
Python 递归函数
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
全栈程序员站长
2022/09/07
1.4K0
Python 递归函数
Python递归函数
https://www.python-course.eu/recursive_functions.php
py3study
2020/01/20
1.2K0
Python函数递归
1.己知有一个数列:f(0) = 1,f(1) = 4,f(n + 2) = 2*f(n+ 1) +f(n),其中 n 是大于 0 的整数,求 f(10) 的值。 找出f(n): f(0) = 1,f(1) = 4, f(n + 2) = 2*f(n + 1) +f(n) 当n=1时: f(3)=2*f(2)+f(1) 当n=2时: n=2 f(4)=2*f(3)+f(2) 当n=3时: n=3 f(5)=2*f(4)+f(3) 当n=4时: n=4 f(6)=2*f(5)+f(4) ...... f(n)
织幻妖
2021/07/04
9280
Python函数递归
误差函数
其中, 表示神经网络的输出, 表示监督数据( 采用 one-hot 编码), 表示数据的维度。
hotarugali
2022/03/03
9310
python递归函数
python递归函数 英文的Recursion从词源上分析只是"re- (again)" + "curs- (come, happen)" 也就是重复发生,再次重现的意思。 而对应的中文翻译 ”递归“ 却表达了两个意思:”递“+”归“。 这两个意思,正是递归思想的精华所在。从这层次上来看,中文翻译反而更达意。
红芽
2020/08/19
1K0
Python 递归函数
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:Python 递归函数 ---- Python 递归函数 1.引入 2.斐波那契数列 ---- 1.引入 递归是一种广泛应用算法。它能够把一个大型复杂的问题转化为一个与原问题相似的较小规模的问题来求解,用非常简洁的方法来解决重要问题。就像一个人站在装满镜子的房间中,看到的影像就是递归的结果。递归在数学和计算机应
小嗷犬
2022/11/15
2.2K0
「函数」递归与迭代
重复执行一系列运算步骤,从前面的量依次求出后面的量的过程。此过程的每一次结果,都是由对前一次所得结果施行相同的运算步骤得到的。例如利用迭代法求某一数学问题的解。
AXYZdong
2022/02/04
9490
「函数」递归与迭代
递归(recursion):递归常被用来描述以自相似方法重复事物的过程,在数学和计算机科学中,指的是在函数定义中使用函数自身的方法。(A调用A)
AXYZdong
2022/05/05
2790
「函数」递归与迭代
Python之递归函数
递归函数 初识递归函数 递归函数的定义:在一个函数里再调用这个函数本身 Python为了考虑保护内存占用情况,有一个递归深度的限制。 探究递归的默认最大深度: def foo(n): print(n) n += 1 foo(n) foo(1) 强制的将递归层数控制在了997,此后会报错,报错只是计算机为了保护内存。当然了,997是python为了我们程序的内存优化所设定的一个默认值,我们当然还可以通过一些手段去修改它: import sys print(sys.setrecursio
新人小试
2018/04/12
8550
Python之递归函数
Python之递归函数
Python之递归函数 好久没有更新内容了,也好久没有给大家打个招呼了,小白想死你们了。今天跟大家说说Python中的递归函数。 Python是支持递归函数的。简单地说,一个递归函数就是直接或间接地调用自身的函数,并且要有退出条件。枯燥的概念令人生厌,我们直接来个例子看看递归函数是如何工作的。例如我们对一个数字列表进行求和计算,我们可以使用内置的函数或者自己写一个函数来完成计算工作,接下来我们看看如何使用递归来完成求和运算: In[1]:defmysum(L): ...:ifnotL: ...:retu
企鹅号小编
2018/02/06
9130
Python之递归函数
C函数与递归
在add函数头中,标明了函数的返回值类型为int,说明这个函数被调用后将返回一个int类型的结果。
WuShF
2023/03/07
3600
C函数与递归
C函数与递归
被花括号包括的被称为函数体,注意函数体一定要被花括号包括且不可省略。 花括号上面的函数名、函数参数及返回值被称作函数头。
WuShF
2023/03/08
4400
C函数与递归
Python 函数递归教程
函数的递归调用:他是一种特殊的嵌套调用,他也是在函数里面调用函数,但是他在函数体内调用的函数时他自己本身。
Python学习者
2023/01/06
5590
Python 函数的递归
函数的递归 什么是递归函数 一个函数不停的将自己反复执行 递归的定义方法 通过返回值 直接执行自身函数 递归函数的说明 内存溢出 避免滥用递归 代码 # coding:utf-8 count = 0 def test(): global count count += 1 if count < 5: print('count条件不满足, 我要重新执行我自己! 当前count是%s' % count) return test() else:
Zkeq
2022/05/18
6500
「Python」递归函数(递归特点和递归案例)
2. 当参数满足一个条件时,函数不再执行。这个非常重要,通常被称为递归的出口,否则会出现死循环
python自学网
2022/06/15
3.1K0
「Python」递归函数(递归特点和递归案例)
python_函数递归
函数递归 函数递归:函数的递归调用,即在函数调用的过程中,又直接或间接地调用了函数本身 # import sys # print(sys.getrecursionlimit()) # sys.setrecursionlimit(10000) # print(sys.getrecursionlimit()) 直接调用 def foo(): print('from foo') foo() foo() 间接调用 def bar(): print('from bar') foo()
py3study
2020/01/17
6340
Python之递归函数
Python之递归函数 好久没有更新内容了,也好久没有给大家打个招呼了,小白想死你们了。今天跟大家说说Python中的递归函数。 Python是支持递归函数的。简单地说,一个递归函数就是直接或间接地调用自身的函数,并且要有退出条件。枯燥的概念令人生厌,我们直接来个例子看看递归函数是如何工作的。 例如我们对一个数字列表进行求和计算,我们可以使用内置的sum函数或者自己写一个函数来完成计算工作,接下来我们看看如何使用递归来完成求和运算: In[1]: def mysum(L): ...: if no
1846122963
2018/03/09
1K0

相似问题

python递归函数全局变量范围

215

递归函数的Python全局变量

15

递归函数与mysqli闭包误差

14

递归函数误差

41

使用递归函数处理python全局变量

515
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文