第二章、二进制运算、字符编码、数据类型总结

第二章


二进制运算、字符编码、数据类型

二进制与十进制转换

ASCII表

文字转2进制

计算机容量单位

字符编码

列表

  • 创建:

    • a = list()
    • a = []
  • 查询:
    • L2[2] 通过索引取值
    • L2[-1] 通过索引从列表右边开始取值
    • L2.index(‘a‘) 返回指定元素的索引值,从左右查找,找到第一个匹配值,则返回.
    • L2.count(‘a‘) 统计指定元素的个数
  • 切片:
    • L2[0:3] 返回从索引0至3的元素,不包括3,顾头不顾尾
    • L2[0:-1] 返回从索引0至最后一个值,不包括最后一个值
    • L2[2:] 返回从索引2至最后一个值,包括最后一个值
    • L2[3:6] 返回从索引3至6的元素
    • L2[:3] 返回从索引0至3的值,不包括3
    • L2[1: 6:2] 返回索引1至5的值,但是步长为2(每隔一个元素,取一个值)
    • L2[:] 返回所有的值
    • L2[::2] 按步长为2,返回所有的值
  • 增加:
    • L2.append("A") 列表最后面追加A
    • L2.insert(3, "B") 在列表索引为3的位置插入一个值 B
  • 修改:
    • L2[3] = "boy" 把索引3的元素修改为boy
    • L[4:6] = "Alex LI" 把索引4-6的元素改为Alex LI,不够的元素自动增加
  • 删除:
    • L2.pop() 删除最后一个元素
    • L2.remove(‘L‘) 删除从左找到的第一个指定元素
    • del L2[4] 用python全局的删除方法删除 指定元素
    • del L2[3:7] 删除多个元素
  • 循环:
    • for i in L2:

      • while 可以死循环,和for相比,一个无边界,一个有边界.
  • 排序:
    • L2.sort()

      • 不能对包含了str和int的列表进行排序
      • L2.sort()按照特殊字符>>>大写字母>>>>小写字母的顺序排列按照ASCII表的顺序排列
    • L2.reverse() 反转
  • 其他用法:
    • L2.extend([1,2,3,4]) 把一个列表扩展到L2列表,进行合并
    • L1+L2 两个列表直接相加,进行合并
    • L2[2][1] 嵌套列表取值
    • L2.clear() 清空列表
    • L2.copy()
  • enumerate() 枚举
    for index,p in enumerate(L2):
          print(index,p)
    

    copy方法

  • 通过id(a)方法查看a的内存地址
    >>> a = 1
    >>> b = a
    >>> id(a),id(b)
    (1615293920, 1615293920)
    >>> a = 2
    >>> id(a)
    1615293952
    
  • L1 = L2 将L1列表指向了L2列表的内存地址,是列表这个容器的内存地址,而不是列表中元素的内存地址.
  • L1[0] = "abc" L2列表中的第0个元素也会变为"abc"
  • 相当于L1和L2里面的元素是共享的,其实也就是同一内容.

浅copy

  • 通过L3 = L2.copy() 复制一个列表
  • 相当于执行了一次浅copy,仅对表层的内存地址进行了copy,深层次的比如说L2中的一个列表类型的元素里面的元素是共享的

深copy

import copy
L3 = copy.deepcopy(L2)

完全copy,所有的内部元素独立复制一份,不经常用,除非特殊场景,否则尽量不要用深copy.

字符串

  • 字符串是一个有序的字符的集合,用于存储和表示基本的文本信息,一对单、双、或三引号中间包含的内容称之为字符串。
  • 特性:
    • 有序
    • 不可变

字符串的方法

  • s.swapcase() 大写变小写,小写变大写,
  • s.capitalize() 首字母大写,其他都小写。
  • s.casefold() 全变成小写
  • s.center(50,‘*‘) 字符串s居中,使用*来填充至50个字符。
  • s.count("o") 统计字符串s中“o“的个数,s.count("o",0,5)统计字符串s中从0至5字段中的o的个数。
  • s.expandtabs() 如果字符串s中有\t,使用s.expandtabs(20)将\t变成20长度
  • s.find("o",0,5) 在s中从0至5字段中的o的索引号,如果没有返回-1
  • s.format() 格式化输出 两种方式,位置{0}{1},或者 {a}{b},
  • s.format_map() 暂时略
  • s.index("h",0,5) 返回0至5字段中的h的索引值,找不到h会直接程序报错
  • "22dd".isalnum() 判断是否为阿拉伯字母和数字
  • s.isalpha() 判断是否为纯阿拉伯字母
  • s.isdecimal() 判断是否为整数
  • s.isdigit() 判断是否为整数
  • s.isidentifier() 判断是不是一个合法的变量名
  • s.islower() 判断s是不是全是小写
  • s.isnumeric() 判断是不是只有数字在s里面
  • s.isprintable() 判断s是不是可打印的,比如视频数据是不可打印的
  • s.isspace() 判断是否是空格
  • s.istitle() 判断每个单词的首字母是不是大写
  • s.isupper() 判断s是不是都是大写
  • ":".join(L1) 把列表L1里面的每一个元素使用:拼接起来输出为字符串
  • s.ljust(50,"-") 将字符串s变成长度50,不够的在后面用-补全
  • s.lower() 全变小写
  • s.upper() 全变大写
  • s.strip() 把首尾的换行、\t、空格都去掉
  • s.lstrip() 处理s字符串左边的换行、\t、空格
  • s.rstrip() 处理s字符串右边的换行、\t、空格
  • s.partition("o") 把s中的所有字符以"o"为中界线分开成三份
  • s.replace("g","G") 将s中的g替换为G
  • s.replace("o","-",1) 将s中的1个o替换为-
  • s.rfind("o") 从右边开始找第一个o的索引值
  • s.rfind()
  • s.rindex()
  • s.rjust()
  • s.rpartition()
  • s.split() 将s默认以空格分割成列表
  • s.split("o")
  • s.rsplit("o",1) 从
  • s.rstrip()
  • s.splitlines() 以换行分割成列表
  • s.startswith("hell") 判断s是不是以hell开始的
  • s.zfill(40) 将s长度变为40,不够的以0在开头补全

常用的字符串方法

  • isdigit()
  • replace()
  • find()
  • count()
  • strip()
  • split()
  • center()
  • froma()
  • join()

必须熟练掌握

元祖

  • 有序不可变的,只读列表
  • names = ("Alex","dc","jack")
  • names.count() names.index() 只有2个方法
  • 可以进行切片,因为切片是取数据
  • 如果元祖里面的元素是列表等可修改元素,这个列表中的内容是可以修改的.
    • a = (1,2,3,4,["dc","alex","dd"],"zz") 列表["dc","alex","dd"]中的"dc","alex","dd"是可以更改的.

      元祖用途:
      显示的告诉别人,此处数据不可修改
      数据库连接配置信息等

hash 散列

  •   Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值.简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数.
  • 特征:
    • hsah值的计算过程是依据这个值的一些特征计算的,这就要求被hash的值必须固定,因此被hash的值必须是不可变的

      • 不可变类型:数字,字符串,元组
      • 可变类型:列表
  • 用途:
    • 文件签名
    • md5加密
    • 密码验证
  • hash冲突
    • 如果程序中要被hash处理的数据量足够多,有可能不同的目标值产生的hash值会相同,因为hash的内部算法并不能100%使所有的值都不相同,所以要解决hash冲突

字典

  • 一种key-value的数据类型,使用就像我们上学用的字典,通过笔划,字母来查对应页的内容.
  • 特性:
    • key-value结构
    • key必须可hash,且必须为不可变数据类型,必须唯一
    • 可存放任意多个值,值可以修改,值可以不唯一
    • 无序
    • 查找速度快

字典操作

  • 增加

    • info["stu1104"] = "xiao cang"
  • 修改
    • info["stu1101"] = "wu teng"
  • 查找
    • "stu1192" in info #标准用法 在字典里面的话返回True,否则返回False
    • info.get("stu1102") # 获取stu1102的值
    • info["stu1102"] 也是获取stu1102的值,但是如果这个key不存在,就会程序报错,get不会,get不存在的key,只会返回None
  • 删除
    • info.pop("key") 删除key和这个key的value,返回删除的value
    • info.popitem() 随机删除info内的元素
    • del info["key"]

多级字典嵌套

  • 经常用到

其他方法

  • info.clear()
  • info.values 以列表形式输出所有的value
  • info.keys() 以列表形式输出所有的key
  • info.items() 将整个字典转换成了1个元组
  • info.update() 合并两个字典,key和value有的话就覆盖,没有的就创建
  • info.setdefault(2,"new 2") 如果有2这个key,就去查找2的value,如果没有就创建一个key为2,value为"new 2" 的元素
  • info.fromkeys([a,b,c]) 批量创建a,b,c key,值为None

循环

for k in info:  # 取info所有的key
for k in info:      # 常用的取key和value的方法
    print(k,info[k])
for k,v in info.items() # 低效的循环方法,请忘记
    print(k,v)

作业

原文地址:https://www.cnblogs.com/dc0012/p/8799352.html

时间: 2024-10-07 16:46:05

第二章、二进制运算、字符编码、数据类型总结的相关文章

第二章 集合 字符编码

集合 定义:有一个或多个确定的元素所构成的整体叫做集合. 特征: 1. 确定性(元素必须可hsah) 2. 互异性(去重) 3. 无序性(集合中的元素没有先后之分) 集合存在的意义就在于去重和关系运算 集合的创建: s = {} 创建一个字典 s = {1} 创建一个集合 集合的关系运算 交集 取出两个集合中共有的元素 s.intersection(s1) s & s1 差集 s.difference(s1) s - s1 从s中把s1中有的元素都去掉,通俗来讲就是:你有的我通通不要. 并集 s

python 第二章 二进制运算、字符编码、数据类型

>>> len(s.ljust(50,'*'))50>>> 1.二进制转换: bin(342) '0b101010110' 2.ASCII码与二进制: 每一个ASCII码都是用8位表示,ASCII码一共有255个.每一位0或者1所占的空间单位为bit(比特),这是计算机中最小的表示单位,8位表示一个字节. 8bit = 1bytes(字节),最小的存储单位,1bytes缩写为1B 1KB = 1024B 1MB = 1024KB 1GB = 1024MB 1TB = 1

第二章:深入C#数据类型

封装: 官方定义: 封装又称信息隐藏,是指利用抽象数据类型(自定义类UserInfo)将数据和数据的操作结合在一起,使其构成一个不可分割的独立实体,尽可能的隐藏内部的细节,只保留一些对外接口,使之于外部发生联系. 两种体现: 1.把方法和属性封装到类中 2.将私有字段封装成共有属性 封装的优点: 第一:代码重用; 第二:不必关心具体的实现; (方法) 第三:面向对象三大特征之一; 第四,具有安全性! 数组: int [] num={1,2} num:当中保存的是内存中的地址如:0X001 num

第二章 醒来 《编码世界》

宋海穿越到这个编程世界上的这个人,也叫宋海,是百花谷大长老当年在海边捡的孤儿,因为当时脖子上挂着一个写着宋的宝石,然后大长老就给这个孤儿取名叫宋海. 心里想着,宋海急忙摸了摸脖子上的东西,东西还在,他坐了起来看了看,挺大的一块蓝宝石.应该能买个好几七万吧,宋海心里想着,“哈哈,这下发了.”他还大笑了起来. 他突然停止了大笑,又一副郁闷的表情“哎,我现在在异世界啊,想买宝石也不知道哪里买啊.” 他努力回想着,回想着编程世界宋海晕倒之前的事.昨天宋海和路平在一起. 说起路平其实和他一样也是个孤儿,也

Python之路-字符编码&数据类型补充(待更新)

作业 三级菜单程序 history =[menu] while True: for item in history[-1]: print(item) choice = input("input your choice :").strip() if choice == 'b' and len(history) > 1: history.pop() elif choice == 'q': break else: if choice in history[-1]: history.ap

数据结构总结 第二章 线性表 抽象数据类型的具体实现

#include<stdio.h> #include<stdlib.h> #include<iostream> #define MAXSIZE 1000 #define ERROR 0 #define OK 1 using namespace std; typedef int Status; typedef int ElemType; /////////////线性表定义(顺序表)//////////////////////// typedef struct { Ele

《Python编程:从入门到实践》第二章 变量和简单数据类型 习题答案

#2.1 print("Hello world!"); #2.2 message="Hello,Python!"; print(message); #2.3 name="tian jiale"; print(name+",would you like to learn some Python today?"); #2.4 #小写 print(name.lower()+",would you like to learn

第二章 变量,数据类型和运算符

第二章 &变量,数据类型和运算符 英文新识: double 双精度浮点 string  字符串 character  字母 integer  整数 Scanner  扫描仪 score  分数         name  名字     boolean  布尔   true  真          false  假 语法新知: double score =98.5; //声明双精度浮点型变量score存储分数 String name="张大侠";        //声明字符串型变

第二章知识梳理

思维导图 基本数据类型 布尔型bool 整型:int.short.long 浮点型:float.double.long double 字符型:char 枚举型:enum 运算表达式(注意运算优先级) 算数:+.-.*./.% 赋值:=   例:a=4 逗号:,  例:a=3*5,a*4 逻辑:<.<=.>>=.==.!=.!.&&.|| 条件:_?_:_ sizeof: sizeof(类型名)       sizeof 表达式 位运算:注意二进制比特位运算 基本控制