ASCII的255个字符,最长不过是11111111,那么全都是八位,不足的用0补齐。每个0或1都占1bit(比特),8bit = 1 bytes字节,是最小的存储单位,写作1B 然后,1KB = 1024B 1MB = 1024KB...

英文程序员就圆满了。

GB2312是中国制定的中文的编码Unicode把所有语言的编码都统一在了一起。ASCII编码是一个字节,而Unicode通常是两个字节;字母A用ASCII编码是十进制的65,二进制的01000001;字符0用ASCII编码是十进制的48,二进制的00110000;汉字“中”已经超出了ASCII编码的范围,用Unicode编码是十进制的20013,二进制的01001110 00101101。你可以猜测,如果把ASCII编码的A用Unicode编码,只需要在前面补0就可以,因此,A的Unicode编码是00000000 01000001。新的问题又出现了:如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。所以,本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间:字符    ASCII    Unicode    UTF-8
A    01000001    00000000 01000001    01000001
中    x    01001110 00101101    11100100 10111000 10101101
从上面的表格还可以发现,UTF-8编码有一个额外的好处,就是ASCII编码实际上可以被看成是UTF-8编码的一部分,所以,大量只支持ASCII编码的历史遗留软件可以在UTF-8编码下继续工作。在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。文件存取编码转换图常用编码介绍一览表
编码    制定时间    作用    所占字节数
ASCII    1967年    表示英语及西欧语言    8bit/1bytes
GB2312    1980年    国家简体中文字符集,兼容ASCII    2bytes
Unicode    1991年    国际标准组织统一标准字符集    2bytes
GBK    1995年    GB2312的扩展字符集,支持繁体字,兼容GB2312    2bytes
UTF-8    1992年    不定长编码    1-3bytes

View Code

猜年龄的游戏,猜三次,超过三次则退出。点:循环次数的控制,分支控制,退出循环

age = 56
for i in range(3):inputage = int(input("请输入年龄:") )if inputage == age :print('you got it')breakif inputage > age :print('think samller')if inputage  <age :print("think bigger")
else :print("you have tied too many times")

View Code

python的列表(就是js中的数组,我老是忘记)和深浅copy

import copya = [1,2,3,[4,5]]
b = a
print('a的内存地址:',id(a))
print('b的内存地址:',id(b))
a[3][1] = 10
b[3][0] = 200
print('a的值:%s'%a)
print('b的值:%s'%b)#深copy
c = [1,2,3,[4,5]]
d = copy.deepcopy(c)
e = c[:]#切片的方式生成
print('c的内存地址:',id(c))
print('d的内存地址:',id(d))
print('e的内存地址:',id(e))
c[3][1] = 10
d[3][0] = 200
print('c的值:%s'%c)
print('d的值:%s'%d)
#深copy是把c的值复制了之后,还同时指向了新的内存地址,所以两个变量的改变都是独立的,互不影响的

View Code

与js中数组不一样的是, python的列表下标可以是负数,-1即表示取倒数第一个

各种操作

 1 # 切片操作(通过下标取一个或者多个的值,可以看做是字符串截取的加强版)
 2
 3 names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
 4 print('取下标1至下标4之间的数字,包括1,不包括4:',names[1:4])  #取下标1至下标4之间的数字,包括1,不包括4
 5 print('取下标1至-1的值,不包括-1:',names[1:-1])  #取下标1至-1的值,不包括-1
 6 print('从头开始取:',names[0:3])
 7 print('从头开始取,0可以忽略,跟上句效果一样:',names[:3])  #如果是从头开始取,0可以忽略,跟上句效果一样
 8 print('#如果想取最后一个,必须不能写-1,只能这么写:',names[3:])
 9 print('这样-1就不会被包含了:',names[3:-1])  #
10 print('后面的2是代表,每隔一个元素,就取一个:',names[0::2])  #
11 print('后面的2是代表,每隔一个元素,就取一个,前面的0可以省略',names[::2])  #和上句效果一样
12
13 #append 追加
14 print('追加之前最后一个值:',names[-1])
15 names.append('simon')
16 print('追加之后最后一个值:',names[-1]);#最后一个值变成了追加的值
17
18 #插入 insert 追加是在默认加到最后面,insert是有序的加入
19 print('before insert 【2】',names[2])
20 names.insert(2,'占领原来下标为2的地盘')
21 print('after insert 【2】',names[2])
22
23 #修改
24 print('before update 【2】',names[2])
25 names[2] = '更新一下就好了'
26 print('after update 【2】',names[2])
27
28 #删除
29 del names[2] #根据下标删除值
30 print(names)
31 names.remove('Amy')  #删除指定元素,不同于js的删除,python的删除会连元素值和位置都删掉
32 names.pop() #删除最后一个元素
33
34 #两个列表合并
35 b = [1,2,3,'Alex']
36 names.extend(b)
37 print(names) #把b中的元素都加入到names中,并且,并不会去重。
38
39
40 #统计
41 print(names.count('Alex')) #得到个2
42
43 #排序和翻转
44 names2 = ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
45 #执行 print(names2.sort()) 会报错,因为3.0+的python不能把str和int一起排序
46 names3 = ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', '1', '2', '3']
47 names3.sort() #排序
48 print(names3)
49 names3.reverse()#翻转
50 print(names3)
51
52 #获取下标
53 simon = ['simon','lily','penny','simon']
54 print(simon.index('simon'))#只返回找到的第一个下标

View Code

python的元祖

1 #定义了之后不能单独修改或者增添元素,但可以整个再重新赋值,便不能再修改,又叫只读列表
2 #所以python的切片取值同样可以用于元祖
3 #这里是个随便的例子
4 n1 = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
5 print(n1[1:4])  #取下标1至下标4之间的数字,包括1,不包括4
6 n2 = ("Alex","Tenglan","Eric","Rain","Tom","Amy")
7 print(n2[1:4])

View Code

python的字典

key-value的形式,类似json对象,json对象怎么玩,这就可以怎么玩

info = {'stu1101': "TengLan Wu",'stu1102': "LongZe Luola",'stu1103': "XiaoZe Maliya",
}
#直接获取所有的keys,values
print('keys:',info.keys())
print('values:',info.values())#attention 通过keys找的时候,最好使用,因为直接获取的方式,在找不到的时候会报错
print(info.get('stu'))
print(info('stu'))#这个会报错#遍历
for simon in enumerate(info):#enumerate的自动加序号功能,有时候还是有用的,注意下print(simon)for i,t in info.items():#会先把dict转成list,数据里大时莫用print(i,t)#字典玩的比较6的话,就要做好三级菜单的作业了

View Code

python的集合

感觉不是很常用,copy下大王的代码以备不时之需

s = set([3,5,9,10])      #创建一个数值集合
t = set("Hello")         #创建一个唯一字符的集合
a = t | s          # t 和 s的并集
b = t & s          # t 和 s的交集
c = t – s          # 求差集(项在t中,但不在s中)
d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  #基本操作:
t.add('x')            # 添加一项
s.update([10,37,42])  # 在s中添加多项  #使用remove()可以删除一项:
t.remove('H')
len(s)
set 的长度  x in s
#测试 x 是否是 s 的成员  

x not in s
#测试 x 是否不是 s 的成员  

s.issubset(t)
s <= t
#测试是否 s 中的每一个元素都在 t 中  

s.issuperset(t)
s >= t
#测试是否 t 中的每一个元素都在 s 中  

s.union(t)
s | t
#返回一个新的 set 包含 s 和 t 中的每一个元素  

s.intersection(t)
s & t
#返回一个新的 set 包含 s 和 t 中的公共元素  

s.difference(t)
s - t
#返回一个新的 set 包含 s 中有但是 t 中没有的元素  

s.symmetric_difference(t)
s ^ t
#返回一个新的 set 包含 s 和 t 中不重复的元素  

s.copy()
#返回 set “s”的一个浅复制

View Code

三级菜单

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

menu = {'北京':{'海淀':{'五道口':{'soho':{},'网易':{},'google':{}},'中关村':{'爱奇艺':{},'汽车之家':{},'youku':{},},'上地':{'百度':{},},},'昌平':{'沙河':{'老男孩':{},'北航':{},},'天通苑':{},'回龙观':{},},'朝阳':{},'东城':{},},'上海':{'闵行':{"人民广场":{'炸鸡店':{}}},'闸北':{'火车战':{'携程':{}}},'浦东':{},},'山东':{},
}
# 连续回上级的时候,要连续读取上级的上级的上级。我这里采用的是记录每次输入的目录名,返回的时候遍历出对应的目录
cur = menu  # 记录当前节点下可选的目录
his = []    # 记录存在的输入历史
while 1:for list in cur:    # 遍历打印可选目录print(list)choose = input('输入exit退出程序,输入back返回上一层,请输入:').strip()if choose in cur:   # 输入的内容存在的时候记录下,并更新当前目录
        his.append(choose)cur = cur[choose]elif choose == 'back':  # 输入back的时候,去掉记录的最后一笔记录,同时更新当前可选目录if his:his.pop()temp = menu         # his记录的是当前输入存在的总历史,遍历以读取当前目录for i in his:temp = temp[i]cur = tempelif choose == 'exit':exit() # 输入exit的时候,退出程序

View Code

参考大王的博客整理:http://www.cnblogs.com/alex3714/articles/5717620.html

转载于:https://www.cnblogs.com/Simonsun002/p/8511966.html

整理python笔记001(列表(深浅copy),元祖,字典,集合)相关推荐

  1. python 列表 元祖 字典 集合_python基础知识之列表、元祖、字典、集合、字符串。...

    1.可变类型之列表 列表用 [ ]来定义是可变的,可以通过索引值来去查询里面的字段可以可以追加,删除等 ```python names='zhangyang guyun xiangpeng xulia ...

  2. python列表元祖字典集合运算_Python基础5:列表 元祖 字典 集合 Json

    [ 列表] 列表(list)是Python以及其他语言中最常用到的数据结构之一.Python使用使用中括号 [ ] 来解析列表. 列表是可变的(mutable)--即:可以改变列表的内容. 相关操作: ...

  3. python 列表 元祖 字典 集合_python中列表、元祖、字典和集合

    list 允许重复的集合,是有序的:即元素可以是一样的,也可以修改元素: tuple 允许重复的集合,是有序的:但子元素是不可以修改的 dict   允许重复的集合,是无序的:元素是可以修改的 set ...

  4. python 常用字符串 列表元祖字典都 自带的函数方法

    上节内容回顾和补充编程语言高级低级Python种类JavaPythoncPython *****pypy字节码 和 机器码Python程序:1. 终端:C:\python35\python.exe D ...

  5. python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍

    目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...

  6. python字典、列表、元祖使用场景_python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍...

    python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 元祖跟列表类似.只不过是有区别的. 如下: tuple(元祖英文) 跟列表类似, 元素不能 ...

  7. python中元祖 字典 列表的区别_Python中元祖,列表,字典的区别

    原博文 2016-08-16 15:25 − Python中有3种內建的数据结构:列表.元祖和字典: 1.列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目. 列表中的 ...

  8. 元祖字典 java_元祖和字典

    元祖的定义 Tuple 元祖与列表类似,不同之处在于元祖中 元素不能修改 元祖表示多个元素的序列 元祖在python中,有特定的应用场景 元祖用于存储 一串信息,数据之间用逗号分隔 元祖用 ( ) 定 ...

  9. Python笔记_07_列表的相关操作_列表相关函数_深浅拷贝_字典相关函数_集合相关函数_冰冻集合

    笔记目录 列表的相关操作 列表的拼接(同元组) 列表的重复 (同元组) 列表的切片 (同元组) 列表的获取 (同元组) 列表的修改 (可切片) 列表的删除 ( 可切片 ) 列表的相关函数 append ...

  10. 初学者python笔记(列表的食用方法)

    本篇是关于可迭代对象中的列表一些相关使用方法的记录. 可迭代对象简单描述:可以被for循环执行的对象(字符串,列表,元组,字典-) input()方法接收的其实只是字符串 a = input(&quo ...

最新文章

  1. Forest Program dfs+tanjar仙人掌
  2. IPVS: Can't initialize ipvs: Protocol not available解决方法
  3. Pandas选择一列或者多列数据
  4. 第十五届智能车竞赛不公平竞争情况反映以及审议结果
  5. Codeforces 1254C/1255F Point Ordering (交互题)
  6. n 个整数的无序数组,找到每个元素后面比它大的第一个数,要求时间复杂度为 O(N)
  7. QT的QGLWidget类的使用
  8. POJ2481-Cows【树状数组】
  9. 3617. 子矩形计数
  10. CSS中position的4种定位详解
  11. 机器学习中的Numpy库基础——向量、矩阵和数组
  12. [Linux]文件的atime ctime mtime
  13. linux 后台运行_Linux系统后台运行应用三板斧
  14. [Java] 蓝桥杯ADV-171 算法提高 身份证号码升级
  15. 题解 P2163 SHOI2007 园丁的烦恼
  16. HTML 标签的 enctype 属性
  17. 18个国外优质图片素材
  18. 用树莓派3B+实现智能语音识别
  19. Centos7 虚拟机迁移及扩容
  20. Android仿微信地图定位和位置选择(上)

热门文章

  1. c语言元素累积的计算,C语言:计算输出给定数组中每相邻两个元素的平均值的平方根之和。...
  2. redis内核单元测试框架
  3. 执行cmd并获得结果_用JAVA执行CMD命令备份PG数据库,解决需要口令的问题
  4. qwidget设置背景颜色_Python+PyQt编程示例:设置窗口背景色及分割条颜色
  5. 【渝粤教育】国家开放大学2018年春季 0299-21T中国古代文学(1) 参考试题
  6. 【渝粤教育】国家开放大学2018年春季 0092-22T民法 参考试题
  7. 正则校验日期,不考虑闰年和闰月
  8. TortoiseSVN 使用详细步骤(三):安装
  9. 字符串转码中文乱码问题的进一步理解 UTF-8 GBK转码
  10. nodejs中Async详解之一:流程控制