当前位置: 首页 > 面试题库 >

python 3打印生成器

羊舌成周
2023-03-14
问题内容

当我处理print()函数(Python 3)时出现问题。

当我寻找序列的总和时,我可以使用以下代码模式:

>>> sum(i for i in range(101))

但是当我倾向于检查自己制作的系列时:(我选择print()并假设它将逐行打印出来)

>>> print(i for i in range(101))

事实证明,它成为没有返回值的生成器对象。因此,我必须使用list()进行序列检查。那是打印功能上的缺陷吗?

PS:以上内容是构成生成器的示例,不是自然序列的最简单形式,而是复杂序列的骨骼结构。为了方便进行系列值检查,我正在寻找一种逐行打印每个值的方法。


问题答案:

sum需要累加的东西累加起来,而print要打印单独的参数。如果要print单独生成所有生成器的项目,请使用*符号:

print(*(i for i in range(1, 101)))

但是,无论哪种情况,您实际上都不需要生成器:

sum(range(1, 101))
print(*range(1, 101))

如果希望将它们放在单独的行上,那么您将期望对的多个单独调用的行为print,这意味着您将期望规则循环的行为:

for item in generator_or_range_or_whatever:
    print(item)

尽管您也可以选择指定'\n'为项目分隔符:

print(*generator_or_range_or_whatever, sep='\n')


 类似资料:
  • 本文向大家介绍C#条码生成及打印实例代码,包括了C#条码生成及打印实例代码的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C#条码生成及打印的方法,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 我是python的新手:我的目标是在while循环后打印完成的语句,但它给了我语法错误 我正在尝试在python中复制相同的php程序 我试过了 仍然失败,不能在结束后使用打印,还是必须等待一段时间才能完成打印 问题答案: 如果看到’>>>’,则表示您 未在编写程序 。您正在使用口译员。您一次输入一个语句。 如果要编写程序,请将其保存在扩展名为.py的纯文本文件中。您应该能够通过双击它

  • 迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 迭代器有两个基本的方法:iter() 和 next()。 字符串,列表或元组对象都可用于创建迭代器: 实例(Python 3.0+)>>>list=[1,2,3,4] >>> it = iter(

  • 迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 迭代器有两个基本的方法:iter() 和 next()。 字符串,列表或元组对象都可用于创建迭代器: 实例(Python 3.0+)>>>list=[1,2,3,4] >>> it = iter(

  • 问题内容: 在Python 2中,我使用了: 我试过了: 问题答案: 在Python2中,是一个引入了以下语句的关键字: 在Python3中,是可以调用的函数: 在这两个版本中,都是一个运算符,它在左侧需要一个字符串,在右侧需要一个值或一个值的元组或一个映射对象(如)。 因此,您的行应如下所示: 另外,对于Python3和更高版本,建议使用-style格式而不是-style格式: Python 3

  • 我使用select.select()代替输入,因为我想要输入超时。我在print()函数中使用end参数,因为我希望我的终端有这样一行: 类型 相反,我没有看到“类型” 我的代码: 我正在使用此脚本测试select.select()并打印(str,end=“”)。我阅读了这篇文章(如何在打印语句后抑制换行?)和这两个命令的官方Python3文档。