我的 For 循环不会迭代列表

2023-12-27

我必须确定列表中的所有数字是否都是素数,然后根据结果返回布尔“True”或“False”语句。我在 for 循环中做了一些条件语句来查看该数字是否为素数。

这是代码:

def all_primes(xs):
    is_prime = None
    for i in xs:
        if i < 2:
            is_prime = False
            return is_prime
            break
        elif (i % 2 == 0) and (i % i == 1):
            is_prime = False
            return is_prime
            break
        else:
            is_prime = True
            return is_prime

问题是,我在 Python Visualizer 中看到了这一点,for 循环在检查列表中的第一个值后停止迭代。我不明白为什么,因为语法与我过去使用的 for 循环相同。

我插入了一些示例值,例如:all_primes([5,2,11,37]) or all_primes([5,2,4,37])并且返回值始终为 true,因为 5 是列表中的第一个数字,也是唯一被迭代的数字。

有什么想法吗?


你有一个return and a break在你的if/else块,你应该摆脱它们。还有return in the else应该在外面,否则每当他找到“素数”时它就会返回。

def all_primes(xs):
  is_prime = None
  for i in xs:
      if i < 2:
          is_prime = False
          return is_prime
      elif (i % 2 == 0):
          is_prime = False
          return is_prime
      else:
          is_prime = True
  return is_prime

在此之后,您应该知道,您并没有真正检查素数。 这不是最有效的方法,但很清楚如何:

def all_primes(xs):
    def checkPrime(n):
        if n < 2:
            return False
        for i in xrange(2, n):
            if n%i == 0:
                return False
        return True
    return all(map(checkPrime, xs))

编辑: 没有map函数,你只需要迭代for loop:

def all_primes(xs):
    def checkPrime(n):
        if n < 2:
            return False
        for i in xrange(2, n):
            if n%i == 0:
                return False
        return True
    for n in xs:
        if not checkPrime(n):
            return False
    return True
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的 For 循环不会迭代列表 的相关文章

随机推荐

  • WiX -- 将文件安装到系统驱动器

    我正在开发一个安装程序 它将一些文件放入另一个应用程序中 该应用程序将其文件保存在 SystemDrive appName 中 该安装程序仅用于内部自动化 因此如果不考虑其他安装位置也可以 我发现默认情况下 WiX 将目标目录设置为可用空间
  • 使用 JavaScript 书签获取 Ajax HTML 元素

    我是书签新手 不知道用它可以做多少事情 我想从网页中获取一些元素 但直到我单击一些按钮后内容才会显示 我能够使用下面非常简单的代码在静态网页上获取某些内容 但是是否可以通过创建书签来获取更深层次的元素 是否可以使用javascript书签获
  • CryptoJS AES 加密与 JAVA AES 解密值不匹配

    我在客户端使用 CryptoJS AES 算法加密文本 并在服务器端用 java 对其进行解密 但出现异常 JS代码 var encrypted CryptoJS AES encrypt Message Secret Passphrase
  • 为什么我的 Oracle DataSource 仅在单元测试时出现重放错误?

    我的 Spring Boot 1 5 17 Spring 4 3 20 服务器在 bootRun 或部署时工作正常 但是 我的 Oracle 数据源失败了仅当单元测试时 java lang AssertionError 服务器正在发送非空重
  • AFNetworking 和 Swift

    我正在尝试使用 Swift 获取 JSON 响应 我嗅探了请求和响应 gt 一切正常 然而返回值始终是nil let httpClient AppDelegate appDelegate httpRequestOperationManage
  • 在 html 中以 100% 宽度和高度嵌入 pdf 文件?

    我试图在 html 代码中嵌入 pdf 文档 我尝试了三种不同的方法 这实际上给了我相同的结果 p It appears you don t have a PDF plugin for this browser No problem you
  • 从 Objective-C 运行 sudo 命令

    如何从 Objective C 运行 sudo 命令 我可以使用以下方法运行不需要 sudo 的简单命令 NSTask task task NSTask alloc init task setLaunchPath bin sh NSArra
  • 使用 PHP 将二进制转换为十六进制

    如何转换二进制数 即1111111 到十六进制 即7f 使用 PHP 我认识到我可以做到dechex bindec 1111111 但是 我确信这不是正确的方法 I tried bin2hex 1111111 但结果是 3131313131
  • '_positions.isNotEmpty':ScrollController 未附加到任何滚动视图

    我在滚动视图控制器中收到错误 这是错误 flutter package flutter src widgets scroll controller dart Failed assertion line 149 pos 12 position
  • sql根据条件从另一个表插入行

    考虑下面两个表 Table 1 ID DATA 1 A 2 B 3 C 4 D 5 E 6 F Table 2 ID DATA 2 G 3 F 4 Q 如果表 2 没有表 1 的 ID 如何将数据从表 2 插入表 1 换句话说 我想要以下结
  • 如何分发 32 位和 64 位版本的库

    我有一个由各种客户端 32 位和 64 位 调用的 C 库 到目前为止 它被编译为 AnyCPU 所以没有任何问题 最近 我添加了对 SQLite NET 库的依赖项 该库有 32 位和 64 位版本 但不是 AnyCPU 所以 现在 我必
  • 多个元素的 CSS 选择器索引

    我有以下代码 如你所见 我所有的div元素具有相同的class name 我想选第三divCSS 选择器的元素 我找不到任何办法 nth child n 用于子元素 子元素 任何想法 div class linkDisplayStyle a
  • 将字符串中每个单词的第一个字符更改为大写

    我找到了下面的函数 CFString大写 将字符串的每个单词中的第一个字符更改为大写 如果它是小写字母字符 void CFStringCapitalize CFMutableStringRef theString CFLocaleRef l
  • MSXML API 的文档在哪里? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 特别是对于 vbscript ASP set xmlDoc CreateObject Msxml2 DOMDocument 3 0 在微软
  • CoordinatorLayout 滚动后在底部留下空白空间

    我正在尝试使用 CoordinatorLayout 实现 Google 的最新设计技巧 但在滚动和视差效果方面存在问题 显示 活动 后 一切看起来都正常 但当我尝试滚动时出现问题 底部视图似乎未正确展开 向上滚动后 下方出现空白区域 底部视
  • 自动嵌入 YouTube 直播

    如何使用 php 在网页中自动嵌入 YouTube 直播 比如查询视频https youtube com user USERID live https youtube com user USERID live当传输正在播出时 我是OP的作者
  • 如果 x 是列表,为什么 x += "ha" 有效,而 x = x + "ha" 会抛出异常?

    据我所知 列表的 op 仅要求第二个操作数是可迭代的 ha 显然是可迭代的 In code gt gt gt x gt gt gt x ha gt gt gt x h a gt gt gt x x ha Traceback most rec
  • Reactjs:如何在生产应用程序的开发工具中隐藏节点模块和webconfig?

    我创建了一个正在运行的 React js 应用程序npx create react app my app我不希望在生产模式下在开发工具中提供完整的项目 如何在源选项卡 devtools 中禁用或隐藏节点模块和 webconfig 我检查了其
  • 系统提供的呼叫屏幕上扬声器按钮行为异常

    我们使用 CallKit 和 PortSIP 编写 VoIP 应用程序 这里的问题仅在 iOS 11 2 x 上重现 当用户点击 CallKit 提供的屏幕系统上的扬声器按钮时 会启用扬声器 但图标仍处于禁用状态 如果用户再次点击 系统也会
  • 我的 For 循环不会迭代列表

    我必须确定列表中的所有数字是否都是素数 然后根据结果返回布尔 True 或 False 语句 我在 for 循环中做了一些条件语句来查看该数字是否为素数 这是代码 def all primes xs is prime None for i