有什么方法可以打印所有位值而不是仅打印第一个位值?

问题描述 投票:0回答:1

在我的程序中,我必须输入一个字符串(例如香蕉),然后输入另一个我要检查其位值的字符串(例如 a)。

def placevalue(a,b):
    for i in range(len(a)):
        if a[i]==b:
            return i+1
    else:
        return "not found"
str=input()
s=input()
print(placevalue(str,s)

我尝试了这段代码,但它只显示第一位值(示例 2 为香蕉)。我想要所有的位值(例如 2,4,6)。

python for-loop if-statement
1个回答
1
投票

试试这个:

def placevalue(a, b):
    positions = []
    for i in range(len(a)):
        if a[i] == b:
            positions.append(i + 1)  # Add the position to the list
    return positions if positions else "not found"  # Return "not found" if the list is empty

string = input("Enter the string: ")
char = input("Enter the character to find: ")
print(placevalue(string, char))
© www.soinside.com 2019 - 2024. All rights reserved.