学习廖雪峰python2.7

  • 使用命令python进行python的交互模式。交互模式下可以直接输入python代码运行。退出交互模式使用exit()命令。
  • 使用python xxx.py来运行文本编辑器里的python代码。
  • 在mac和linux下,在.py结尾的python文件第一行加上#!/usr/bin/env python,可以使.py文件成为可执行文件,运行chmod a+x hello.py加上可执行权限,就可以运行文件代码了,比如./xxx.py
  • >>> print 'The quick brown fox', 'jumps over', 'the lazy dog'
    The quick brown fox jumps over the lazy dog
  • raw_input(),可以让用户输入字符串。
  • None代表无意义的值。
    这里写图片描述
    这里写图片描述
  • >>> ord('A')
    65
    >>> chr(65)
    'A'
  • Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u’…’表示。
  • >>> print u'中文'
    中文
    >>> u'中'
    u'\u4e2d'
  • # -*- coding: utf-8 -*-按UTF-8编码读取。
  • >>> 'Hello, %s' % 'world'
    'Hello, world'
    >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
    'Hi, Michael, you have $1000000.'
  • list的索引为-1的元素就是list的最后一个元素。
  • list的索引为-列表长度的元素就是第一个元素。
  • tuple为不可变列表,使用()来表示,比如(1,2,3),只有一个元素的tuple:(1,)
  • []为可变列表。
  • if <条件判断1>:
    <执行1>
    elif <条件判断2>:
    <执行2>
    elif <条件判断3>:
    <执行3>
    else:
    <执行4>
  • 循环使用:for x in ...while
  • raw_input()读取的内容永远以字符串的形式返回。
  • {key:value,key1:value1,key2:value2},判断dict里是否存在key的键:key in dict
  • s = set([1, 2, 3]),add和remove方法。
  • set是可以进行交集和并集计算的,比如s1 & s2s1 | s2,s1 - s2
  • 不可变对象自身不会变,一般都是新建一个对象返回。
  • 定义一个什么都不做的函数:def nop():pass
  • def my_abs(x):
    if not isinstance(x, (int, float)):
    raise TypeError('bad operand type')
    if x >= 0:
    return x
    else:
    return -x
  • Python的函数返回多值其实就是返回一个tuple
  • Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。
  • 默认参数一定要用不可变对象,如果是可变对象,运行会有逻辑错误!
  • 要注意定义可变参数和关键字参数的语法:*args是可变参数,args接收的是一个tuple;**kw是关键字参数,kw接收的是一个dict。
  • 可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过args传入:func((1, 2, 3));
  • 关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过kw传入:func({‘a’: 1, ‘b’: 2})。
  • 使用*args和**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。
  • 列表和tuple的切片[::]语法。
  • 判断是否可迭代:
>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整数是否可迭代
False
  • 列表生成式的语法。比如:
>>> [m + n for m in 'ABC' for n in 'XYZ']
['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]
  • 要创建一个generator,有很多种方法。第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator。next()方法。
  • 将函数变为generator使用yield关键字。
  • 变量可以指向函数。
  • 既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数
  • map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
  • reduce把一个函数作用在一个序列[x1, x2, x3…]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算。
  • 关键字lambda表示匿名函数,冒号前面的x表示函数参数。
  • 简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。
  • 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线,在Python中,实例的变量名如果以开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问。

猜你喜欢

转载自blog.csdn.net/a_842297171/article/details/80847607
今日推荐