求解答速度速度速度速度

现有字符串a=“hello world Hi Python”,对其进行如下操作:。

 

(1)获取到字符串a中所有h开头的单词,无论大小写h开头都算,进行输出(2)对字符串进行所有单词开头字母大写输出。

 

(3)截取非大写H开头的单词组成一个新的字符串输出

 

(4)判断字符串a中是否有数字,若有输出“True"反之“False”。

 

(5)判断字符串a是否全为字母,若是输出“True"反之“False”。

a='hello world Hi Python'
al = a.split(' ')
# 获取到字符串a中所有h开头的单词,无论大小写h开头都算,进行输出
for i in al:
    if 'h' == i[0].lower():
        print('获取到字符串a中所有h开头的单词:', i)
# 对字符串进行所有单词开头字母大写输出
for i in al:
    print('对字符串进行所有单词开头字母大写输出:', i.capitalize())
# 截取非大写H开头的单词组成一个新的字符串输出
r = []
for i in al:
    if 'H' != i[0]:
        r.append(i)
print('截取非大写H开头的单词组成一个新的字符串输出:', ' '.join(r))
# 判断字符串a中是否有数字
result = False
for i in al:
    if i.isdigit():
        result = True
print('判断字符串a中是否有数字:', result)
# 判断字符串a是否全为字母
result = False
for i in al:
    if i.isalpha():
        result = True
    else:
        result = False
        break
print('判断字符串a是否全为字母:', result)

如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢
 

import re

a='hello world Hi Python'

print(re.findall('(?<![a-z])h[a-z]*',a,re.I))
print(re.findall('(?<![a-z])[A-Z][a-zA-Z]*',a))
print(''.join(re.findall('(?!H)(?<![a-zA-Z])[a-zA-Z]+',a)))
print(True if re.search('\d',a) else False)
print(True if re.fullmatch('[a-z]',a,re.I) else False)

使用正则表达式,使字符串判断更简单

正则表达式re.I为正则修饰,忽略大小写

(?<![a-z])h[a-z]*,前面没有字母,然后又字母h开头,后边跟任意数量字母,因为有修饰忽略大小写,所以a-z即代表所有字母

(?<![a-z])[A-Z][a-zA-Z]*,前面没有字母,以大写字母开头,后边跟任意数量字母,因没有修饰忽略大小写,所以a-zA-Z要都写上

(?!H)(?<![a-zA-Z])[a-zA-Z]+使用断言判断,当前位置后不能跟随大写字母H,且当前位置前没有任意字母,然后去当前位置后的所有字母

至于search和fullmatch就不介绍了

a='hello world Hi Python'
b = a.split(' ')

# 1
for i in b:
    if i[0]=='h' or i[0]=='H':
        print(i)
        
# 2
for i in b:
    if i[0].isupper():
        print(i)
        
# 3
s = ''
for i in b:
    if i[0]!='H':
        s = s+i
print(s)

# 4
result = False
for i in a:
    if i.isdigit():
        result = True
print(result)

# 5
print(a.isalpha())  # 有空格,不是全字母

输出:

hello
Hi

Hi
Python

helloworldPython

False

False