在python中附加一个字符串

Piy*_*mar 8 string append python-3.x

即使字符串实际上是字符常量的列表,为什么该语句仍会产生错误?

string_name=""  
string_name.append("hello word")  
Run Code Online (Sandbox Code Playgroud)

我认为这是正确的原因是因为当我们使用for循环时,我们被允许使用此语句-

对于我在string_name中:
......

我认为string_name被视为此处的列表

MrG*_*eek 5

这就是他们在算法和数据结构课程中教给您的内容,他们使用算法语言(虚幻)而不是真实的编程语言来处理,在Python中,字符串是字符串,列表是列表,它们是不同的对象,您可以使用所谓的字符串连接(基本上是对字符串的加法运算)“附加”到字符串:

string_name = "hello"  
string_name = string_name + " world"
print(string_name) # => "hello world"
Run Code Online (Sandbox Code Playgroud)

或简写串联:

string_name = "hello"
string_name += " world"
print(string_name) # => "hello world"
Run Code Online (Sandbox Code Playgroud)

列表和字符串属于这种类型,称为iterableiterable顾名思义,s是可迭代的,意味着您可以使用关键字遍历它们in,但这并不意味着它们是同一类型的对象:

for i in '123': # valid, using string
for i in [1, 2, 3]: # valid, using list
for i in (1, 2, 3): # valid, using tuple
for i in 1, 2, 3: # valid, using an implicit-tuple
# all valid, all different types
Run Code Online (Sandbox Code Playgroud)

我强烈建议您阅读Python文档和/或阅读Python的Tutorial

从文档词汇表:

可迭代
的对象,一次可以返回其成员。iterables的实例包括所有类型的序列(如liststr,和tuple)和一些非序列类型,如dict,文件对象,你用定义任何类的对象__iter__()__getitem__()方法。Iterables可以在其中需要的序列被用于循环和在许多其他地方(zip()map())。将可迭代对象作为参数传递给内置函数时iter(),它将返回该对象的迭代器。此迭代器非常适合在一组值上传递一次。使用可迭代对象时,通常无需调用iter()或自己处理迭代器对象。for语句会自动为您执行此操作,并创建一个临时的未命名变量以在循环期间保持迭代器。另请参见迭代器,序列和生成器。有关可迭代的更多信息。