关于#python#的问题,请各位专家解答!

img


一道Python的定义函数的习题,不是很会做,请大家帮忙看看,谢谢

def flower(n):
    """
    判断一个数是否为水仙花数
    """
    # 将数字 n 转为字符串,以便计算位数
    num_str = str(n)
    # 获取数字 n 的位数
    num_len = len(num_str)
    # 初始化总和为 0
    total = 0
    # 遍历每一位数字
    for digit_str in num_str:
        # 将数字字符串转为整数
        digit = int(digit_str)
        # 将每一位数字的 num_len 次方累加到总和中
        total += digit ** num_len
    # 判断总和是否等于原数字 n
    if total == n:
        return True
    else:
        return False


# 主程序,输出1000以内的水仙花数
print("1000以内的水仙花数:")
for n in range(1000):
    if flower(n):
        print(n)


def flower(num):
    """判断是否为水仙花数"""
    num_list = [int(i) ** 3 for i in str(num)]
    if sum(num_list) == num:
        return True
    return False


flower_num = 0
for i in range(100, 1000):
    if flower(i):
        flower_num += 1

print("水仙花数有%d个" % flower_num)

有帮助的话,请点采纳该答案~

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7559265
  • 这篇博客也不错, 你可以看下最新!使用Python爬取蓝奏云文件下载直链并下载,支持批量爬取,已封装为函数,可直接使用(含注释、库的使用解释)
  • 你还可以看下python参考手册中的 python- 定义扩展类型:已分类主题- 终结和内存释放
  • 除此之外, 这篇博客: Python函数(函数定义、函数调用)用法详解中的 Python函数(函数定义、函数调用)用法详解 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • Python 中函数的应用非常广泛,前面章节中我们已经接触过多个函数,比如 input() 、print()、range()、len() 函数等等,这些都是 Python 的内置函数,可以直接使用。

    除了可以直接使用的内置函数外,Python 还支持自定义函数,即将一段有规律的、可重复使用的代码定义成函数,从而达到一次编写、多次调用的目的。

    举个例子,前面学习了 len() 函数,通过它我们可以直接获得一个字符串的长度。我们不妨设想一下,如果没有 len() 函数,要想获取一个字符串的长度,该如何实现呢?请看下面的代码:

    n=0
    for c in "http://c.biancheng.net/python/":   
    	n = n + 1
    	print(n)
    

    程序执行结果为:

    30
    

    要知道,获取一个字符串长度是常用的功能,一个程序中就可能用到很多次,如果每次都写这样一段重复的代码,不但费时费力、容易出错,而且交给别人时也很麻烦。

    所以 Python 提供了一个功能,即允许我们将常用的代码以固定的格式封装(包装)成一个独立的模块,只要知道这个模块的名字就可以重复使用它,这个模块就叫做函数(Function)。

    比如,在程序中定义了一段代码,这段代码用于实现一个特定的功能。问题来了,如果下次需要实现同样的功能,难道要把前面定义的代码复制一次?如果这样做实在太傻了,这意味着每次当程序需要实现该功能时,都要将前面定义的代码复制一次。正确的做法是,将实现特定功能的代码定义成一个函数,每次当程序需要实现该功能时,只要执行(调用)该函数即可。

    其实,函数的本质就是一段有特定功能、可以重复使用的代码,这段代码已经被提前编写好了,并且为其起一个“好听”的名字。在后续编写程序过程中,如果需要同样的功能,直接通过起好的名字就可以调用这段代码。

    下面演示了如何将我们自己实现的 len() 函数封装成一个函数:

    #自定义 len() 函数
    def my_len(str):    
    	length = 0    
    	for c in str:      
        	length = length + 1  
         return length
    #调用自定义的 my_len() 函数
    length = my_len("http://c.biancheng.net/python/")
    print(length)
    
    #再次调用 my_len() 函数
    length = my_len("http://c.biancheng.net/shell/")
    print(length)
    

    程序执行结果为:

    30
    29
    

    如果读者接触过其他编程语言中的函数,以上对于函数的描述,肯定不会陌生。但需要注意的一点是,和其他编程语言中函数相同的是,Python 函数支持接收多个( ≥0 )参数,不同之处在于,Python 函数还支持返回多个( ≥0 )值。

    比如,上面程序中,我们自己封装的 my_len(str) 函数,在定义此函数时,我们为其设置了 1 个 str 参数,同时该函数经过内部处理,会返回给我们 1 个 length 值。

    通过分析 my_len() 函数这个实例不难看出,函数的使用大致分为 2 步,分别是定义函数和调用函数。接下来一一为读者进行详细的讲解。

  • 您还可以看一下 jeevan老师的Python量化交易,大操手量化投资系列课程之内功修炼篇课程中的 讲师简介,量化交易介绍及自动化交易演示小节, 巩固相关知识点