基本数据类型的应用与内置方法
1.数字类型
整形(int):多用来记录年龄/身份证号/等级等等。定义方式:age=18。int只能将纯数字的字符串转换为整形,遇到float则会只取整数。
常用操作:赋值运算、比较运算、算术运算。
内置方法:只能存一个值,可变(不可hash)
浮点型(float):多用来记录薪资/身高/体重等等。定义方式:salary=1.7。
常用操作:赋值运算、比较运算、算术运算。
内置方法:只能存一个值,可变(不可hash)
2.字符串类型
字符串类型多用来记录描述事物特征:例如姓名/爱好/性别等等。可将任意类型转换为字符串。
常用操作
⑴按照索引正反向取值(只能取)
msg='hello world' print(msg[0]) print(msg[-1]) print(msg[-1:-5:-1]) (反向一次取值步长应为-1)
⑵切片:从大字符串切出一片小字符串的功能,顾头不顾尾,可根据需要输入步长(默认步长为1)
msg='hello world' print(msg[0:5]) print(msg[0::]) 此处0为第一个字符,若后面不加结尾值与步长,默认步长为1的全部取出
⑶长度(len):用于记录字符的个数,记录的结果以整形输出。
msg='hello world' print(len(msg)) (中文一个字仅代表一个字符)
⑷成员运算(in/not in):判断某个字符串内是否含有你需要找的字符
msg='hello world' print('ell' in msg)
False print('wo' not in msg)
True
⑸strip(移除字符串两边的字符 lstrip移除左边字符 rstrip移除右边字符)
msg='----------hello world----------' print(msg.strip('-')) 若strip后不填则默认为移除空格,若字符串中间含有你要移除的字符则不会移除
msg=input('>>: ').strip('*') 若需要去掉某个字符需在用户输入之后执行strip
if msg == '123':
print('successful')
⑹切分(split):针对有规律的字符串按照某个字符切成列表
msg='a,b,c,d,e' li=msg.split(',',1) 此处需要根据上面的符号进行分割,上面用什么此处就用什么,后面为步长,不写默认为全部分割。 print(li)
⑺循环(for)
msg='hello' for item in msg: 此处item为可更改的变量名,意为从msg中依次取出字符赋值给item print(item)
⑻lower与unpper:lower是将字符串中的所有字符转换为小写,upper则相反。
print('hello WORLD'.lower()) print('hello world'.upper())
⑼startswith与endswith:判断结尾是否是某个字符串或字符
print('hello world'.startswith('h')) True print('hello world'.endswith('x')) false
⑽format的三种应用 (format 与 %s的区别就是%s只能依次按照顺序对应相应的值,而format可以在任意位置放入相应的值且不需要按照顺序)
print('my name is {name}, my age is {age}'.format(age=18,name='kk')) 使用变量成为占位符,再给变量名赋值 print('my name is {} , my age is {}'.format('kk',18)) 这里{}就等同于%s,会将format里的值依次放入{} print('my name is {0}, my age is {1}'.format('kk',18)) 按照format内的索引将值填入对应的{}
⑾split 与 rsplit:切分,将字符串以字符串内多有的符号以列表形式切分,split后步长默认1,若不填默认全部切分。rsplit 是从右向左切分。
msg='a,b,c,d,e' print(msg.split(',')) print(msg.split(',',1)) print(msg.rsplit(',')) print(msg.rsplit(',',1))
['a', 'b', 'c', 'd', 'e']
['a', 'b,c,d,e']
['a', 'b', 'c', 'd', 'e']
['a,b,c,d', 'e']
⑿join:使用join将可迭代的列表或字典使用符号拼接成字符串
msg='a:b:c:d:e' list1=msg.split(':') print(list1) msg1=','.join(msg) join可将任何类型的值用逗号分隔开重新组成字符串 print(msg1)
⒀replace:是将字符串中的某个字符替换成你需要替换的字符,一层为你需要替换的字符或字符串,二层为要替换的字符或字符串,三层为从替换的个数。
msg=' my name is kk , my name is kk' print(msg.replace('kk','KK',2))
⒁isdigit:只能判断一个字符是不是纯数字的字符串
print('9876'.isdigit()) print('jshdh45'.isdigit())
3.列表类型(list):在中括号内用逗号分隔开来的多个任意类型的值,多用于记录多个值,例如人的爱好,学生姓名等。
常用操作与内置方法
⑴按照索引正反向存取值,可存可取可删除可添加。
list1=['a','b','c','d'] print(list1[0]) list1[0]='A' (此处改变了list1中a的值) print(list1) list1.append('e') (此处在list1中添加了一个新的值) print(list1) del list1[0] (此处删除了list中的a) print(list1)
⑵长度(len):可以计算出列表中字符串的数量
list1=['a','b','c','d','KKKKKK'] (字符串的数量是5个所以结果就是5) print(len(list1))
⑶成员运算in/not in:判断列表中是否存在某个字符串
list1=['a','b','c','d','KKKKKK'] print('K' not in list1) (注意是字符串而不是字符)
True
⑷删除 remove 与 pop:remove是单纯的删除某个元素,而pop则是弹出某个元素后并反馈信息。
list1=['a','b','c','d','KKKKKK'] list1=['a','b','c','d','KKKKKKK'] res=list1.remove('a') res=list1.pop(1) print(list1) print(list1) print(res) print(res) ['b', 'c', 'd', 'KKKKKK'] ['a', 'b', 'c', 'd']
None b
⑸循环:列表里可以使用for循环取值。
list1=['a','b','c','d','KKKKKK'] for item in list1: item只是一个变量名,后边的list1中的字符串是它要依次被赋予的值。 print(item)
⑹count:计算某个字符串在当前值里出现的数量
list1=['a','b','c','c','d','KKKKKK'] print(list1.count('c')) count括号内要加你需要查看数量的字符串
⑺extend 与 append:extend为扩充,就是将extend括号内的值依次添加到列表内。append为添加,与extend不同的是append添加的是单个内容,即append括号内的值是以一个整体添加到列表内的。
list1=['a','b','c','c','d','KKKKKK'] list1.extend([1,2,3]) print(list1) list1.append([1,2,3]) print(list1)
['a', 'b', 'c', 'c', 'd', 'KKKKKK', 1, 2, 3]
['a', 'b', 'c', 'c', 'd', 'KKKKKK', [1, 2, 3]]
⑻index:取索引值(意就是取出字符串在列表中的索引值是几,并且可以输入起始与结束位置(顾头不顾尾),若字符串不在查找范围内则会报错)
list1=['a','b','c','c','d','KKKKKK'] print(list1.index('KKKKKK',0,6))
⑼insert:插入,在列表中可在随意位置插入字符串。
list1=['a','b','c','c','d','KKKKKK'] list1.insert(0,'Z') (注:0代表索引,Z代表要插入的字符串,字符串是添加在索引之前的。不添加索引则会报错) print(list1)
⑽reverse 与 sort:reverse是反转,可意为将列表倒置过来。sort是排序,就是将字符串从小到大或从大到小进行排序
list1=[11,4,7,88] list1.reverse() 这里进行反转得到的结果是将列表顺序倒置 print(list1) list1.sort() 这里是排序得到的结果是将列表从小到大排序(可是sort内加入reverse=True,意为反转排序,就是从大到小进行排序) print(list1)
该类型总结:
列表内可以存多个值
可以用索引来取值(有序)
是不可变可hash类型
4.练习队列、堆栈:
⑴队列:先进先出(先放进去的先拿出来)
q=[] q.append('1') q.append('2') q.append('3') print(q) print(q.pop(0)) print(q.pop(0)) 之前提到过pop后的参数为0时默认从第一位开始弹出 print(q.pop(0))
⑵堆栈:先进后出(先放进去的后拿出来)
q=[] q.append('1') q.append('2') q.append('3') print(q) print(q.pop(-1)) print(q.pop(-1)) 此处-1等于从最后一个开始弹出 print(q.pop(-1))