python快速入门

本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/16413904.html



基础知识#

python是一门脚本语言,它是解释执行的。

python使用缩进做为语法,而且python2环境下同一个py文件中不能同时存在tab和空格缩进,否则会出错,建议在IDE中显示缩进符。

文件A和文件B在文件头不能相互import,因为会导致循环导入,但可以在function中来导入对方

python在声明变量时不写数据类型,可以type(xx)来获取字段的类型,然后可以int(),list()等进行类型强转

条件判断是If和elif,后面加冒号:可以不写()

没有++和--,有+=和-=

说明:本文没有特殊说明的都是指在python2环境下


列表和字典#

如果tuple中只有一个元素需要这样写:(1,),直接写(1)会被当成int

列表排序:sorted(list, key = lambda x: x.id),注意sorted排序是不返回内容的,而是会修改原list。如果要自定义排序使用cmp,示例:self.disData.sort(cmp = self.contentCmp)

遍历列表#

在遍历列表时,即有类似于C#中的foreach也有for,例子如下:

Copy
for index,data in enumerate(list): pass for data in list: pass

遍历字典#

Copy
for k, v in dict.iteritems(): print k, v

dict的几种高级用法#

在构建字典时,如果value是list,一般我们是这样写的

Copy
d = {} for key, value in pairs: if key not in d: d[key] = [] d[key].append(value)

如果使用setdefault,会让代码看起来更简洁一些

Copy
d = {} for key, value in pairs: d.setdefault(key, []).append(value)

有序字典:在C#和python中dict都是无序的,可以使用OrderedDict来保证元素的顺序,from collections import OrderedDict,其它用法和dict一致

列表解包#

对于一个列表,可以直接解包,如果不需要的元素,可以使用_来显示,比如

Copy
list1 = [1,10,100,50,30] a,b,c,_=list1 # 这样就提取了list1中的前三个元素 #用在参数传参数时,可以在list前加*来解包参数 def test(lv,atk): pass list2=[1,888] test(*list2)

调试和打印#

python对象是可以直接打印出来,而对于又封装了一层或者打印出来是 object at 0x00000282C2D4F858>的,可以通过obj.__dict__来打印详细数据。

因为python中任何都是对象,除了少除自定义对象都是有__dict__的

使用dir(obj)打印一个对象的所有方法

inspect#

inspect用来打印函数调用堆栈,它还有其它的用途,具体可查看:

Python 标准库 inspect 检查对象 | Python 教程 - 盖若 (gairuo.com)


dict,list,tuple判空#

对于一个dict,如果没有数据(dictxx={})但它不是None,可通过if xx 来判断,同理list也是可以这样来判断。在python中无数据和None是个东西,是不等价的。

示例:

Copy
tuple1 = () if not tuple1: print ("空元组") dict1= {} if not dict1: print ("空字典") list1 = [1,"a"] print list1

函数或属性判空#

通过:hasattr(对象,"名字")来判断:

  1. 类是否有某个函数
  2. 对象是否有某个属性

脚本语言这点和强类型语言是不一样,在写代码时IDE不会帮你检查这种错误。

__str____repr__#

这两个函数都可理解为C#中的tostring,

当在命令行中调用obj时,会调用__repr__来打印,

工具函数#

filter(过滤函数,列表)

zip()将多个list打包一个包含多个tuple的列表,以最短的list为准,取相同位置的元素出来放到tuple中

面向对象#

python是可以多继承的,如果查找同名函数是优先从左往右查找MRO(Method Resolution Order),在B站上有个视频讲的很详细:https://www.bilibili.com/video/BV1V5411S7dY

装饰器#

可以理解为把方法进行了一层封装,当在调用某个函数时会自动传到装饰器中做检查

装饰器 - Carcar019 - 博客园 (cnblogs.com)

热更新和热重载#

python原生支持热重载(reload),运行期间不重启来达到重加载脚本

作者:赵青青   一名在【网易游戏】做游戏开发的程序员,擅长Unity3D,游戏开发,.NET等领域。
本文版权归作者和博客园共有,欢迎转载,转载之后请务必在文章明显位置标出原文链接和作者,谢谢。
如果本文对您有帮助,请点击【推荐】您的赞赏将鼓励我继续创作!想跟我一起进步么?那就【关注】我吧。
posted @   赵青青  阅读(481)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 易语言 —— 开山篇
· Trae初体验
CONTENTS
点击右上角即可分享
微信分享提示