如何在Python中多次吐出一个函数?

时间:2016-11-14 15:43:41

标签: python

我想做什么?

我想要一个金字塔形状的回文。我可以使用我的代码获取金字塔的底层,但我不知道如何形成一个for循环,它将以金字塔形状的回文吐出x行数。

示例:

a
aba
abcba
abcdcba
abcdedcba

依旧......

我的代码:

end_letter = 0 # is this correct?

def test_palindrome(end_letter):
    print call_palindrome(end_letter) + call_palindrome_second_part(end_letter)

def call_palindrome(end_letter):

    letters_from_a_to_y = ""           

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

    return(letters_a_to_y)

def call_palindrome_second_part(end_letter): 

    letters_y_to_a = ""

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

    return(letters_y_to_a)

test_palindrome(end_letter)

如何让此代码正常工作?我做错了什么,我错过了什么?

2 个答案:

答案 0 :(得分:1)

您对如何调用函数感到困惑。

定义一个函数:

def giveValue(x):
    return(x)

调用函数:

 giveValue(4)

 OUTPUT: 4

或:

 a = 4
 giveValue(a)

 OUTPUT: 4

答案 1 :(得分:1)

以下是更正后的计划:

def palindromeGen(end_letter):
    print(call_palindrome(end_letter) + call_palindrome_second_part(end_letter))

def call_palindrome(end_letter):

    letters_a_to_y = ""           

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

    return(letters_a_to_y)

def call_palindrome_second_part(end_letter): 

    letters_y_to_a = ""

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

    return(letters_y_to_a)

def test_palindrome(ch):
    for i in range(ord('a'), ord(ch)+1):
        palindromeGen(i)

test_palindrome('e')

说明:

  • call_palindrome()中的错误:letters_from_a_to_y --> letters_a_to_y
  • end_letter是一个参数,您将其作为变量提供。您可以给它赋值(如ord('e'))或指定它。
  • 一旦你能够生成一行,你就可以在多行上迭代它。我已将您的test_palindrome()转换为palindromeGen(),并为此流程编写了新的代码。