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))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM