I am a teacher!

导航

习题解析之:奇偶求和

【问题描述】

输入一个完全由数字字符组成的字符串s,分别统计其中出现的奇数和偶数字符数值之和‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

如输入123456789‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输出oddsum=25,evensum=20‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

示例 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入:
123456789
输出:
oddsum=25,evensum=20

【编程思路1】

        用循环 for c in s: 遍历输入数字串 s 中的每个数字,若 int(c) 是奇数,则累加到奇数和 oddsum ;若是偶数,则累加到偶数和 evensum。

        编写的源程序如下:

     image

【编程思路2】

        也可以直接用内置函数 sum() 对数字串 s 中的数字进行累加求和。

        例如,设字符串  s = '123456789'

        则  print(sum(int(c) for c in s))  的输出结果为 45,它是对数字串 s 中的全部数字累加求和;
              print(sum(int(c) for c in s if int(c) % 2 == 1))   的输出结果为 25,它是对数字串 s 中的全部奇数数字累加求和;
              print(sum(int(c) for c in s if int(c) % 2 == 0))   的输出结果为 20,它是对数字串 s 中的全部偶数数字累加求和;
        编写的源程序如下:

      image

posted on 2025-11-13 10:56  aTeacher  阅读(22)  评论(0)    收藏  举报