簡體   English   中英

使用帶有 for 和 while 循環的 Python 制作一個函數來檢查輸入單詞是否是回文

[英]Making a function to check if input word is a palindrome with Python with for and while loops

我正在嘗試制作一個程序來檢查用戶輸入的單詞是否是回文並詢問單詞直到輸入是回文。 我的問題是我無法讓我的程序打印任何東西,可以使用一些技巧來修復它。 這是我到目前為止:

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

你的函數有問題..你甚至沒有打電話給它,所以它是如何工作的試試這個


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()

你有更簡單的方法來檢查一個單詞是否是回文,比如: 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()

他們有很多方法可以改進這個程序,使其更短/更智能,但這應該是一個很好的起點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM