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) | 统计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
多态现象:子类型(导出类/子类)可以被视作是父类(基本类/超类)的实例
6. 模块安装
- import Python包
import time as t
a = t.localtime()
from time import localtime
a = localtime()
-import 自己的模块
文件需在同一目录或python默认的安装包所在目录中
7. 异常
try:
语句
except 具体错误类型:
语句
else:
接下来要执行的语句
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)
^ : 匹配开头
$ : 匹配结尾
? : 前面的字符可有可无
网友评论