2016-06-09 32 views
1

我想加入一个用户inputstring。我的代码是:Python 3:我如何.join()输入()与字符串?

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

如果我input名称'Bradley'input()这里是结果:

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

它没有什么print我想它来打印,即使我清楚地加入input"Name:"。这是我期待的

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

如果你能告诉我为什么^没有发生,我真的很感激。谢谢!

+0

做'Name.join(...)'创建你什么都不做了新的字符串,如果你想在'Name'变量更改为Name.join的'结果(...)'然后做'Name = Name.join(input(“...“))''但是我想你会对结果感到惊讶 –

+0

这不是真正的'join',尝试运行'help(str.join)',它将一串字符串和'Name'作为分隔符,在这种情况下,它会执行''Bradley'的每个字母由'“Name:”分隔,所以结果将是:''BName:rName:aName:dName:lName:eName:y''而不是我认为你想要'Name + = input(...)'或只是'name = input(); print(“Name:”,name)' –

+0

请参阅http://stackoverflow.com/questions/26943256/python-string-replace -not-working –

回答

1

.join是此矫枉过正。您可以使用+只是在连接用户输入Name

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

这工作完全非常感谢你:) – BradTheBrutalitist

1

字符串的join方法期望列表(可迭代)使用字符串本身进行联接。例如:

>>> "-".join(["one", "two"]) 
'one-two' 

加入列表["one", "two"]"-"字符串。

我希望你想要的东西,如:

" ".join(["Name:", input("Enter name:")]) 

连接字符串"Name:"input返回的值。

但是这有点难以阅读。你可能会更好用format

name = input("Enter name: ") 
print("Name: {}".format(name)) 
+0

第二个答案有效,但它偏离了'Name'元组概念 – BradTheBrutalitist

0

这不是str.join()的工作方式。该方法获取一个字符串的列表或序列,并将它们连接成一个字符串,并用“父”字符串划分列出的值。在你的情况下,你最有可能想打电话

print(" ".join([Name, input("What's your Dicer's name?:\n") ])) 

这将在列表中的两个字符串之间放一个空格。

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

参考:http://www.tutorialspoint.com/python/string_join.htm

+0

这是给我一个无效的snytax。 – BradTheBrutalitist

+0

对不起,我错过了一个括号,它现在应该工作 – Jeremy

+0

它仍然没有工作,它给了我同样的错误 – BradTheBrutalitist

1

为什么不是你的东西等。

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

它会给你你想要的。 这是解决你想要的问题的最好方法。在这种情况下加入并不合适。

干杯, 约翰

+0

虽然这也可以工作,它远离'Name'元组,我需要以后 – BradTheBrutalitist