Python 提取字符串中第一个数字 2021-10-19

Python 提取字符串中第一个数字

#函数功能: 提取字符串中第一个数字,支持科学计数法. 如果字符串中不包含数字则返回0
def getNumFromString(sss):
	slen = len(sss)
	ret_value = 0 #返回值
	sflag = 0 #标记是否遇到第一个数字字符 0-未遇到 1-已遇到
	zflag = 1 #数字整数部分标记  默认1-整数
	pnflag = 1 #正负号标记   默认1-正数
	scientificEnumerationFlag = 0 #科学计数法标记
	cnt = 1 #小数部分长度计数
	power_num = 0 #幂
	power_pnFlag = 1
	#print("字符串长度=%s"%slen)
	for i in range(slen):
		if sss[i].isdigit():
			sflag = 1
			if scientificEnumerationFlag:
				power_num = power_num*10 + int(sss[i])
				#print("current step power_num=%s"%power_num)
			else:
				if zflag == 1:
					ret_value = ret_value*10 + int(sss[i])
					#print(ret_value)
				else:	
					divnum = 10**cnt
					ret_value = ret_value + float(sss[i])/(divnum)
					#print("div_num=%s, current step ret_value=%s"%(divnum,ret_value))
					cnt+=1
		else:
			if sflag == 1:
				if sss[i] == '.':
					zflag = 0
				elif sss[i] == 'e' and (sss[i+1] == '+' or sss[i+1] == '-'):
					scientificEnumerationFlag = 1 #开启科学计数法
					if(sss[i+1] == '+'):
						power_pnFlag = 1
					else:
						power_pnFlag = -1
					#print("幂的符号=%s"%power_pnFlag)
				else:
					if sss[i-1] == 'e' and (sss[i] == '+' or sss[i] == '-'):
						continue
					else:
						#print("-------------break------------")
						break
			else:
				if sss[i] == '-':
					pnflag = -1
	return pnflag*ret_value*(10**(power_num*power_pnFlag)) #符号*返回值*(10**(幂*幂的符号))
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用 Python字符串索引来提取字符串的字符。索引从 0 开始,可以使用方括号 [] 来访问字符串的单个字符。 例如: ``` string = "hello world" print(string[0]) # 输出字符串第一个字符 h print(string[5]) # 输出字符串第六个字符 w ``` 也可以使用切片来提取字符串的一段子字符串。 ``` string = "hello world" print(string[3:7]) # 输出字符串第4个到第7个字符 lo ``` ### 回答2: 在Python,可以使用索引运算符[]来提取字符串的字符。字符串是一个字符序列,可以通过索引来访问其的每个字符。索引从0开始,表示第一个字符,依次递增。可以使用正向索引从左向右访问字符,也可以使用反向索引从右向左访问字符。 例如,给定字符串s = "Hello World!",要提取字符"o",可以使用索引s[4],因为它是第5个字符。同样,要提取字符"!",可以使用索引s[-1],因为它是倒数第一个字符。 可以使用切片运算符[:]来提取字符串的子串。切片运算符可以提供一个起始索引和一个结束索引,提取起始索引到结束索引(不包括结束索引)范围内的字符。 例如,给定字符串s = "Hello World!",要提取子串"Hello",可以使用切片s[0:5]或s[:5],起始索引为0,结束索引为5。同样,要提取子串"World",可以使用切片s[6:11]或s[6:],起始索引为6,结束索引默认为字符串的长度。 此外,Python还提供了一些字符串方法来提取和处理字符串的字符,如split()方法和join()方法等。split()方法可以根据指定的分隔符将字符串拆分为一个列表,每个元素是一个字符或子串。join()方法可以将一个列表的元素连接成一个字符串,并使用指定的分隔符。 总之,使用索引和切片运算符,以及字符串方法,可以方便地提取字符串的字符和子串,并进行相应的操作和处理。 ### 回答3: 使用Python提取字符串的字符主要可以通过索引和切片两种方式来实现。 一、索引: 索引是用来表示字符串每个字符位置的数字,从0开始,可以正向(从左到右)或反向(从右到左)索引。 示例代码如下: ```python s = "Hello, world!" print(s[0]) # H print(s[-1]) # ! ``` 二、切片: 切片是在字符串一部分字符形成新的字符串。 示例代码如下: ```python s = "Hello, world!" print(s[0:5]) # Hello print(s[:5]) # Hello print(s[7:]) # world! print(s[7:-1]) # world ``` 通过指定的索引或切片范围来获字符串的字符或子串,可以根据实际需求灵活运用。 补充:如果字符串有多个匹配的字符需要提取,可以通过循环遍历字符串的方式,依次提取每个字符。 示例代码如下: ```python s = "Hello, world!" for ch in s: print(ch) ``` 以上就是使用Python提取字符串的字符的基本方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值