Python的变量的本质
2016-04-16 22:37
549 查看
以下代码是求函数f = -(x-5)^2 - (y-5)^2 + 10取得最大值的解,看似没有问题,但是却给出了错误答案x=10,y=10。 显然答案应该是x=5,y=5。 其实问题的关键在于Python中的变量都是动态类型的引用,语句 bestxy=newxy其实bestxy指向了newxy,而不是拷贝了newxy的成员,这与C++中类的赋值构造函数不同。也就是说Python的变量一定不能看成是一个盒子(C语言的同学更要注意:))。
#!/usr/bin/python #coding:utf8 bestv = -1 bestxy = [0,0] newxy = [0,0] for x in range(11): for y in range(11): f = -(x-5)**2 -(y-5)**2 + 10 newxy[0] = x newxy[1] = y if f > bestv: bestv = f bestxy = newxy print ('%s : %s' % (bestxy, bestv))
相关文章推荐
- 【python小练】0013
- python连接数据库操作MySQL
- Python回顾与整理10:模块
- python-MySQL学习笔记-第六章-Connector/Python连接池(Connection Pooling)
- python-MySQL学习笔记-第五章-利用Connector/Python来修改数据库
- python-MySQL学习笔记-第四章-利用Connector/Python来查询数据
- 【Python】统计个人新浪微博词频并给出相应的柱状图
- 【python技巧系列】python的multiprocessing到底怎么用的问题
- 二、Python 进阶 之 模块
- Python爬虫小试身手
- introduction to python for statistics,analysis笔记2
- python学习:list&tuple
- 在知乎上看到一个关于Python资源的很不错的主题,可惜点赞不过400多
- Python学习 1 一 Python2.75的安装及环境配置教程
- 用Python做科学计算
- 基于 Python Matplotlib 模块的高质量图形输出
- python pil grab screen
- python函数可以操纵外面的元素和列表吗?
- 利用Python爬虫,抓取淘宝MM照片
- python center, ljust, rjust