💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 量化分析师的Python日记【第2天:再接着介绍一下Python呗】 > 来源:https://uqer.io/community/share/54c8af17f9f06c276f651a54 ###“谁来给我讲讲Python?” 第一天学习了Python的基本操作,以及几种主要的容器类型,今天学习python的函数、循环和条件、类,这样才算对Python有一个大致的了解。今天的学习大纲如下: 三、函数 1、定义函数 四、循环与条件 1、`if`语句 2、`while true/break`语句 3、`for`语句 4、列表推导式 五、类 1、闲说类与对象 2、定义一个类 ## 三,函数 ### 1、定义函数 (1)定义规则 介绍列表方法的时候已经大概说过函数,学过数学的人都知道函数,给一个参数返回一个值。函数也可以自己定义。用如下的格式: ``` def 函数名(参数): 输入函数代码 ``` 函数代码中,`return`表示返回的值。比如定义一个平方函数`square(x)`,输入参数`x`,返回`x`的平方: ```py def square(x):return x*x square(9) 81 ``` (2)定义变参数函数 有时需要定义参数个数可变的函数,有几个方法可以做到: 给参数指定默认值 比如,定义参数`f(a,b=1,c=’hehe’)`,那么在调用的时候,后面两个参数可以定义也可以不定义,不定义的话默认为`b=1,c=’hehe’`,因此如下调用都可以: ```py F(‘dsds’); F(‘dsds’,2); F(‘dsds’,2,’hdasda’); ``` 参数关键字 上面的方法等于固定了参数的位置,第一个值就是第一个参数的赋值。而“参数关键字”方法,其实是固定了参数关键字,比如仍然定义参数 `f(a,b=1,c=’hehe’)`,调用的时候可以用关键字来固定: ```py F(b=2,a=11) ``` 位置可以动,只要参数关键指出来就可以了。 ## 四、循环与条件 注意Python是用缩进来标识出哪一段属于本循环。 ### 1、`if`语句 也是注意一是缩进,二是条件后面有冒号: ```py j=2.67 if j<3: print 'j<3' j<3 ``` 对于多条件,注意的是elseif要写成elif,标准格式为: ``` if 条件1: 执行语句1 elif 条件2: 执行语句2 else: 执行语句3 ``` 注意`if…elif…else`三个是并列的,不能有缩进: ```py 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 ``` 看个例子: ```py 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`语句 不多说了,可以遍历一个序列/字典等。 ```py a=[1,2,3,4,5] for i in a: print i 1 2 3 4 5 ``` ### 5、列表推导式:轻量级循环 列表推导式,是利用其它列表来创建一个新列表的方法,工作方式类似于`for`循环,格式为: ``` [输出值 for 条件] ``` 当满足条件时,输出一个值,最终形成一个列表: ```py [x*x for x in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] ``` ```py [x*x for x in range(10) if x%3==0] [0, 9, 36, 81] ``` ## 六、类 作为第二天的Python学习,先对类有一个大致的印象吧。 ### 1、闲说类与对象 类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。 而对象,是类的一个具体。它是一个实实在在存在的东西。如果上面说的“人”是一个抽象的类,那么你自己,就是这个类里一个具体的对象。 一个类的对象,也叫一个类的实例。再打个比方,类好比一个模具,对象就是用这个模具造出来的具有相同属性和方法的具体事物,俗话说:“他俩真像,好像一个模子刻出来的”,就是指的这个意思。 那么用这个模具造一个具体事物,就叫类的实例化。下面看一个具体的类: ### 2、定义一个类 ```py class boy: gender='male' interest='girl' def say(self): return 'i am a boy' ``` 上面的语句定义了一个类`boy`,我们来根据这儿类的模型构造一个具体的对象: ```py peter=boy() ``` 现在来看看`peter`这个具体的实例有哪些属性和方法。 “什么叫属性和方法?” 它们都是“类”的两种表现,静态的叫属性,动态的叫方法。比如“人”类的属性有姓名、性别、身高、年龄、体重等等,“人”类的方法有走、跑、跳等等。 ```py peter.gender 'male' ``` ```py peter.interest 'girl' ``` ```py peter.say() 'i am a boy ``` 这里`gender`和`interest`是`peter`的属性,而`say`是他的方法。如果再实例化另一个对象比如`sam`: ```py sam=boy() ``` 那么`sam`和`peter`有一样的属性和方法,可以说,“他们真是一个模子刻出来的!”