当前位置: 代码迷 >> python >> Python 3中的exec
  详细解决方案

Python 3中的exec

热度:64   发布时间:2023-06-19 09:11:42.0

要获取测试用例的数量并输出所有输入的数量,我可以在Python 2.5中执行以下操作

exec"print input();"*input()

如何在Python 3中以最短的方式做到这一点?

一旦适应了更改,经过混淆的代码在Python 3中也可以正常工作,这可以通过在2to3中运行代码来轻松完成。

exec("print(input());"*eval(input()))

(尽管在这种情况下,eval应该用int()代替,因为这就是您想要的。)显然,这很荒谬,为什么您使用exec和字符串乘法而不是循环?

for ignored in range(int(input())):
    print(input())

您也可以使用列表表达式:

[print(input()) for _ in range(int(input()))]

尽管大多数人会说(我同意),但使用列表表达式会产生副作用或循环通常是不好的形式。 列表表达式应??用于创建列表。

这是一段清晰的,具有自我说明性的代码,其功能相同:

num_integers = int(input('How many integers do you want to input? '))
for x in range(num_integers):
    print(input('Integer {}: '.format(x)))

您有不能使用循环的原因吗?

for _ in xrange(input()):
    print input()

execprint一样,是Python 3中的函数调用。将字符串用括号括起来。

  相关解决方案