Python无法识别if-else语句中的单词结尾?

Python无法识别if-else语句中的单词结尾?,python,computer-science,Python,Computer Science,所以我试图设计一个函数,如果字符串的第一个字母和最后一个字母相同,它将返回true,否则返回false 这是到目前为止我的代码 def same_first_and_last_letter(str): if s[0] == s[–1]: return True else: return False 我收到一个名为SyntaxError的错误:标识符中的字符无效 为什么会这样?我认为if语句会计算==边的每一边是否为真 编辑:完整错误为 File "<ipytho

所以我试图设计一个函数,如果字符串的第一个字母和最后一个字母相同,它将返回true,否则返回false

这是到目前为止我的代码

def same_first_and_last_letter(str):
if s[0] == s[–1]:
    return True
else:
    return False
我收到一个名为
SyntaxError的错误:标识符中的字符无效
为什么会这样?我认为if语句会计算==边的每一边是否为真

编辑:完整错误为

File "<ipython-input-54-897fe4b51e80>", line 2
    if s[0] == s[–1]:
                  ^
SyntaxError: invalid character in identifier
文件“”,第2行
如果s[0]==s[-1]:
^
SyntaxError:标识符中的字符无效
定义相同的首字母和末字母:
如果s[0]==s[::-1][0]:#s[::-1]反转字符串,则0使用反转字符串的第一个索引
返回真值
其他:
返回错误
相同的首字母和末字母(“HelloH”)
输出:

True

缩进和s是您缺少的

所有答案都很好,请尝试在一行中完成,因为代码并不复杂

def same_first_and_last_letter(s):
    return s[0] == s[-1]

好的,现在从您的错误回溯:

文件“”,第2行
如果s[0]==s[-1]:
^
SyntaxError:标识符中的字符无效
Python指出
1
是错误的,但它真正指出的是
-
是错误的

比较这些:

s[-1]
s[-1]
你能看见吗?很难看到

第一行有一个
-
,它不是
-
。我不知道你打了什么,但不是负号或负号


如果有人能识别的话,它似乎是unicode
8211

我看到的第一个问题是缩进错误。尝试将所有内容移动到函数定义后面的4个空格中。第二个是函数参数
str
和实际使用的
s
。这两个注释是您问题的RC。这个4行程序中没有其他需要修复的内容。@tvm,函数参数“str”不是问题,python可以处理。。如果s是在函数之前定义的,那么这也不是问题。(但你可能是对的,他想以s:str作为参数)。请用完整的错误回溯更新你的问题。它仍然得到相同的错误。请停止此操作。你有没有试过你的代码?@MartinSo:我要求的完整错误回溯在哪里?@MartinSo请检查我的最新答案看看接受的答案。考虑一下你的复杂性…反转字符串只是为了不必引用字符串的最后一个字符而不是第一个字符?你的回答是倒退了一步。明确的答案是被接受的…向OP表明他们使用了错误的字符进行否定。请停止此操作。你有没有试过你的代码?@quamrana不知道为什么
-
没有像我预期的那样出现,哈哈,谢谢你的更正,好的,你找到了!做得好。但是现在你需要向OP解释这一点,而不是通过编辑来更正他们的帖子。哇,好吧,看起来python对语法非常严格。谢谢你花时间回答我的问题