美文网首页
1.基本知识-python

1.基本知识-python

作者: d9e7e8498548 | 来源:发表于2020-03-01 10:23 被阅读0次

    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

    相关文章

      网友评论

          本文标题:1.基本知识-python

          本文链接:https://www.haomeiwen.com/subject/dkyfqqtx.html