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) 统计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. 其他

  • ziplanbdamap
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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容