Python【每日一问】24
问:
【基础题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的更多相关文章
- [python每日一练]--0012:敏感词过滤 type2
题目链接:https://github.com/Show-Me-the-Code/show-me-the-code代码github链接:https://github.com/wjsaya/python ...
- Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词
#coding:utf-8 import os,re path = 'test' files = os.listdir(path) def count_word(words): dic = {} ma ...
- python每日一函数 - divmod数字处理函数
python每日一函数 - divmod数字处理函数 divmod(a,b)函数 中文说明: divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数 返回结果类型为tuple 参数: ...
- python socket.error: [Errno 24] Too many open files
以openwrt AR9331开发板为例,socket连接到1019个就报错 “python socket.error: [Errno 24] Too many open files” 1.查看开发板 ...
- 每日一问:Android 消息机制,我有必要再讲一次!
坚持原创日更,短平快的 Android 进阶系列,敬请直接在微信公众号搜索:nanchen,直接关注并设为星标,精彩不容错过. 我 17 年的 面试系列,曾写过一篇名为:Android 面试(五):探 ...
- 每日一问:谈谈 volatile 关键字
这是 wanAndroid 每日一问中的一道题,下面我们来尝试解答一下. 讲讲并发专题 volatile,synchronize,CAS,happens before, lost wake up 为了 ...
- 每日一问:讲讲 Java 虚拟机的垃圾回收
昨天我们用比较精简的文字讲了 Java 虚拟机结构,没看过的可以直接从这里查看: 每日一问:你了解 Java 虚拟机结构么? 今天我们必须来看看 Java 虚拟机的垃圾回收算法是怎样的.不过在开始之前 ...
- 每日一问:你了解 Java 虚拟机结构么?
对于从事 C/C++ 程序员开发的小伙伴来说,在内存管理领域非常头疼,因为他们总是需要对每一个 new 操作去写配对的 delete/free 代码.而对于我们 Android 乃至 Java 程序员 ...
- 每日一问:LayoutParams 你知道多少?
前面的文章中着重讲解了 View 的测量流程.其中我提到了一句非常重要的话:View 的测量匡高是由父控件的 MeasureSpec 和 View 自身的 `LayoutParams 共同决定的.我们 ...
- 每日一问:简述 View 的绘制流程
Android 开发中经常需要用一些自定义 View 去满足产品和设计的脑洞,所以 View 的绘制流程至关重要.网上目前有非常多这方面的资料,但最好的方式还是直接跟着源码进行解读,每日一问系列一直追 ...
随机推荐
- 记录一次OracleJDK开发的项目发部到Linux中使用OpenJDK启动后失败的错误的解决方案
一.现象 基于JAVA SpringBoot2.0.4的项目,发部后项目发部后,放到OpenJDK环境中运行时,提示下列错误: 2019-10-22 10:03:55 [main] WARN o.s ...
- Mybatis连接MySQL时,可以使用的JDBC连接字符串参数
一.举例 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test_db?useAffectedRows=true&allowMultiQu ...
- vue + yarn 创建项目
前期准备工作node,npm,vue,yarn等环境要准备好 1.命令行vue init webpack myproject 2.使用vs code打开项目文件夹, vs终端运行一下yarn 3.添加 ...
- 一、Hadoop入门概述
一.Hadoop是什么 Hadoop是一个由Apche基金会所开发的分布式系统基础架构. 主要解决海量数据的存储和海量数据的分析计算问题. 广义上来说,Hadoop通常是指一个更广泛的概念—Hadoo ...
- Candies POJ - 3159
题目链接:https://vjudge.net/problem/POJ-3159 思路: 能看出是差分约束的题, 我们想假设一个人是 p(1),另一个人是p(2),他们之间糖果差为w, 那么需要满足的 ...
- docker学习11-上传本地镜像到镜像仓库
前言 在本地自己制作用过镜像后,上传到镜像仓库,这样方便在不同的机器上快速搭建同一套环境. 如果公开的话,别人也可以用你的镜像快速搭建环境,类似于 GitHub 本地代码上传到代码仓库,再从仓库拉取代 ...
- 201871010110 - 李华 《面向对象程序设计(java)》第二周学习总结
第一部分:理论知识学习部分 一.简单的Java程序应运程序 1.标识符0标识符由字母.下划线.美元符号和数字组成,且第一个符号不能为数字. 标识符可用作:类名.对象名.变量名.方法名.数组名.文件 ...
- destoon搜索伪静态失败解决办法
今天给一个朋友调试DT6.0内核的站点,搜索中文出现http 403 forbidden,找了半天,很纳闷,最后一个一个查看源代码总算找到,在此分享给大家! 解决的方法: 1.找到include/sa ...
- idea每次新建项目的默认路径
idea每次新建项目的默认路径 每次新建项目的默认路径是上一次新建项目所在的文件夹.第一次需要手动切换.
- macos -bash: yarn: command not found/-bash: cnpm: command not found
-bash: cnpm: command not found-bash: yarn: command not found-bash: xxxx: command not found如上yarn/cnp ...