python学习路线

自用

在这里插入图片描述
在这里插入图片描述
Task1:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:

list1 = ["这", "是", "一个", "测试"]
for i in range (len(list1)):
    print i ,list1[i]

#上述方法有些累赘,利用enumerate()会更加直接和优美:


list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1):
    print index, item
>>>
012 一个
3 测试
#enumerate还可以接收第二个参数,用于指定索引起始值,如:
list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1, 1):
    print index, item
>>>
123 一个
4 测试

#如果要统计文件的行数,可以这样写:
count = len(open(filepath, 'r').readlines())
#这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作。

#可以利用enumerate():
count = 0
for index, line in enumerate(open(filepath,'r')): 
    count += 1

列表推导式

在这里插入图片描述

task2:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这个用法就和C语言的格式化输出很像

print('%c' % 97)  # a
print('%f' % 27.658)  # 27.658000
print('%5.1f' % 27.658)  # ' 27.7'

注意:如果我们取的键在字典(dict)中不存在,会直接报错KeyError
C++的Map会创建这个key的元素,为它赋初值为0。
dict创建的语法有些特殊:

dic1 = dict([('apple', 4139), ('peach', 4127), ('cherry', 4098)])
dic2 = dict((('apple', 4139), ('peach', 4127), ('cherry', 4098)))

在这里插入图片描述

dick的函数keys和vaules在这里插入图片描述

list.remove(obj) 移除列表中某个值的第一个匹配项
在这里插入图片描述
remove 和 pop 都可以删除元素,前者是指定具体要删除的元素,后者是指定一个索引。在这里插入图片描述

不知道Python其他 的list删除会不会有迭代器失效的问题,《Python核心编程》提到的问题,待测。

通过将索引指定为-1,可让Python返回最后一个列表元素,索引 -2 返回倒数第二个列表元素,以此类推。

Python的数值(列表)切片非常常用,取值范围前闭后开。x[start : stop : step] step为步长,默认为1。
在这里插入图片描述

注意最后把 step 设为 -1,相当于将列表反向排列。

tuple(sub) 把一个可迭代对象转换为元组。
task 3
我为啥之前不复制要截图捏

函数

内嵌函数
在这里插入图片描述

闭包

  • 是函数式编程的一个重要的语法结构,是一种特殊的内嵌函数。
  • 如果在一个内部函数里对外层非全局作用域的变量进行引用,那么内部函数就被认为是闭包。
  • 通过闭包可以访问外层非全局作用域的变量,这个作用域称为 闭包作用域
def funX(x):
    def funY(y):
        return x * y

    return funY


i = funX(8)
print(type(i))  # <class 'function'>
print(i(5))  # 40
#这语法巨奇怪有啥用啊

Python 的魔法方法

据说,Python 的对象天生拥有一些神奇的方法,它们是面向对象的 Python 的一切…

它们是可以给你的类增加魔力的特殊方法…

如果你的对象实现了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,而这一切都是自动发生的…

类有一个名为__init__(self[, param1, param2...])的魔法方法,该方法在类实例化时会自动调用。
也就是c++的构造函数

公有和私有

在 Python 中定义私有变量只需要在变量名或函数名前加上“__”两个下划线,那么这个函数或变量就会为私有的了。

class JustCounter:
    __secretCount = 0  # 私有变量
    publicCount = 0  # 公开变量

继承

Python 同样支持类的继承,派生类的定义如下所示:

class DerivedClassName(BaseClassName):

       statement-1

              .

              .

              .

       statement-N

BaseClassName(基类名)必须与派生类定义在一个作用域内。除了类,还可以用表达式,基类定义在另一个模块中时这一点非常有用:

class DerivedClassName(modname.BaseClassName):

       statement-1

              .

              .

              .

       statement-N

参考资料:
天池龙珠计划之Python学习电子书_v0.0.2.pdf
https://blog.csdn.net/churximi/article/details/51648388
http://joyfulpandas.datawhale.club/Content/index.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值