1.基本知識-python

0. 運算符與變量

  • 數學運算符
符號 意義 例子
+ 1+1=2
- 1-1=0
* 2*3=6
/ 8/4=2
% 取余 8%3=2
// 取商 10//3=3
** 2**3=8
  • 變量
    只包含 數字、字母、下劃線,以字母or下劃線開頭
    • 字符串方法
方法 意義 方法 意義
rstrip() 去除右側空白符 strip() 去除兩側空白符
lstrip() 去除左側空白符 count(A) 統(tǒng)計A出現的次數
upper() 字母全部大寫 lower() 字母全部小寫
title() 首字母大寫 replace(A,B) 用B代替字符串中的A

1. 控制流

  • if 語句
if  邏輯判斷1:
    語句1
elif 邏輯判斷2:
    語句2
else:
    語句3
  • while 語句
while True:
    語句
  • for 語句
for i in range(num1,num2):  
    語句

range方法包含num1,不包含num2

2. 函數

def function(a,b):
    c= a ** b
    return c

3. 文件讀寫

  • open、close函數
text="PYTHON"
my_file= open('my file.txt','w')
my_file.write(text)
my_file.close()
  • 采用with,無需close函數
with open("file.txt") as file_name:
    file_name.read()
    file_name.readline()
    file_name.readlines()

with open("file.txt",'w') as file_name:
    file_name.write("xxxx")

'w'--寫;'a'--追加;'r'--讀
content= filename.read()、filename.readline()、filename.readlines()

  • 使用json模塊存儲數據
    json.dump(data,f_obj)存儲數據:
import json

filename = 'number.json'
numbers = [1,2,3,4,5]
with open(filename,'w') as obj:
    json.dump(numbers,obj)

json.load(data)讀取數據到內存中:

import json

filename = 'number.json'
with open(filename) as obj:
    data =json.load(obj)
    print(data)

數據導入

(1)excel形式:

import pandas as pd
d1 = pd.read_excel("D:\\MyPython\\DataAnalyseCM\\data_cjz.xlsx",sheetname=0)
d2 = pd.read_excel("D:\\MyPython\\DataAnalyseCM\\data_cjz.xlsx",sheetname=1)
d3 = pd.read_excel("D:\\MyPython\\DataAnalyseCM\\data_cjz.xlsx",sheetname=2)

(2)table形式:

from pandas import read_table
dat = read_excel("D://MyPython//DataAnalyseCM//data.txt")

(3)csv形式:

from pandas import read_csv
dat = read_excel("D://MyPython//DataAnalyseCM//data.csv")

數據導出

data.to_csv("D:\\Result.csv",index=False ,header=False)#data為處理后的dataframe數據

4. 數據結構

參考鏈接:
https://www.cnblogs.com/littlefivebolg/p/8982889.html

  • 列表list
    a = [1,3,4,7],a[0]
    有序,可變(a.sort()),可刪除、增添、修改。字符串不可變
    方法
    del a[0]、a.remove(value)#刪除a中值為value的元素
    a.pop(idx)#永久去除變量a中位置為idx處的數據,默認值為最后一個元素
    a.append(data)、a.insert(1,0)#在位置1插入0

  • 元祖tuple
    b = (1,3,5,7),b[1]
    有序,不可變

  • 字典dictionary
    鍵/值對無序,鍵唯一,d={key1:value1,key2:value2},d[key1]
    del d[key1]
    方法
    d.items()、d.values()、d.keys()
    字典列表、字典中存儲列表、字典中存儲字典

  • 序列
    包含:列表、元組、字符串
    返回的序列從開始位置開始 ,剛好在結束位置之前結束。即開始位置是包含在序列切片中的,而結束位置被排斥在切片外
    使用切片操作符來取得拷貝對象

  • 字符串
    常用方法:d.startswith('Swa')、'a' in d、d.find('war') != -1

5. 面向對象的編程

  • 定義
    用稱為對象的東西包裹起來組織程序的方法。域和方法可以合稱為類的屬性。
class Calculator:
    def __init__(self,name,price)
        self.name = name
        self.price = price
    def add(self,x,y):
        result= x + y
        return result

實例化:cal = Calculator('Good Calculator',18)
兩種類型的域 ——類的變量和對象的變量

  • self參數
    指向類的實例對象本身,而不是類本身;每個方法需定義一個self參數
  • __init__方法、__del__方法
    在類的一個對象被建立/消逝時,馬上運行,對對象進行初始化/回收內存
  • 繼承
    使用方法:基本類作為一個元組跟在定義類之后。
    基本類的__init__方法專門使用self變量調用,初始化對象的基本類部分。
class BasicMember:
    def __init__(self,name):
        self.name = name

class ExportMember(BasicMember):
    def __init__(self,name,age):
        #BasicMember.__init__(name)  
        super().__init__(name) # 初始化基本類的部分
        self.age = age  

多態(tài)現象:子類型(導出類/子類)可以被視作是父類(基本類/超類)的實例

6. 模塊安裝

  • import Python包
import time as t
a = t.localtime()
from time import localtime 
a = localtime()

-import 自己的模塊
文件需在同一目錄或python默認的安裝包所在目錄中

7. 異常

try:
    語句
except 具體錯誤類型:
    語句
else:
   接下來要執(zhí)行的語句

8. 測試代碼

# test_yourfunc.py
import unittest
import yourfunc

class XTestCase(unittest.TestCase):
    def test_name():
        ...
        assertIn(item,list)

unittest.main() # 讓Python運行這個文件中的測試
  • unittest中的斷言方法
方法 用途
assertEqual(a, b) 核實a == b
assertNotEqual(a, b) 核實a != b
assertTrue(x) 核實x為True
assertFalse(x) 核實x為False
assertIn(item, list) 核實item在list中
assertNotIn(item, list) 核實item不在list中

9. 其他

  • zip、lanbda、map
a = [1,2,3] 
b = [4,5,6] 
for i,j in zip(a,b)  # [(1,4),(2,5),(3,6)]
   print i/2,2*j

zip返回地址值,查看內容可用list[zip(a,b)]

lambda x,y:x+y

等價于:

def func1(x,y)
    return x+y
map(func1,[1,3],[2,5])

輸出3,8
map返回地址值,查看內容可用list

  • copy & deepcopy
a = [1,3,[4,5]]
b = a  # a,b指向同一地址
import copy
c = copy.copy(a)  # 淺復制,僅復制第一層數據,a[2]與c[2]指向同一地址
d = copy.deepcopy(a)  # 深復制,完全復制數據,改變a,不會改變d
  • pickle模塊
import pickle
a_dict = {'asd':12,2:[1,5,4],'23':{2:3,'d':sad}}
file = open('example.packle','wb')
pickle.dump(a_dict,file)
file.close()

a_dict1 = pickle.load(file)  # 將保存在pickle中的數據load
  • 正則表達式RegEx
import re  # 導入模塊
re.search(r"\bruns\b","dogs runs to cat")

\d : 任何數字
\D : 不是數字
\s : 任何 white space, 如 [\t\n\r\f\v]
\S : 不是 white space
\w : 任何大小寫字母, 數字和 “” [a-zA-Z0-9]
\W : 不是 \w
\b : 空白字符 (只在某個字的開頭或結尾)
\B : 空白字符 (不在某個字的開頭或結尾)
\ : 匹配
. : 匹配任何字符 (除了 \n)
^ : 匹配開頭
$ : 匹配結尾
? : 前面的字符可有可無

正則表達式語法總結.png

參考資源

莫煩PYTHON

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容