Python语言特性纪要(一)——变量、类型、语句

你在这里

Python语言特性纪要(一)——变量、类型、语句

  (其他python纪要,请参考:
   )
以前一直用其它语言,比如C,C++,PHP,JS还有Delphi等,这两年如火如荼的数据工程将Python推向风口。经初步学习,ZZKOOK先将其典型特征总结如下,以备查看。
一、语言风格
通过严格缩进(4个空格)确定代码块,不再使用{}
二、变量
没有传统意义上的变量(变量拥有分配给它的内存空间),python变量表示指向特定值(对象)的名称。变量使用前必须赋值,因为python没有默认的变量值,例如:
>>>while test>0:
NameError: name 'test' is not defined
此外变量的作用域和其它语言通常意义上的不同,如果仅仅在函数中使用全局变量的值(而不修改),则与其它语言处理相似,都可以获取并使用全局变量;如果在函数中修改全局变量的值,python会创建一个新的同名局部变量替换,而原来的全局变量的值保持不变;而如果在函数中先试图使用全局变量的值,而后又修改它,则python会将所有该变量名字理解为局部变量,而早先使用未赋值的局部变量的值则会引发错误:UnboundLocalError: local variable 'x' referenced before assignment;如果确实要在函数中修改全局变量的值,需要使用 global关键字声明全局变量。
三、字符串操作
自动拼接连续输入的字符:
>>> "hello" " world"
'hello world'
但拼接字符串变量需要使用加号:
>>> x="hello"
>>> y=" world"
>>> x+y
'hello world'
四、运算优先级
从上到下递减:
但幂运算和一元运算的优先级关系存在两种情况:幂运算比左侧一元操作优先级高,比右侧一元运算优先级低,示例如下:
>>> -3**2
-9
>>> 3**-2
0.1111111111111111
五、独特的条件表达式
条件表单式可视为三元操作符,其语法形式为:
a = 值1 if 条件 else 值2
其功效等价于:
if 条件:
    a = 值1
else:
    a = 值2
例如:
>>> x=1
>>> y=2
>>> a = x if x<y else y
>>> a
1
六、用于任意迭代对象的for循环
for循环在python中是对迭代对象,如:列表、字典、元组、字符串等的高效执行相同代码块的工具。例如:
>>> m="OK, everything is ready"
>>> for x in m:
...    print(x, end='_')
... 
O_K_,_ _e_v_e_r_y_t_h_i_n_g_ _i_s_ _r_e_a_d_y_
七、匿名函数表达式lambda
lambda允许开发者以精简的风格创建匿名函数,形如:
lambda 参数:返回值
例如:
>>> list(filter(lambda x:x%2, range(20)))
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
八、丰富的迭代对象
1.字符串——str
不可变迭代序列,可用于for,可用索引(切片)提取元素,还可以用in、not in判断元素是否存在。
2.列表——list
可变序列,可用于for,可用索引(切片)提取元素,可以用in、not in判断元素是否存在;可用extend、append、insert添加新元素。可用remove、del、pop删除元素。
3.元组——tuple
不可变迭代序列,可用于for,可用索引(切片)提取元素,还可以用in、not in判断元素是否存在。不能直接插入元素(只能通过切片拆分,然后+并入新元素,并赋值给原变量名的方式),可用del删除整个元组。
4.字典——dict
键值对映射,不讲顺序。键唯一,值为不可变任意数据类型。可用于for,使用in、not in判断键是否存在。可通过使用键名或get引用,使用键名或update更新,使用clear清空,
5.集合——set
无序无重复元素的集合。可用于for,使用in、not in判断元素是否存在。要使其元素不可修改,用函数frozenset()。使用add添加元素,remove、pop删除元素,clear清空集合。
九、百搭的else语句
1. if-else语句
解释为:如果怎样就怎样,否则就怎样,起典型搭配为:
if <条件1>:
    <操作1>
elif <条件2>:
    <操作2>
else:
    <操作3>
2. for-else、while-else语句
解释为:干完了怎样,干不完就别想怎样,例如:
while <条件1>:
    if <条件2>:
        <操作1>
        break
    <操作2>
else:
    <操作3>
若循环中<条件2>满足后跳出了循环,则else中的<操作3>不会执行;若循环执行过程中没有跳出,而是一直运行到<条件1>不满足时,则执行<操作3>。
2.try-else语句:
解释为:没问题,那就干吧。
try:
    <操作1>
except:
    <操作2>
else:
    <操作3>
只要try中的<操作1>语句块执行过程中没有出现任何异常,就会执行<操作3>。
十、清理工with语句
有一些任务,可能事先需要设置,事后做清理工作,此时使用with语句非常便捷:
  • 紧跟with后面的语句被求值后,返回对象的 __enter__() 方法被调用,这个方法的返回值将被赋值给as后面的变量。
  • 当with后面的代码块全部被执行完之后,将调用前面返回对象的 __exit__()方法。
例如:
try:
    with open("file.txt") as f:
        <操作1>
    #到此处文件已经关闭 
except:
    <操作2>        
 
著作权归作者所有。商业转载请联系本站作者获得授权,非商业转载请注明出处 ZZKOOK

您可能感兴趣的文章

登录以发表评论

评论

本人不得不加个标签收藏了

 
60
就这样吧的头像

本人不得不安利

 
65
菜菜的头像

本人真心赞

 
65
momo的头像

我坚决的到专页加个关注

 
67
Sandy Ryza的头像

博主真的零差评

 
60
山野客的头像