zoukankan      html  css  js  c++  java
  • day08 做了一下午 还算像样点儿

    PYTHON学习笔记

    第一章 计算机基础

    1.1 硬件

    计算机由CPU,主板,硬盘,内存,显卡,网卡等构成,硬件之间无法自行沟通联系

    1.2 操作系统

    操作系统用来控制硬件的工作,常见的操作系统有如下几种:

    ···Windows (XP/7/8/10/SERVER)

    ···Linux (centOS/ubantu/red hat)

    ···Mac

    1.3 解释器和编译器

    编程语言的开发者写出来的一种工具,将用户写的代码转换为二进制代码的010101交给操作系统去执行。

    ···解释型和编译型语言

    ···解释型语言 将代码一行一行交给电脑去处理,类似于同声翻译,python、PHP、ruby等

    ···编译型语言 将代码一次性完整的编译完成,生成一个新文件,将新文件交给电脑去执行,类似于说完之后整体翻译,C、C++、C#、JAVA、Go等

    1.4 软件(应用程序)

    电脑上的工具,类似于 记事本、图片查看、游戏等

    1.5 进制

    计算机的所有存储都只能依托于二进制的0和1,例如 电脑上储存的图片、音频、视频都是二进制,QQ微信发送的聊天信息也都是二进制。

    ···二进制 计算机内部识别

    ···八进制 现在很少用到

    ···十进制 人类识别

    ···十六进制 多数用来表示二进制,其表示的更短更节省资源 起始位置为 x

    二进制八进制十进制十六进制
    0000 0 0 0
    0001 1 1 1
    0010 2 2 2
    0011 3 3 3
    0100 4 4 4
    0101 5 5 5
    0110 6 6 6
    0111 7 7 7
    1000 10 8 8
    1001 11 9 9
    1010 12 10 A
    1011 13 11 B
    1100 14 12 C
    1101 15 13 D
    1110 16 14 E
    1111 17 15 F

     

    第二章 Python入门

    2.1 环境的安装

    ···解释器 Python3

    为了使解释器可以在终端中方便运行,可把解释器的路径添加进环境变量中

    ···开发工具 Pycharm

    2.2 编码

    ···编码基础

    2.2.1. ASCII 最初美国人发明的只有英文数字和字符的

    2.2.2. Unicode 万国码 包含目前所有的文字 长度为4个字节 32位,中文通常只占3个字节,24位

    2.2.3. utf-8 目前常用的编码,能有效压缩Unicode编码,

    ···如果要修改默认编码 则需在文件头加上如下命令:

      # -*- coding:utf-8 -*- 

    ···需要注意的是,文件使用什么类型的编码编写,就要用什么类型的编码打开。

    2.3 变量

    ···变量是为了给一个值起一个别名,方便后期调用

    ···命名规范 只能存在字母、数字、_(下划线) 且 数字不能为首位,还需规避python中的固有名词

    第三章 数据类型

    3.1 整形 int

    3.1.1 整形的长度

    ···python2.7 中存在 int 、long

    ···python3 中int包含了long

    3.1.2 整除

    ···python2.7 中 除法只能保留整数

    ···除非在题头引入命令:

        from __future__ import division

     

    ···python3 中 除法可以保留小数

     

    3.2 布尔值 bool

    ··· ’ ‘空字符串/str()、0/int()、空列表[]/list()、空元组(,)/tuple()、空字典{}/dict()、空集合set()、None的布尔值为False

    3.3 字符串 str

    ··· 字符串是在python文件中最常见的,为不可变类型,在python内存中的编码格式为Unicode

    ··· 字符串方法

    3.3.1 大写 upper

    v1='alex'
    v2=v1.upper()
    print(v2) # 'ALEX'
    v3=v1.isupper()
    print(v3) # False 此为判断是否为大写

    3.3.2 小写 lower

    v1='ALEX'
    v2=v1.lower()
    print(v2) # 'alex'
    v3=v1.islower()
    print(v3) # False 此为判断是否为小写

    3.3.3 判断是否为数字 isdecimal 优先 、 isdigit

    v = '1'
    # v = '二'
    # v = '②'
    v1 = v.isdigit()  # '1'-> True; '二'-> False; '②' --> True
    v2 = v.isdecimal() # '1'-> True; '二'-> False; '②' --> False
    v3 = v.isnumeric() # '1'-> True; '二'-> True; '②' --> True
    print(v1,v2,v3)
    # 以后推荐用 isdecimal 判断是否是 10进制的数。

    3.3.4 去除空白以及指定字符串 strip 、 lstrip、rstrip

    v1='  erwr  '
    v2=v1.strip()
    print(v2) # 'erwr'
    v3=v2.strip('r')
    print(v3) # 'ew'

    3.3.5 分割 split、rsplit

    v1='fewef'
    v2=v1.split('w')
    print(v2) # ['fe','ef']

    3.3.6 以什么开始或结束 starswith 、 endswith

    v1='fasfdsa'
    v2=v1.starswith('fa')
    print(v2) # True
    v3=v1.endswith('s')
    print(v3) # False

    3.3.7 字符串格式化 format

    v1='alex'
    v2=29
    v3='我叫{},今年{}岁'.format(v1,v2)
    print(v3) # '我叫alex,今年29岁'

    3.3.8 替换 replace

    v1='abcd'
    v2=v1.replace('ab','大傻')
    print(v2) # '大傻cd'

    3.3.9 编码和解码 encode 、 decode

    v1='你好'
    v2=v1.encode('utf-8')
    print(v2) # b'xe4xbdxa0xe5xa5xbd' 转换成为二进制
    v3=v2.decode('utf-8')
    print(v3) # '你好'

    3.3.10 加入 join

    v1='hello'
    v2='_'.join(v1)
    print(v2) # 'h_e_l_l_o'

    3.4 列表 list

    ··· 列表为有序序列,为可变类型

    3.4.1 增 append/insert

    v1=[1,2,3,4]
    v1.append(5) # 序列末尾增加
    print(v1) # [1,2,3,4,5]
    v1.insert(3,'你好') # 在第一个参数位置之前加入,使其变为这个参数位置
    print(v1)

    3.4.2 删 remove / pop / clear / del

    v1=[1,2,3,4]
    v1.remove(4) # 元素4
    print(v1) # [1,2,3]
    v1.pop(0) # 索引位置0
    print(v1) # [2,3]
    del v1[1] # 索引位置0
    print(v1) # [2]
    v1.clear() # 清空
    print(v1) # []

    3.4.3 改 通过索引位置

    v1=[1,2,3,4]
    v1[2]='你好'
    print(v1) # [1, 2, '你好', 4]

    3.4.4 查 通过索引位置

    v1=[1,2,3,4]
    print(v1[2]) # 3

    3.4.5 强制转换 list

    v1 = list("asdfadfasfdadfasfd")
    print(v1) # ['a', 's', 'd', 'f', 'a', 'd', 'f', 'a', 's', 'f', 'd', 'a', 'd', 'f', 'a', 's', 'f', 'd']
    v1 = list( (11,22,33,44,) )
    print(v1) # [11, 22, 33, 44]

    3.4.6 排序 sort

    v1=[2,3,5,1]
    v1.sort(reverse=False)
    print(v1) # [1,2,3,5]
    v1.sort(reverse=True)
    print(v1) # [5,3,2,1]

    3.4.7 反转/倒序 reverse

    v1=[1,2,3,4]
    v1.reverse()
    print(v1) # [4,3,2,1]

    3.5 元组 tuple

    ···元组为有序序列,不可变类型

    3.5.1 无法增,删,改

    3.5.2 查 通过索引位置

    v1=(1,2,3,4)
    print(v1[2]) # 3

    3.5.3 强制转换 tuple

    v1 = tuple("asdfadfasfdadfasfd")
    print(v1) # ()'a', 's', 'd', 'f', 'a', 'd', 'f', 'a', 's', 'f', 'd', 'a', 'd', 'f', 'a', 's', 'f', 'd')
    v1 = tuple( [11,22,33,44] )
    print(v1) # (11, 22, 33, 44)

    3.6 字典 dict

    ··· 字典为无序序列,为可变类型,列表/字典/集合 -> 不能放在集合中+不能作为字典的key

    3.6.1 增、改 通过键值对 有则更改,无则新建、update

    v1={'name':'alex','age':19}
    v1['name']='王二'
    print(v1) # {'name':'王二','age':19}
    v1['gender']='男'
    print(v1) # {'name':'王二','age':19,'gender':'男'}
    v1.update({'name':'王麻子''智商':'无'})
    print(v1) # {'name': '王麻子', 'age': 19, 'gender': '男', '智商': '无'}

    3.6.2 删 del

    v1={'name':'王二','age':19,'gender':'男'}
    del v1['gender']
    print(v1) # {'name':'王二','age':19}

    3.6.3 查 通过键值对查询 、 get

    v1={'name':'王二','age':19,'gender':'男'}
    print(v1['name']) # '王二'
    print(v1.get('name',666)) # '王二'   若有此键,返回对应的值
    print(v1.get('alex',666)) # 666 若无此键,返回第二个参数

    3.6.4 取出所有的键、值、键值对

    v1={'name':'王二','age':19,'gender':'男'}
    v2=v1.keys()
    v3=v1.values()
    v4=v1.items()
    print(v2) # ['name','age','gender']
    print(v3) # ['王二', 19, '男']
    print(v4) # [('name', '王二'), ('age', 19), ('gender', '男')]

     

    3.7 集合 set

    ··· 集合为无序序列,为可变类型,集合内的值唯一,列表/字典/集合 -> 不能放在集合中+不能作为字典的key

    3.7.1 增 add

    v1={1,2,3,4}
    v1.add(555)
    print(v1) # {1,2,3,4,555}

    3.7.2 删 discard

    v1={1,2,3,4}
    v1.discard(2) # 元素
    print(v1) # {1,3,4}

    3.7.3 批量添加 update

    v1={1,2,3,4}
    v1.update({4,5,6,7})
    print(v1) # {1, 2, 3, 4, 5, 6, 7} 去重,添加

    3.7.4 交集 intersection

    v1={1,2,3,4}
    v2={4,5,6}
    v3=v1.intersection(v2)
    print(v3) # {4}

    3.7.5 并集 union

    v1={1,2,3,4}
    v2={4,5,6}
    v3=v1.union(v2)
    print(v3) # {1, 2, 3, 4, 5, 6}

    3.7.6 差集 difference

    v1={1,2,3,4}
    v2={4,5,6}
    v3=v1.difference(v2) # v1有,v2没有的
    print(v3) # {1, 2, 3}
    v4=v2.difference(v1) # v2有,v1没有的
    print(v4) # {5, 6}

    3.7.7 对称差集 symmetric_difference

    v1={1,2,3,4}
    v2={4,5,6}
    v3=v1.symmetric_difference(v2)
    print(v3) # {1, 2, 3, 5, 6}

    3.8 公共功能

    3.8.1 索引 str/list/tuple/dict(键)

    3.8.2 切片 str/list/tuple

    3.8.3 步长 str/list/tuple

    3.8.4 for循环 str/list/tuple/dict(键)/set

    3.8.5 len计算长度 str/list/tuple/dict(键)/set

    3.9 嵌套

    第四章 文件操作

    4.1 文件基本操作

    ···把大象放进冰箱需要几步? 打开,操作 ,关闭

    file=open('路径',mode='读、写、追加',encoding='编码格式')
    file.read()
    file.write()
    file.close

    4.2 打开模式

    4.2.1 r 只读 w 只写 a 只追加

    4.2.2 r+ 读和写 w+ 写和读(清空先) a+ 写和读

    4.2.3 rb 二进制只读 wb 二进制只写 ab 二进制只追加

    4.2.4 r+b 二进制读和写 w+b 二进制写和读(清空先) a+b 二进制写和读

    4.3 操作

    4.3.1 read() 全部读取到内存

    4.3.2 read(1)

    ···表示一个字符

    obj = open('a.txt',mode='r',encoding='utf-8')
    data = obj.read(1) # 1个字符
    obj.close()
    print(data)

    ···表示一个字节

    obj = open('a.txt',mode='rb')
    data = obj.read(3) # 1个字节
    obj.close()

    4.3.3 write()

    ···字符串

    obj = open('a.txt',mode='w',encoding='utf-8')
    data = obj.write()
    obj.close()

    ···二进制

    obj = open('a.txt',mode='wb')
    info='ddddd'.encode('utf-8')
    data = obj.write(info)
    obj.close()

    4.3.4 seek() 光标所在的字节位置

    obj = open('a.txt',mode='r',encoding='utf-8')
    obj.seek(3) # 跳转到指定字节位置
    data = obj.read()
    obj.close()

    print(data)




    obj = open('a.txt',mode='rb')
    obj.seek(3) # 跳转到指定字节位置
    data = obj.read()
    obj.close()

    print(data)

    4.3.5 tell() 获取当前光标的位置

    obj = open('a.txt',mode='rb')
    # obj.seek(3) # 跳转到指定字节位置
    obj.read()
    data = obj.tell()
    print(data)
    obj.close()

    4.3.6 flush() 强制将内存中的数据写入到硬盘,在不关闭的状态下

    v = open('a.txt',mode='a',encoding='utf-8')
    while True:
       val = input('请输入:')
       v.write(val)
       v.flush()

    v.close()

    4.4 关闭文件

    with open ('a.txt',mode='r',encoding='utf-8') as file:
       file.read() # # 缩进中的代码执行完毕后,自动关闭文件

    4.5文件内容修改

    with open('a.txt',mode='r',encoding='utf-8') as f1:
       data = f1.read()
    new_data = data.replace('飞洒','666')

    with open('a.txt',mode='w',encoding='utf-8') as f1:
       data = f1.write(new_data)
    f1 = open('a.txt',mode='r',encoding='utf-8')
    f2 = open('b.txt',mode='w',encoding='utf-8')

    for line in f1:
       new_line = line.replace('阿斯','死啊')
       f2.write(new_line)
    f1.close()
    f2.close()
    with open('a.txt',mode='r',encoding='utf-8') as f1, open('c.txt',mode='w',encoding='utf-8') as f2:
       for line in f1:
           new_line = line.replace('阿斯', '死啊')
           f2.write(new_line)

     

     

     

  • 相关阅读:
    Linux下对拍(A+B问题)
    洛谷 P1043 数字游戏 区间DP
    6.22 集训--DP复习一
    洛谷 P1220 关路灯 区间DP
    A*算法求K短路模板 POJ 2449
    点分治模板 POJ 1741
    HDU
    棋子游戏 51Nod
    数论习题总结
    CodeForces
  • 原文地址:https://www.cnblogs.com/usherwang/p/12822800.html
Copyright © 2011-2022 走看看