exec在Python 3中

时间:2011-03-08 17:16:15

标签: python python-3.x

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

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

如何在Python 3中以最短的方式完成它?

3 个答案:

答案 0 :(得分:3)

一旦你适应了变化,你的混淆代码在Python 3中也可以正常工作,这可以通过在2到3之间运行代码来完成。

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)))

答案 1 :(得分:2)

你有没有理由不能使用循环?

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

答案 2 :(得分:1)

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