How to do this for a loop in Python?

I want to spit out the list of palindromes until I give a specific letter.

About this part:

def pyramid_palindrome(last_letter):
    for letter in range(97,last_letter):
        last_letter = last_letter - (last_letter-1)
        print call_first_part_palindrome(last_letter)
        print call_second_part_palindrome(last_letter)

I want to do this:

a
aba
abcba
abcdcba
abcdedcba
abcdefedbca
abcdefgfedcba
abcdefghgfedcba
....

I think so:

"I will give the last letter as input, and it will continue to iterate the palindrome until the last letter is verified.

The problem is that I cannot spit out the palindromes one by one, lifting it exactly like a pyramid. Can someone point me in the right direction?

Am I right when I say that I need to use for loopa function in the first?

This is my complete code:

def pyramid_palindrome(last_letter):
    for letter in range(97,last_letter):
        last_letter = last_letter - (last_letter-1)
        print call_first_part_palindrome(last_letter)
        print call_second_part_palindrome(last_letter)

def call_first_part_palindrome(last_letter):

    letters_a_to_y = ""             

    for letter in range(97,last_letter):
        letters_a_to_y += chr(letter) 

    return(letters_a_to_y)

def call_second_part_palindrome(last_letter): 

    letters_y_to_a = ""

    for letter in range(last_letter,96,-1): 
        letters_y_to_a += chr(letter)

    return(letters_y_to_a)

pyramid_palindrome(112)

I think I'm close, but I can’t make the finishing touch.

+4
source share
3 answers

, last_letter -

:

def pyramid_palindrome(last_letter):
    for letter in range(97,last_letter):
        print(call_first_part_palindrome(letter) + call_second_part_palindrome(letter-2))

:

def call_first_part_palindrome(last_letter):

    letters_a_to_y = ""             

    for letter in range(97,last_letter):
        letters_a_to_y += chr(letter) 

    return(letters_a_to_y)

def call_second_part_palindrome(last_letter): 

    letters_y_to_a = ""

    for letter in range(last_letter,96,-1): 
        letters_y_to_a += chr(letter)

    return(letters_y_to_a)

pyramid_palindrome(112)

:

a
aba
abcba
abcdcba
abcdedcba
abcdefedcba
abcdefgfedcba
abcdefghgfedcba
abcdefghihgfedcba
abcdefghijihgfedcba
abcdefghijkjihgfedcba
abcdefghijklkjihgfedcba
abcdefghijklmlkjihgfedcba
abcdefghijklmnmlkjihgfedcba
+1

string.ascii_lower :

import string
alphs = string.ascii_lowercase   # returns string of lower case characters
last_letter = 'f'

for i in range(len(alphs)):
    print alphs[:i]+alphs[i::-1]
    if alphs[i] == last_letter:  # break the loop when `last_letter` is found
        break

:

a
aba
abcba
abcdcba
abcdedcba
abcdefedcba    

: string, :

alphs = ''.join(chr(i) for i in range(97,123))
+3

, , , .

, string, , , , . Python 2 3.

def pyramid_palindrome(last_letter):
    letters = ''.join([chr(i) for i in range(97, last_letter)])
    for i in range(last_letter - 97):
        print(letters[:i] + letters[i::-1])

pyramid_palindrome(102)

a
aba
abcba
abcdcba
abcdedcba

letters .join :

def pyramid_palindrome(last_letter):
    letters = [chr(i) for i in range(97, last_letter)]
    for i in range(last_letter - 97):
        print(''.join(letters[:i] + letters[i::-1]))

, , CPython , , 1000 . OTOH, .join letters, , , .


. . print.

def pyramid_palindrome(last_letter):
    letters = [chr(i) for i in range(97, last_letter)]
    return [''.join(letters[:i] + letters[i::-1])
        for i in range(last_letter - 97)]

print('\n'.join(pyramid_palindrome(102)))
+1

Source: https://habr.com/ru/post/1661180/


All Articles