码迷,mamicode.com
首页 > 编程语言 > 详细

python 基础一

时间:2018-03-29 00:11:40      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:com   lin   ima   技术分享   font   byte   获取   utf-16   nio   

 

  • 列表、元组操作
  • 字符串操作
  • 字典操作
  • 集合操作
  • 文件操作
  • 字符编码与转码

 

列表、元组操作

切片

>>> names = ["test","Tenglan","Eric","Rain","Tom","Amy"]
>>> names[1:4]            #取下标1至下标4之间的数字,包括1,不包括4
[Tenglan, Eric, Rain]
>>> names[1:-1]           #取下标1至-1的值,不包括-1
[Tenglan, Eric, Rain, Tom]
>>> names[0:3] 
[test, Tenglan, Eric]
>>> names[:3]             #如果是从头开始取,0可以忽略,跟上句效果一样
[test, Tenglan, Eric]
>>> names[3:]             #如果想取最后一个,必须不能写-1,只能这么写
[Rain, Tom, Amy] 
>>> names[3:-1]           #这样-1就不会被包含了
[Rain, Tom]
>>> names[0::2]           #后面的2是代表,每隔一个元素,就取一个
[test, Eric, Tom] 
>>> names[::2]           #和上句效果一样
[test, Eric, Tom]

追加操作--append

 技术分享图片

插入操作

技术分享图片

修改操作

技术分享图片

删除操作

技术分享图片

扩展操作

技术分享图片

拷贝操作

技术分享图片

统计操作

技术分享图片

排序和反转操作

技术分享图片

获取索引值操作

技术分享图片

元组操作

技术分享图片

 

字符串操作

技术分享图片

 

format函数和join函数

技术分享图片

 

 replace函数

技术分享图片

 

字典操作

技术分享图片

 

增加操作

技术分享图片

 

修改操作

技术分享图片

 

删除操作

技术分享图片

 

查找操作

技术分享图片

 

其他操作

技术分享图片

 

循环

技术分享图片

 

集合

集合是一个无序的,不重复的数据组合,它的主要作用如下:
去重,把一个列表变成集合,就自动去重了
关系测试,测试两组数据之前的交集、差集、并集等关系

技术分享图片

技术分享图片

技术分享图片

 

示例

l1 = [1,2,5,3,6,7,9]
l2 = [2,3,5,8,9]

①、设置一个集合
list_1 = set(l1)                ###设置一个集合
print (type(list_1))            ###打印类型,为集合        

打印结果:
{1, 2, 3, 5, 6, 7, 9} <class set>

②、交集/并集/差集/对称差集

###交集  (&
c = l1.intersection(l2)
#print (c,type(c))

###并集 (|
d = l1.union(l2)
print (d,type(d))

###差集 (-

e = l1.difference(l2)            ###l1里面有,但是l2里面没有
print (e)
f = l2.difference(l1)            ###l2里面有,但是l1里面没有
print (f)

####子集

g = l1.issubset(l2)
print (g)                           ###返回false,这里l1不是l2的子集

####父集

h = l1.issuperset(l2)
print (h)                           ####返回fasle,这里l1不是l2的父集

###对称差集(把两个集合里互相没有的取出来)^)
i = l1.symmetric_difference(l2)
print (i)


③、增删改查

添加:
     l1.add(x)            ###添加一项
   l1.update(1,2,3)        ###添加多项
删除:
         pop         ###删除一个元素并打印删除的返回值
         remove      ###删除指定的元素
       

 

 文件操作

对文件操作流程
1.打开文件,得到文件句柄并赋值给一个变量
2.通过句柄对文件进行操作
3.关闭文件

f = open("aaaa",encoding="utf-8")             # 打开文件
first_line = f.readline()
print(first line:, first_line)              # 读一行
print(我是分隔线.center(50, -))        

#打印结果
----------------------我是分隔线-----------------------

data = f.read()                  # 读取剩下的所有内容,文件大时不要用
print(data)              # 打印文件

all_lines = f.readlines()
print ("all_line:",all_lines)        ###读取所有行

f.close()                      # 关闭文件


#打印前5行
for i in range(5):
    print (f.readline())

 

#####一行一行的读取(推荐使用,比较高效)

f = open("aaaa")          # 打开文件

count = 0
for line in f:

    if count == 2:
        print ("llall")
        count += 1
        continue
    print (line)
    count += 1

简写:

count = 0
for line in f:
    print(line)
    count += 1
    if count == 2:
        print ("llall")
        continue


####一次性读取所有文件内容
打印前10行,如果打印到第6行时跳过(读取时直接读取所有到内存,遇到大文件不适合用):

for index,value in enumerate(f.readlines()):    ####enumerate枚举,下标从0开始,
    if index == 2:
        print ("daf")                        ###此处可不写,直接跳出循环从新开始
        continue

 

技术分享图片

 

编码解码

1.在python2(先转成unicode,先decode成unicode在encode成gbk或者utf-8)默认编码是ASCII, python3里默认是unicode bytes编码的经过decode 成中文字符串

2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间

3.在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string

 示例:


import sys
print(sys.getdefaultencoding())


msg = "我爱北京天安门"                                    ##此时为unicode
msg_gb2312 = msg.encode(encoding="gb2312")                ###此时只能encode
gb2312_to_gbk = msg_gb2312.decode("gbk").encode("gbk")

print(msg)
print(msg_gb2312)
print(gb2312_to_gbk)


打印结果:

utf-8
我爱北京天安门
b\xce\xd2\xb0\xae\xb1\xb1\xbe\xa9\xcc\xec\xb0\xb2\xc3\xc5
b\xce\xd2\xb0\xae\xb1\xb1\xbe\xa9\xcc\xec\xb0\xb2\xc3\xc5


所有的转码必须先转成unicode
在从encode成“utf-8”或者“gb-2312

 

python 基础一

标签:com   lin   ima   技术分享   font   byte   获取   utf-16   nio   

原文地址:https://www.cnblogs.com/FRESHMANS/p/8666475.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!