阅读更多

 http://q.datayes.com

 

“谁来给我讲讲Python?”

第一天学习了Python的基本操作,以及几种主要的容器类型,今天学习python的函数、循环和条件、类,这样才算对Python有一个大致的了解。今天的学习大纲如下:

三、函数

1、定义函数

四、循环与条件

1、if语句

2、while true/break语句

3、for语句

4、列表推导式

五、类

1、闲说类与对象

2、定义一个类

三,函数

1、定义函数

(1)定义规则

介绍列表方法的时候已经大概说过函数,学过数学的人都知道函数,给一个参数返回一个值。函数也可以自己定义。用如下的格式:

def 函数名(参数): 输入函数代码

函数代码中,return表示返回的值。比如定义一个平方函数square(x),输入参数x,返回x的平方:

In [14]:
def square(x):return x*x

square(9)
Out[14]:
81
 

(2)定义变参数函数

有时需要定义参数个数可变的函数,有几个方法可以做到:

  • 给参数指定默认值

比如,定义参数f(a,b=1,c=’hehe’),那么在调用的时候,后面两个参数可以定义也可以不定义,不定义的话默认为b=1,c=’hehe’,因此如下调用都可以:

F(‘dsds’);

F(‘dsds’,2);

F(‘dsds’,2,’hdasda’);

  • 参数关键字

上面的方法等于固定了参数的位置,第一个值就是第一个参数的赋值。而“参数关键字”方法,其实是固定了参数关键字,比如仍然定义参数 f(a,b=1,c=’hehe’),调用的时候可以用关键字来固定:

F(b=2,a=11)

位置可以动,只要参数关键指出来就可以了。

四、循环与条件

注意Python是用缩进来标识出哪一段属于本循环。

1、if语句

也是注意一是缩进,二是条件后面有冒号:

In [15]:
j=2.67
if j<3:
    print 'j<3'
 
j<3
 

对于多条件,注意的是elseif要写成elif,标准格式为:

if 条件1:

 执行语句1

elif 条件2:

 执行语句2

else:

 执行语句3

注意if…elif…else三个是并列的,不能有缩进:

In [16]:
t=3
if t<3:
    print 't<3'
elif t==3:
    print 't=3'
else:
    print 't>3'
 
t=3
 

2、while true/break语句

该语句的格式为

while true即条件为真:

     执行语句
     if中断语句条件 : break

看个例子:

In [17]:
a=3
while a<10:
    a=a+1
    print a
    if a==8: break
 
4
5
6
7
8
 

虽然while后面的条件是a<10,即a小于10的时候一直执行,但是if条件中规定了a为8时就break掉,因此,输出只能输到8。

3、for语句

不多说了,可以遍历一个序列/字典等。

In [18]:
a=[1,2,3,4,5]
for i in a:
    print i
 
1
2
3
4
5
 

5、列表推导式:轻量级循环

列表推导式,是利用其它列表来创建一个新列表的方法,工作方式类似于for循环,格式为:

[输出值 for 条件]

当满足条件时,输出一个值,最终形成一个列表:

In [19]:
[x*x for x in range(10)]
Out[19]:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
In [20]:
[x*x for x in range(10) if x%3==0]
Out[20]:
[0, 9, 36, 81]
 

如上的例子就是利用序列[0,1,2,3,4,5,6,7,8,9],生成了一个新的序列。

六、类

作为第二天的Python学习,先对类有一个大致的印象吧。

1、闲说类与对象 类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。

而对象,是类的一个具体。它是一个实实在在存在的东西。如果上面说的“人”是一个抽象的类,那么你自己,就是这个类里一个具体的对象。

一个类的对象,也叫一个类的实例。再打个比方,类好比一个模具,对象就是用这个模具造出来的具有相同属性和方法的具体事物,俗话说:“他俩真像,好像一个模子刻出来的”,就是指的这个意思。 那么用这个模具造一个具体事物,就叫类的实例化。下面看一个具体的类:

2、定义一个类

In [21]:
class boy:
    gender='male'
    interest='girl'
    def say(self):
        return 'i am a boy'
 

上面的语句定义了一个类boy,我们来根据这儿类的模型构造一个具体的对象:

In [22]:
peter=boy()
 

现在来看看peter这个具体的实例有哪些属性和方法。

“什么叫属性和方法?”

它们都是“类”的两种表现,静态的叫属性,动态的叫方法。比如“人”类的属性有姓名、性别、身高、年龄、体重等等,“人”类的方法有走、跑、跳等等。

In [23]:
peter.gender
Out[23]:
'male'
In [24]:
peter.interest
Out[24]:
'girl'
In [25]:
peter.say()
Out[25]:
'i am a boy'
 

这里gender和interest是peter的属性,而say是他的方法。如果再实例化另一个对象比如sam:

In [26]:
sam=boy()
 

那么sam和peter有一样的属性和方法,可以说,“他们真是一个模子刻出来的!”

来自: q.datayes.com
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • python量化分析前景_量化分析师的Python日记【第2天:再接着介绍一下

    第一天学习了Python的基本操作,以及几种主要的容器类型,今天学习python的函数、循环和条件、类,这样才算对Python有一个大致的了解。今天的学习大纲如下:三、函数1、定义函数四、循环与条件1、if语句2、while ...

  • 量化分析师的python日记_量化分析师的Python日记【第1天:谁来给我讲讲Python?】...

    只想先大概了解一下Python,随便编个小程序,并能看懂一般的程序,那些什么JAVA啊、C啊、继承啊、异常啊通通不懂怎么办,于是我找了很多资料,写成下面这篇日记,希望以完全初学者的角度入手来认识Python这个在量化...

  • python量化分析系列(第一篇)_量化分析师的 Python 日记 [第 1 天:谁来给我讲讲 Python?]...

    45 条回复 • 2016-05-25 11:10:23 +08:0012015-04-08 21:42:42 +08:00这里竟然有Quant22015-04-08 22:49:51 +...32015-04-08 22:59:12 +08:00 1最近准备写一个《Python for quantitative finance》系列,准备拿博文...

  • 量化分析师的Python日记【第3天:一大波金融Library来袭之numpy篇】

    接下来要给大家介绍的系列中包含了Python在量化金融中运用最广泛的几个Library: ...量化分析的工作涉及到大量的数值运算,一个高效方便的科学计算工具是必不可少的。Python语言一开始并不是设计为

  • 量化分析师的Python日记 系列

    量化分析师的Python日记 系列 转发,原作者 薛昆Kelvin 为方便学习,整理一下学习材料。持续更新。 【第1天:谁来给我讲讲...【第2天:再接着介绍一下Python呗】 https://uqer.io/community/share/54c8af17f9...

  • 量化分析师的Python日记[第5天:数据处理的瑞士军刀pandas]

    第一篇:基本数据结构介绍 一、Pandas介绍 终于写到了作者最想介绍,同时也是Python在数据处理方面功能最为强大的扩展模块了。在处理实际的金融数据时,一个条数据通常包含了多种类型的数据,例如,股票的代码是字符...

  • 量化分析师的Python日记【第6天:数据处理的瑞士军刀pandas下篇

    ####第二篇:快速进阶 在上一篇中我们介绍了如何创建并访问pandas的Series和DataFrame类型的数据,本篇将介绍如何对pandas数据进行操作,掌握这些操作之后,基本可以处理大多数的数据了。首先,导入...

  • 优矿 python_【优矿uqer.io】量化分析师的Python日记【第5天:数据处理的瑞士军刀pandas】...

    Python数据处理的瑞士军刀:pandas####第一篇:基本数据结构介绍####一、Pandas介绍终于写到了作者最想介绍,同时也是Python在数据处理方面功能最为强大的扩展模块了。在处理实际的金融数据时,一个条数据通常包含了...

  • 量化分析师的Python日记【第4天:一大波金融Library来袭之scipy篇】

    上一篇介绍了numpy,本篇中着重介绍一下另一个量化金融中常用的库 scipy   一、SciPy概述 前篇已经大致介绍了NumPy,接下来让我们看看SciPy能做些什么。NumPy替我们搞定了向量和矩阵的相关操作,...

  • 量化分析师的Python日记【Q Quant 之初出江湖】

    ),我们将尝试把之前的介绍的工具串联起来,小试牛刀。 您将可以体验到: 如何使用python内置的数学函数计算期权的价格;利用 numpy 加速数值计算;利用 scipy 进行仿真模拟;使用 scipy 求解器计算隐含...

  • c#开发windows应用程序几个小技巧

    最近,我在用.net做一个c/s的项目,把我做的情况给大家说说。datagrid是用的c1控件的c1FlexGrid,功能很多。自定义分组和outlook形式的列头拖拽。textbox,combobox,checkbox是继承.net自带的控件,自己扩展的。现在说一说碰到的几个问题,及解决方法:1.一个应用程序只能被用户打开一次  Process mobj_pro =Process.GetCur

  • .NET使用强名

    如果你使用.NET作为开发工具很长时间了,你肯定回会碰到“强名”(strong name)这个概念。这个概念并不意味你的组件命名方式必须类似于MyCompany.Gorilla.Biceps的方式。强名的力量体现在对组件的保护方面,.NET Framework使用强名来标识组件和保护组件使其免遭破坏。在这篇文章中我将说明如何建立强名,以及在.NET中使用强名的技巧。 1. 散列和签名 为了了解强名

  • Xml学习笔记(一)

    XmlDocument doc = new XmlDocument();doc.Load(filename);XmlElement root = doc.DocumentElement;XmlNode node = root.SelectSingleNode("filelist"); //增加属性  XmlNode attrItem = doc.CreateNode(XmlNodeType.Att

  • 得到客户端IP Address的方法

    private string GetClientIP()  {string userip = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];   if (userip ==null) userip = Request.ServerVariables["REMOTE_ADDR"];   return userip;}

  • C# Google PageRank .net库 (checksum)

    C# Google PageRank .net库 (checksum)  Google PageRank 链接库下载地址:  Google PageRank .net 库  演示地址:  查询PageRank  使用实例:  //得到Pagerank值  Console.WriteLine(PRCrack.PageRank.CheckPR("http://www.google.com")); 

  • .Net三层应用的Hello World程序

    项目概述:实现一个最简单的三层分布式应用程序。    Entity 实体层 (System.Serializable 可序列化)    1、BizL 业务逻辑层(继承System.EnterpriseServices.ServicedComponent COM+实现事务处理)    IFacL 业务逻辑的接口层,实现客户端远程访问的接口协议    2、业务门面层(继承System.Marsha

  • 现实C# 应用程序如何显示XP风格的方法

    1、如果是Visual Statio .Net 2003或者以上,只需在应用程序的入口在Run之前添加Application.EnableVisualStyles();即可。例如:public class Form1 : System.Windows.Forms.Form {    ...    [STAThread]    static void Main() {        Applicat

  • O/R Mapping实际开发经验之谈(一)

      一、概述      O/R Mapping全称Object Relational Mapping,就是对象关系映射。把对表直接进行的操作,变成对持久化类的属性和方法的直接操作。   很多的项目是基于数据库的开发,程序中要大量进行表的增、删、改、查询的工作。        例如下面一段C#代码,从数据库CustomerDemo取表Customer数据:      string Conn

  • 读出目录下所有的文件(递归)

    ///   /// 递归得到一个目录下的所有文件(包括子目录中的)。  ///   ///   ///   private void showAllFiles(string dir,DataTable dt)  {   DirectoryInfo di = new DirectoryInfo(dir);   FileInfo[] subFiles = di.GetFiles();   FileSy

Global site tag (gtag.js) - Google Analytics