簡體   English   中英

如何使用方法 Python 縮短此代碼

[英]How can i make this code shorter with a methond Python

#Exercise 9: Check Palindrome Number #Numbers stored in x/y x = 121 y = 125 #Transferred int in list num_y = list(str(y)) num_x = list(str(x)) #Flipping the list rev_y = num_y[::-1] rev_x = num_x[::-1] #Compare the flip if they are palindrome if num_y == rev_y: print("Yes. given number is palindrome number") else: print("No. given number is not palindrome number") if num_x == rev_x: print("Yes. given number is palindrome number") else: print("No. given number is not palindrome number")

使用def定義一個函數
無需將轉換為字符串的整數參數更改為列表。 只需對字符串進行操作 - 它支持切片以反轉字符串。
根據字符串是否與反向字符串相同,從函數返回TrueFalse

def is_palindrome(n):
    s = str(n)
    return s == s[::-1]

x = 121
print(is_palindrome(x))
# True

y = 125
print(is_palindrome(y))
# False

你應該使用一個函數。

def print_if_number_is_palindrom(number):
    if str(number) == str(number)[::-1]:
       print("Yes, given number is palindrome number")
    else:
       print("No, given number is not palindrome number")

x = 121
y = 125
print_if_number_is_palindrom(x)
print_if_number_is_palindrom(y)

目標:

  • 清理代碼
  • 將主要邏輯移至函數

方法:

  • 創建可用於任何類型回文的廣義函數
  • 將數字作為字符串傳遞給函數

結果

def is_palindrome(term):
    for i in range(len(term)):
        if term[i] != term[(len(term)-i-1)]:
            return False
    return True
num_x = str(121)
print('num_x palendrome?',is_palindrome(num_x))

輸出 -> 'num_x 回文數? 真的'

num_y = str(122)
print('num_y palendrome?',is_palindrome(num_y))

輸出 -> 'num_x 回文數? 錯誤的'

筆記:

從技術上講,方法是在類中定義的函數 因此,您實際要求的是:

class ClassExample():
    
    def __init__(self):
        self.string = ''
        
    def is_palindrome(self,term):
        for i in range(len(term)):
            if term[i] != term[(len(term)-i-1)]:
                return False
        return True
    
ex = ClassExample()

測試:

ex.is_palindrome('121')

這是排序器方法:

num = '1421'
if num == str(num)[::-1]:
    print('The given number is PALINDROME')
else:
    print('The given number is NOT a palindrome')

輸出:

The given number is NOT a palindrome

這將對您有所幫助。

暫無
暫無

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

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