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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM