编写一个函数,将字符串作为参数并显示字母,在python中每行使用一个循环

2024-06-07 13:30:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习编程,我正在使用“如何像计算机科学家一样思考”上面的问题是一个练习 这是一个没有函数的程序

fruit = "banana"

index = 0

while index < len(fruit):

letter = fruit[index]
print(letter)
index = index + 1

我想把它变成一个函数

def tranversal(fruit):
    index = 0

    while index < len(fruit):

        letter = fruit[index]
        return letter
        index += 1

        print(tranversal("apple"))

然而,这只是打印“苹果”的第一个字母,如果我使用打印语句而不是返回,我将一无所获。 我很困惑,需要帮助!!你知道吗


Tags: 函数程序indexlenreturndef编程计算机
3条回答

如果在函数中使用print,则在调用函数时不需要使用print。你知道吗

def tranversal(fruit):

    index = 0

    while index < len(fruit):

        letter = fruit[index]

        print(letter)

        index += 1

tranversal("apple")

如果您在while循环中使用return语句,那么您将立即离开函数(并返回第一个字母),对于更高的索引,while循环将不会执行。你知道吗

一个简单的解决方案:

print(*'banana', sep='\n')

输出:

b
a
n
a
n
a

借助于星形运算符*,您可以将一个列表或一个字符串拆分为多个部分,并将它们作为多个参数传递给函数。所以表达式print(*'abc')等价于print('a', 'b', 'c')。你知道吗

似乎您不了解函数中return语句的用途。你可能想先读this answer,把事情弄清楚。你知道吗

一旦理解了print()return之间的区别,就应该定义函数需要做什么。它需要返回答案吗?还是在屏幕上打印就足够了?你知道吗

假设后者,假设字符串是可iterable的,一种更具python风格的方法是:

def transversal(fruit):
    for letter in fruit:
        print(letter)

请注意,如果您尝试以下操作,则函数不会显式返回值:

foo = transversal("banana")

变量foo将保存值None。你知道吗

如果希望函数返回答案而不打印它,可以将每个字母附加到一个空的result字符串中,每行用分隔符,完成后,只需返回result。这可能是一个很好的练习,所以你应该试试:)。你知道吗

相关问题 更多 >

    热门问题