python学习记录之数字拆分成各个位数
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
python学习记录之数字拆分成各个位数
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))。