首页上一页 1  下一页尾页 9 条记录 1/1页
        自定义函数中调用Python内置的sum函数时报错
                 	
                        发表在Python图书答疑
                        2021-09-16                                                
                    		
                            《Python从入门到项目实践》第11章 用函数实现模块化程序设计                                                	
                        
                        
                    
                    
                    	是否精华
                    	是
                    	否
                    
                    
                    
                            版块置顶:
                            是
                            否
                        
                    
                        设置时间:
                        非永久
                        永久            
                    
                    
                           起始时间:
                           结束时间:
                        
                    
                        是否扣分:
                        是
                        否
                    
                    
                    
                    
                def mean(*args): s = sum(args) return s / len(args) #--- d = [1,2,3,4] m = mean(d)

精彩评论 9
            2021-09-16
                   
                   
                   
                            
                            板凳
                        
   
                   Python的语言格式非常严格,你就是语言格式出错了。变量s前的空格要么是一个Tab键,要么是4个空格键。
还有不能把数组当参数传给函数,只能把数组元素当参数传给函数,你完全就是前者。
修改后的代码:
# 开发人员:公输政
def mean(*args):
    for i in range(len(args)):  # 执行for循环
        s = sum(args[i])  # 数组元素当做参数
    print(s)    # 打印变量s
d = (1, 2, 3, 4)    # 定义数组d
print('数组长度为:')
print(len(d))
print('\n')
print('数组元素的和为:')
mean(d)  # 调用mean函数运行结果:
2021-09-16
                   
                   
                   
                        5L
                    
   
                   mean函数是求均值.
正确代码是这样的:
def mean(*args): s = sum(*args) return s / len(*args) #--- d = [1,2,3,4] m = mean(d) print(m)
在mean函数中,args把参数放入到一个元组中,形如: ([1, 2, 3, 4],)
当调用sum(args)时就会报错 不支持 int+list的运算.
args把参数放入到一个元组中, 这个操作形参了二级指针, 用C++中的写法,加个 * 间接寻址运算符,直接读取原始数据.
测试:
def mean(*args): print(args) #([1, 2, 3, 4],) print(*args) # [1, 2, 3, 4] print(len(args)) # 1 print(len(*args)) # 4 s = sum(*args) return s / len(*args)
2021-09-16
                   
                   
                   
                        7L
                    
   
                   公输政 发表于2021-09-16 14:55
Python的语言格式非常严格,你就是语言格式出错了。变量s前的空格要么是一个Tab键,要么是4个空格键。
还有不能把数组当参数传给函数,只能把数组元素当参数传给函数,你完全就是前者。
修改后的代码:
# 开发人员:公输政
def mean(*args):
    for i in range(len(args)):  # 执行for循环
        s = sum(args[i])  # 数组元素当做参数
    print(s)    # 打印变量s
d = (1, 2, 3, 4)    # 定义数组d
print('数组长度为:')
print(len(d))
print('\n')
print('数组元素的和为:')
mean(d)  # 调用mean函数运行结果:
Python中一切都是对象
函数可以接收任何形式的数据类型包括数组.

 
	
                                                 VIP会员
VIP会员 购物车
购物车


 私信
                         私信 
                     发表新帖
发表新帖 立即签到
立即签到 
        		  
        		 
         		 关注
关注
                  回复
 回复 支持(
                	支持( 反对(
                    反对(



 
                







 
                     
                     
					 
						 
						 
						 
						