Python基础之变量基本用法与进阶详解
Python  /  管理员 发布于 7年前   217
本文实例讲述了Python基础之变量基本用法与进阶。分享给大家供大家参考,具体如下:
在 Python 中
注意:如果变量已经被定义,当给一个变量赋值的时候,本质上是 修改了数据的引用
在 Python 中,变量的名字类似于 便签纸 贴在 数据 上
在 Python 中,函数的 实参/返回值 都是是靠 引用 来传递来的
def test(num): print("-" * 50) print("%d 在函数内的内存地址是 %x" % (num, id(num))) result = 100 print("返回值 %d 在内存中的地址是 %x" % (result, id(result))) print("-" * 50) return resulta = 10print("调用函数前 内存地址是 %x" % id(a))r = test(a)print("调用函数后 实参内存地址是 %x" % id(a))print("调用函数后 返回值内存地址是 %x" % id(r))
a = 1a = "hello"a = [1, 2, 3]a = [3, 2, 1]
demo_list = [1, 2, 3]print("定义列表后的内存地址 %d" % id(demo_list))demo_list.append(999)demo_list.pop(0)demo_list.remove(2)demo_list[0] = 10print("修改数据后的内存地址 %d" % id(demo_list))demo_dict = {"name": "小明"}print("定义字典后的内存地址 %d" % id(demo_dict))demo_dict["age"] = 18demo_dict.pop("name")demo_dict["name"] = "老王"print("修改数据后的内存地址 %d" % id(demo_dict))
注意:字典的 key 只能使用不可变类型的数据
注意
哈希 (hash)
提示:在其他的开发语言中,大多 不推荐使用全局变量 ―― 可变范围太大,导致程序不好维护!
局部变量的作用
def demo1(): num = 10 print(num) num = 20 print("修改后 %d" % num)def demo2(): num = 100 print(num)demo1()demo2()print("over")
局部变量的生命周期
# 定义一个全局变量num = 10def demo1(): print(num)def demo2(): print(num)demo1()demo2()print("over")
注意:函数执行时,需要处理变量时 会:
1) 函数不能直接修改 全局变量的引用
提示:在其他的开发语言中,大多 不推荐使用全局变量 ―― 可变范围太大,导致程序不好维护!
num = 10def demo1(): print("demo1" + "-" * 50) # 只是定义了一个局部变量,不会修改到全局变量,只是变量名相同而已 num = 100 print(num)def demo2(): print("demo2" + "-" * 50) print(num)demo1()demo2()print("over")
注意:只是在函数内部定义了一个局部变量而已,只是变量名相同 ―― 在函数内部不能直接修改全局变量的值
2) 在函数内部修改全局变量的值
num = 10def demo1(): print("demo1" + "-" * 50) # global 关键字,告诉 Python 解释器 num 是一个全局变量 global num # 只是定义了一个局部变量,不会修改到全局变量,只是变量名相同而已 num = 100 print(num)def demo2(): print("demo2" + "-" * 50) print(num)demo1()demo2()print("over")
3) 全局变量定义的位置
a = 10def demo(): print("%d" % a) print("%d" % b) print("%d" % c)b = 20demo()c = 30
注意
代码结构示意图如下
4) 全局变量命名的建议
提示:具体的要求格式,各公司要求可能会有些差异
关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号