回文编码问题

时间:2019-06-18 19:51:15

标签: python string palindrome

编写程序:

  1. 用户输入的字符串
  2. 打印此字符串是否是回文字符串

此外,我在线上找到了其他一些代码,但只希望使用此代码。m请让我知道错误

i = str(input())

for item in i:
  print(item)

  if int(i[item]) == int(i[-item]):
    print('yes')
  else:
    print('no')

3 个答案:

答案 0 :(得分:1)

使用字符串切片(i[::-1]将反转字符串):

i = input()

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

这将从用户那里获取输入,并将其与相同输入反向进行比较。

答案 1 :(得分:1)

尝试一下:

word="TOT"
i=word[::-1]
if i==word:
    print("palandrom")

答案 2 :(得分:0)

尽管for item in i:遍历字符串中的每个字符,但是您的代码行if int(i[item]) == int(i[-item]):仍然存在一些问题。首先,item将成为您字符串中的一个字符。因此,如果用户键入“ hello”,则i[item]首先查找i['h']。由于“ h”是字符而不是数字,因此这使Python认为i是字典而不是字符串,因此告诉Python寻找名为i的字典并在以下位置返回值:密钥是h。由于i是您的原始字符串,而不是字典,因此无效。

您似乎要在此处进行的操作是将i[0](字符串中的第一个字符)与i[-1](字符串中的最后一个字符)进行比较,然后将i[1]与{ {1}},依此类推。但是,即使您在位置编号之间循环,i[-2]也无法从数学上满足您的需求。

这里的另一个问题是您要一次检查每个字符并返回“是”或“否”。但是,您最终想要的是输出一个简单的答案:您的字符串是否是回文。

此外,由于i[-item]仍会返回字符串,即使用户仅输入数字,也无需在str()前后加上input()。顺便说一句,即使您使用input作为字符串变量,编程中通常的惯例是使用i表示某种整数,例如您要在一个整数中进行迭代。 i循环。但这现在还可以。

正如其他一些答案所示,for是返回字符串本身反向的快速方法。因此,如果您可以看到输出返回i[::-1](如果字符串是回文),返回True(如果不是),那么这是一种非常简单的方法:

False

如果字符串i = input() print(i == i[::-1]) 与其本身相反,则i返回i == i[::-1]。如果不是,则返回True。然后,False语句将打印答案。

但是,如果您确实确实想做长远的事情,在一个循环中逐个字符地测试,那么这是一种方法。您可以创建一个接受字符串并完成工作的函数:

print