元素越界打印为“无”
Posted
技术标签:
【中文标题】元素越界打印为“无”【英文标题】:Element out of bounds printout as "None" 【发布时间】:2021-12-20 17:13:00 【问题描述】:下面的代码旨在在其范围内打印出一个列表。该列表当前在最后一个元素之后显示“None”(是的,我知道 python 中的“None”在 C++ 中是“Null”),但是当“if " 如果发现元素为“无”,则循环会中断它
def out_of_boud(lst):
lst_length = int(len(lst))
element = int(0)
while (element >= 0 and element < lst_length):
if element == None: break
else:
print(str(lst[element]) + "\t" + str(element))
element +=1
print(out_of_boud([10, 15, 20, 21, 22, 35]))
print(out_of_boud([10, 15, 20, 21]))
【问题讨论】:
【参考方案1】:值None
不是从您的函数中打印出来的。它是您的函数(隐式)返回并从调用代码(显式)打印出来的值。
说明:由于函数没有显式返回值,所以它的返回值是None
。因为在你的代码中你不只是调用函数,而是打印它的值(print(out_of_boud(...)
),None
是在函数体执行后打印的。
就像评论一样,由于您的风格似乎受到其他语言的影响,因此有更简洁和 Pythonic 的方式来实现您正在做的事情。此代码等效于您的函数(None
检查除外):
for i, item in enumerate(lst):
print(item, i, sep='\t')
【讨论】:
是的,C++ 在这些问题上更详细,但是是的,我认为情况就是这样。谢谢以上是关于元素越界打印为“无”的主要内容,如果未能解决你的问题,请参考以下文章