首页 > 代码库 > Python 之路 Day02 -基础数据类型及编码详解

Python 之路 Day02 -基础数据类型及编码详解

 

基础篇


本章大纲:

字符编码和解释器编码详解
   
变量命名规则
  
基础数据类型(一) int
 
基础数据类型(二)  string
 
基础数据类型(三) bool
 
基础数据类型(四) list

基础数据类型(五) tuple
 
基础数据类型(六) dict

基础数据类型(七) set
 
补充可迭代对象的循环连接及enumerate输出
 
字符编码和解释器编码详解

 一,编码的重要性:
1.1 文件编码和字符编辑编码及读取编码
#!/usr/bin/env python
#-*- coding:utf-8 -*-

with open(‘acsii_01‘,‘a+‘,encoding=‘utf-8‘) as f:
    f.write(‘李杰‘+‘\n‘)

with open(‘acsii_01‘,‘r‘,encoding=‘utf-8‘) as f:
    data = http://www.mamicode.com/f.read()>

技术分享

技术分享

总结:

  注明: 对待file操作的编码问题。注明文件的编码可以是任何编码格式。但是写入的编码必须和读取的编码一致。其实这就涉及到文件存储编码问题了。下面我们可以二进制的格式读取file看看不同的编码格式的在文件中存储的方式:
 
技术分享

技术分享

 另外如果读取文件的时候使用到时rb模式。就不需要指定encoding。encoding的作业就是当你的file操作的编码不是utf-8(python3字符操作的默认编码是utf-8),就需要你指定读取文件的为指定的编码了。
#!/usr/bin/env python
#-*- coding:utf-8 -*-


with open(‘acsii_01‘,‘rb‘) as f:
    data=http://www.mamicode.com/f.read()>

  技术分享

技术分享

技术分享

技术分享

 

 

 总结:

      字符编码注意读写的编码要一直。另外文件操作的file编码和读写的编码其实关系。只要是你写入的编码和读取的编码一致就可以正常读取文件。建议文件操作的时候指定文件读写的编码。当然如果是读取的mode是rb的话,就没有必要去指定编码格式了。
       
      其次字符编码和python解释器编码是不同的。python解释器的编码是作用于编译python过程去读取生产字节码。字符编码是对字符操作的。
  
 
变量命名规则
 一,变量的命名规则:
  1,不能以字母开头
  2,不能以内置变量相同。
  3,不能以特殊含义的字符开头
 


基础数据类型(一) int
 
一,整形
a=1

  

基础数据类型(二)  string
 
二,string的常用方法如下:
#字符串首字母大小。其他的字母小写
s=‘alxE\ttianTao3‘
data=http://www.mamicode.com/s.capitalize()>

 

 字符串切片上章节



基础数据类型(三) bool
 
三,bool类型的值和判断规则
print(bool(1))
print(bool(0))
print(bool(-1))


 

总结:

‘‘‘
总结 bool类型
0为假 非0为真
空位假 非空为真 (字符和对象都可以判断)

‘‘‘

基础数据类型(四) list
 
四,list方法总结
#####################################list###############################
#注意列表是可变元素故此有一些方法或者属性可以直接在列表上操作。或者有返回值


#添加列表元素
list1=[]
v=list1.append(‘alex‘)
print(v)
print(list1)

#清空列表元素
v=list1.clear()
print(v)
print(list1)


#浅copy元素
#浅拷贝,只拷贝了父对象,不会拷贝父对象中的子对象;deepcopy 是深拷贝,可以认为是完全的复制过去了;
list1=[1,2,3,[1,2,3,4]]
list2=list1.copy()

list1[-1][0]=2
print(list1,list2)


list1[0]=2
print(list1,list2)



#count计数
list1=[1,2,3,4,5,5]
data=http://www.mamicode.com/list1.count(5)>

  


基础数据类型(五) tuple


五,元祖类实例化方法如下:
#index通过value找index
tuple1=(1,2,3,4)
data=http://www.mamicode.com/tuple1.index(3)>

  

基础数据类型(六) dict

六,字典实例化对象方法如下:
#clear清空
dict1={‘v1‘:‘alex‘,‘v2‘:‘tian‘}
dict1.clear()
print(dict1)


#copy浅copy
dict1={‘v1‘:‘alex‘,‘v2‘:‘tian‘}
dict2=dict1.copy()
print(dict2)


#fromkeys 字典的静态方法 循环list创建字典
#注意key必须不可变元素。另外value修改,其他的元素也会被修改
dict1=dict.fromkeys([‘v1‘,‘v2‘],123)
print(dict1)


#get方法获取指定key的value
dict1={‘v1‘:‘alex‘,‘v2‘:‘tian‘}
data=http://www.mamicode.com/dict1.get(‘v1‘)>

  

基础数据类型(七) set

七,set集合对象实例化方法如下:
#add 增加一个元素
set1={1,2,4,5}
data=http://www.mamicode.com/set1.add(‘6‘)>

  

补充可迭代对象的循环连接及enumerate输出及总结
 
一,可迭代对象的连接成字符串 ‘‘.join()
#可迭代对象的链接及输出
str1=‘alex‘
str1=‘+‘.join(a)
print(str1)


list1=[‘1‘,‘2‘]
list1=‘+‘.join(list1)
print(list1)


tuple1=(‘1‘,‘2‘)
tuple1=‘+‘.join(list1)
print(tuple1)

dict1={‘v1‘:‘alex‘,‘v2‘:‘tian‘}
dict1=‘+‘.join(list1)
print(dict1)

set1={1,2,3}
set1=‘+‘.join(set1)
print(set1)

  

总结:  
       1,可迭代对象都可以用join方法去迭代连接字符串
 
 二,循环输出可迭代对象
#enumerate方法返回一个[(index,enumer)]
data=enumerate(list1)
print(data)
for line in data:
    print(line)

data=enumerate(list1)
for index,enum in data:
    print(index,enum)

  

总结:
  1,注意迭代器赋值给一个对象后。如果迭代器__next__已经循环结束。后面的这个对象就不会再有元素能迭代了,故此迭代结束
      2,enumerate方法返回一个元素是tuple的列表  [(index,enumer)] 
 
 

Python 之路 Day02 -基础数据类型及编码详解