检测输入的是几位数,并求每一位数字的和和积。
# -*- coding: utf-8 -*-
# 作者:涓涓细流
# 日期:20151125
# 环境:pycharm5-community python-2.7.10-32 windows7-64
# 教程:《父与子的编程之旅》
# 列表的创建,列表插入元素:remainder_list.insert(索引, 值),join()用法,format(用法)
# 输入数字,检测这是几位数,求每一位数字的和与积
some_number = raw_input("随便输入一个多位数:")
if not some_number.isdigit(): # 此if...else用来限制只能输入数字
while True:
some_number = raw_input("数字,数字,数字。重要事情说三遍:")
if some_number.isdigit():
some_number = int(some_number)
break
else:
some_number = int(some_number)
print "输入的多位数是:%d" % some_number
remainder_list = [] # 存储余数的列表
figures_number = len(str(some_number)) # 这是几位数
sum_remainder = 0 # 对余数求和
product_remainder = 1 # 求余数的积
for i in range(figures_number):
remainder = some_number % 10
sum_remainder += remainder
product_remainder *= remainder
some_number /= 10
remainder_list.insert(0, str(remainder)) # 列表插入元素的方法,此处转字符给join用
print "这个%d位数的" % figures_number + "每一位数分别是:" + ",".join(remainder_list) # join括号里面的*序列*需要是字符串
print "这个%d位数的和是:" % figures_number + "+".join(remainder_list) + "=%d" % sum_remainder
print "这个%d位数的积是:" % figures_number + "×".join(remainder_list) + "=%d" % product_remainder
print '这个{0:d}位数的积是:{1:s}={2:d}(format方法)'.format(figures_number, "×".join(remainder_list), product_remainder)