我想做什么?
我想要一个金字塔形状的回文。我可以使用我的代码获取金字塔的底层,但我不知道如何形成一个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)
如何让此代码正常工作?我做错了什么,我错过了什么?
答案 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()
,并为此流程编写了新的代码。