博客
关于我
Python基础练习之一输出10000以内的阿姆斯特朗数
阅读量:797 次
发布时间:2023-03-07

本文共 806 字,大约阅读时间需要 2 分钟。

阿姆斯特朗数解析与代码优化

阿姆斯特朗数是指一个n位正整数等于其各位数字的n次方之和。例如,153是一个3位数,满足1³ + 5³ + 3³ = 153。

解题思路

  • 遍历数字:使用for循环遍历1到10000的数字。
  • 单独处理不同位数:根据数字的位数,分别处理个位、十位、百位和千位上的数字。
  • 提取各位数字:通过除法和取余运算,逐步提取各位数字。
  • 计算各位数字的n次方之和:根据位数,计算各位数字的相应次方并求和。
  • 判断是否为阿姆斯特朗数:将计算结果与原数比较,若相等则输出。
  • 优化代码

    #!/usr/bin/python3
    # -*- coding: UTF-8 -*-
    print("10000以内的阿姆斯特朗数有:")
    for number in range(1, 10001):
    if number < 10:
    print(number)
    else:
    digits = []
    n = number
    while n > 0:
    digits.append(n % 10)
    n = n // 10
    power = sum([d ** len(digits) for d in digits])
    if power == number:
    print(number)

    总结

  • 练习内容

    • 练习了for循环的使用。
    • 学习了if条件的多种应用。
    • 掌握了如何使用除法和取余运算提取各位数字。
  • 改进思路

    • 使用整除运算符//提取各位数字,避免重复使用int函数。
    • 统一处理数字分解,避免重复代码。
    • 通过循环判断数字位数,确定处理方式。
  • 执行结果

    1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474

    转载地址:http://uaofk.baihongyu.com/

    你可能感兴趣的文章
    python | sumy,一个超酷的 用于文本摘要的 Python 库!
    查看>>
    python | tiler,一个不可思议的 图像切片重组 Python 库!
    查看>>
    python | tinydb,一个非常厉害的 关于数据库的 Python 库!
    查看>>
    python | tox,一个超强的 自动化测试工具 Python 库!
    查看>>
    python | ttkbootstrap,一个神奇的 Python 库!
    查看>>
    python | unoconv,一个超厉害的 Python 库!
    查看>>
    python | urllib3,一个超强的 Python 库!
    查看>>
    python | webassets,一个超强的 Python 库!
    查看>>
    python | werkzeug,一个不可思议的 Python 库!
    查看>>
    python | xlsxwriter,一个实用的 Python 库!
    查看>>
    python | xlwings,一个非常实用的 Excel 相关的 Python 库!
    查看>>
    python | xmltodict,一个非常厉害的 关于XML数据 Python 库!
    查看>>
    python | xonsh,一个超酷的 Python 库!
    查看>>
    python | yagmail,一个实用的 Python 库!
    查看>>
    python | 一文掌握Python的上下文管理器和with语句
    查看>>
    python | 一文看懂Python闭包机制与变量作用域规则
    查看>>
    python读取含中文的json
    查看>>
    python | 如何用Python锁避免并发错误?
    查看>>
    python | 提升代码迭代速度的Python重载方法
    查看>>
    python | 深入理解Python并发编程中的GIL限制与解决方案
    查看>>