python学习手册:第四章——python对象类型

python的单个变量长度不限

数字

数学模块math

  • math.pi:π
  • math.sqrt(85):开方
  • random模块,取随机数
import random
random.random() #随机生成一个数字
random.choice([1,2,3,4,5]) #从列表中随机选出一个数字

字符串

  • 字符串严格意义上来讲是单个字符组成的序列

    序列的操作

  • 获取长度:len(str)
  • 通过索引取值:str[0]
  • 反向索引:str[-1] #序列倒序索引从-1开始
  • []内可以为任何表达式,不仅仅是一个数字常量
  • 分片:str[1:3],包含左不包含右,str[1:3]截取的为str[1]+str[2]
  • 分片中左括号默认为0,右括号默认为str的长度,常用变体:
str = spam
str[:3] > 'spa'
s > "spam"
s[0:3] > 'spa'
s[:-1] > "spa"
s[:] > 'spam'
s[1:] > 'pam'
  • 字符串具有不可修改的特性,如果需要对字符串进行修改,另外使用+进行字符串拼接
str = 'spam'
str = s[:1]+'z'+s[2:] > 'szam'
s * 4 > 'spamspamspam'
  • 字符串find方法,查找指定字符(串)在母字符串中的位置:查到返回索引,未查到返回-1- replace方法
str = 'spam'
str.find('pa') > 1
  • 字符串replace方法:替换字符串指定子字符串,但是并不改变原字符串
s = 'spam'
r = s.replace('pa','xyz')
t = s,r
print(s,r,t) > 'spam'   'sxzm'  ('spam','sxyzm') #t为两个字符串组成的元组
  • 字符串通过分隔符拆分方法、大小写变换方法、测试字符串内容方法 去掉字符串后的空格字符
line = 'aaa,bbb,ccc'
line.split(',') > ['aaa','bbb','ccc'] #通过,进行字符串的分隔
line.upper() > 'AAA,BBB,CCC' # 边小写,lower
line.isalpha() > true #数字:isdigit,如果不全为字母则为Flase,数字同逻辑
s = "qwer\n" s.rstrip() > 'qwer' #去尾部空格
  • 字符串的格式化 format
'%s,eggs,and %s'%('spam','SPAM!') > 'spam,eggs...'
'{0},eggs,and {1}'.format('spam','SPAM!') > 'spam,eggs...'
  • 序列一般函数通用但是方法不通用,即序列通用的都是以XXX(XXX)形式的,不通用的都是XXX.XXX()形式的

    列表

  • append:在列表的最后增加一项,列表可以修改;pop:去掉列表指定索引的值;
l = ['a','b','c']
l.append('d') > ['a','b','c','d']
l.pop(2) > ['a','b','d']
l + [4,5,6] > ['a','b','d',4,5,6]
  • sort:排序方法,默认按照升序进行排序;reverse:翻转方法,对列表进行翻转
m = ['aa','cc','bb']
m.sort > ['aa','bb','cc']
m.reverse > ['cc','bb','aa']
  • 列表的解析,从一个嵌套列表中按照需要的规则提取出一个新的列表
a = '''a,b,c,d
q,w,e,r
t,y,u,i
'''
b = a.split() #使用空格作为分隔符时,不要使用a.split('\n'),否则会出现末尾带空字符的情况
c = []
for i in b :
    c.append(i.split(','))
col2 = [row[1] for row in c]

字典

  • 字典的创建及增加新元素方式
d = {'age':40,'job':'worker','name'='bob'}
d['age'] = 30 #可以直接通过键对对应的值进行修改
d['cat'] = 2 #可以直接增加新键

创建方式2:
d{}
d['name'] = 'bob'
d['age'] = 38
  • 字典嵌套,字典可以任意与字典,列表进行嵌套
rec = {
    'name' : {'first': 'bob','last':'tom'},
    'job':['dev','mgr']
    'age':40
}
rec['name']['first'] > 'bob'
rec['job'][-1] > 'mgr'
#嵌套列表的字典的扩展:
rec['job'].append('driver')

元组

  • 元组的特性在于元组不可更改
  • 快速交换两个值的方法:x,y = y,x

文件

  • 打开一个文件:open
f = open('a.txt','w')
f.write("hello,world")
f.close() #这三行代码可以向a.txt写入hello,如果不存在a.txt则创建,如果a.txt已存在内容则覆盖掉

f = open('a.txt') #默认会以read模式读取文件
txt = f.read() #将文件内容全部以字符串形式读入txt中
txt.split(",") #以,为分隔符把txt内容分成列表
f.close()

集合

  • 集合是唯一的,不可变的,无序的集合;集合更像于无值的字典的键组成的无序序列
创建集合:x = set{'spam'}
y = {m','a','h'}
x,y > ({'a','p','s','m'},{'a','h','m'})
x&y > {'a','m'} #与
x|y > {'a','m','s','p','h'} #并
  • 集合可用于去重
x = [1,2,3,4,5,12,3,4,2,1]
print(set(x)) > {1, 2, 3, 4, 5, 12}

猜你喜欢

转载自www.cnblogs.com/yingyingdeyueer/p/11738368.html