例2.2数值类型不可改变
i = 3
print(id(i))
i += 1
print(id(i))
例2.3字符串的访问
str = 'Picture'
print (str[1:3]) # 第二、三个字符
print (str[-3:-1]) # 倒数第二、三个字符
print (str[3:-1]) # 正数第四个到倒数第二个字符
print (str[-6:7]) # 倒数第六个到正数第七个字符
print (str[2:]) # 第三个字符开始的所有字符
print (str * 2) # 输出字符串两次
print (str + "TEST") # 连接字符串
例2.4字符串赋值
word = 'Python'
print(word[0], word[5])
print(word[-1], word[-6])
如果继续添加一行语句:
word[0] = Q'
例2.5列表的访问。
list = [ 'a', 56 , 1.13, 'HelloWorld',[7,8,9] ]
print(list) #完整列表
print(list[4]) # 第五个元素
print(list[-2:5]) # 从倒数第二个到正数第五个元素
print(list[2:]) # 第三个元素开始的所有元素
例2.6列表元素的修改。
a = [1, 2, 3, 4, 5, 6]
a[0] = 9 # 将第一个元素设为9
print(a)
a.append(7) # 在列表末尾追加7
print(a)
a[2:5] = [] # 将第三到五个元素值设置为空值
print(a)
a.pop(2) # 将第三个元素移除
print(a)
例2.7列表的遍历。
lis= ['蚂蚱','螳螂','蝈蝈','蝗虫','蛐蛐']
#(1)直接遍历
for item in lis:
print(item)
#(2)按索引遍历
for i in enumerate(lis):
print(i)
#(3)对于列表类型,还有一种通过下标遍历的方式,如使用range()函数
for i in range(len(lis)):
print(lis[i])
例2.8元组的访问。
tuple = ( 'SpiderMan',2017 ,33.4, 'Homecoming', 14 )
tinytuple = (16, 'Marvel')
print (tuple) # 输出完整元组
print (tuple[0]) # 输出元组的第一个元素
print (tuple[3:4]) # 输出从第二个元素开始到第三个元素
print (tuple + tinytuple) # 连接元组
例2.9修改元组中的List类型数据项。
tuple = ([16, 'Marvel'] , 'SpiderMan',2017 ,33.4, 'Homecoming', 14,)
print(tuple[0])
tuple[0][0]='Marvel'
tuple[0][1]='16'
print (tuple)
例2.10字典的访问。
dict = {'Name': 'Mary', 'Age': 7, 'Class': 'First'};
print(dict);
print("Name: ", dict['Name'])
print("Age: ", dict['Age'])
例2.11列表可以作为字典的value值。
dict = {'Name': ['Mary','Tom','Philp'], 'Age': [7,8,9], 'Class': ['1st','2nd','3rd']};
print(dict);
print("Name: ", dict['Name'])
dict['Age']=[8,9,10]
print("Age: ", dict['Age'])
例2.12修改字典。
dict = {'Name': 'Zara', 'Class': 'First'};
#添加add
dict['Gender']="Female"
print(dict)
#修改update
dict.update({"No":"001"})
print(dict)
#也可以使用update方法添加/修改多个数据
dict.update({'Gender':"F","Id":1})
print(dict)
例2.13删除字典元素。
del dict['Gender']
print(dict)
dict.clear()
print(dict)
例2.14创建集合。
#创建一个空集合
var = set()
print(var,type(var)) #显示集合内容和类型
#具有数据的集合
var = {'LiLei','HanMeiMei','ZhangHua', 'LiLei', 'LiLei'}
print(var,type(var)) #显示集合内容和类型
例2.15集合成员检测。
#判断元素在集合内
result = 'LiLei' in var
print(result)
#判断元素不在集合内
result = 'lilei' not in var #大小写敏感
print(result)
例2.16增加、删除集合元素。
var = {'LiLei','HanMeiMei','ZhangHua'}
var.add('LiBai') #add方法添加元素
print(var)
var.update('DuFu') #update方法首先拆分元素,然后各个添加
print(var) #数据项无序,且去除重复项
var.remove('D')
var.remove('F')
var.remove('u')
print(var)
例2.17有一个集合anml,其内容为{'紫貂','松貂','青鼬','狼獾’},对anml集合进行遍历。
方法一:
anml ={'紫貂','松貂','青鼬','狼獾'}
for item in anml:
print(item)
方法二:
anml ={'紫貂','松貂','青鼬','狼獾'}
for item in enumerate(anml):
print(item)
例2.18集合的交集、并集(合集)、差集。
#分别构造獾和貂两个集合
Huan={'猪獾','蜜獾','狼獾',}
Diao={'紫貂','松貂','美洲水鼬','狼獾'}
#交集
DiaoXiong=Huan&Diao
print('貂熊是:',DiaoXiong)
#并集
Youke=Huan|Diao
print('鼬科的是:',Youke)
#差集
DiaoT=Diao-Huan
print('除去獾的貂类:',DiaoT)
例2.19打开文件并写入数据。
filename = 'INFO.txt'
f=open(filename,'w') #清空原文件数据,文件不存在则创建新文件
f.write("I am ZhangSanFeng.\n")
f.write("I am now studying in ECNU.\n")
f.close()
例2.21read()函数读取整个文件。
with open("INFO.txt") as f: # 默认模式为‘r’,只读模式
ct10 = f.read(5) # 读5个字符
print(ct10)
print('======')
contents = f.read() # 从当前位置,读文件全部内容
print(contents)
例2.22使用readline()函数逐行读取。
with open('data.txt') as f:
line1 = f.readline() # 读取第一行数据(此时已经指向第一行末尾)
line2 = f.readline() # 从上一次读取末尾开始读取(第二行)
print(line1)
print(line2)
print(line1.strip())
print(line2.strip())
print(line1.split())
例2.23使用readlines()一次读取多行:
with open('data.txt') as f:
lines = f.readlines() #文件数据读到一个列表,每个元素对应一行
print(lines) #每一行数据都包含了换行符
print('================================')
for line in lines:
print(line.rstrip()) #使用rstrip()处理空格
例2.24使用for循环逐行读取文件。
#逐行读取
with open('data.txt') as f:
for lineData in f:
print(lineData.rstrip()) # 去掉每行末尾的换行符
例2.25新建文本文件并写入内容。
filename = 'write_data.txt'
with open(filename,'w') as f: # 'w'表示写数据,会清空原文件
f.write("I am ZhangSanFeng.\n")
f.write("I am now studying in ECNU.\n")
例2.29读取无标题数据并设置标题名。
import pandas as pd
data1=pd.read_table('data.txt',sep=' ',header=None,names=["H","W","C"])
print(data1)
例2.31使用loadtxt读取文件。
import numpy as np
# 采用字符串数组读取文件
tmp = np.loadtxt("data.txt", dtype=np.str, delimiter=" ")
print(tmp)
print("----分隔线-----------")
tmp1 = np.loadtxt("data.txt",dtype=np.str,usecols=(1,2))
print(tmp1)
例2.32使用savetxt函数存数据。
import numpy as np
x = y = z = np.arange(0,50,4.5)
#把X数组保留一位小数写入文件
np.savetxt('X.txt', x, delimiter=',',fmt='%5.1f')
#把X数组保留三位小数写入文件
np.savetxt('formatX.txt', x, fmt='%7.3f')
#把三个数组按原格式写入文件
np.savetxt('XYZ.txt', (x,y,z))