python学习——练习题(13)

"""
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",
因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
"""

def answer1():
    """
    正常for循环比较
    :return:
    """
    print("输出一", end=":")
    for i in range(100, 1000):
        a = i // 100
        b = i % 100 // 10
        c = i % 10
        if i == a ** 3 + b ** 3 + c ** 3:
            print(i, end=",")

answer1()

def answer2():
    """
    逆向思维,有三个一位数组合成一个三位数
    :return:
    """
    print("\n输出二", end=":")
    for i in range(1, 10):
        for j in range(0, 10):
            for k in range(0, 10):
                if i ** 3 + j ** 3 + k ** 3 == i * 100 + j * 10 + k:
                    print(i * 100 + j * 10 + k, end=",")

answer2()

def answer3():
    """
    通过类型转换来获取三位数的各位数值
    :return:
    """
    print("\n输出三", end=":")
    for i in range(100, 1000):
        s = str(i)
        if pow(int(s[0]), 3) + pow(int(s[1]), 3) + pow(int(s[2]), 3) == i:
            print(i, end=",")

answer3()

def answer4():
    """
    领用divmod函数来计算
    :return:
    """
    print("\n输出四", end=":")
    for i in range(100, 1000):
        m = i
        sumNum = 0
        while m > 0:
            m, n = divmod(m, 10)
            sumNum += n ** 3
        if sumNum == i:
            print(i, end=",")

answer4()

def answer5():
    """
    利用列表for if 用法来实现
    :return:
    """
    print("\n输出五", end=":")
    L = [i for i in range(100, 1000) if (i // 100) ** 3 + (i // 10 % 10) ** 3 + (i % 10) ** 3 == i]
    print(L)

answer5()

  

时间: 2024-10-11 20:33:31

python学习——练习题(13)的相关文章

python 学习笔记 13 -- 常用的时间模块之time

Python 没有包含对应日期和时间的内置类型,不过提供了3个相应的模块,可以采用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包含一些函数用于获取时钟时间和处理器的运行时间,还提供了基本解析和字符串格式化工具 *    datetime 模块为日期.时间以及日期时间值提供一个更高层接口.datetime 中的类支持算术.比较和时区配置. *    calendar 模块可以创建周.月和年的格式化表示.它还可以用来计算重复事件.给定日期是星期几,以及其他基

python 学习笔记 13 -- 经常使用的时间模块之time

Python 没有包括相应日期和时间的内置类型.只是提供了3个相应的模块,能够採用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包括一些函数用于获取时钟时间和处理器的执行时间,还提供了基本解析和字符串格式化工具 *    datetime 模块为日期.时间以及日期时间值提供一个更高层接口. datetime 中的类支持算术.比較和时区配置. *    calendar 模块能够创建周.月和年的格式化表示. 它还能够用来计算反复事件.给定日期是星期几,以及其

Python 学习笔记13:Python + wsgi + django 配置。坑爹的python3和wsgi不兼容的解决

今人不见古时月,今月曾经照古人.生命是如此的美丽与短暂! 学习Python已经两个月了,Python的语法通过做简单的语法题和看Python语法介绍,有了初步的了解.但上班还是要做别的事情,所以感觉学起来特别慢.有一种时不我待的感觉. 基本的语法了解了,接下来就要尽快进入到项目的实战.这样才能快速的遇到问题,并解决问题,迅速提升能力. 开始当然就是先按网上的一般步骤,用django写个博客网站出来. 接下来就是血泪啊!配置这个Python + wsgi + django, 其恶心已达到足以让我呕

python学习——练习题(6)

""" 题目:斐波那契数列. 程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--. 这里所有的斐波那契数列都是以0开头来算 """ import functools def answer1(): """ 输出100000以内斐波那契数列 :return: """ print("

Python学习:13.Python正则表达式

一.正则表达式简介 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. 就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言, (在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被 编译成一系列的字节码,然后由用 C 编写的匹配引擎执行. re 模块使 Python 语言拥有全部的正则表达式功能. compile 函数根据一个模

Python学习总结13:os模块

os模块包含普遍的操作系统功能,与具体的平台无关.常用于处理文件和目录这些我们日常手动需要做的操作. 1. os模块函数汇总 1) os.name():判断现在正在实用的平台,Windows 返回 ‘nt'; Linux 返回’posix'     2) os.getcwd():得到当前工作的目录.     3) os.listdir():指定所有目录下所有的文件和目录名.         以列表的形式全部列举出来,其中没有区分目录和文件.     4) os.remove():删除指定文件  

Python学习笔记13(异常处理)

搬运自:http://www.cnblogs.com/wupeiqi/articles/5017742.html 1.异常基础 在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!! try: pass except Exception as ex: pass 2.异常种类 python中的异常种类非常多,每个异常专门用于处理某一项异常!!! AttributeError 试图访问一个对象没有的树形,比如foo.x

Python学习笔记13:标准库之子进程(subprocess包)

ubprocess包主要功能是执行外部的命令和程序.从这个意义上来说,subprocess的功能与shell类似. subprocess以及常用的封装函数 当我们运行python的时候,我们都是在创建并运行一个进程. 在Python中,我们通过标准库中的subprocess包来fork一个子进程,并运行一个外部的程序. subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所以我们可以根据需要来从中选取一个使用. 另外subprocess还提供了一些管理标准流(

Python学习(13)函数

目录 Python 函数 函数调用 匿名函数 return语句 变量作用域 Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数. 定义一个函数 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间.圆