herself219 2023-02-13 21:55 采纳率: 100%
浏览 21
已结题

关于#for#的问题,如何解决?

在下面这个统计大小写字母个数的代码中,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
  • 写回答

5条回答 默认 最新

  • 社区专家-Monster-XH 2023-02-13 22:07
    关注

    当将 "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))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 2月23日
  • 已采纳回答 2月15日
  • 创建了问题 2月13日

悬赏问题

  • ¥20 找辅导 初学者 想实现一个项目 没有方向
  • ¥15 关于渗漏场的电场分布模拟
  • ¥24 matlab怎么修改仿真初始时间
  • ¥15 两分段线性回归模型分析阈值效应
  • ¥15 前端和后端代码都没报错,但是点登录没反应的?
  • ¥100 需要远程解决QSQLITE问题!
  • ¥15 利用光场表达式画出初始光场强度分布图像等几个问题在这两个图片里
  • ¥15 gozero求手把手教学,400一天
  • ¥15 泥浆冲清水的泥浆分布
  • ¥15 LASSO回归分析筛选关键基因,适合多大样本量?