python - 为什么这个循环不起作用,而类似的循环起作用?
问题描述
如果列表“nums”在某处的某个 3 旁边包含一个 3,则此函数应返回 True。
函数“has_33”应该接受一个列表参数,所以这个循环完美地工作: -
def has_33(nums):
for i in range(0, len(nums)-1):
if nums[i:i+2] == [3,3]:
return True
return False
但是当我以这种形式这样做时:-
def has_33(nums):
for i in range(0,len(nums)-1):
if nums[i:i+2] == [3,3]:
return print("True")
else:
if i == len(nums)-1:
return print("False")
如果数组不包含条件,则无法打印“False”。
那么为什么第一个循环有效,而第二个循环不工作,尽管它们是相同的呢?
解决方案
你不应该把这个条件:
if i == len(nums)-1:
在你的函数里面。即使你这样做,使用:
if i == len(nums)-2:
因为i
永远不会变成len(nums)-1
(见上面的循环条件)
推荐阅读
- c++ - 由于堆损坏,应用程序已触发断点
- javascript - 使用 Ajax 将可变数据作为帖子发送
- c++ - 当用户没有在 C++ 上输入整数时如何停止无限循环?
- java - 带有 JPA 存储库的 Netty Socket Channel Initializer 无法保存到 MYSQL
- tsql - 根据给定日期计算要排除的天数
- javascript - 未捕获的类型错误:this.firstname 不是函数
- asp.net-core - ASP.NET Core 5.0 MVC:尝试下载文件时出现 DirectoryNotFoundException
- arrays - 如何在 Excel 公式中创建可变长度数组?
- android - 已填充的 EditText 字段上的 Android Studio 光标位置
- google-apps-script - 如何使用 Google App Script 在 Google Docs 中插入 RichLink(芯片块)