python第五天

基本数据及内置方法

什么是可变类型:值改变,但是id不变,证明就是在改变原值,是可变类型

l=['a','b']
print(id(l))
l[0]='A'
print(id(l))

2887924323208
2887924323208

 

什么是不可变类型:值改变,但是id也跟着变,证明是产生了新的值,是不可以变类型

x=9
print(id(x))
x=10
print(id(x))
1841327840
1841327872

 

  1、数据类型

  1.1、什么是数据?

    x=10,  10是我们要存储的值。

  1.2、为何数据要分不同的类型

    数据是用来标识状态的,不同的状态就该用不同的类型的数据去表示。

    数据类型:

      整型int

        作用:年纪,等级,身份证号,qq号等整型数字相关

        定义:

         age=10 #本质age=int(10)
         int只能加出数字的整数转换为整形
         只能存储一个值
          是不可变类型

      浮点数float

        作用:用来记录薪资、身高体重等参数浮点相关

        float将包含小数的字符串转换为浮点数

        只能存储一个值

        是不可变类型

      字符串str

        作用:用来描述性质的状态

        定义:在单号内包含的字符

数据类型转换:所有类型字符都可以被str转换为字符串类型

      列表list

       用途:按照位置记录多个值,多因对应值

      数据类型转换:但凡能够被for循环的数据类型都可以传给list,被其转换成列表

             整型不能够被循环

      

      

      元组

      字典deast

      集合

  2、字符类型

  3、列表类型

  4、元祖类型

三、常用操作+内置方法

3.1、按索引取值(正向取值+反向取值):只能取值

msg='hello world'
print(msg[-1])
输出:d
3.2,切片(顾头不顾尾,步长)

切片是索引的一种扩展应用,可以正向和反向:只能取值操作

正向:
msg='hello world'
print(msg[0:3:1]) #从第一个值开始到第四个(骨头不顾尾,第四个值不显示),步长为1
输出:hel
反向:
msg='hello world'
print(msg[::-1])
输出: ldrow olleh

msg=‘hello world’
print(msg[-1:-12:-1])
输出:dlrow olleh

3.3、求长度len
mgs='hello world'
print(len(mgs))
输出:11
3.4、成员运算in和not in:判断一个子字符是否存在于大字符串中
msg='kven is dsg'
print('k' in msg)
输出:True
msg='kven is dsg'
print('k' not in msg)
输出:False

3.5、移出空白strip:移出字符串左右两边的空白字符,不指定默认去除的是空格
print('    test      '.strip())
输出:test
print('***********y*n********'.strip('*'))
输出:y*n
print('*******1****y*n*****2***'.strip('*12'))
输出:y*n

练习:输入内容自动去除空格
name=input('>>>:').strip()
pwd=input('pwd>>:').strip()
if name == 'yzn' and pwd == '123':
print('login successful')
else:
print('输错了。。。')
3.6切分splist:针对有规律的字符串,按照某种分隔符切成列表
info='yzn:18:male'
res=info.split(':')
print(res)
输出:['yzn', '18', 'male']
cmd='get|a.txt|3333'
print(cmd.split('|',1))
输出:['get', 'a.txt|3333']
#用:号作为连接符号江春字符串列表拼接成一个字符串
l=['yzn','18','male']
res=':'.join(l)
print(res)
输出:yzn:18:male
3.7、循环
for item in 'hello':
print(item)
需要掌握的操作
1、strip(默认去除左右两边空格)、lstrip(默认去除左边空格)、rstrip(默认去除右边空格)
print('*******yzn******'.strip('*'))
输出:yzn
print('*******yzn******'.lstrip('*'))
输出:yzn******
print('*******yzn******'.rstrip('*'))
输出:******yzn
2、lower(大写转小写),upper(小写转换大写)
print('YZN'.lower())
输出:yzn
print('yzn123YZN'.upper())
输出:YZN123YZN
3、startswith(是否由什么开头),endswith(是由什么结束)
mgs='yzn is sg'
print(mgs.startswith('yzn'))
输出:True
print(mgs.endswith('g'))
输出True
4、format的三种方法(格式化字符串,和%s功能相似)
%s和format的区别是format不用一一对照占位符
res='my name is %s my age is %s' %('yzn','18')
print(res)
输出:my name is yzn my age is 18
reg='my name is {a} my age is {b}'.format(a='yzn',b=18)
输出:my name is yzn my age is 18
了解
reg='my name is {} my age is {}'.format('yzn',18)
print(reg) #format也可以按照顺序替换字符

reg='my name is {1} my age is {0}'.format('yzn',18)
print(reg)  #根据0,1顺序
输出:my name is 18 my age is yzn

5、splist(从右往左切)、rsplist(从左往右切)
msg='a:b:c:d:e'
print(msg.split(':',1))
输出:['a', 'b:c:d:e']
print(msg.rsplit(':',1))
输出:['a:b:c:d', 'e']
6、replace(替换)
msg='keven is keven is hahaha'
res=msg.replace('keven','sss')
print(res)
输出:sss is sss is hahaha
默认有匹配到全部替换,替换一个(从左往右替换)
msg='keven is keven is hahaha'
res=msg.replace('keven','sss',1)
print(res)
输出:sss is keven is hahaha
7、isdigit(判断字符串是否由存数字组成,则返回True
print('123456'.isdigit())
输出:True
print('123456aaa'.isdigit())
输出:False

练习:
注:strip()  #去除空格
  isdigit()  #判断是否是纯数字
score=input('输入你的成绩:').strip()
if score.isdigit():
score=int(score)
if score >= 90 :
print('优秀')
else:
print('垃圾')
else:
print('输出的内容不是数字')
了解:
1、find、rfind,index,rindex,count
find:输出从左输出第一个指定的值的位置
rfind:输出从右边输出第一个指定的值得位置
print('123 yzn xiaobai z '.find('yzn'))
输出:4

index:检测字符串中是否包含字符串,如果指定开始和结束范围,则检查是否包含在指定范围内
rindex:字符串str在字符串中最后出现的位置。

count:用于统计字符串里某个字符出现的次数,可选参数为在字符串搜索的开始与结束位置。
print('yzn back123456'.count('n',0,2))  #查找n字符在0-2位置之间村建几次
输出:0

2、center,ljust,rjust,zfill
center:返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格。
print('yzn'.center(50,'1'))  #总长度50字符居中
输出:11111111111111111111111yzn111111111111111111111111
ljust:返回一个原字符串,使用空格填充字符后面
print('yzn'.ljust(10,'*'))  #总个数为10
输出:yzn*******
rjust:返回一个原字符串,使用空格填充字符串前面
print('yzn'.rjust(10,'*'))  #字符不够10用*号填充在字符前面
输出:*******yzn
zfil:返回一个原字符串,使用0填充字符串
3,capitalize:首字母大写;swapcase:大小写反转;title:每一个单词的首字母大写
print('abc defg'.capitalize())
输出:Abc defg

print('abcd efg'.swapcase())
输出:ABCD EFG
print('abcd EFG'.swapcase())
输出:ABCD efg

print('abcd efg'.title())
输出:Abcd Efg
3.1,按照索引取值(争相取值+反响取值):即可存可取

l=['a','b','c','d']
print(l[0])

输出:a

print(l[-1])

输出:d

 

l=['a','b','c','d']
print(id(l))
print(l)
l[0]='A'
print(id(l))
print(l)

2303160816520
['a', 'b', 'c', 'd']
2303160816520
['A', 'b', 'c', 'd']

字典增加元素

dic={'k1':111}
dic['k2']=222
print(dic)
输出:{'k1':111,'k2':222}

3.2,切片(顾头不顾尾)

 

3.5,追加(字典可以,列表不行)

l=['a','b','c']
l.append('aaa')
print(l)

输出:['a', 'b', 'c', 'aaa']

往制定位置追加

l=['a','b','c']
l.insert(0,'xxxx')
print(l)

输出:['xxxx', 'a', 'b', 'c']

3.6,删除

l=['a','b','c']  #del不是列表独有的删除,字典也可以删除
del l[0]
print(l)

输出:['b', 'c']

l=['a','b','c']
l.remove('a')  #指定要删除的那个元素,没有返回值
print(l)

输出:['b', 'c']

l=['a','b','c']
res=l.pop(-1)  #自定要删除的那个元素的索引,返回刚刚删掉的那个元素
print(res)

输出:c

l.clear  #清除列表中的值

l.sort  #排序,列表只有在列表中所有元素都是同种类型的情况下才能用sort排序,默认升序

l.sort(reverse=Ture)  #降序

 
 










posted @ 2019-03-22 21:31  阳光与叶子  阅读(210)  评论(0编辑  收藏  举报