在python中,如何使列表/元组中的变量/字符串无限大并且间隔不断增加?

2024-09-29 23:17:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码是:

numberoflines = int(input())
x = 'hi'
y = 'hello'    
orderofwords = [x,y,x,x,y,y,x,x,x,y,y,y]
for n in range(rows):
    print(orderofwords[n])

我的问题是,我不知道如何使单词的顺序无限,这样无论我输入什么数字,总有一个输出。(我想输入至少1-5000)

例如:输入 9
例如:输出 您好! 你好 您好! 您好! 你好 你好 您好! 您好! 嗨

(所有输出在单独的线路上)


Tags: 代码inhelloforinput顺序range数字
3条回答

这是一个非常糟糕的主意,但正如你所要求的,它就在这里

n = 1
list_of_interest = []
while True:
  for i in range (n):
    list_of_interest.append ("x")
  for j in range (n)
    list_of_interest.append ("y")
  n += 1

根据wim所说的,生成器是最好的选择。因此,对于Python 2或3,您可以使用:

def gen(strings, n):
    i, j = (1, 0)
    while True:
        for s in strings:
            for _ in range(i):
              if j < n:
                yield s
                j += 1
              else:
                raise StopIteration
        i += 1

rows = int(input())
strings = ('hi', 'hello') 

for m in gen(strings, rows):
  print(m)

您正在寻找一个生成器函数:

def gen(x, y):
    i = 1
    while True:
        yield from [x]*i
        yield from [y]*i
        i += 1

相关问题 更多 >

    热门问题