【问题标题】:Making a function to check if input word is a palindrome with Python with for and while loops使用带有 for 和 while 循环的 Python 创建一个函数来检查输入单词是否是回文
【发布时间】:2021-09-16 07:13:33
【问题描述】:

我正在尝试制作一个程序来检查用户的输入单词是否是回文并询问单词直到输入是回文。我的问题是我无法让我的程序打印任何东西,并且可以使用一些技巧来修复它。这是我目前所拥有的:

def palindrome(word):
    while True:
        word=input("Enter a word: ")
        for i in range(len(word)):
            if word[i]==word[(i+1)*-1]:
                print(f"{word} was a palindrome!")
                return True
            else:
                print("not a palindrome")
                return False

【问题讨论】:

  • 虽然您的功能存在问题,但您的问题描述似乎不正确。它打印 'bob was a palindrome!' 对我来说很好。
  • 你真的在脚本的某个地方调用了这个函数吗?定义它还不够。 word 参数也没有用,因为您用输入覆盖。

标签: python function for-loop while-loop palindrome


【解决方案1】:

你的函数有问题..你甚至没有调用它,所以它是如何工作的 试试这个


def palindrome():
    while True:
        word=input("Enter a word: ")
        for i in range(len(word)):
            if word[i]==word[(i+1)*-1]:
                print(f"{word} was a palindrome!")
                return True
            else:
                print("not a palindrome")
                return False
palindrome()

【讨论】:

    【解决方案2】:

    您有更简单的方法来检查一个单词是否是回文,例如:word == word[::-1]。 (这个词等于自己是不是倒写了)

    def palindrome():
        word=input("Enter a word: ")
        if word == word[::-1]:
            print(f"{word} was a palindrome!")
        else :
            print("not a palindrome")
            
    

    无论如何,为了改进您的程序,您可以删除这里没有用的while True boucle,您不需要word 作为参数,因为您在函数中定义了它。那么你需要一个可以“记住”某个字母不等于对面位置的字母的变量。

    def palindrome():
        word=input("Enter a word: ")
        isPalindrome = True
        for i in range(len(word)):
            if word[i] != word[(i+1)*-1]:
                isPalindrome = False
        if isPalindrome:
            print(f"{word} was a palindrome!")
        else:
            print("not a palindrome")
    
    palindrome()
    

    他们有很多方法可以改进这个程序,使其更短/更智能,但这应该是一个很好的起点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-08
      • 2013-03-29
      相关资源
      最近更新 更多