为什么80%的码农都做不了架构师?>>>   

序列解包

      将含有多个值的序列解开,然后把值存放到变量中,当函数或者方法返回元组时这个特性很有用,可以把返回的序列值直接赋值给变量,在序列解包时等号两边的元素个数必须一致,否则会引发异常
链式赋值
      就是将同一个值赋值给多个变量的捷径。x=y=value
增量赋值
      x=x+1   x+=1
语句块缩进
     块中的每行都因该有相同的缩进量,一条语句后的冒号标志着语句块的开始
布尔值
     假:False、None、0、“”、()、[]、{} 都会被当作假,而其余的则为真
断言
     assert 它确保程序中的某个条件一定为真才能执行。
while 在条件为真时持续执行,直到条件为假
for 可以为一个集合中的每一个元素执行代码块,for循环字典时可以使用序列解包 , 能用for就不用while
range()函数在迭代数字范围时很常用,range类似于分片,包含下限元素,但不包含上限元素,range返回一个元组,xrange类似于range,不过range一次返回一个元组,而xrange一次返回一个数
并行迭代,zip函数可以把两个序列粘合在一起,然后返回一个元组,不过元组中的元素都是以列表形式存在的。自拍是可以粘合不等长的序列的,当最短的序列用完时就停止了。
sorted和reversed和列表的sort、reverse方法一样,不过前者并不会改变真实列表
跳出循环
      break  跳出循环
      continue  结束当前迭代,跳到下一轮迭代
       while true/break
列表推导是用其他列表创建新的列表的一种方法。它的工作方式类似于for循环:
      [x+x for x in range(10)]
pass del exec
      pass 语句什么都不做,它一般用作占位符。比如代码块未完成时可以使用pass
      del 删除一个对象

exec 动态的创造python代码,然后将其作为语句执行

evel evel执行python表达式,并返回结果值

exec和evel都可以设置命名空间

lambda 创建表达式形式的匿名函数,lambda是一个表达式,不是一个语句
lambda args:expression  
args是以逗号分割的参数列表  exp是表达式

map函数会对一个序列对象中的每一个元素应用被传入的函数,并且返回一个包含了所有函数调用结果的一个列表
map和for在遍历时是等效的
map(fun,list)

对字典排序,一般都是按照字典的key进行排序
sort 会改变原始列表
sorted 不会改变原始列表
在用sort sorted进行大小写无关的排序时需要加入key参数,key参数指定按照什么方式排序,一般有str.lower unicode.lower,如果你不知道是普通字符串还是unicode,可以导入string模块,然后设置string.lower

对象通过引用传递的
不支持自增 自减之类的 i++ ++i
多元赋值  右边是元组  ,多元赋值可以实现不需要中间变量 交换两个变量的值
_xxx_  系统定义的名字
_xxx   私有变量
python对象的类型和内存都是在运行时才确定的  当对象被创建时,就创建了一个引用计数
del 删除一个对象的引用
垃圾收集器手机引用计数器为0的对象 然后将该对象销毁 并释放内存
python使用对象模型来存储数据,对象都拥有三个特性:身份、类型、值。身份可以通过内建函数ID()来得到,类型可以通过type()来得到。
所有类型对象的类型都是type。
所有内建类型均支持比较运算,多个比较运算的求值顺序为从左到右。  <> 和 != 都是不等于的意思
is操作符来测试两个变量是否指向同一个对象
int()等看起来像函数,实质上是类,当你调用时他们生成该类的一个实例,所以叫工厂函数。

函数可以后定义 但必须在该函数运行时 调用的相关函数已经声明完成 
在函数体内定义的函数 只能在函数体内部被调用 
装饰器是在函数调用之上的修饰,以@开头,装饰器可以和函数调用一样堆叠起来
可以将函数作为参数来传递,并在函数体内调用这些函数。函数可以有默认参数,但是所有必须的参数都要在默认参数之前,
*和** 支持变长参数,*是元组 表示非关键字参数 **是字典 表示关键字参数,关键字和非关键字参数都可以用在同一个函数中,只要关键字参数是最后一个参数并且非关键字元组先于它之前出现即可。

lambda关键字创造匿名函数,,lambda表达式的定义和声明必须在同一行
filter() 一个过滤函数过滤元素,返回为真的元素被保留,最后返回的对象是一个从原始队列中过滤后的队列
map() 和filter()类似,不过map返回的是所有值的列表
reduce()

函数内部的变量有局部作用域,为了防止局部变量在函数体内把全局变量的值给覆盖掉,可以在函数体内使用global关键字,指明访问的是全局变量

python语法上支持多个函数嵌套级别,可以匹配静态嵌套的作用域。
递归.. 函数包含对自身的调用

生成器是一个带有yield语句的函数,一个生成器能暂停执行并返回一个中间结果,那就是yield语句的功能,返回一个值给调用者并暂停执行,当生成器的NEXT()方法被调用的时候,他会从暂停的地方继续执行。 py2.5中还可以将值送回给生成器,并且在生成器异常时抛出异常,并要求生成器退出。

模块
sys  sys.path 查看加载模块的路径  sys.modules 查看当前加载的模块都是那个路径下的  默认加载第一个碰到的模块

当访问一个属性时,先搜索局部空间-》全局空间-》内建空间  先搜索到的覆盖后面搜索到的
from...import.. 是导入模块的指定属性。import...as...
一个模块无论不导入多少次,只被加载一次,只从模块导入名字的副作用是,这些名字会成为你局部空间的一部分,可能会覆盖你已经存在的同名字对象。

reload()可以重新加载一个已经导入的模块,而这个模块必须是完全导入的,import
sys.modules()包含当前导入的包的名称及位置

文件
文件对象不仅可以用来访问对象,也可以访问其他类型抽象层面上的‘文件’。内建函数open() file()都会返回一个文件对象,对该文件的后续操作都需要用到该文件对象。
open(filename,mode,buffer) filename 文件名称 mode 访问模式 buffer缓存模式

读 read() 全部,返回字符串   readline() 一行,返回字符串 readlines() 全部,返回字符串列表
写 write() writelines()  并没有writeline方法
  在读文件一行 或者写文件一行时 read write  并不会删除或者添加尾部的换行符,需要你手动处理
移动 seek() 可以移动文件指针到文件中不同的位置
文件迭代器  更高效的读取文件  for eachline in fd:
close() 关闭文件

print 语句默认在输出末尾加一个换行符,如果你read一行,然后用print输出,末尾则会有两个换行符,在print输出时,在末尾加上逗号,则可避免添加换行符

标准文件有三个 sys.stdin  sys.stdout  sys.stderr
sys.argv 是命令行参数的列表  sys.argv[0] 是该文件名  没有sys.argc 用len(sys.argv)获得

错误异常
任何在try语句块里的代码都会被检测,检查是否有异常发生。
try组要有try..except和try..finally两种方式,这两种方式是互斥的,一个try语句可以对应多个except,但只能有一个finally
在一个except语句中可以处理多个异常,但这些异常需要放进一个元祖里。
捕获所有异常,使用exception模块
try也可以和else配合,在try中没有异常被检测到的时候,执行else中的代码。
finally字句则是,无论异常是否发生都会被执行的代码
try-except-else-finally

with语句的目的在于从流程图中把try except finally关键字和资源分配释放相关代码统统去掉。
断言 assert,如果

字典
字典是唯一内建的映射类型。
只有对象是可以hash的才可以作为字典的键,因为字典是乱序的排序的,如果要获得有序的排列,在循环前使用内建sorted()函数处理一下字典
字典比较 1 比较大小 长度  2 比较键大小  3 比较值大小

集合

循环
与序列相关的内建函数有soreted() 排序 reversed() 反转 enumerate() 按照key和值遍历  zip()
break 结束当前循环 跳转到下一句
continue  终止当前循环,忽略剩余语句,然后回到循环顶端
pass  不做任何事,只是结构需要

迭代器,他为序列类的对象提供了一个类序列的接口,python的迭代无缝的支持序列对象,而且还允许程序迭代非序列类型。你可以迭代不是序列,但表现出序列行为的对象。可以迭代序列 字典 文件

列表解析,可以用来动态的创建列表,[expr for i in if xxx] seq,duiseq中的每个元素应用expr表达式,然后产生新列表。列表解析表达式可以取代内建的map lambda表达式

生成器表达式是列表解析的一个扩展,

序列 字符串 列表 元祖

查看类的属性 dir(class) 或者 class.__dict__

转载于:https://my.oschina.net/guol/blog/105124

Python 语法小知识相关推荐

  1. Python初学小知识(五):字符串

    Python初学小知识(五):字符串 九.字符串 1. 字符串使用范围广.且极其方便 字符串的切片是是半闭半开区间,不包括最后的位置. 2. 字符串的各种方法 2.1 大小写转换 2.2 左中右对齐 ...

  2. python语法基础知识总结-python语法基础知识

    一.数字类型及操作 1.整数类型 可正可负,无取值范围限制pow(x,y):计算x^y 2.浮点数类型 存在不确定尾数round(x,d):对x四舍五入,d为小数截取位数e/E:a*10^b 3.复数 ...

  3. python金融分析小知识(30)——比较常见的pd.set_option的使用

    Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助! 哈喽大家好,今天我要给大家讲讲在pandas的 ...

  4. python金融分析小知识(22)——时间序列之Timestamp对象的处理

    Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助! 在我的这篇文章中我有介绍到时间序列中的Tims ...

  5. python金融分析小知识(12)——python爬虫工具xpath使用

    Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助! 本篇文章紧接上一篇文章,python金融分析小 ...

  6. python语法知识_Python 语法小知识

    对象通过引用传递的 不支持自增 自减之类的 i++ ++i 多元赋值  右边是元组  ,多元赋值可以实现不需要中间变量 交换两个变量的值 _xxx_  系统定义的名字 _xxx   私有变量 pyth ...

  7. python 使用小知识总结(持续更新ing)

    这篇博客主要针对于使用python来进行深度学习/机器学习过程各方面小知识的总结.习惯于使用C++这种严谨的语言,改换到python这门相对来说开放式的语言需要很多学习,而作为一个菜鸡,遇到编程问题解 ...

  8. python语法基础知识案例_python基础知识理解

    一.概述 看了一天的python基础语法,基本对python语法有了一个大概的了解(其实之前断断续续也看过python),学习网址:Python 基础教程.因为之前我学过C++,因此在学习python ...

  9. python金融分析小知识(38)——Jupyter Notebook更改文件路径

    Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助! 大家好,好久不见我又来啦!今天要给大家分享的小 ...

最新文章

  1. 完美解决ie8以下不兼容h5的方法
  2. oracle 存储过程(分析理解)
  3. jQuery中blur和focus事件的应用
  4. [ARM异常]-ARM Core中与中断相关的寄存器
  5. Java11安装及环境变量设置
  6. c语言数组算n阶乘,c语言中如何计算n的阶乘
  7. IIS - 用户 NT AUTHORITY\NETWORK SERVICE 登录失败解决方法
  8. Swift应用案例 2.闭包入门到精通
  9. 用php写的亲亲鲜花网站_php54鲜花销售网站
  10. wsgiserver python 漏洞_python-简单测试wsgi
  11. CCNP之IPv6技术-过渡技术(NAT-PT)
  12. php连接池 php–cp
  13. 企业信息安全整体架构
  14. mysql8.0重置密码
  15. python extension package_Python Extension Packages for Windows所有包下载
  16. 关于“DEP数据执行保护”的解决方案
  17. Python入门笔记(第五期——序列的应用2)
  18. earn the python in hard way习题31~35的附加习题
  19. 【Unity】Obi插件系列(六)—— Obi Cloth
  20. autoexec.bat文件的所在位置

热门文章

  1. C#实现汉字转化为拼音
  2. GridView控件修改、删除示例(修改含有DropDownList控件)
  3. 指针的本质--u_char*指针在Nginx源码中的应用及原因
  4. XML解析简介及Xerces-C++简单使用举例
  5. 【FFmpeg】FFmpeg中操作目录、文件的接口
  6. java 读取数据库结构_JAVA从SQLITE数据库中读取省份地市构造一棵树
  7. 设备树与驱动的关系_Linux I2C驱动竟然如此简单?手把手教你写i2c驱动
  8. linux里运行windows,在Linux上运行Windows应用程序
  9. Java扫描配置文件的注解_详解Spring框架注解扫描开启之配置细节
  10. Java项目:农业计算工具(java+swing)