首先需要将这个数拆成三位数,%10来取最右边第一位数,取一次余数后,就让这个数整除10,接下来继续%10来取第二位的数。
取到一个数后,对这个数用pow函数求立方。
最后将三个单独数字的立方和相加与这个要判断的数比较,相同则为水仙花数。

# -*- coding:cp936 -*-
'''------------------------------------------------------
【程序设计】
---------------------------------------------------------

题目:调用函数fun判断一个三位数是否“水仙花数”。
      在main函数中从键盘输入一个三位数,并输
      出判断结果。请编写fun函数。

说明:所谓“水仙花数”是指一3位数,其各位数字立方和
      等于该数本身。

例如:153是一个水仙花数,因为153=1+125+27。

---------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main和其它函数中的
      任何内容,仅在函数的注释标志之间填入所编写的若干语句。
------------------------------------------------------'''
def fun(i):
    #**********Program**********
    s = 0
    num = i
    for j in range(3):
        s += pow(num%10 ,3)
        num //= 10
    if i == s:
        return 1
    else:
        return 0
    #**********  End  **********

def main():
    print("【请连续判断四次输入的三位数是否为水仙花数:】")
    for n in range(4):
        print("【第%d次:】" %(n+1))
        a = int(input("【请输入一个三位数,并按回车确认:】"))
        flag=fun(a);
        if flag:
            print("%d是【水仙花数】" %a);
        else:
            print("%d不是【水仙花数】" %a);

if __name__ == '__main__':
    main()