现有字符串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