Hidden features of Python

What are the lesser-known but useful features of the Python programming language?

Quick links to answers:

Source: http://stackoverflow.com/questions/101268/hidden-features-of-python

Python精简版笔记

  1. 基础知识
    1. 变量没有类型。不需要提前声明
    2. 变量在赋值时出现,不再使用时则会消失
    3. 赋值使用 = 运算符完成,如:x = 42
      注:判断相等用 == 运算符完成
    4. 可以一次对多个变量赋值,如:x,y,z = 1,2,3 或者 a = b = 123 再或者 first, second = second, first
    5. 语句块只能通过缩进来表示
      注:没有Begin/End语句或者括号
    6. for循环等同于其它语言中的foreach
      注:可以使用range函数来实现基于数字索引的循环,如: for value in range(10): 换行符 缩进 print value
    7. 注释语言以 # 开头
    8. 使用input函数获取用户输入
    9. List 对象用中括号实现,可以自由嵌套,如:x = [[1,2,3],[y,z],[[[]]]]
    10. List 可以通过索引和分片来访问内部元素
      索引使用中括号,第一个元素的索引为0,如:names[1]
      分片可以指定起始和截至的索引,使用冒号分隔,如:names[5:8]
      注:截至索引是不包含在结果中的,如果缺少起始索引,默认从0开始;如果缺少截至索引,默认到结尾结束
      索引可以使用负数,如:names[-3]表示倒数第三个元素
    11. Dictionary 类似 List,但是内部元素是无序的,使用每个元素自己的键值做访问索引,如:names = {“name”:”张三”, “age”:30},可以访问names["name"]或者names["age"]来访问内部元素
    12. 所有的值都可以用作逻辑值,空值,如False、[]、0、“”和None表示逻辑假,其它为逻辑真
    13. 支持短路逻辑判断,如:print a or b
    14. 条件表达式的写法:print a if a else b
  2. 函数
    1. 使用关键字 def 定义函数,如:def square(x): 换行符 缩进 return x * x
    2. 使用关键字 return 返回函数值
    3. 对于 List 和 Dictionary 类型的参数,在函数体内修改参数值时影响外部变量值;其它类型参数不会改变
    4. 函数支持命名参数和参数默认值
    5. 支持函数引用,如:square是一个函数,queeble = square 换行符 缩进 print queeble(2)
  3. 对象
    1. 使用关键字 class 定义类,如:class person:
    2. 对象的方法调用方式:object.method(arg1, arg2)
    3. repr 函数可以将对象转换成它的字符串表达形式
    4. __init__为构造函数
    5. __str__定义对象作为字符串时的输出
    6. 继承语句:class SpamBasket(Basket):
    7. 允许多重继承
  4. 其它
    1. 模块是以.py为扩展名并包含Python代码的文本文件,导入语句为:import math 或者 from math import sqrt
    2. 所有模块内的代码都会在导入时运行,可以用 if __name__ == “__main__”: main() 来避免这个情况
    3. 如果是在*nix中创建可执行的脚本,可以使用:#!/usr/bin/env python
    4. 可以使用try/except语句处理异常
    5. pass 语句表示什么都不做
    6. enjoy source code