Python 3.7\n不适用于变量列表[],但适用于tuple()和string&引用;瓦莱布尔斯?困惑的

Python 3.7\n不适用于变量列表[],但适用于tuple()和string&引用;瓦莱布尔斯?困惑的,python,string,variables,tuples,Python,String,Variables,Tuples,所以,我是一个新手,正在尝试建立一个简单的选择题游戏,我遇到了一个令人困惑的问题 我的问题与新行命令有关\n 如果我只是键入一个简单的打印语句,例如 print("Hello\nThere") 这条新生产线很好用。同样,如果创建变量字符串,如 phrase = "Hello\nThere" print(phrase) 它登记了新的行刚刚好。我还可以将变量设置为一个元组(至少我认为使用()会创建一个元组,仍然是新的,所以可能是错误的),比如 phrases = ("Hello There

所以,我是一个新手,正在尝试建立一个简单的选择题游戏,我遇到了一个令人困惑的问题

我的问题与新行命令有关\n

如果我只是键入一个简单的打印语句,例如

print("Hello\nThere") 
这条新生产线很好用。同样,如果创建变量字符串,如

phrase = "Hello\nThere"  
print(phrase)
它登记了新的行刚刚好。我还可以将变量设置为一个元组(至少我认为使用()会创建一个元组,仍然是新的,所以可能是错误的),比如

phrases = ("Hello There\nHow are you") 
print(phrases) 
它还正确注册新行。然而,一旦我尝试将变量设置为列表,它就不再工作了。所以如果我做类似的事情

phrases = ["Hello there\nHow are you"]
print(phrases)
它不会注册新行,只会将其打印出来

为什么会这样?不能在变量列表中使用\n新行命令吗?如果不是,为什么?超级困惑为什么它适用于其他一切,但不适用于此

编辑:好的,很抱歉在它不是元组时称它为元组。但实际上,我的问题是,为什么使用方括号[]时\n命令不起作用,而使用圆括号()时效果很好?我正试图理解为什么它不起作用的逻辑,以便更好地理解这一点

伊迪丝2:好吧,我想我现在明白了。谢谢大家的回答!确实有帮助,因为,
短语=(“你好”\n你好”)
不是一个元组,它仍然是一个字符串

如果执行
短语=(“您好,您好”,)
,它将成为一个元组,并且不会像列表中那样注册换行符

您可能需要让元素测试换行符,如下所示:

phrases = ("Hello There\nHow are you",)
print(phrases[0])

phrases = ["Hello There\nHow are you"]
print(phrases[0])
我在ipython中试过这个,你看,(“你好,你好吗”)是字符串而不是元组


print([“你好,你好”])
并没有真正打印出字符串,它只是告诉您列表中的内容。

因为您正在打印列表本身,所以您没有得到一个新行,而是得到一个类似这样的输出

['Hello there\n你好]

因此,当您向列表添加值或字符串时,只需在列表上迭代并打印即可

假设我们有一个片段

phrase1="Hey there \t What's Up"
phrase2='How you doing \nEverythings is good?'
phrase3='Ok fine \n\nHave a nice day ahead!'
l=[phrase1,phrase2,phrase3]
for value in l:
    print(value)
所以这个的输出将是

Hey there      What's Up
How you doing
Everythings is good?
Ok fine 

Have a nice day ahead!

现在你会看到一切都很好

这里没有元组,没有逗号。打印列表会打印列表中每个项目的
repr
。打印字符串会打印字符串。它正在工作,在这两种情况下,只是显示方式略有不同;在列表中可以看到字符串的repr,因此
\n
以内联方式显示。
Hey there      What's Up
How you doing
Everythings is good?
Ok fine 

Have a nice day ahead!