字符串题目求助
本帖最后由 元豪 于 2022-9-12 14:48 编辑问: 判断一个字符串是否包含英文, 如果有, 返回第一个字母下标和最后一个字母下标.
如:
a = '01234ABCabc@$#$%'
返回:
5, 10
推荐简短 本帖最后由 临时号 于 2022-9-12 16:14 编辑
a,start = '01234ABCabc@$#$%',-1
for i in range(len(a)):
if 'A' <= a <= 'z' and start == -1:
start = i
elif 'A' <= a <= 'z':
end = i
print(start,',',end) 本帖最后由 jackz007 于 2022-9-12 15:05 编辑
a , c = '01234ABCabc@$#$%' , -1
for i in range(len(a)):
if a . isalpha():
d = i
if c < 0:
c = i
print(c , ',' , d) if c >= 0 else print('not found .') 本帖最后由 dolly_yos2 于 2022-9-12 15:16 编辑
一个不太优美的一行方法
}, {r[-1]}') if len(r) > 0 else print('not found') for r in .isalpha() else None for i in range(len(a))]))]]
一个可能稍好一点的方法
import re;(.*)?', a, re.DOTALL)]] dolly_yos2 发表于 2022-9-12 15:01
一个不太优美的一行方法
为什么会有?{:5_94:} 元豪 发表于 2022-9-12 15:16
为什么会有?
因为您使用的是交互式 shell ,这一行表达式求值的结果会被打印出来
如果从文件运行就只会打印 print 中的部分 a = input() #读入
first_pos = last_pos = -1 #初始化变量
now_pos = 0
for i in a: #字符串遍历
ascii_code = ord(i) #获取ascii码
if 97 <= ascii_code <= 122 or 65 <= ascii_code <= 90: #判断是否是英文字母,122是'z'的ascii码,97是'a'的ascii码,90是'Z'的ascii码,65是'A'的ascii码
last_pos = now_pos #更新答案
if first_pos == -1: #如果first_pos == 1,就是这是第一个遇到的英文字母
first_pos = now_pos #更新答案
now_pos += 1 #当前位置后移一位
if first_pos == -1: #未找到,输出未找到
print("Not have English letters")
else: #找到了,答案输出
print(first_pos, last_pos, sep = ', ') zhangjinxuan 发表于 2022-9-12 17:55
emm......你这东西怎么用啊?{:10_262:} 元豪 发表于 2022-9-12 18:04
emm......你这东西怎么用啊?
输入一个字符串就可以了啊 zhangjinxuan 发表于 2022-9-12 18:09
输入一个字符串就可以了啊
在哪输入捏?
{:5_94:} ???????????????
页:
[1]