求修改!
运行结果哪里出了问题,希望大佬可以解答"""
时间:2022年2月4日21:36:04
目的:输入一段英文,计算其中大写字母和小写字母的数量"""
#isupper():判断字符串是否为大写字符
#islower():判断字符串是否为小写字符
def demo(temp):
upper = 0
lower = 0
for i in temp:
if i.isupper():
upper += 1
return upper
elif i.islower():
lower += 1
return lower
else:
return "请输入正确形式"
while True:
temp = input("请输入一段英文:")
a = demo(temp)
print("大写字母个数:%s"%a,"小写字母个数为:%s"%a)
temp2 = input("是否继续,继续请按y")
if temp2 == "y":
print("继续你的测试...")
continue
else:
print("停止测试退出循环...")
break
"""
l.IDLE (Python 3.8 32-bit)运行结果:"""
python爱好者. 发表于 2022-2-12 11:22
因为在 demo 函数执行后,它返回的是一个结果,所以我们要去判断一下这个结果,再去向用户输出!
如果你不想判断的话,有一个比您更好的方案:
def demo(temp):
upper = 0
lower = 0
for i in temp:
if i.isupper():
upper += 1
elif i.islower():
lower += 1
else:
print("请输入正确格式")
return -1
print("大写字母个数:%s" % upper,"小写字母个数为:%s" % lower)
while True:
temp = input("请输入一段英文:")
demo(temp)
temp2 = input("是否继续,继续请按y")
if temp2 == "y":
print("继续你的测试...")
continue
else:
print("停止测试退出循环...")
break
def demo(temp):
upper = 0
lower = 0
for i in temp:
if i.isupper():
upper += 1
elif i.islower():
lower += 1
else:
return "请输入正确形式"
return upper,lower
while True:
temp = input("请输入一段英文:")
a = demo(temp)
print("大写字母个数:%s"%a,"小写字母个数为:%s"%a)
temp2 = input("是否继续,继续请按y")
if temp2 == "y":
print("继续你的测试...")
continue
else:
print("停止测试退出循环...")
break
本帖最后由 灰晨 于 2022-2-12 11:09 编辑
def demo(temp):
upper = 0
lower = 0
for i in temp:
if i.isupper():
upper += 1
elif i.islower():
lower += 1
else:
return "请输入正确形式"
return upper, lower
while True:
temp = input("请输入一段英文:")
a, b = demo(temp)
print("大写字母个数:%s" % a, "小写字母个数为:%s" % b)
temp2 = input("是否继续,继续请按y")
if temp2 == "y":
print("继续你的测试...")
continue
else:
print("停止测试退出循环...")
break
两个问题,1. return得放循环外。2. 注意返回的是两个值。 python爱好者. 发表于 2022-2-12 11:03
这里不应该将 return 语句放在 for 循环的前两个判断语句中:
if i.isupper():
if i.isupper():
因为一旦返回了,就会直接退出函数,所以要把它们在最后以元组的形式总的返回出来
所以既然返回结果是个元组,语句:
print("大写字母个数:%s"%a,"小写字母个数为:%s"%a)
就应该分别对应索引 0 和 1 ,就是 a ,a ,它们分别代表的是大写的量和小写的量!
懂了吗?不懂可以再问!懂了就给个好评呗!!!
{:10_257:}{:10_297:}{:10_281:}{:10_298:}
打字不易!请给个好评!!!
兄弟!给个好评!求求了!!!
{:10_254:}{:10_254:}{:10_254:}{:10_254:} python爱好者. 发表于 2022-2-12 11:08
这里不应该将 return 语句放在 for 循环的前两个判断语句中:
大佬,还有一个问题,我现在输入数字,他不提醒我输入正确形式了 蜜雪冰城 发表于 2022-2-12 11:18
大佬,还有一个问题,我现在输入数字,他不提醒我输入正确形式了
def demo(temp):
upper = 0
lower = 0
for i in temp:
if i.isupper():
upper += 1
elif i.islower():
lower += 1
else:
return "请输入正确形式"
return upper,lower
while True:
temp = input("请输入一段英文:")
a = demo(temp)
if demo(temp) != "请输入正确形式":
print("大写字母个数:%s"%a,"小写字母个数为:%s"%a)
else:
print("请输入正确形式")
temp2 = input("是否继续,继续请按y")
if temp2 == "y":
print("继续你的测试...")
continue
else:
print("停止测试退出循环...")
break
python爱好者. 发表于 2022-2-12 11:21
因为在 demo 函数执行后,它返回的是一个结果,所以我们要去判断一下这个结果,再去向用户输出! def demo(temp):
upper = 0
lower = 0
for i in temp:
if i.isupper():
upper += 1
return upper #这里不能return 否则将退出函数不能进行判断
elif i.islower():
lower += 1
return lower #同上 return将退出函数
else:
return "请输入正确形式"
while True:
temp = input("请输入一段英文:")
a = demo(temp)
print("大写字母个数:%s"%a,"小写字母个数为:%s"%a) #这里应该打印数字 用%d
temp2 = input("是否继续,继续请按y")
if temp2 == "y":
print("继续你的测试...")
continue
else:
print("停止测试退出循环...")
break
修改如下:
def demo(temp):
upper = 0
lower = 0
for i in temp:
if i.isupper():
upper += 1
elif i.islower():
lower += 1
else:
return
while True:
temp = input("请输入一段英文:")
a = demo(temp)
print("大写字母个数:%d,小写字母个数为:%d"%(a,a))
temp2 = input("是否继续,继续请按y")
if temp2 == "y":
print("继续你的测试...")
continue
else:
print("停止测试退出循环...")
break 不弃_ 发表于 2022-2-12 11:31
def demo(temp):
upper = 0
不是一样的吗...... python爱好者. 发表于 2022-2-12 11:21
谢大佬,说的很明白,很细致
页:
[1]