python - 如何使这个 for 循环在 Python 中工作?

标签 python string python-2.7

我想吐出一个回文列表,直到我给的某个字母。

关于这部分:

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."

问题是我没办法一个一个吐出回文,像金字塔一样往上爬。有人能指出我正确的方向吗?

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)

我觉得我已经很接近了,但还不能画龙点睛。

最佳答案

您可以使用字符串切片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))

关于python - 如何使这个 for 循环在 Python 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40674736/

相关文章:

python - 正则表达式以获取具有特定字母的所有单词列表(unicode 字素)

Python Keras 运行错误(无效语法)

python - Python 的 locals() 有什么作用?

java - 检查字符串条件并使用 java 在文件中打印所需的条件

python-2.7 - 在 python 中为 Firefox Geckodriver 设置 selenium 代理

python - 信件的 XML 解析错误?

python - 如何使用 Python 轻松将变量扩展为字符串?

c - 冲洗替代品

python - 如何使用 subprocess.Popen 更新目录以在 Python 中查找新文件

函数参数中的python UUID4