print()函数的行为

时间:2017-04-18 15:19:50

标签: python python-3.x

有人可以在下面的代码段中证明print()的行为吗?

print(i for i in range(0,10))

我打算打印0到9之间的值。

另外,我怎么知道哪些预定义函数可以让我们说i for i in range(10)作为参数。 (10个单独的整数)

3 个答案:

答案 0 :(得分:3)

问题是i for i in range(0, 10)是生成器理解,简而言之就是迭代器,你可以通过将生成器生成的内容连接在一起来轻松解决它:

# note that range(0, 10) is 
print(''.join(str(i) for i in range(10))) equivalent to range(10)

如果你使用Python 3,你甚至可以更多地简化代码:

print(*range(10), sep='')

<强>输出:

'0123456789'

有关发电机理解的更多信息:

生成器表达式就像列表推导([i for i in range(10)]),但不是找到您感兴趣的所有项目并将它们打包到列表中,而是等待,并从表达式中产生每个项目,一个接一个。

哪些功能可以将内容视为i for i in range(10)

所以最后这是一个集合,所以你可以将它传递给任何需要集合的函数。

答案 1 :(得分:1)

<body>
    <div class="header">
        <div class="logo">
            <a href="index.php"><img src="imgs/logo.png"></a>
        </div>
        <div class="nav">
            <ul>
                <li><a href="browse.php">Browse</a></li>
              <span class="separator">|</span>
                <li><a href="create.php">Create</a></li>
            </ul>
        </div>
        <div class="login">
           <a href="login.php">Login</a>
        </div>
 
    </div>
</body>

答案 2 :(得分:1)

回应你对Astroms的评论回答:

有点难看,但它确实起作用了:

print("".join([str(i) for i in range(10)]))