问:
【基础题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("请输入第一个字符: ") if str is "m" or str is "M": print("Monday") elif str is "t" or str is "T": str1 = input("请输入第二个字符: ") 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("请输入第二个字符: ") 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