从1到无穷大计数而不分配

时间:2014-10-19 14:13:56

标签: python python-2.7 python-3.x

是否可以在不使用任何类型的赋值运算符(==+等)的情况下使python从1计数到无穷大?也无法导入或调用任何包含赋值运算符的代码。

我设法找到了解决方案,但它仅适用于IDLE,因为它使用_

if 1:
    1
    while 1:
        for x in range(_+1, _*3):
        x

您能想到一个始终有效的解决方案吗? (没有使用_

3 个答案:

答案 0 :(得分:1)

以下是一种可能的解决方案:

for x in [0]:
   while 1:
       for x in [x+1]:
           print x

它的工作原因是:

for var in [value]: pass  

相同
var = val

因此,您可以在不使用=运算符的情况下编写所需内容!但请记住,python显然是在幕后执行任务。

name = raw_input('Whats your name?') #With = operator

for name in [raw_input('Whats your name?')]: pass  #Without = operator

您也可以使用此功能:

def assign(lval, val):
     globals().update({lval:val})

答案 1 :(得分:0)

听起来像是一个可怕的任务定义。一切都存储在某个地方的内存中,因此必须将所有内容分配到某处,即使它是CPU上的寄存器。如果字面意思是您不能使用包含=的运算符,那么locals().__setitem__("varname", varname+1)可以正常工作,或locals().update({"varname": varname+1})如果__setitem__已用完。在某种程度上,以下是存储一个数不胜数的数字,我们无法访问它。

def ones():
    while True:
        yield 1

sum(ones())

答案 2 :(得分:0)

count = bytearray()
unit = ord(b'|')
while len(count) < 10:  # replace with True to continue indefinitely
    print("Decimal: {}; Unary: {}".format(len(count), count.decode()))
    count.append(unit)

打印

Decimal: 0; Unary: 
Decimal: 1; Unary: |
Decimal: 2; Unary: ||
Decimal: 3; Unary: |||
Decimal: 4; Unary: ||||
Decimal: 5; Unary: |||||
Decimal: 6; Unary: ||||||
Decimal: 7; Unary: |||||||
Decimal: 8; Unary: ||||||||
Decimal: 9; Unary: |||||||||
相关问题