黄哥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 去硬拼凑写出代码,没有想用到更好的数据结构和算法。