如何在python中找到字符串中的第一个字符

时间:2018-05-30 08:26:37

标签: python python-3.x

如何在python中找到字符串中的第一个字符?我使用了find()和index()但它们只找到一个字符。如何从我想要搜索的几个字符中找到单个字符的第一个位置?

所以我想在输入的字符串中找到第一个运算符(在4个算术运算符中)的位置,否则它应该返回-1。

很抱歉,如果这是一个非常愚蠢的问题,但我在过去几天一直在搜索和尝试多个选项。我也是python的初学者。

我试过这个,但我知道错了:

>>> str1 ='12-23+23*12/12'
>>> str1.find('+') or str1.find('-') or str1.find('*') or str1.find('/')

这将返回显示为+运算符的第一个运算符。 另外,我试过了

for x in str1:
    if (x=='+' or x=='-' or x=='*' or x=='/'):
        print(str1[x])

我知道这是错的。 我是初学者,我正在努力学习我已经学过的暑期课程。所以我对这个话题知之甚少。

2 个答案:

答案 0 :(得分:-1)

str1 ='12-23+23*12/12+65'

while(1):
    if('+' not in str2): #Taking '+' as an example
        break;
    int found = str1.find(+)
    print(found)    
    str2 = str1.replace('+','',1)
    #str2 = str1[:found]+str1[found+1:]

还有另一种方法可以完成我在代码最后一行中所做的工作。我在上面的评论中添加了它。

str2 = str1[:found]+str1[found+1:]

答案 1 :(得分:-2)

你可以做以下的事情:

validInput = set(['+','-','*','/'])
checkString = '12-23+23*12*12'

def checkInput(input):
  if input not in validInput:
    raise Exception
  return input

def findSign(sign,string):
  sign = checkInput(sign)
  if sign in string:
    return string.find(sign)
  return -1

print(findSign('/',checkString))