Python股票量化投资-3.python基础

Python股票量化投资-1.开发环境部署 

Python股票量化投资-2.量化投资介绍

 

继续开始今天的内容,主要介绍 PyCharm的开发使用【这IDE对JAVA人员来说不陌生】

Python的语法推荐看书籍: Python基础教程(第二版)人民邮电出版   【推荐看前5章】

有Java基础的,一看基本就会,就是些语法不同,逻辑一样 

 

1、打印

 

 

打印中文要在,开头处添加utf8转码,否则报错:SyntaxError: Non-ASCII character '\xe4'  

 

2、exit() 

 

 

 程序只运行到第4行,退出,常用来调试程序

 

3、python基本类型

  注释:以#开头为注释,直到当前行结束为止

  control  + / 多行同时注释  

        

 

 

 

 4、 数字

  以数字,或者 -  开头的微数字。带小数点   . 的为浮点数,不带小数点的为整数。

       支持科学计数法,例如:52.3E-4

  

 

 

 

5、字符串

  以单引号,双引号,三引号 开始,同样的符号结束

  

 

 

 

6、布尔值

  只有两个,True和False, 大小写敏感

  

 

 

 

7、空值

  只有一个,None, 大小写敏感,表示没有值的值-NULL

  

 

8、变量的命名规范

  1.变量需要一个名字

  2.取名规则:首字母需要是字母或下划线,其余部分可以是字母,下划线和数字

  3.给变量取个有意义的名字非常重要

 

9、计算符号

  1.算符是连接一个或多个元素的符号,用来表达计算

  2.常见算术符号:+ - * / %

  3.常见比较符号: ==  != > <  >= <=

       4.常见布尔符号:and  or  &  | 

    and 【&&】 两者都是True , 输出结果就是True,有一个False,结果为False

    or 【||】 其实一个为True,结果为True

    

 

10、内置数据结构

  1.   list 和 dict最为常用
  2.   list ,列表 , 或者叫做数组
  3.   dict ,  字典

10.1、list[]

  1.具有顺序的一组对象,其中的元素不需要是同类型

  2.list常见操作:索引,切片,加法,乘法,判断,删除,长度,最值

  3.list常见方法:append , extend  , sort , reverse

 

# -*- coding: utf8 -*-

#使用[]中括号表示新建一个数组
list_var = [] #这是一个数组
print list_var,type(list_var)

#list是具有顺序的一组对象,其中元素类型可以不同
list_var = [1,'2',None,3.4,'five','',22,33,44,55]
print list_var

#list常见操作
print list_var[0] #取出第0元素
print list_var[1] #取出第0元素
print list_var[3] #取出第0元素
#print list_var[20] #取出第0元素 , 数组溢出list index out of range
print list_var[-1] #倒数第1个元素
print list_var[-3] #倒数第3个元素

#list切片操作
print list_var[3:8]  #取从下标3,到下标8位置
print list_var[:2] #取从下标0开始,到下标2结束
print list_var[3:] #取从下标3开始,到下标结束
print list_var[1:3:1]  #取从下标1到3,每间隔2个取1个

#list相加
list_var1 = [1,2,3,4,5]
list_var2 = ['6','7','8','9']
print list_var1 + list_var2  #两个list相加

#list常见操作:判断一个元素是否在list当中
list_var3=[1,2,3,'4',5,6,7]
print 1 in list_var3 #判断1是否在,list3中
print 4 in list_var3 #判断4是否在,list3中

#list常见操作: len,max,min
list_var4 = [1,2,3,'4',5,6,7,'','','',99999]
print len(list_var4)  #list长度
print len([])         #空list长度
print max(list_var4)  #list中最大元素
print min(list_var4)  #list最小元素
del list_var4[0]  #删除list中第1个元素
print len(list_var4)  #list长度

#list常见操作:如何查找一个元素在list中位置
list_var5 = [1,2,3,'4',5,6,7,'','','',99999]  #如何知道 5在元素下标位置
print list_var5.index(5)

#list常见操作:在后方增加一个元素
list_var6 = [1,2,'3']
print list_var6
list_var6.append(4)
print list_var6
list_var6.append(['5',6,7])  #list中元素有list
print list_var6
list_var6.extend([8,9,10])  #list合并
print list_var6

#list常见操作:逆序,排序
list_var7 = [1,2,3,4,5,6]
list_var7.reverse()  #倒序
print list_var7
list_var7 = [4,3,2,9,1]
list_var7.sort()  #从小到大排序
print list_var7

#list常见操作: range函数
#rang函数用于快速创建[0,1,2,3,4,5,6...]这样的list
print range(5)  #创建从0-4这样数组
print range(1,5) #创建数组,取小标1-5
print range(1,10,3) #创建数组1-10,每间隔3取一个

 

11、字典

  1.具有一序列成对的对象。一个叫做key, 一个叫做value, 其中的元素(包括可key和value)不需要是同类型

  2.无顺序,key不可重复

  3.dict的常见操作: 索引,增加,修改,删除,判断,keys ,values

# -*- coding: utf8 -*-

#使用{}大括号就可以新建dict
dict_var = {} #空dict
print dict_var, type(dict_var)

#具有一系列成对的对象,key,value键值对
dict_var2 = {'sz000222':'万科','sh300':'安记'}
print dict_var2

#字典是无需的,key不可重复
dict_var3 = {'sz0001':'万科','sh300':'安记'}
#print dict_var3[0]  #因为没有顺序,所以不能采用list[]下标方式获取元素

#dict常见操作: 根据key的值,获取value
print dict_var3['sz0001']
print dict_var3.get('sz0001') #效果一样

#dict常见操作: 增加,修改一对key:value
dict_var3['add'] = 'add-value'  #不存在 增加
print dict_var3
dict_var3['add'] = 'add-val2'  #存在,则修改
print dict_var3

#dict常见操作:判断一个key是不是在dict里面
print 'add' in dict_var3

#dict常见操作:输出一个dict中所有的key和value
print dict_var3.keys()   #输出所有key
print dict_var3.values() #输出所有value

 

12、字符串常见操作

  1.转义字符:在字符串中表达某些特殊字符时需要转义

  2.Raw String:在字符串的开始加r , 使得字符串不发生转义

  3.在字符串前加u,表示这是一个unicode字符

  4.字符串常见操作:startswitch , endswith, in, find , replace , upper , lower , split , join , strip

  

# 字符串转义
print 'what is wrong'  #如何输入what's wrong
print 'what \'s wrong'  #使用\ 反斜杠对特殊字符转义
print r'what \'s wrong'  #前面加r (Raw String),不进行转义,原样输出


# unicode字符串
print '哈哈',type('哈哈')
print u'哈哈',type(u'哈哈')
#print '哈哈' == u'哈哈'  #False
#字符串常见操作:字符串相加,相乘
str_1='123'
str_2='456'
print str_1 + ',' + str_2 #字符串直接相加
print str_1 * 3 #字符串可以乘以整数
print '*' * 30  #显示分隔符

#字符串常见操作:startswith,endswith
str_3 = 'sh333333'
print str_3.startswith('s')  #判断字符串是否以s开头
print str_3.startswith('sh')
print str_3.startswith('sz')
print '*' * 30  #显示分隔符

#字符串常见操作:判断
str_4 = 'sj33333'
print 's' in str_4  #判断字符串中是否包含's'
print 'sj' in str_4
print 'sz' in str_4

#字符串常见操作:替换
str_5 = 'abc123'
print str_5.replace('a','1') # 将字符串a替换成1
print 'abc123abc'.replace('abc','w') #替换所有为abc字符
print '*' * 30  #显示分隔符

#字符串常见操作:split
str_6 = 'a,b,c,d,b,e,f'
print str_6.split(',') #分割成数组
print str_6.split(',')[0] #取分割成数组的第1元素
print str_6.split('b') #用b符号来分割
#逆操作,将数组变成字符串
str_6_arrs = ['a','b','c','d']
print ','.join(str_6_arrs) #将数组元素用,逗号进行连接
print '*' * 30  #显示分隔符

#字符串常见操作:strip (java的trim)
str_7 = '   t    '
print str_7
print len(str_7)     #包含空格的长度
print str_7.strip()  #去除两边的空格
print len(str_7.strip())  #去除两边的空格-长度
print '*' * 30  #显示分隔符

#字符串的选取:把字符串当做list
str_8 = 'sz12345'
print str_8[0] #取字符串第1位
print str_8[:2]  #从0开始2个字符
print str_8[2:]  #从2开始,到结尾

 

13、条件 、循环语句

  1.条件语句:if  elif  else

  2.循环语句:for, while

  3.循环内语句:continue, break

 

if  (1==1) :  #条件A
    print 'a'
elif (1==2) :  #条件B
    print 'b'
else:
    print 'c'

for i in range(10+1):
    print i
print '*' * 30  #显示分隔符

sum_num = 1;
while True:
    sum_num += 1
    print sum_num
    if(sum_num > 10) :
        print 'end'
        break

 

 

14、函数的定义

  以def开头

  print_h是函数名

  str_var是参数,可以带上默认参数

  函数首行的最后需要带上冒号

 

#====基本函数的定义
def print_h(str_var='default args'):
    print str_var   #打印参数


#====函数的调用
print_h()
print_h('张三') #传入参数

 

 

 

15、异常处理

  python中的异常处理机制

  

#=========异常处理
# 1.先执行语句1
# 2.语句1异常,except捕获,处理
# 3.语句1不报错,那么执行语句3
try:
    语句1
except:
    语句2
else:
    语句3

 

posted @ 2020-11-20 19:29  兔兔福  阅读(806)  评论(0编辑  收藏  举报