Py学习  »  Python

python 3.7\n不在变量列表[]中工作,但在tuple()和string“”varaibles中工作?困惑的

AHopefulProgrammer • 6 年前 • 1659 次点击  

所以我是一个新手,试图建立一个简单的多项选择游戏,我遇到了一个困惑的问题。

我的问题是关于新行命令的\n

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

print("Hello\nThere") 

这条新线路运行良好。同样,如果创建一个变量字符串,比如

phrase = "Hello\nThere"  
print(phrase)

这条新线登记得很好。我还可以将变量设置为一个元组(至少我认为using()创建了一个元组,仍然是新的,所以可能是错误的),比如

phrases = ("Hello There\nHow are you") 
print(phrases) 

它还正确地注册新行。但是,一旦我试图将变量设置为列表,它就不再工作。所以如果我做

phrases = ["Hello there\nHow are you"]
print(phrases)

它不会注册新行,只会打印出来。

为什么会这样?不能在变量列表中使用新行命令吗?如果不是为什么?超级困惑为什么它对其他一切都有用但不是这个

编辑:好的,对不起,当它不是元组的时候叫它元组。但实际上,我的问题是,为什么在使用方括号[]时命令不起作用,而在使用圆括号()时却可以正常工作?我想弄明白为什么逻辑不起作用,这样我才能更好地理解这一点

好吧,我想我现在明白了。谢谢大家的回答!真的很有帮助

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39649
文章 [ 3 ]  |  最新文章 6 年前
Nishchay
Reply   •   1 楼
Nishchay    7 年前

既然您正在打印列表本身,那么为什么您没有得到一个新行,而是得到一个类似于

['Hello there\nHow are you']

因此,当您将值或字符串附加到列表时,只需遍历列表并打印

假设,我们有一个片段

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!

现在你会看到一切都很好!

ZhouZhuo
Reply   •   2 楼
ZhouZhuo    7 年前
In [4]: phrases = ("Hello There\nHow are you")

In [5]: type(phrases)
Out[5]: builtins.str

我在ipython中试过这个,你看,(“hello there\nhow are you”)是字符串而不是元组。

print(["Hello there\nHow are you"]) 不会真正打印出字符串,它只是告诉您列表中的内容。

Austin
Reply   •   3 楼
Austin    7 年前

因为, phrases = ("Hello There\nHow are you") 不是元组,它仍然是字符串。

如果你这样做了 phrases = ("Hello There\nHow are you",) ,它将成为元组,并且不会像在list case中那样注册换行符。

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

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

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