Python学习记录,入门篇

各种语言的特点和应用:

  1. 贴近硬件的代码:首选C
  2. ios/Android:有各自的开发语言Objc,Swift/java
  3. 游戏开发:C/C++
  4. Python : 优雅,明确,简单。(解释执行,运行速度慢,代码少量少,跨平台的编程语言)
    Python源码不能加密

python语法上的特别之处:

  1. 动态语言:可以多次赋值给一个变量,并且可以赋任何数据类型。
  2. Unicode编码,可以为汉字编码
  3. 布尔类型
    a = True
    print a and ‘a = t’ or ‘a = f’
    结果为’a = t’
  4. 一个列表list中可以包含多种数据类型。(list中倒序查找可用[-1…..-n],注意不能越界)
  5. 特殊的“list”: tuple(不可变的list,是指tuple中元素指向的内存地址值是不改变的,元素末尾多加一个逗号)
  6. 代码的严格缩进规则:具有相同缩进的代码被视为一个代码块。(缩进:四个空格、不要使用Tab,更不要空格、Tab混用,退出缩进多敲一个回车)
  7. 而迭代是一个动词,它指的是一种操作,在Python中,就是 for
    循环。迭代与按下标访问数组最大的不同是,后者是一种具体的迭代实现方式,而前者只关心迭代结果,根本不关心迭代内部是如何实现的。
    注意: 集合是指包含一组元素的数据结构,我们已经介绍的包括:
    有序集合:list,tuple,str和unicode;
    无序集合:set
    无序集合并且具有 key-value 对:dict
    请用for循环迭代数列 1-100 并打印出7的倍数。
for i in range(1, 101):
    if i % 7 == 0:
        print i

注意语法,注意缩进
Python中,迭代永远是取出元素本身,而非元素的索引,有的时候,我们确实想在 for 循环中拿到索引,怎么办?

方法是使用 enumerate() 函数:

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
>>> for index, name in enumerate(L):
...     print index, '-', name
... 
0 - Adam
1 - Lisa
2 - Bart
3 - Paul
//迭代的每一个元素实际上是一个tuple,实际上是这样的
for t in enumerate(L):
    index = t[0]
    name = t[1]
    print index, '-', name

Python的精妙

  1. map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
  2. reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。
    reduce()还可以接收第3个可选参数,作为计算的初始值。(list求和求积很方便)
  3. filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
  4. sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。
    因此,如果我们要实现倒序排序,只需要编写一个reversed_cmp函数:
def reversed_cmp(x, y):
    if x > y:
        return -1
    if x < y:
        return 1
    return 0

//这样,调用 sorted() 并传入 reversed_cmp 就可以实现倒序排序:
>>> sorted([36, 5, 12, 9, 21], reversed_cmp)
[36, 21, 12, 9, 5]

//sorted()也可以对字符串进行排序,字符串默认按照ASCII大小来比较:
>>> sorted(['bob', 'about', 'Zoo', 'Credit'])
['Credit', 'Zoo', 'about', 'bob']
  1. 返回函数
  2. 函数的闭包:是函数式编程的重要语法结构,个人觉得有点稍稍难理解,毕竟之前学过的别的语言里面没有过这样的用法,应用起来有点难。
    看了这位博主的讲解http://www.jb51.net/article/54541.htm,引入函数中“环境变量”的概念,讲解得很详细,适合刚接触闭包概念的人读可以加深理解。
    这一篇文章中http://www.cnblogs.com/ma6174/archive/2013/04/15/3022548.html,里面有两个应用的例子。
    可以实现代码复用、减少函数所必须传递的参数,在并行计算中有着广泛应用。

正则表达式

re模块

match(pattern, string, flags=0)  #字符串非完全匹配
search(pattern, string, flags=0) #在一个字符串中查找匹配
findall(pattern, string, flags=0)#找到匹配,返回所有匹配部分的列表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值