首页 > 编程语言 > 详细

python学习记录之数字拆分成各个位数

时间:2021-04-21 10:46:37      阅读:21      评论:0      收藏:0      [点我收藏+]

python学习记录之数字拆分成各个位数

学习中遇到一题:

⑴ 输入一个正整数,求该数各位数的平方和,例如,123的各位数的平方和=12+22+32,结果=14。

程序运行效果如下:

234

sum=29


我的解题思路为:用input获取的用户输入的正整数为字符串,用循环加上字符串切片操作取出每一位数字字符,再将各位数字字符转为数字进行平方操作,再相加,代码实现如下:

num=input()
s=0
for i in range(0,len(num)):
    s=s+pow(eval(num[i]),2)
print("sum={}".format(s))

如果题目改为:

输入一个数字,求该数求该数各位数的平方和,例如,-123的各位数的平方和=12+22+32,结果=14。即包括负数、小数,但不把负号和小数点加入到计算结果,修改代码为:

num=input()
s=0
if eval(num)==0:
    print("sum={}".format(s))
else:
    if eval(num)>0:
        flag=0		#如果输入的是正数,则要取字符串的第一位
    else:
        flag=1		#如果输入的是负数,则不取字符串的第一位
    for i in range(flag,len(num)):		#判断正负数的flag
        if num[i]!=".":					#小数点不加入计算
            s = s + pow(eval(num[i]), 2)
    print("sum={}".format(s))

python学习记录之数字拆分成各个位数

原文:https://www.cnblogs.com/harglo/p/14683502.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!