如何使 Python 中的 for 循环工作? [英] How to make this for loop in Python work?
问题描述
我想吐出一个回文列表,直到我给出某个字母为止.
I want to spit out a list of palindromes until a certain letter I give.
关于这部分:
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)
我想要的是,这样做:
a
aba
abcba
abcdcba
abcdedcba
abcdefedbca
abcdefgfedcba
abcdefghgfedcba
....
我是这样想的:
"我将最后一个字母作为输入,它会不断迭代回文直到检查最后一个字母."
"I will give the last letter as an input, and it will keep iterating the palindrome until the last letter is being checked."
问题是我无法一个一个地吐出回文,像金字塔一样上升.有人可以指出我正确的方向吗?
The problem is that I can't manage to spit out the palindromes one by one, ascending it just like a pyramid. Can someone point me in the right direction?
当我说我需要在第一个中使用 for 循环
时,我说得对吗?功能?
Am I right when I say I need to use a
for loop
in the first function?
这是我的完整代码:
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 am close, but can't make the finishing touch.
推荐答案
您的问题是在调用两个回文函数时以及如何更改 last_letter
-
Your problem was when calling your two palindrome functions and on how you were changing the value for last_letter
-
我尝试尽可能少地修改您的代码:
I tried to modify your code as little as possible:
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
这篇关于如何使 Python 中的 for 循环工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!