这个语法错误的原因是什么

1 python

我想知道为什么我的代码不起作用.这不是一个字符串吗?我的期间会影响我的代码吗?行情在哪里?

def intro(name,school):
    return "Hello. My name is" + str(name). + "I go to" + str(school).
Run Code Online (Sandbox Code Playgroud)

K D*_*awG 5

您的脚本返回语法错误,因为您无法为字符串添加句点,str(name).但它也必须添加为字符串str(name) + "."

def intro(name,school):
    return "Hello. My name is " + str(name) + "." + " I go to " + str(school) + "."

print intro('kevin','university of wisconsin')
Run Code Online (Sandbox Code Playgroud)

这将打印(注意我添加的额外空格,"I go to"替换" I go to "为输出更可读):

你好.我的名字叫凯文.我转到威斯康星大学.

但是您可以使用该format()方法来克服字符串添加的复杂性:

def intro(name,school):
    return "Hello. My name is {0}. I goto {1}.".format(name,school)

print intro('kevin','university of wisconsin')
Run Code Online (Sandbox Code Playgroud)

输出:

你好.我的名字叫凯文.我转到威斯康星大学.

请注意:在评论中提到这里,你不能使用:

print intro(kevin,university of wisconsin)因为它会带来一个Syntax Error,为什么?,因为变量不能有空格,字符串必须有引号或python认为kevin是一个变量,但你总是欢迎这样做:

name = 'kevin'
school = 'university of wisconsin'

def intro(name,school):
    return "Hello. My name is " + str(name) + "." + " I go to " + str(school) + "."
    #return "Hello. My name is {0}. I goto {1}.".format(name,school)

print intro(name,school)
Run Code Online (Sandbox Code Playgroud)