Python 中的变量作用域问题

2023-12-10

我是 Python 新手,并且已经使用它一段时间了,但我遇到了一个问题。这是我的代码:

def collatz(num,ctr):
    if(num != 1):
        ctr+=1
        if(num%2==0):
            collatz(num/2,ctr)
        else:
            collatz(num*3+1,ctr)
    return ctr
test=collatz(9,0)

对于我输入的任何数字num,比方说9例如,和0 for ctr, ctr总是出现1。我使用的是ctr变量错了?

编辑: 我试图打印出该函数递归了多少次。所以ctr将是每个递归的计数器。


我更改了您的递归调用,将从递归调用返回的值设置为 ctr。按照您编写的方式,您正在丢弃从递归中返回的值。

def collatz(num,ctr):
    if(num != 1):
            ctr+=1
            if(num%2==0):
                    ctr=collatz(num/2,ctr)
            else:
                    ctr=collatz(num*3+1,ctr)
    return ctr

test=collatz(9,0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中的变量作用域问题 的相关文章

随机推荐

  • 如何解决“项目已添加。键入字典:”错误?

    我有一个应用程序 当我尝试向其中添加项目时 该应用程序被挂起 当我检查跟踪文件时 我得到了这个条目 for int i 0 i
  • 如何保留 svg 文本中的空格

    要在 svg 的文本元素中保留空格 应使用 xml space preserve 作为文本的属性 jsfiddle 但是 它不起作用 我究竟做错了什么 init snap var svgElement document getElement
  • Spring Boot Rest 中没有内容

    当方法未获取记录时 如何配置 Spring Boot 在 GET 方法 通常是 findAll 方法 中返回 204 我不想在每个方法中都做处理 输入下面的代码 if result return new ResponseEntity
  • 使用 django cms cmsplugin_filer_file 和 cmsplugin_filer_image 进行未定义上传

    我刚刚开始使用 django cms 所以请原谅我的新手 每次我尝试在管理区域上传文件时 例如 图像文件使用cmsplugin filer file cmsplugin filer image它 在剪贴板区域中显示为未定义 这很奇怪 因为
  • WifiManager.calculateSignalLevel(RSSI, 5) 问题

    我正在尝试使用 Wifimanager 来计算扫描期间找到的接入点的信号级别 我正在使用以下方法 WifiManager calculateSignalLevel int int 但无论 RSSI 级别是多少 它似乎总是返回相同的 int
  • 使用循环中的复杂命令在 gnome 终端中打开多个选项卡

    我有一个需要这样调用的命令 command complex argument 如果我想运行 gnome terminal 并传递这个参数 它会像这样 gnome terminal e command complex argument 我想在
  • XCode 7 UI 测试:关闭系统生成的 UIAlertController 不起作用

    我有一个 UI 测试 其中涉及取消系统生成的UIAlertController 此警报要求用户授予访问设备日历的权限 测试的目标是点击后的行为OK button 1 let app XCUIApplication this code was
  • 如何判断一个点是否在二维凸多边形内部?

    我有一个凸多边形 通常只是一个旋转的正方形 并且我知道所有 4 个点 如何确定给定点 黄色 绿色 是否为inside多边形 编辑 对于这个特定的项目 我无法访问 JDK 的所有库 例如 AWT 这一页 http www ecse rpi e
  • 无法在 junit 中模拟 BufferedWriter 类

    我在源代码中使用 BufferedWriter 对象 BufferedWriter outputToErrorFile new BufferedWriter new FileWriter file outputToErrorFile app
  • 如何找到像素级标准差?

    我有 20 个具有相同分辨率和范围的栅格 这是一个时间序列 每个栅格都是一年 我想计算所有栅格的像素标准偏差 到目前为止 我正在使用 raster 包 qq2 lt list maxras1 maxras2 maxras3 maxras4
  • 合并两个对象数组的最有效方法

    我已经解决了这个问题 不过 我正在寻找更快的解决方案 因为我的变量有数千个对象 我有两个这样的数组 var full a aa1 b bb1 a aa3 b bb2 a aa3 b bb3 a aa2 b bb3 some a aa1 b
  • 错误6(net::ERR_FILE_NOT_FOUND):找不到文件c或目录

    我正在使用 scriptcase php 代码生成器 它安装在服务器中 但我通过网络访问它 一切都很好 直到有人注销了服务器的管理员 这是我使用的用户 我重新启动了服务器并以管理员身份登录 但现在我无法从 chrome 访问 scriptc
  • 将执行计时代码放入函数中,OpenCV?

    我在我的程序 C 和 OpenCV 中随处使用了这个代码片段 它用于计时一些操作 double t Some code t double getTickCount Object1 LotOfComputing t 1000 double g
  • wait Promise.all() 和多个await 之间有什么区别?

    之间有什么区别 const result1 result2 await Promise all task1 task2 and const t1 task1 const t2 task2 const result1 await t1 con
  • 链接 Ajax URL 的正确方法

    在我的插件中 我有一些 jQuery Ajax 代码 用于处理表单数据并在单击按钮后将其添加到数据库中 由于许多人的插件文件夹路径不同 我想知道是否有办法标准化指向数据处理 PHP 文件的 URL 请参阅下面我的示例 ajax type P
  • 为什么 `#!/usr/bin/env var=val command` 会陷入无限循环

    In man 1 env it say env OPTION NAME VALUE COMMAND ARG 所以考虑print A sh usr bin env A b bash echo A is A 当我运行它时 print A sh它
  • 如何在Keras中计算F1宏?

    在删除它们之前 我尝试使用 Keras 提供的代码 这是代码 def precision y true y pred true positives K sum K round K clip y true y pred 0 1 predict
  • 在循环命令内创建按钮失败

    在python中使用Tkinter 尝试制作编号按钮 它使用self do x 将数字x添加到字符串变量中 这段特定代码处于循环中 以节省空间 的问题在于 它将把最后一个数字添加到字符串中 即本例中的 9 这是因为它调用此后的函数 并使用
  • Java 中的数组或列表。哪个更快?

    我必须在内存中保存数千个字符串 以便在 Java 中连续访问 我应该将它们存储在数组中还是应该使用某种 List 由于数组将所有数据保存在连续的内存块中 与列表不同 因此使用数组存储数千个字符串会导致问题吗 我建议您使用分析器来测试哪个更快
  • Python 中的变量作用域问题

    我是 Python 新手 并且已经使用它一段时间了 但我遇到了一个问题 这是我的代码 def collatz num ctr if num 1 ctr 1 if num 2 0 collatz num 2 ctr else collatz