Python 基本数据类型讲解
一:数据类型
1、 不可变数据类型
string,int ,tuple 常量
字符串不可变之再探
对字符串中的某一字符重新赋值string[1] = ‘a’ ,这样可以吗?
答:自然是不可以的,string数据类型是不可变的
2、 可变数据类型变量
dict 字典类型
list 列表类型
二、深入研究字符串
序列到底是什么
1 三个符号的区别 ”,”“,”“” “”“
‘’,与‘’‘’没有区别,都是表示一个字符串序列
“”” :当一行无法存放下一个长字符串时使用它
str1='123'
str2='123'
str3='''1
2
3'''
str1/str2/str3 都相同
2 偏移量从0开始
#查找字符串中的某一元素,是从下标0开始的
#想获取字符串中的一个子串,使用[:]方法
str='123456'
#获取'34'
s1=str[2:4] #获取下标从2到4的元素(但不包括4,是一个左开右闭的区间)
s2=str[2:] #获取从下标2直到末尾的元素
s3=str[:4]
3 如何修改字符串之replace,find
replace
#replace函数用来替换字符串中的某一个子串,替换成新的子串
str='123456'
s1=str.replace('23','aa')#将str字符串中的子串‘23’替换成子串‘aa’
#在保护隐私方面可以使用replace,隐藏电话号码
phone_number = '1386-666-0006'
hiding_number = phone_number.replace(phone_number[:9],'*' * 9)
print(hiding_number)
find
#find 用来查找字符串中的一个子串,返回它的索引位置
#若不存在,返回-1
str='123456'
index=str.find('23') #返回索引位置1
search = '168'
num_a = '1386-168-0006'
num_b = '1681-222-0006'
print(search + ' is at ' + str(num_a.find(search)) + ' to '+ str(num_a.find(search) + len(search)) + ' of num_a')
print(search + ' is at ' + str(num_b.find(search)) + ' to '+ str(num_b.find(search) + len(search)) + ' of num_b')
三 格式化细究
1 % 格式化方式
#使用%占位符,表示这里预留了一个位置
# %d 是一个整形
# %s 是一个字符串类型
string='my %s'%'word' #输出my word
str1 = '%d times %s' %(3,'exams') #输出3 times exams,需要按照元组中的顺序进行拼接
2 format格式化方式
format是字符串对象的一个内置函数
#在花括号里可以自定义顺序
string1 = 'my {1} {0}'.format('world','apple') #输出my apple world
#花括号里可以定义名字,这种方式更方便;
string2 = 'my {a} {b}'.format(a='world', b='apple')
3 为什么要用format
方式更多,更有用
#还可以用来输入字符然后插入字符串中
str1="this is {name}".format(name=input())
print(str1)
4 还有一个方法,字典来了。
以后再讨论字典方法,用的不常见
四 再议打开文件
一般方法
a = open("test.txt",'w')#写文件,若文件不存在,则创建该文件
a.write('abcd')
a.close()
a=open('test.txt','r')#打开文件
a.read(100) #文件指针指向末尾,一次读取100个字节的数据
a.seek(0)#将文件指针重置到文件开头
a.read(100)
a.close()
第二种文件操作方法:
标准库的介绍 linecache
import linecache#调用linecache库
a = open("test.txt",'w')#写文件,若文件不存在,则创建该文件
a.write('abcd\n123\n234325\n124')
a.close()
linecache.getline('test.txt',1)#读取第一行
linecache.getline('test.txt',2)#读取第二行
linecache.getline('test.txt',3)#读取第三行
linecache.getlines('test.txt')#读取文件所有行,将所有行存放到一个list中