如何使 Python 中的 for 循环工作? [英] How to make this for loop in Python work?

查看:36
本文介绍了如何使 Python 中的 for 循环工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想吐出一个回文列表,直到我给出某个字母为止.

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆