Python帮助,If和Else

时间:2012-05-08 19:05:41

标签: python

我正在python中为一个小项目制作一个基本的Palindrome Checker。我四处搜寻,但没有找到答案。

我在脚本末尾附近使用以下代码:

if String1 == String2:
               print("Yes")
else:
               print("No")

运行此代码时收到语法错误。 String1是用户输入的文本,String2是反向的文本,我之前开发过。我正在运行Python 3.2.3

提前致谢

我使用String2 == String1 [:: - 1]进行Palindrome检查,我收到的错误是 SyntaxError:语法无效

编辑: 这是我的确切代码但是我不确定在哪里放其他:我已经在新线路和线路上多次尝试过,但没有成功。此实例中的String1是“racecar”

Python 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import easygui as eg
>>> String1 = eg.enterbox(msg="Enter a Word")
>>> String2 = String1[::-1]
>>> if String1 == String2:
    print("Yes")


Yes
>>> else:

SyntaxError: invalid syntax
>>> 

5 个答案:

答案 0 :(得分:4)

使用[::-1]检查回文应该像魅力一样:

>>> s1 = "This is a string."
>>> s2 = "racecar"
>>> s1 == s1[::-1]
False
>>> s2 == s2[::-1]
True

您的代码中有些内容并未向我们展示。您需要粘贴较大的代码段或您收到的实际回溯。

现在,考虑到您的粘贴回溯 - 您没有在print语句后缩进if命令。因为if子句立即结束,所以提供else是没有意义的(语法错误)。缩进是Python中的语法。你需要它看起来像这样:

if String1 == String1[::-1]:
  print("Yes")
else:
  print("No")

间距必需

答案 1 :(得分:2)

print(["No", "Yes"][string1 == string1[::-1]])

答案 2 :(得分:2)

您的基本问题是您正在尝试在交互式提示下执行所有操作。您可以这样做,但需要特别注意确保Python将所有语句解释为同一块的一部分。空白行在这里很重要;因为你在else:之前放了一个空行,Python认为你已经结束了你的if:而你正试图在一个块的开头使用else:,这确实是语法错误。

因此,除非您了解绳索,否则如果您只是将代码放在文件中并从那里运行它将会更加简单。您可以使用IDLE(文件>新建,然后使用F5运行代码)执行此操作,也可以使用任何文本编辑器从命令窗口运行代码。

答案 3 :(得分:0)

行后

if String1 == String2:
    print("Yes")

按Enter,然后按按Backspace ,然后输入:

else:

按Enter agian,然后写:

print("no")

答案 4 :(得分:0)

你已经接受了答案,但我写的那样:

print 'Yes' if String1 == String2 else 'No'

将单个概念(在两个可能的答案之间进行选择)封装成一行。