Python语言基础与应用-北京大学-陈斌-P32-31-计算和控制流-上机练习:创建并调用函数-水仙花数判定-上机代码

本文介绍了如何在Python中实现水仙花数(阿姆斯特朗数)的判断和查找功能,包括自定义函数如`self_times`、`is_sxh_number`和`sxh_list`,以及通过用户输入进行实际操作的示例。
摘要由CSDN通过智能技术生成

Python语言基础与应用-北京大学-陈斌-P32-31-计算和控制流-上机练习:创建并调用函数-水仙花数判定-上机代码

本文环境: win7 + Thonny3.2.6

# 水仙花数-阿姆斯特朗数(Armstrong number)训练
def self_times(number,user_number_len): # 自定义一个自己乘自己的函数
    i = 1
    self_times_result = number
    
    while i < user_number_len:
        self_times_result = self_times_result * number
        i += 1
     
    return self_times_result
    
def is_sxh_number(user_number): # 自定义一个判断是否是水仙花数的函数
    user_number_len = len(user_number)
    i = 0 # 自定义 i 用来遍历用户输入的数字
    total_result = 0 # 自定义一个变量 total_result 接收整个程序运行的结果
    
    while i < user_number_len:
        temp = int(user_number[i]) # 用下标法取出用户输入的每个数值并转换为数值型
        total_result = total_result + self_times(temp,user_number_len)
        i += 1
        
    if total_result == int(user_number):
        print("%s是水仙花数。" % user_number)
        return True
    else:
        return False

def sxh_list(max): # 自定义一个把水仙花数装入数组的函数
    i = 100
    result_list = []
    while i <= int(max):
        if is_sxh_number(str(i)):
            result_list.append(i)
        i += 1
    return result_list

while True: #
    user_number = input("请输入一个大于100的数,程序会判断它是否是水仙花数:")
    is_sxh_number(user_number)
    
    user_max_number = input("请输入最大值max >= 1000,程序将输出100到max之间的水仙花数:")
    print(sxh_list(user_max_number))

结果:

Python 3.7.6 (bundled)
>>> %Run sxh_number.py
请输入一个大于100的数,程序会判断它是否是水仙花数:153
153是水仙花数。
请输入最大值max >= 1000,程序将输出100到max之间的水仙花数:99999
153是水仙花数。
370是水仙花数。
371是水仙花数。
407是水仙花数。
1634是水仙花数。
8208是水仙花数。
9474是水仙花数。
54748是水仙花数。
92727是水仙花数。
93084是水仙花数。
[153, 370, 371, 407, 1634, 8208, 9474, 54748, 92727, 93084]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qslife

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值