深度学习之美(张玉宏)——第四章 人生苦短我用python

1 函数参数

(1)收集参数:以一个星号*加上形参名的方式,表示这个函数的实参个数不定,可能0个可能n个。

def varParaFun(name,*param):
    print(‘位置参数是:‘,name)
    print(‘收集参数是:‘,param)
    print(‘第一个收集参数是:‘,param[0])

varParaFun(‘数据之美‘,‘hello‘,123,‘abc‘)

#位置参数是: 数据之美
#收集参数是: (‘hello‘, 123, ‘abc‘)
#第一个收集参数是: hello

(2)收集参数:用两个星号(**)来标定可变参数,将变参数打包为字典。它表明可变参数是字典元素。调用函数的方法则需要采用诸如 arg I =value l的形式。

def varFun(**param):
    if len(param)==0:
        print(‘None‘)
    else:
        print(param)

varFun(a=‘beauty‘,b=2)

#{‘a‘: ‘beauty‘, ‘b‘: 2}

2 传值还是传引用——传引用

  如果参数传递的是不可变对象,为了维护它的“不可变”属性,函数内部不得不重构一个实参的副本,这个实参的副本即形参和主调函数提供的实参在内存中实际分处于不同位置。因此,对函数形参的修改并不会对实参造成任何影响,因此在结果上看起来和传值一样。函数中对形参的改变只是新生成一个东西,再冠以相同的名称。

def foo1(a):
    a=a+(‘d‘,‘e‘)
    print(‘调用之中:‘,a)

tuple1=(‘a‘,‘b‘,‘c‘)
print(‘调用之前:‘,tuple1)
foo1(tuple1)
print(‘调用之后:‘,tuple1)

def foo2(a):
    a.append(‘可变对象‘)
    print(‘调用之中:‘,a)

List1=[‘a‘,1,2,3]
print(‘调用之前:‘,List1)
foo2(List1)
print(‘调用之后:‘,List1)

#调用之前: (‘a‘, ‘b‘, ‘c‘)
#调用之中: (‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘)
#调用之后: (‘a‘, ‘b‘, ‘c‘)

#调用之前: [‘a‘, 1, 2, 3]
#调用之中: [‘a‘, 1, 2, 3, ‘可变对象‘]
#调用之后: [‘a‘, 1, 2, 3, ‘可变对象‘]

3 面向过程与面向对象

POP(Procedure Oriented Programming )程序=算法+数据结构,设计思想是"How to do",how即指函数。

OOP(Object Oriented Programming)程序=对象+消息传递=(对象+方法)+消息传递,设计思想是“Who to do”,who指即指对象,对象有各种方法。

4 python中的面向对象——类

  (1)类:类中的数据成员可大致分为两类:属于对象的数据成员和属于类的数据成员。属于对象的数据成员主要在__init__()中定义,同一个类定义下的不同对象之间互不影响,而属于类的数据成员为所有对象共享。以__开始的数据成员或方法,属于私有的,这类内部成员只能在类内使用不能被继承,但可以通过“对象名._类名__xxx”的方式访问。以_开头的属于保护成员,只对自己和子类开放权限,不能通过“from module import *”的方式引入。“__xxx__”形式属于python系统自定义的特殊成员,如__init__,__del__。类中的方法参数必须包含self且为第一个参数。

class Person:
    height=162                    #定义类的数据成员

    def __init__(self,name,age,weight):
        self.name = name          #定义对象的数据成员属性
        self.age = age
        self.__weight = weight    #私有数据成员,只能通过类内的公有成员函数访问

    def speak(self):              #公有成员函数
        print(‘我叫%s,我的年龄是%d,我的身高是%dcm,我的体重是%dKG.‘ %(self.name,self.age,Person.height,self.__weight))

people=Person(‘PinkFox‘,23,46)
people.speak()                    #调用公有成员函数,也称访问方法

Person.height=165                 #为属于类的数据成员重新赋值
people.name=‘RedRabbit‘
people.age=24                     #访问属性并赋值
people.speak()

#我叫PinkFox,我的年龄是23,我的身高是162cm,我的体重是46KG.
#我叫RedRabbit,我的年龄是24,我的身高是165cm,我的体重是46KG.

  (2)python中的继承:继承的目的在于实现代码重用,即对已有的成熟的功能,子类从父类执行“拿来主义”。父类又称基类、超类,子类又称派生类。

class Students(Person):
    school=‘霍格沃茨魔法学校‘

    def __init__(self,name,age,weight,grad):
        self.grade=grad
     #调用父类的构造方法,初始化数据成员
        Person.__init__(self,name,age,weight)
    def speak(self):
        print(‘我叫%s,我的年龄是%d,我的身高是%dcm,我在%s读%d年级。‘ %(self.name,self.age,Person.height,Students.school,self.grade))

stu=Students(‘PinkFox‘,13,36,5)
Person.height=158
stu.speak()

#我叫PinkFox,我的年龄是13,我的身高是158cm,我在霍格沃茨魔法学校读5年级。

人生就是一次次幸福的相聚,夹杂着一次次伤感的别离。我们不是在最好的时光相遇,而是遇见了你才有了最好的时光。——改编自《老师,好》

原文地址:https://www.cnblogs.com/DHuifang004/p/11067091.html

时间: 2024-08-26 08:47:17

深度学习之美(张玉宏)——第四章 人生苦短我用python的相关文章

分享《神经网络与深度学习(美)Michael Nielsen 著》中文版PDF+英文版PDF+源代码

下载:https://pan.baidu.com/s/18_Y7fJMaKwFRKKuGjYIreg 更多资料分享:http://blog.51cto.com/3215120 <神经网络与深度学习(美)Michael Nielsen 著>中文版PDF+英文版PDF+源代码中文版PDF,206页,带书签目录:英文版PDF,292页,带书签目录:配套源代码.经典书籍,讲解详细.神经网络和深度学习给出了在图像识别.语义识别和NLP领域中很多问题的最好解决方案.本书将会教你在神经网络和深度学习背后的众

AI - 深度学习之美十四章-概念摘要(8~14)

原文链接:https://yq.aliyun.com/topic/111 08 反向传播(Back Propagation,简称BP) 算法 在神经网络(甚至深度学习)参数训练中,BP算法占据举足轻重的地位. 实际上BP算法是一个典型的双向算法,但通常强调的是反向传播. 工作流程分两大步: 正向传播输入信号,输出分类信息(对于有监督学习而言,基本上都可归属于分类算法).简单说来,就是把信号通过激活函数的加工,一层一层的向前"蔓延",直到抵达输出层. 反向传播误差信息,调整全网权值.如果

2017-2018-1 20155312 学习《深入理解计算机系统》第四章:处理器体系结构

处理器体系结构 目录 教材学习内容总结 Y86-64指令集体系结构 逻辑设计和硬件控制语言 Y86-64的顺序实现 流水线的通用原理 Y86-64的流水线实现 教材课后习题总结 教材课后实践示例 处理器体系结构 我们看到的计算机系统都只限于机器语言程序级.处理器执行一系列指令每天指令执行某个简单操作,它们被编码为由一个或多个字节序列组成的二进制格式.一个处理器支持的指令和指令的字节集编码成为它的指令集体系结构(ISA). 在本章的学习中,我们的学习目标如下: 了解ISA抽象的作用 掌握ISA,并

统计学习导论:基于R应用——第四章习题

第四章习题,部分题目未给出答案 1. 这个题比较简单,有高中生推导水平的应该不难. 2~3证明题,略 4. (a) 这个问题问我略困惑,答案怎么直接写出来了,难道不是10%么 (b) 这个答案是(0.1*0.1)/(1*1),所以答案是1% (c) 其实就是个空间所占比例,所以这题是(0.1**100)*100 = 0.1**98% (d) 这题答案显而易见啊,而且是指数级别下降 (e) 答案是0.1**(1).0.1**(1/2).0.1**(1/3)...0.1**(1/100) 5. 这题

[Java学习笔记] Java核心技术 卷1 第四章

第4章 对象与类 4.1 类和对象的基本概念 描述了类和对象的基本概念,以及类之间的关系介绍. 程序中的很多对象来自于标准库,还有一些自定义的. 结构化程序设计:通过设计一系列的过程(算法),选择合适的存储方式来解决问题. 算法+数据结构 4.1.1 类/封装/继承 类是构造对象的模板,由类构造对象的过程称为创建类的实例. 封装:也称为数据隐藏.从形式上看,封装不过是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式.优点4.2.3 实例域:对象中的数据. 方法:操纵数据的过程.

《神经网络与深度学习(美)MichaelNielsen著》中英文版PDF+源代码+吴岸城版PDF

资源链接:https://pan.baidu.com/s/1-v89VftxGHdzd4WAp2n6xQ<神经网络与深度学习(美)Michael Nielsen 著>中文版PDF+英文版PDF+源代码以及<神经网络与深度学习 >(吴岸城版)中文版PDF,206页,带书签目录:英文版PDF,292页,带书签目录:配套源代码.经典书籍,讲解详细.神经网络和深度学习给出了在图像识别.语义识别和NLP领域中很多问题的最好解决方案.本书将会教你在神经网络和深度学习背后的众多核心概念.两本中文

【深度学习Deep Learning】资料大全

转载:http://www.cnblogs.com/charlotte77/p/5485438.html 最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books Deep Learning66 by Yoshua Bengio, Ian Goodfellow and Aaron Courville Neural Networks and Deep Learning42 by Michael Nielsen Deep Learning27 by

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

实在搞不定博客园的排版,排版更佳的版本在: https://zhuanlan.zhihu.com/p/24162430 Life is short, you need Python 人生苦短,我用Python -- Bruce Eckel 5.1 Python简介 本章将介绍Python的最基本语法,以及一些和深度学习还有计算机视觉最相关的基本使用. 5.1.1 Python简史 Python是一门解释型的高级编程语言,特点是简单明确.Python作者是荷兰人Guido van Rossum,1

模式识别课堂笔记 ——深度学习

引言:深度学习的浪潮开始于Hinton 的一篇文章 Reducing the Dimensionality of Data with Neural Networks: 代表人物:Geoffery Hinton  链接 :http://www.cs.toronto.edu/~hinton/ Yann LeCun 链接:http://yann.lecun.com/ex/index.html Yoshua Bengio 链接:http://www.iro.umontreal.ca/~bengioy/y