在下面这个统计大小写字母个数的代码中,a,b=0,0这句放在for循环内得到的是错误的结果,为什么放在for循环外得到的结果是对的
x=input('')
for i in x:
a,b=0,0
if i.islower()==True:
a+=1
else:
b+=1
print("{} {}".format(a,b))
结果为
helLO
0 1
当将 "a,b=0,0" 放在 for 循环内部时,每次循环都会重新将 a 和 b 赋值为 0,所以计数器的值不会累加,而每次循环的结果只是一个固定的 0。
如果将它放在 for 循环外面,它仅在第一次执行时初始化,因此每次循环的结果都会被累加,从而计数器的值得到了正确的累加。
x=input('')
a,b=0,0
for i in x:
if i.islower()==True:
a+=1
else:
b+=1
print("{} {}".format(a,b))
for循环里每次都赋予0啊,外边就一次,初始化
因为放在循环里面,每循环一次a和b都会被初始化为0所以不对,a和b只需要初始化一次就行,所以放循环外面。望采纳!
以下答案引用自GPT-3大模型,请合理使用:
示例
a,b=0,0 这句话放在 for 循环内会导致错误,因为 a,b 是两个初始化为 0 的变量,在每次循环迭代中, a,b 会被重新赋值为 0,1。 为了解决这个问题,可以将 a,b 保存在一个全局变量中,并把该全局变量作为循环参数传递给 for 循环。 代码如下:
x=input('')
global a,b
a,b=0,0
if i.islower()==True:
a+=1
else:
b+=1
print("{} {}".format(a,b))
如果我的回答解决了您的问题,请采纳我的回答
不知道你这个问题是否已经解决, 如果还没有解决的话: