小白教程

 找回密码
 立即注册
查看: 6168|回复: 3

[已解决]想求最大值,为什么运行结果老是零啊?

[复制链接]

1

主题

3

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2021-3-25 14:27:35 | 显示全部楼层 |阅读模式
  1. def compare(x,y):
  2.     return x if x > y else y
  3. def max_value(*list_data):
  4.     value = list_data[0]
  5.     for x in range(1,len(list_data)):
  6.         value = compare(list_data[x],value)
  7. value = 0
  8. max_value(42323,457,4245,6,3,5463,6,7,45,725,723,7,3,46,86,7,56,8,567,5,5745,26,34,63,412,35,4,76585,67,3,45,4,5,34,5,47,5686)
  9. print(value)
复制代码


最佳答案
2021-4-27 10:47:03
你没有搞清楚全局变量 和 局部变量的区别。
函数内容加一个return 返回值就可以。
  1. def compare(x, y):
  2.     return x if x > y else y


  3. def max_value(*list_data):
  4.     value = list_data[0]
  5.     for x in range(1, len(list_data)):
  6.         value = compare(list_data[x], value)
  7.     return value

  8. value = max_value(42323,457,4245,6,3,5463,6,7,45,725,723,7,3,46,86,7,56,8,567,5,5745,26,34,63,412,35,4,76585,67,3,45,4,5,34,5,47,5686)
  9. print(value)
复制代码
回复

使用道具 举报

0

主题

3

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2021-4-6 21:44:25 | 显示全部楼层
  1. def compare(x,y):
  2.     return x if x > y else y
  3. def max_value(*list_data):
  4.     global value
  5.     value = list_data[0]
  6.     for x in range(1,len(list_data)):
  7.         value = compare(list_data[x],value)
  8. value = 0
  9. max_value(42323,457,4245,6,3,5463,6,7,45,725,723,7,3,46,86,7,56,8,567,5,5745,26,34,63,412,35,4,76585,67,3,45,4,5,34,5,47,5686)
  10. print(value)
复制代码
因为函数内部的局部值掩盖了函数外部的全局值
回复

使用道具 举报

1

主题

5

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2021-4-17 16:18:20 | 显示全部楼层
  1. def compare(x,y):
  2.     return x if x > y else y
  3. def max_value(*list_data):
  4.     value = list_data[0]
  5.     for x in range(1,len(list_data)):
  6.         value = compare(list_data[x],value)
  7.     return value
  8. value = max_value(42323,457,4245,6,3,5463,6,7,45,725,723,7,3,46,86,7,56,8,567,5,5745,26,34,63,412,35,4,76585,67,3,45,4,5,34,5,47,5686)
  9. print(value)
复制代码
回复

使用道具 举报

0

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2021-4-27 10:47:03 | 显示全部楼层 &
你没有搞清楚全局变量 和 局部变量的区别。
函数内容加一个return 返回值就可以。
  1. def compare(x, y):
  2.     return x if x > y else y


  3. def max_value(*list_data):
  4.     value = list_data[0]
  5.     for x in range(1, len(list_data)):
  6.         value = compare(list_data[x], value)
  7.     return value

  8. value = max_value(42323,457,4245,6,3,5463,6,7,45,725,723,7,3,46,86,7,56,8,567,5,5745,26,34,63,412,35,4,76585,67,3,45,4,5,34,5,47,5686)
  9. print(value)
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )

GMT+8, 2024-11-24 16:22 , Processed in 0.054726 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表