Python 如何使用元组打印此模式?

Python 如何使用元组打印此模式?,python,python-2.7,tuples,Python,Python 2.7,Tuples,我是Python元组的新手,正在做同样的学习练习。当输入是字符串HI,HELLO,WELCOME时,我应该如何打印以下模式 (('HI', 'HELLO', 'WELCOME'),) ((('HI', 'HELLO', 'WELCOME'),),) (((('HI', 'HELLO', 'WELCOME'),),),) 我的尝试 n = input() arr = tuple(raw_input().split()) arr1 = list() print arr while(n>

我是Python元组的新手,正在做同样的学习练习。当输入是字符串HI,HELLO,WELCOME时,我应该如何打印以下模式

(('HI', 'HELLO', 'WELCOME'),) 
((('HI', 'HELLO', 'WELCOME'),),) 
(((('HI', 'HELLO', 'WELCOME'),),),) 
我的尝试

n = input()
arr = tuple(raw_input().split())
arr1 = list()
print arr
while(n>0) :
    print(tuple(arr,))
    n -= 1
只需在开始时定义(或创建)一个
元组
,然后将其嵌套在自身上(重用相同的变量):

结果:

(('HI', 'HELLO', 'WELCOME'),)
((('HI', 'HELLO', 'WELCOME'),),)
(((('HI', 'HELLO', 'WELCOME'),),),)

每次迭代只需将第一个元组嵌套在另一个元组中

>>> n = 3
>>> tup = ('HI', 'HELLO', 'WELCOME')
>>> for _ in range(n):
    tup = tup,
    print(tup)


(('HI', 'HELLO', 'WELCOME'),)
((('HI', 'HELLO', 'WELCOME'),),)
(((('HI', 'HELLO', 'WELCOME'),),),)
>>>

正如您所看到的,在每次迭代中,元组嵌套的层次更深。原始方法的问题是没有将新的嵌套元组重新分配回
arr
,因此元组从未嵌套过。

在尝试时,您总是打印相同的内容。您需要在每次迭代时更新元组,因此您必须

while n>0:
    arr = (arr,)
    print(arr)
    n=-1

从用户那里获得输入是练习的一部分吗?效果很好。谢谢我不知道元组可以重新分配给它自己。一切都可以重新分配给它自己:)事实上,这就足够了;-)
tup=tup,
。然而,有人可能会争辩说,括号增加了清晰度。@ChristianDean起初我的答案是
元组((arr,)
:),但这是真的。让你自己回答吧
while n>0:
    arr = (arr,)
    print(arr)
    n=-1