首页 > 编程语言 > 详细

Python【每日一问】24

时间:2019-05-17 14:23:13      阅读:140      评论:0      收藏:0      [点我收藏+]

问:

【基础题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__ 等于文件名(包含了后缀.py);
(2)当作为 module 被 import 到其他 python 文件时,则 __name__ 等于模块名称(不包含后缀.py),

无论哪种情况, “__main__” 的值均为当前执行文件的名称(包含了后缀.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

原文:https://www.cnblogs.com/ElegantSmile/p/10855189.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!