2024-10-03 11:23:16 发布
网友
为了好奇。。。
红宝石:
=>$ irb 1.8.7 :001 > puts x = 2 2 => nil 1.8.7 :002 > puts x += 2 while x < 40 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
很方便。
在Python中可以在一行中完成吗?如果可以,怎么做?
不能在Python中完全执行或的原因与此非常类似,因为在Ruby中,一切都是表达式。
Python语句和表达式之间的差异,并且只能计算表达式(因此打印,我的意思是传递给打印运算符/函数)。
所以这样的代码不能用你展示给我们的Python格式来完成。你所能做的就是找到一些“类似”的方法,把上面的语句写成一个Python表达式,但肯定不是“rubyos”。
IMHO,在Python中,这种行为是不可能的(如本用例中所述),很好地遵循了Python规则的“显式优于隐式”。
产生相同结果的一行:
for x in xrange(4,42,2): print x
给出:
4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
xrange是一个内置函数,返回一个“xrange对象”,它生成下一个项而不存储所有项(就像range那样),这与OP的while循环非常相似。
range
while
这在python中是不可能的;不能使用语句(x += 2)作为要打印的表达式。
x += 2
不能在Python中完全执行或的原因与此非常类似,因为在Ruby中,一切都是表达式。
Python语句和表达式之间的差异,并且只能计算表达式(因此打印,我的意思是传递给打印运算符/函数)。
所以这样的代码不能用你展示给我们的Python格式来完成。你所能做的就是找到一些“类似”的方法,把上面的语句写成一个Python表达式,但肯定不是“rubyos”。
IMHO,在Python中,这种行为是不可能的(如本用例中所述),很好地遵循了Python规则的“显式优于隐式”。
产生相同结果的一行:
给出:
xrange是一个内置函数,返回一个“xrange对象”,它生成下一个项而不存储所有项(就像
range
那样),这与OP的while
循环非常相似。这在python中是不可能的;不能使用语句(
x += 2
)作为要打印的表达式。相关问题 更多 >
编程相关推荐