给深度学习入门者的Python快速教程 - 基础篇 - 笔记

标签: 读书笔记 python 深度学习

原文链接

1. Class

  • 类的基本声明和成员
class Person:
    '''Test class'''
    def __init__(self, name):
        self.name = name
        self._name = name
        self.__inner_name = 'Alexanda.' + name
        
    def intro(self):
        print('Hi, I am', self._name)

    def greeting(self):
        print('I am', self.name, ', What''s up.')

    def _protected_greeting(self):
        print('I am', self._name, ', What''s up.')
        
    def __private_greeting(self):
        print('I am', self.__inner_name, ', What''s up. I do not give a shit on you!')
    
    def what_i_think(self):
        self.__private_greeting()

#生成类的实例:对象
JONSON = Person('Jonson')

#打印对象和类的说明文档
print('Object class doc:', JONSON.__doc__)
print('Class class doc:', Person.__doc__)

#访问变量
print(JONSON.name)  #普通变量:public变量,可以正常访问
print(JONSON._name)  #单下划线变量:protected变量,可以正常访问
#print(JONSON.__inner_name)  #报错,双下划线变量:private变量,不可直接访问

#调用方法
JONSON.intro()  #对象的普通方法:public方法
JONSON.greeting()
JONSON._protected_greeting()  #单下划线方法:protected方法,可以正常访问
#JONSON.__private_greeting()  #报错,双下划线方法:private方法,不可直接访问
JONSON.what_i_think()  #通过普通方法间接调用private方法
Object class doc: Test class
Class class doc: Test class
Jonson
Jonson
Hi, I am Jonson
I am Jonson , Whats up.
I am Jonson , Whats up.
I am Alexanda.Jonson , Whats up. I do not give a shit on you!
  • 类的继承
class Student(Person):
    '''Student inherit from Person'''
    def greeting(self):
        super().greeting()  #调用父类的方法
        print('I am a student.')
        
TOM = Student('Tom')
TOM.greeting()
I am Tom , Whats up.
I am a student.

2. 函数式编程 map, reduce和filter

  • map:对可遍历结构的每个元素执行同样的操作
print(list(map(lambda x: x - 1, [1, 2, 3])))  #[1-1, 2-1, 3-1]

#多参数的操作(函数或者匿名lambda函数),将从map的多个可遍历参数中获取对应的元素执行操作
print(list(map(lambda x, y: x + y, [1, 2, 3], [4, 5, 6])))  #[1+4, 2+5, 3+6]
print(list(map(lambda x, y: x + y, [1, 2, 3], [4, 5])))  #[1+4, 2+5]
[0, 1, 2]
[5, 7, 9]
[5, 7]
  • reduce:对可遍历结构的元素按顺序进行两个输入参数的操作,并且每次操作的结果作为下次操作的第一个输入参数,还未遍历的元素作为第二个输入参数。这样就会把一个可遍历的一系列元素,减少(reduce)成为一个元素。
from functools import reduce
print(reduce(lambda x, y: x + y, [1, 2, 3]))  # (1 + 2) + 3 = 6
6
  • filter:对可遍历结构的元素,基于某一测试操作过滤出一些元素
print(list(filter(lambda x: x > 0, [-5, -3, 1, 0, -11, 10])))
[1, 10]

3. 列表推导(list comprehension)

根据条件表达式,迭代列表的各个元素,通过指定的操作生成新的序列对象

Lst_1 = [1, 2, 3]
Lst_2 = [x*x for x in Lst_1]
Lst_3 = [x*x for x in Lst_1 if x < 3]

print(Lst_2)
print(Lst_3)

Dic_1 = {x: x*x for x in Lst_1}

print(Dic_1)
[1, 4, 9]
[1, 4]
{1: 1, 2: 4, 3: 9}

4. 字符串

  • 字符串基本操作
Str_1 = 'Life is short, you need Python -- Bruce Eckle'
print(Str_1.lower())
print(Str_1.upper())
print("'i' count in Str_1:", Str_1.count('i'))
print("'e' position in Str_1:", Str_1.find('e'))
print("'need' reverse position in Str1:", Str_1.rfind('need'))
print('Replace you with I:', Str_1.replace('you', 'I'))
Str_Items = Str_1.split(sep = ' ')  #sep默认值即空格,此处参数可省略
print("Str_1 elements by seperator ' ':", Str_Items)
Str_Resume = ' '.join(Str_Items)
print("Resumed String with elements of Str_1:", Str_Resume)
life is short, you need python -- bruce eckle
LIFE IS SHORT, YOU NEED PYTHON -- BRUCE ECKLE
'i' count in Str_1: 2
'e' position in Str_1: 3
'need' reverse position in Str1: 19
Replace you with I: Life is short, I need Python -- Bruce Eckle
Str_1 elements by seperator ' ': ['Life', 'is', 'short,', 'you', 'need', 'Python', '--', 'Bruce', 'Eckle']
Resumed String with elements of Str_1: Life is short, you need Python -- Bruce Eckle
  • 利用format函数对字符串进行格式化 详细文档
#按顺序格式化字符串
Str_1 = 'I prefer {} rather than {}.'
print(Str_1.format('playing Basketball', 'swimming'))

#在大括号中指定参数所在位置
Str_1 = 'I prefer {1} {0} to {2} {0}.'
print(Str_1.format('food', 'Chinese', 'U.S'))

#在大括号中指定参数的名字
Str_1 = '{name} is {age} years old.'
print(Str_1.format(age=3, name='Terry'))
I prefer playing Basketball rather than swimming.
I prefer Chinese food to U.S food.
Terry is 3 years old.

5. 文件操作和pickle

  • 从IO资源管理安全性考虑,使用上下文管理器(with-as)来打开文件

    1. 假设存在文件name_age.txt如下:
    Tom,8
    Jerry,7
    Terry,3
    
    1. 读取文件内容按行格式化显示:
    with open('name_age.txt', 'r') as f:  #打开文件,读取模式
        lines = f.readlines()  #一次读取所有行
        for line in lines:  #按行格式化并显示信息
            name, age = line.rstrip().split(',')
            print('{} is {} years old.'.format(name, age))
    
    1. 如果需要将名字和年龄的顺序交换,保存成新的文件age_name.txt:
    with open('name_age.txt', 't') as fread, open('age_name.txt', 'w') as fwrite:
        line = fread.readline()  #首先读取一行
        while line:  #循环所有读取的行
            name, ag = line.rstrip().split(',')
            fwrite.write('{}, {}\n'.formate(age, name))  #写入新文件
            line = fread.readline()  #读取下一行
    
  • 将对象序列化保存,需要时再反序列化读取

import pickle

lines = ['Hello HanMeiMei', 'Hello LiLei', 'How are you', 'Fine, thank you, And you?']

with open('d:/lines.pkl', 'wb') as f:  #序列化对象,保存到文件中
    pickle.dump(lines, f)
    
with open('d:/lines.pkl', 'rb') as f:  #从文件读取并反序列化
    lines_back = pickle.load(f)
    
print(lines_back)
['Hello HanMeiMei', 'Hello LiLei', 'How are you', 'Fine, thank you, And you?']
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容