问:

【基础题1】: 请解释一下 if __name__ == '__main__' :的作用

【基础题2】:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

PS:

Monday        周一
Tuesday 周二
Wednesday 周三
Thursday 周四
Friday 周五
Saturday 周六
Sunday 周日

【提高题】:打印出所有的“水仙花数”

PS:所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如: 153 是一个“水仙花数” ,因为 153=1 的三次方+5 的三次方+3 的三次方

答:

【基础题1】: 请解释一下 if __name__ == '__main__' :的作用

一个python文件有两种使用情况:

(1)直接作为脚本执行
(2)作为module被 import 到其他的 python 脚本中调用执行 if __name__ == 'main': 的作用:当.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行;当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。

if __name__ == '__main__' :起作用的原理:

每个 python 模块都包含内置的变量 __name__,
(1)当 python 模块被直接执行时,__name__ 等于"__main__";
(2)当作为 module 被 import 到其他 python 文件时,则 __name__ 等于模块名称(不包含后缀.py),

因此:
(1)当模块被直接执行时,__name__ == 'main'返回结果为 True
(2)当作为 module 被 import 时,__name__ == 'main'返回结果为 False

【基础题2】:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

方法1:

letter = input("please input:")

if letter == "S":
letter = input("please input second letter:")
if letter == "a":
print("Saturday")
elif letter == "u":
print("Sunday")
else:
print("data error") elif letter == "F":
print("Friday")
elif letter == "M":
print("Monday")
elif letter == "T":
letter = input("please input second letter:")
if letter == "u":
print("Tuesday")
elif letter == "h":
print("Thursday")
else:
print("data error")
elif letter == "W":
print("Wednesday")
else:
print("data error")

方法2:

str = input("请输入第一个字符:\n")

if str is "m" or str is "M":
print("Monday")
elif str is "t" or str is "T":
str1 = input("请输入第二个字符:\n")
if str1 is "u" or str is "U":
print("Tuesday")
elif str1 is "h" or str is "H":
print("Thursday")
elif str is "w" or str is "W":
print("Wednesday")
elif str is "f" or str is "F":
print("Friday")
elif str is "s" or str is "S":
str2 = input("请输入第二个字符:\n")
if str2 is "a" or str is "A":
print("Saturday")
elif str2 is "u" or str is "U":
print("Sunday")

【提高题】:打印出所有的“水仙花数”

PS:所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如: 153 是一个“水仙花数” ,因为 153=1 的三次方+5 的三次方+3 的三次方

方法1:

def PPDI():
for i in range(100,1000):
if i == (i // 100)**3 + (i % 100 // 10)**3 + (i% 100 %10)**3:
print(i) PPDI()

方法2:

for firstNumber in range(1, 10):
for secondNumber in range(10):
for thirdNumber in range(10):
number = firstNumber*100 + secondNumber*10 + thirdNumber
if firstNumber**3 + secondNumber**3 + thirdNumber**3 == number:
print(number)

方法3:

for i in range(100, 1000):
a = int(str(i)[0])
b = int(str(i)[1])
c = int(str(i)[2])
if a ** 3 + b ** 3 + c ** 3 == i:
print(i)

方法4:

def waters():
for i in range(100, 1000):
num = i
result = []
while i > 0:
result.append((i % 10) ** 3)
i = i // 10 if num == sum(result):
print(num, end=" ") if __name__ == "__main__":
waters()

输出结果:

153
370
371
407

Python【每日一问】24的更多相关文章

  1. [python每日一练]--0012:敏感词过滤 type2

    题目链接:https://github.com/Show-Me-the-Code/show-me-the-code代码github链接:https://github.com/wjsaya/python ...

  2. Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词

    #coding:utf-8 import os,re path = 'test' files = os.listdir(path) def count_word(words): dic = {} ma ...

  3. python每日一函数 - divmod数字处理函数

    python每日一函数 - divmod数字处理函数 divmod(a,b)函数 中文说明: divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数 返回结果类型为tuple 参数: ...

  4. python socket.error: [Errno 24] Too many open files

    以openwrt AR9331开发板为例,socket连接到1019个就报错 “python socket.error: [Errno 24] Too many open files” 1.查看开发板 ...

  5. 每日一问:Android 消息机制,我有必要再讲一次!

    坚持原创日更,短平快的 Android 进阶系列,敬请直接在微信公众号搜索:nanchen,直接关注并设为星标,精彩不容错过. 我 17 年的 面试系列,曾写过一篇名为:Android 面试(五):探 ...

  6. 每日一问:谈谈 volatile 关键字

    这是 wanAndroid 每日一问中的一道题,下面我们来尝试解答一下. 讲讲并发专题 volatile,synchronize,CAS,happens before, lost wake up 为了 ...

  7. 每日一问:讲讲 Java 虚拟机的垃圾回收

    昨天我们用比较精简的文字讲了 Java 虚拟机结构,没看过的可以直接从这里查看: 每日一问:你了解 Java 虚拟机结构么? 今天我们必须来看看 Java 虚拟机的垃圾回收算法是怎样的.不过在开始之前 ...

  8. 每日一问:你了解 Java 虚拟机结构么?

    对于从事 C/C++ 程序员开发的小伙伴来说,在内存管理领域非常头疼,因为他们总是需要对每一个 new 操作去写配对的 delete/free 代码.而对于我们 Android 乃至 Java 程序员 ...

  9. 每日一问:LayoutParams 你知道多少?

    前面的文章中着重讲解了 View 的测量流程.其中我提到了一句非常重要的话:View 的测量匡高是由父控件的 MeasureSpec 和 View 自身的 `LayoutParams 共同决定的.我们 ...

  10. 每日一问:简述 View 的绘制流程

    Android 开发中经常需要用一些自定义 View 去满足产品和设计的脑洞,所以 View 的绘制流程至关重要.网上目前有非常多这方面的资料,但最好的方式还是直接跟着源码进行解读,每日一问系列一直追 ...

随机推荐

  1. 03 .NET CORE 2.2 使用OCELOT -- Docker中的Consul

    部署consul-docker镜像 先搜索consul的docker镜像 docker search consul 然后选择了第一个,也就是官方镜像 下载镜像 docker pull consul 然 ...

  2. python 进程和线程-进程和线程的比较以及分布式进程

    进程和线程的比较 参考链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017631469467456 我们介绍了多进程和多线程,这是实现多任 ...

  3. 基于NPOI对Excel进行简单的操作

    1. 关于NPOI NPOI是一个开源的用于在C#程序中读写Excel.WORD等微软OLE2组件文档的项目,使用NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作. 2 ...

  4. 设计模式之(十三)外观模式(Facade)

    外观模式思想 历史上牛人中成功逆袭,实现人生辉煌的人很多,这群人最耀眼的无疑是明太祖朱元璋,从一个放牛讨饭的最低层小屌丝逆袭到人类权力顶峰开国皇帝,确实是我等膜拜的对象.在发不断的发展过程中,其实就在 ...

  5. File "tesserocr.pyx", line 2443, in tesserocr._tesserocr.image_to_text RuntimeError: Failed to in...

    将Tesseract-OCR安装目录下的tessdata文件夹复制到Python解释器目录下就可以了

  6. uni-app采坑记录

    1. uni-app采坑记录 1.1. 前言 这里记录下uni-app实践中踩的坑 1.2. 坑点 1.2.1. 触发事件@longTap和@longpress 这两个都表示长按触发事件,那么这两个有 ...

  7. XSS漏洞初窥(通过dvwa平台进测试)

    xss的全称是:Cross Site Script,中文名叫“跨站脚本攻击”,因为和CSS重名,所以改名XSS.作为一个网站是肯定要和用户有交互的,那么肯定就伴随着信息的输入输出,而利用xss就是通过 ...

  8. 尝试在Mac/iOS上使用tcmalloc库

    概述        TCMalloc 是 Google 开发的内存分配器,在不少项目中都有使用,例如在 Golang 中就使用了类似的算法进行内存分配.它具有现代化内存分配器的基本特征:对抗内存碎片. ...

  9. 【转】面试题:实现一个队列,这个队列除了有EnQueue, DeQueue操作,还有一个Max操作,三个操作复杂度都是O(1)

    1.每次  新元素进栈的时候,栈里面的元素需要排序 2.让最小的或者最大的元素位于栈顶,这样就可以在O(1)时间内获得最小或者最大的值了, ------ 3.上面的想法  不能保证,进栈(进了队列)之 ...

  10. js 字符串 有没有 像C# @ 那种 换行也可以显示的方法 \