第3類:迴圈敘述

TQC+ 程式語言Python 308 迴圈位數加總

題目說明:

請使用迴圈敘述撰寫一程式,要求使用者輸入一個數字,此數字代表後面測試資料的數量。每一筆測試資料是一個正整數(由使用者輸入),將此正整數的每位數全部加總起來。

輸入與輸出會交雜如下,輸出的部份以粗體字表示 1


1
98765
Sum of all digits of 98765 is 35

輸入與輸出會交雜如下,輸出的部份以粗體字表示 2


3
32412
Sum of all digits of 32412 is 12
0
Sum of all digits of 0 is 0
769
Sum of all digits of 769 is 22

程式碼:

n = eval(input())
for i in range(n):
    temp = num = eval(input())
    ans = 0
    while temp != 0:
        ans += temp % 10
        temp //= 10
    print('Sum of all digits of %d is %d' %(num, ans))

 

TQC+ 程式語言Python 第3類:迴圈敘述





如果覺得文章內容還不錯的話,麻煩請幫我點個讚!感謝

可以多點幾次喔~~

第一次點讚需使用 Google 或 Facebook 帳號註冊

9 則留言

    • JamesBang

      你好!不用特別寫 i = i + 1 也可以執行。
      當我們迴圈使用 range() 函數時,如果只帶入一個參數,假設是 range(3),迴圈就會跑 3 次,而 i 的值依序是 0、1、2,即便多寫 i = i + 1 也一樣是跑三次;而如果帶入兩個參數,第一個參數是起始值,第二個參數減一是終止值,像 range(-1, 2) 就是 -1、0、1,這樣也是執行三次。

    • JamesBang

      你好!這一段是要算各位數字的加總,例如我們輸入 123,這裡就會算出 1 + 2 + 3 的結果。

      以 123 為例:
      一開始變數 temp 為 123,在第一行因為條件設為不等於 0,所以會執行 while 迴圈下面的敘述。

      「ans += temp % 10」為「ans = ans + temp % 10」的縮寫
      第一次執行時 ans 為 0、temp % 10 為 123 % 10 = 3 (求餘數)
      所以 ans = 0 + 3 = 3,第一次執行後 ans 會變成 3。

      接著將 temp 整除 10 會變成 12,然後因為 temp 還是不等於 0,所以再進行下一次的迴圈內容。

      執行第二次:
      ans = ans + temp % 10 = 3 + 2 = 5
      temp = temp // 10 = 12 // 10 = 1

      temp = 1 不等於 0,所以再執行一次

      執行第三次:
      ans = ans + temp % 10 = 5 + 1 = 6
      temp = temp // 10 = 0

      temp 為 0,跳出迴圈,將 ans 結果輸出。

        • JamesBang

          Python 相關的工作有很多,各種領域都用得到 Python,因為它有非常多的套件可以做應用,比較常見的就是大數據分析、影像辨識、人工智慧、自動化測試… 等等,以上都需要使用到套件,所以只有考到證照是不夠的,建議可以買幾本書來加深實力,文淵閣的 Python 系列應用廣泛,非常推薦!

          或是投身資訊教育,現在有一些學校在招募資訊老師,不用教師證只要有資訊背景的學士即可、還有類似補習班的程式老師,因為是教小孩子,所以也不太需要高強的技能。

文興 發表迴響取消回覆