要获取测试用例的数量并输出所有输入数字,我可以在Python 2.5中执行以下操作
exec"print input();"*input()
如何在Python 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)
exec
与print
一样,是Python 3中的函数调用。将字符串包装在括号中。