计算9+98+987+…+987654321的和

    1. def sum_of_num():
    2. """无参函数,计算并返回9+98+987+...+987654321的累加和"""
    3. num = 0 # 储存新产生的数字
    4. result = 0 # 储存累加结果
    5. for i in range(9, 0, -1): # 获得9,8,7,6,5,4,3,2,1的数字序列
    6. num = num * 10 + i # 产生下一个数字,第一次产生9,第二次产生98...
    7. result = result + num # 计算当前累加和
    8. print(num, result) # 输出查看中间计算结果
    9. return result # 返回累加和
    10. print(sum_of_num()) # 1097393685
    1. def sum_of_num():
    2. """无参函数,计算并返回9+98+987+...+987654321的累加和"""
    3. num = 0 # 储存新产生的数字
    4. result = [] # 储存参与计算的数字
    5. for i in range(9, 0, -1): # 获得9,8,7,6,5,4,3,2,1的数字序列
    6. num = num * 10 + i # 产生下一个数字,第一次产生9,第二次产生98...
    7. result.append(num) # 将新产生的数字加到列表中
    8. print(num, result) # 输出查看中间计算结果
    9. return sum(result) # 返回列表中元素的累加和
    10. print(sum_of_num()) # 1097393685
    1. def sum_of_num():
    2. """无参函数,计算并返回9+98+987+...+987654321的累加和"""
    3. num = ''.join(map(str, range(9, 0, -1))) # 产生字符串'987654321'
    4. result = [int(num[:i]) for i in range(1,10)] # 得到参与计算的数字的列表
    5. return sum(result) # 返回列表中元素的累加和
    6. print(sum_of_num()) # 1097393685

    python风格

    1. print(sum(int('987654321'[:i]) for i in range(1, 10)))

    输出带计算表达式:

    1. def sum_of_num():
    2. """无参函数,计算并返回9+98+987+...+987654321的累加和"""
    3. num = ''.join(map(str, range(9, 0, -1))) # 产生字符串'987654321'
    4. result = [num[:i] for i in range(1, 10)] # 得到参与计算的数字的列表
    5. expression = '+'.join(result) + '=' # 得到赋值符号左侧表达式的字符串
    6. result = sum(map(int, result)) # 列表中的字符型数字转为整数再求和
    7. return expression + str(result) # 返回列表中元素的累加和
    8. print(sum_of_num()) # 1097393685
    9. # 9+98+987+9876+98765+987654+9876543+98765432+987654321=1097393685