Python 3.x Python3:如何使用字符串I.join()input()?

Python 3.x Python3:如何使用字符串I.join()input()?,python-3.x,join,Python 3.x,Join,我想将用户输入加入字符串。我的代码是: def Username(): Name = ("Name:") Name.join(input("What's your Dicer's name?:\n")) print(Name) Username() 如果我要input输入input()的名称'Bradley',结果如下: What's your Dicer's name?: Bradley Name: 它没有打印出我想要它打印的内容,尽管我清楚地将输入加入了“Nam

我想将用户
输入
加入
字符串
。我的代码是:

def Username():
    Name = ("Name:")
    Name.join(input("What's your Dicer's name?:\n"))
    print(Name)
Username()
如果我要
input
输入
input()的名称
'Bradley'
,结果如下:

What's your Dicer's name?:
 Bradley
Name:
它没有
打印出我想要它打印的内容,尽管我清楚地将
输入加入了
“Name:”
。这就是我所期待的

What's your Dicer's name?:
 Bradley
Name: Bradley

如果你能告诉我为什么没有发生,我将非常感激。谢谢

string的
join
方法要求使用字符串本身连接列表(iterable)。例如:

>>> "-".join(["one", "two"])
'one-two'
“-”
字符串加入列表
[“一”,“二”]

我想你想要的是:

" ".join(["Name:", input("Enter name:")])
将字符串
“Name:”
输入返回的值连接起来

但这有点难读。你最好是:

str.join()不是这样工作的。该方法获取一个字符串列表或序列,并将它们连接到一个字符串中,“父”字符串界定列出的值。在你的情况下,你很可能想打电话

print( " ".join([Name, input( "What's your Dicer's name?:\n" ) ] ))
这将在列表中的两个字符串之间放置一个空格

编辑:正如上面注释中所指出的,这不是一个变异方法,而是返回一个全新的字符串,您必须将其保存在一个新的或现有的变量下


参考资料:

.join
对于这一点来说是过分的。您可以使用
+
将用户输入连接到
名称

def Username():
   Name = "Name: "
   Name += input("What's your Dicer's name?:\n")
   print(Name)

你为什么不喜欢这样的东西呢

ans = input("What's your Dicer's name?:\n")
print("Name:"+ans)
它会给你你想要的。 这是你想要的解决问题的最好方法。在这种情况下,Join是不合适的

干杯,
John

doing
Name.join(…)
创建了一个新字符串,如果您想将
Name
变量更改为
Name.join(…)
的结果,那么就执行
Name=Name.join(输入(“…”)
但我想您会对结果感到惊讶。这并不是
join
的真正目的,试着运行
help(str.join)
,它将一组字符串与
Name
作为分隔符连接在一起,在这种情况下,它会将
Bradley
的每个字母用
名称:
分隔,因此结果将是:
BName:rName:aName:dName:lName:eName:y'
相反,我想让
Name+=input(…)
或只是
name=input();print(“Name:”,Name)
请参见@tadhgcdonald Jensen,堆栈问题很难理解。我还坚持使用
Name+=input(…)
1但感谢您的澄清这给了我一个无效的snytax。它仍然不起作用,它给了我同样的错误第二个答案有效,但它偏离了
名称
元组概念虽然这也有效,但它偏离了
名称
元组,我以后需要它
ans = input("What's your Dicer's name?:\n")
print("Name:"+ans)