编写函数实现求字符串中大、小写字母的个数;
def main(x):a=x.split()
m1=0
m2=0
for i in range(0,len(a)):
if 64<ord(a)<91:
m1+=1
else:
m2+=1
print("大写:",m1,"小写:",m2)
x=input("请输入一串字符,由我来判断他们的大小写个数:")
main(x)
怎么在这个错误代码下修改以达到编写“函数实现求字符串中大、小写字母的个数;”的目的
且错在哪??
鱼油帮帮, 因为 x.split()是以空白字符分割。
改成 a=list(x)即可 在 main 函数中,你应该遍历字符串的每个字符,而不是使用 split() 方法。.split()是以空白字符分割字符串
还有就是你需要在判断条件中添加小写字母的条件,而不是直接用 else。除非你能保证你输入的字符串只有字母
以下是修改后的代码:
def main(x):
m1 = 0
m2 = 0
for i in x:
if 65 <= ord(i) <= 90:# 大写字母的范围
m1 += 1
elif 97 <= ord(i) <= 122:# 小写字母的范围
m2 += 1
print("大写:", m1, "小写:", m2)
x = input("请输入一串字符,由我来判断他们的大小写个数:")
main(x)
本帖最后由 未泯 于 2023-3-20 13:47 编辑
split()会返回一个列表,比如你输入“I Love FishC”,得到的是['I','Love','FishC'],所以你迭代的是列表,而不是你输入的字符串中每个字符。
实例:
def main(x):
a=''.join(x.split()) //可以这样把列表重新组合成字符串,但是其实这一段的都可以省掉,直接用你输入的字符串去判断
m1=len()
m2=len()
print("大写:",m1,"小写:",m2)
x=input("请输入一串字符,由我来判断他们的大小写个数:")
main(x)
可以活用python里islower,isupper,isalpha等函数:
def func(x):
count = 0
for i in x:
if i.isupper():
count = count + 1
print(f'大写字符:{count},小写字符:{len(x) - count}')
x = '1'# 初始化x,让循环进行下去
while x.isalpha() is False:# 判断是否全是字母
x = input('请输入一串字符:')
x = ''.join(x.split())# 把多余的空格去掉
print('非全字母,请重新输入')
func(x)
页:
[1]