Kiểm tra số palindrome python

Bài viết được đăng tại nguyenlediep.com - không copy dưới mọi hình thức.

NLD Code - Chương trình kiểm tra chuỗi nhập vào có phải là một Palindrome trong Python. Palindrome là một chuỗi nào đó có thể được viết xuôi hay viết ngược vẫn chỉ cho ra chính nó...

  • ads: Công cụ tìm kiếm nhanh
  • ads: Review - Đọc - Chia sẻ truyện
  • ads: Diễn đàn mua bán & rao vặt
  • Chương trình kiểm tra chuỗi nhập vào có phải là một Palindrome trong #Python. #Palindrome là một chuỗi nào đó có thể được viết xuôi hay viết ngược vẫn chỉ cho ra chính nó.

    Bước 1: Lấy giá trị nhận được gán vào biến string
    string = raw_input('\n- Nhap chuoi: ')
    
    Bước 2: Chuyển đổi chữ hoa thành chữ thường cho string
    string_lo = string.lower()
    Bước 3: Đảo ngược chuỗi string được nhập vào
    string_re = string_lo[::-1]
    Bước 4: So sánh chuỗi nhập vào với chuỗi đảo ngược để đưa ra kết quả
    if string_lo==string_re:
        print '\n=> ',string,'la mot Palindrome\n'
    else:
        print '\n=> ',string,'khong phai la Palindrome\n'
    
    Bước 5: Dùng try except Exception để bắt lỗi khi người dùng nhập sai
    try:
    except Exception:
    Và đoạn code hoàn chỉnh nhất cho bài này được thể hiện như bên dưới
    try:
        string = raw_input('\n- Nhap chuoi: ')
        string_lo = string.lower()
        string_re = string_lo[::-1]
        if string_lo==string_re:
            print '\n=> ',string,'la mot Palindrome\n'
        else:
            print '\n=> ',string,'khong phai la Palindrome\n'
    except Exception:
        print '\n=> Loi roi vui long kiem tra lai!\n'
    

    Chúc các bạn thành công và vui vẻ!

    Tôi đang cố gắng kiểm tra một palindrome bằng Python. Đoạn mã tôi có rất forchuyên sâu.

    Và đối với tôi, có vẻ như sai lầm lớn nhất mà mọi người mắc phải khi chuyển từ C sang Python là cố gắng triển khai logic C bằng Python, điều này khiến mọi thứ chạy chậm và chỉ là không tận dụng được tối đa ngôn ngữ này.

    Tôi thấy trên trang web này . Tìm kiếm "C-style for", Python không có C-style for các vòng lặp. Có thể đã lỗi thời, nhưng tôi giải thích điều đó có nghĩa là Python có các phương pháp riêng cho việc này.

    Tôi đã cố gắng tìm kiếm xung quanh, tôi không thể tìm thấy nhiều lời khuyên cập nhật (Python 3) cho việc này. Làm cách nào để giải quyết thử thách palindrome bằng Python mà không cần sử dụng vòng lặp for?

    Tôi đã làm điều này bằng C trong lớp, nhưng tôi muốn làm điều đó bằng Python, trên cơ sở cá nhân. Vấn đề là từ Dự án Euler , trang web tuyệt vời Nhân tiện,.

    def isPalindrome(n):
        lst = [int(n) for n in str(n)]
        l=len(lst)
        if l==0 || l==1:
            return True
        elif len(lst)%2==0:
            for k in range (l)
            #####
        else:
            while (k<=((l-1)/2)):
                if (list[]):
                    #####   
    
    for i in range (999, 100, -1):
        for j in range (999,100, -1):
            if isPalindrome(i*j):
                print(i*j)
                break
    

    Tôi đang thiếu rất nhiều mã ở đây. Năm băm chỉ là lời nhắc nhở cho bản thân tôi.

    Câu hỏi cụ thể:

    1. Trong C, tôi sẽ tạo một vòng lặp for so sánh chỉ mục 0 với chỉ mục tối đa, sau đó chỉ mục 0 + 1 với tối đa-1, cho đến khi một cái gì đó. Làm thế nào để làm điều này tốt nhất trong Python?

    2. Vòng lặp for của tôi (trong phạm vi (999, 100, -1), đây có phải là một cách tồi để làm điều đó trong Python không?

    3. Có ai có bất kỳ lời khuyên tốt nào, hoặc các trang web tốt, hoặc tài nguyên cho những người ở vị trí của tôi không? Tôi không phải là một lập trình viên, tôi không khao khát trở thành một lập trình viên, tôi chỉ muốn học đủ để khi viết luận văn tốt nghiệp cử nhân (kỹ thuật điện), tôi không phải HỌC đồng thời một ngôn ngữ lập trình áp dụng trong khi cố gắng. để đạt được kết quả tốt trong dự án. "Làm thế nào để đi từ C cơ bản đến ứng dụng tuyệt vời của Python", đại loại là vậy.

    4. Bất kỳ đoạn mã cụ thể nào để tạo ra giải pháp tuyệt vời cho vấn đề này cũng sẽ được đánh giá cao, tôi cần phải học các thuật toán tốt .. Tôi đang hình dung 3 tình huống. Nếu giá trị bằng 0 hoặc một chữ số, nếu nó có độ dài lẻ và nếu nó có độ dài chẵn. Tôi đã định viết cho các vòng lặp ...

    PS: Bài toán là: Tìm tích giá trị cao nhất của hai số nguyên có 3 chữ số cũng là một palindrome.

    47 hữu ích 5 bình luận 190k xem chia sẻ

    Viết chương trình Palindrome bằng Python bằng While Loop, Functions và Recursion. Bất kỳ số nào cũng có thể là Palindrome trong python nếu nó vẫn giữ nguyên khi chúng tôi đảo ngược nó. Ví dụ, 131 vì nó vẫn giữ nguyên sau khi đảo ngược nó.

    Phương pháp phổ biến để kiểm tra Số Palindrome của Python là đảo ngược một số nhất định. So sánh giá trị ban đầu với giá trị ngược lại. Nếu chúng khớp chính xác, thì đó là số Palindrome. Nếu không, nó không phải là.

    • Chương trình số Palindrome của Python sử dụng While Loop
    • Chương trình số Palindrome trong Python tôi sử dụng các hàm
    • Chương trình Palindrome Number sử dụng đệ quy
    • Chương trình Python để in các số Palindrome từ 1 đến N

    Chương trình số Palindrome của Python sử dụng While Loop

    Chương trình này cho phép người dùng nhập bất kỳ giá trị số nguyên nào. Tiếp theo, chương trình Python này sử dụng While Loop để kiểm tra xem một số nhất định có phải là Palindrome hay không.

    number = int(input("Please Enter any Value: "))
    
    reverse = 0
    temp = number
    
    while(temp > 0):
        Reminder = temp % 10
        reverse = (reverse * 10) + Reminder
        temp = temp //10
     
    print("Reverse of it is = %d" %reverse)
    
    if(number == reverse):
        print("%d is a Palindrome" %number)
    else:
        print("%d is Not" %number)

    Giá trị do người dùng nhập trong chương trình palindrome này bằng Python là Number = 191 và Reverse = 0
    Temp = Số
    Nhiệt độ = 191

    Trong khi lặp lại vòng lặp đầu tiên
    Lời nhắc = Temp% 10
    Lời nhắc = 191% 10 = 1

    Đảo ngược = Đảo ngược * 10 + Nhắc nhở => 0 * 10 + 1 = 1

    Nhiệt độ = Nhiệt độ // 10 = 191/10
    Nhiệt độ = 19

    Lặp lại lần thứ hai: Từ lần lặp lại vòng lặp while đầu tiên, các giá trị đã thay đổi thành Temp = 19 và Reverse = 1

    Lời nhắc = 19% 10 = 9

    Đảo ngược = 1 * 10 + 9 = 19

    Nhiệt độ = 19/10
    Nhiệt độ = 1

    Lặp lại thứ ba: Từ Lặp lại thứ hai của chương trình palindrome bằng Python, các giá trị của Temp = 1 và Reverse = 19

    Lời nhắc = 1% 10 = 1

    Đảo ngược = 19 * 10 + 1 = 191

    Nhiệt độ = 1/10
    Nhiệt độ = 0

    Ở đây Num = 0. Vì vậy, điều kiện vòng lặp while trong Python không thành công.

    if (Number == Reverse) – điều kiện kiểm tra xem người dùng nhập số có chính xác bằng Reverse hay không. Nếu điều kiện này là Đúng, thì nó là. Khác thì không.

    Chương trình số Palindrome trong Python tôi sử dụng các hàm

    Trong chương trình này, chúng tôi đã định nghĩa một hàm. Trong hàm đó, chúng tôi đã sử dụng câu lệnh If.

    def intRev(val):
        inverse = 0
        
        while(val > 0):
            Remi = val % 10
            inverse = (inverse * 10) + Remi
            val = val // 10
        return inverse
    
    val = int(input("Please Enter any Num: "))
    
    rev = intRev(val)
    print("Inverse = %d" %rev)
    
    if(val == rev):
        print("%d is a Palindrome" %val)
    else:
        print("%d is not" %val)
    Please Enter any Num: 1441
    Inverse = 1441
    1441 is a Palindrome
    
    Please Enter any Num: 1202
    Inverse = 2021
    1202 is not

    Chương trình Palindrome Number sử dụng đệ quy

    Trong chương trình Python này, chúng tôi đang kiểm tra xem một số nhất định là Palindrome hay Không bằng cách sử dụng khái niệm Hàm đệ quy.

    rev = 0
    def integer_rev(num):
        global rev
        
        if(num > 0):
            Reminder = num % 10
            rev = (rev * 10) + Reminder
            integer_rev(num // 10)
        return rev
    
    
    num = int(input("Please Enter any Num: "))
    
    rev = integer_rev(num)
    print("Reverse = %d" %rev)
    
    if(num == rev):
        print("%d is a Palindrome" %num)
    else:
        print("%d is not" %num)
    Please Enter any Num: 4114
    Reverse = 4114
    4114 is a Palindrome
    
    =================== RESTART: ===================
    Please Enter any Num: 859
    Reverse = 958
    859 is not

    Trong chương trình này, trong các kiểm tra bằng cách sử dụng khai báo hàm đệ quy,

    integer_rev (Num // 10) – nó giúp gọi hàm một cách đệ quy với giá trị được cập nhật. Nếu bạn bỏ lỡ câu lệnh này, thì sau khi hoàn thành dòng đầu tiên, nó sẽ kết thúc. Ví dụ, Num = 191 thì đầu ra là 1

    Hãy xem điều kiện If.

    if (num> 0) kiểm tra xem nó có lớn hơn 0 hay không. Đối với các hàm đệ quy, điều rất quan trọng là phải đặt một điều kiện trước khi sử dụng hàm một cách đệ quy. Nếu không, chúng ta sẽ thực thi vô hạn (Giống như Vòng lặp vô hạn).

    Chương trình Python để in các số Palindrome từ 1 đến N

    maximum = int(input(" Please Enter the Maximum Value : "))
    
    print("Between 1 and %d are : " %maximum)
    for num in range(1, maximum + 1):
        temp = num
        rv = 0
        
        while(temp > 0):
            Reminder = temp % 10
            rv = (rv * 10) + Reminder
            temp = temp //10
    
        if(num == rv):
            print("%d " %num, end = '  ')
     Please Enter the Maximum Value : 4554
    Between 1 and 4554 are : 
    1   2   3   4   5   6   7   8   9   11   22   33   44   55   66   77   88   99   101   111   121   131   141   151   161   171   181   191   202   212   222   232   242   252   262   272   282   292   303   313   323   333   343   353   363   373   383   393   404   414   424   434   444   454   464   474   484   494   505   515   525   535   545   555   565   575   585   595   606   616   626   636   646   656   666   676   686   696   707   717   727   737   747   757   767   777   787   797   808   818   828   838   848   858   868   878   888   898   909   919   929   939   949   959   969   979   989   999   1001   1111   1221   1331   1441   1551   1661   1771   1881   1991   2002   2112   2222   2332   2442   2552   2662   2772   2882   2992   3003   3113   3223   3333   3443   3553   3663   3773   3883   3993   4004   4114   4224   4334   4444   4554