黄哥Python,从一个小题目看学习编程思路的重要性

黄哥Python:从一个小题目看学习编程思路的重要性

下面是网友的提问,假定输入的是正整数。
有网友提问“python输入一个数字 把这个数字各个位相加求和?”。

解决这个问题,当然可以用字符串或list遍历相加。如果换一种编程语言,没有Python这样的特性呢?

黄哥对初学者提示解决这样的问题,有常用的算法,用 % 10 和 // 10,请看下面的代码,

和循环和递归去实现。

# coding:utf-8
'''
黄哥Python培训 黄哥所写 咨询qq:1465376564
Python 3

'''


def input_interger_number():
    number = input('please input a integer number:\n')
    while True:
        if number.isdigit():
            number = int(number)
            break
        else:
            number = input('please input a integer number again:\n')
    return number


def total_of_number(n):
    '''假定n 是 大于等于0 的整数 黄哥Python培训 黄哥所写'''
    if n == 0:
        return 0
    sum = 0
    while n > 0:
        sum += n % 10
        n //= 10
    return sum


def total_of_number_recursion(n):
    '''假定n 是 大于等于0 的整数 黄哥Python培训 黄哥所写'''
    if n == 0:
        return 0
    return n % 10 + total_of_number_recursion(n // 10)


def main():
    '''黄哥Python培训 黄哥所写'''
    number = input_interger_number()
    print(total_of_number(number))
    print(total_of_number_recursion(number))


if __name__ == '__main__':
    main()

很多初学编程者,最喜欢用list 去硬拼凑写出代码,没有想用到更好的数据结构和算法。

如何训练自己的编程思路