Python学习第005课--课后复习

今日是学习python的第005课,本节课详细讲解了数据类型。
可变类型与不可变类型
什么是可变类型?
值变了,但是ID没有变,证明没有生成新的值而是改变了原值,此原值即为可变类型。
例如:列表型、字典型

y=['a','b','c']
print(id(y))
y[0]='A'
print(y)
print(id(y))  #值变了,ID没有变,没有生成新的值,说明原值为可变类型

什么是不可变类型?
值变了,ID也随之改变,证明生成了新的值而不是在改变原值,此原值即为不可变类型。
例如:整数型、字符串

x=10
print(id(x))
x=11
print(id(x))  #值变了,ID也变了,生成了新的值,说明原值为不可变类型

整型int
基本使用
1、用途
记录年龄、等级、各种号码
2、定义方式

age=18 #本质是age=int(18)

int除了有造整型的功能,还有数据转换的功能

int('123')  #只能将纯数字的字符串(浮点型也可)转换成整型

3、常用操作与内置的方法
赋值、比较、算术

该类型总结
1、存一个值
2、不可变(不可变可hash)

print(hash(10))  #可hash
print(hash([1,2,3]))  #不可hash

浮点型float
基本使用
1、用途
记录身高、体重、薪资
2、定义方式

salary=1.3  #本质是salary=float(1.3)

和int一样,除了有造浮点型功能以外,还具备数据转换功能。

x=float('3.1')
print(x,type(x))
#运行结果如下
3.1 <class'float'>

3、常用操作与内置的方式
赋值、比较、算术(可以与整型做比较和运算)

该类型总结
1、存一个值
2、不可变(不可变可hash)

了解知识:
1、复数

x=1-2j
print(x,type(x))
print(x,real)
print(x,imag)
#运行结果如下
(1-2j) <class 'complex'>
1.0
-2.0

2、长整型
只有python2中有长整型的概念
type long

进制转换

十进制:0-9
11=110^1 + 110^0

二进制:0-1
11=12^1 + 12^0

八进制:0-7
11=18^1 + 18^0

十六进制:0-9 A-F
11=116^1 + 116^0

十进制=>其他进制

print(bin(13))  #十进制=>二进制
print(oct(13))  #十进制=>八进制
print(hex(13))  #十进制=>十六进制
#运行结果如下:前两位代表进制
0b1101
0o15
0xd

字符串类型

1、用途
记录描述性质的特征,比如名字、地址、性别

2、定义方式
在单、双、三引号内包含的一串任意类型字符

msg='aaa"bbb"'  #msg=str('aaa"bbb"')

和数字类型一样也具备转换数据类型功能,可以将任意类型转换成字符串类型

3、常用操作和内置的方法
优先掌握的操作
1、按索引取值(正向取+反向取):只能取值,不能改值

msg='hello world'
print(msg[0])
#运行结果=h
print(msg[5])
#运行结果=空格
print(msg[-1])
#运行结果
d

2、切片(顾头不顾尾,步长)
从一个大字符串中切出一个小字符串

msg='hello world'
print(msg[0:5])  #默认步长1,切出hello
print(msg[0:5:2])  #步长2,切出hlo

反向切片

msg='hello world'
print(msg[-1:-5:-1])  #反向从右向左切,步长一定要设置,且要设置反向,切出dlrow
msg='hello world'
print(msg[0::1])  #默认切出全部
print(msg[-1::-1])  #默认反向切出全部

3、长度len

msg='你好啊a'
print(len(msg))
#运行结果
4

4、成员运算in和not in

msg='yangyuanhu 老师是一个非常虎的老师'
print('yangyuanhu' in msg)
print('虎' not in msg)
#运行结果
True
True

5、移除字符串左右两边的字符strip:默认去空格

pwd='         1 23         '
res=pwd.strip(' ')  #去除空格,碰到非空格时停止
print(res)
print(pwd)
#运行结果
1 23
         1 23         
#第一条结果说明空格已去除,第二条结果说明字符串的值不能改变
pwd=input('>>:' ).strip(' ') #pwd='123'
if pwd='123':
    print('密码输入正确')

6、切分split:针对有规律的字符串按照某个字符切成列表

info='yyhdsb:18:female'
li=info.split(':')  #不定义切分次数则按照冒号全部切分
print(li)
#运行结果
['yyhdsb','18','female']

info='yyhdsb:18:female'
li=info.split(':',1)  #定义切分次数则以第一个冒号开始计算切分次数
print(li)
#运行结果
['yyhdsb','18:female']

7、循环

msg='hello'
for item in msg:
    print(item)
#运行结果
h
e
l
l
o

该类型总结

1、存一个值
2、有序
3、不可变(不可变可hash)

需要掌握的操作

1、strip,lstrip,rstrip

print('****yes***'.strip('*'))
print('****yes***'.lstrip('*'))
print('****yes***'.rstrip('*'))
#运行结果
yes
yes***
****yes

2、lower,upper

print('AAAbbbb'.lower())  #全部转小写
print('AAAbbbb'.upper())  #全部转大写
#运行结果
aaabbbb
AAABBBB

3、startswith,endswith

print('alex is sb'.startswith('alex'))
print('alex is sb'.endswith('sb'))
#运行结果
True
True

4、format的三种玩法

'my name is {x} my age is {y}'.format(y=18,x='帅哥')
#运行结果
my name is 帅哥 my age is 18

'my name is {name} my age is {age}'.format(age=18,name='帅哥')
#运行结果
my name is 帅哥 my age is 18

5、split,rsplit

msg='a:b:c:d:e'
print(msg.split(':',1))
print(msg.rsplit(':',1))
#运行结果
['a','b:c:d:e']
['a:b:c:d','e']

6、join

msg='a:b:c:d:e'
list1=msg.split(':')  #先将字符串切成列表
#运行结果
['a','b','c','d','e']

msg1=':'.join(list1)  #再将列表用冒号连接还原成字符串
print(msg1)
#运行结果
'a:b:c:d:e'

7、replace

msg='alex is alex alex is hahaha'
print=(msg.replace('alex','sb')) #所有alex替换成sb
print=(msg.replace('alex','sb',1)) #第一个alex替换成sb
#运行结果
sb is sb sb is hahaha
sb is alex alex is hahaha

8、isdigit:只能判断纯数字的字符串

print('123'.isdigit())
print('12.3'.isdigit())
#运行结果
True
False

例如:

age_of_db=30
inp_age=input('>>>: ').strip()
if inp_age.isdigit():          #增加此句是判断输入的是否是整型数字,如果不是则不运行
    inp_age=int(inp_age)  #增加此句将字符串转成整型,输入数字就可以比较
    if inp_age > age_of_db:
        print('too big')
    elif inp_age < age_of_db:
        print('toll small')
    else:
        print('you got it')

需要了解的操作

1、find,rfind,index,rindex,count

msg='hello world'
print(msg.index('wo'))  #查找wo的索引值
print(msg.find('wo'))  #查找wo的索引值
#运行结果
6
6
print(msg.count('l'))  #查找l出现了几次
#运行结果
3

2、center,ljust,rjust,zfill

print('yes'.center(10,'='))  #将yes居中显示,左右用=号填充,一共10个字符位
#运行结果
===yes====
ljust靠左显示,右边填充
rjust靠右显示,左边填充
zfill靠右显示,左边0填充

3、expandtabs

print('hello\nworld')  #\n 换行
#显示内容    
hello
world

print('hello\tworld'.expandtabs(5))  #\t Tab空格5格
#显示内容
hello     world  

4、capitalize,swapcase,title

print('hello world'.capitalize())  #字符串首字母大写
print('Hello world'.swapcase())  #翻转,大写变小写,小写变大写
print('hello world'.title())  #每个单词的首字母大写
#显示内容
Hello world
hELLO WORLD
Hello World

5、is数字系列

num1=b'4' #bytes
num2=u'4' #unicode,python3中无需加u就是unicode
num3='四' #中文数字
num4='Ⅳ' #罗马数字

isdigit:识别bytes、str,最常用

print(num1.isdigit())
print(num2.isdigit())
print(num3.isdigit())
print(num4.isdigit())
#运行结果
True
True
False
False

isdecimal:识别str

print(num2.isdecimal())
print(num3.isdecimal())
print(num4.isdecimal())
#运行结果
True
False
False

isnumberic:str、中文、罗马 比较特殊

print(num2.isnumberic())
print(num3.isnumberic())
print(num4.isnumberic())
#运行结果
True
True
True

6、is其他

print('aaasdfa'.isalpha())  #纯字母组成的字符串
print('aaasdfa123'.isalnum())  #字母或数字组成的字符串
print('   '.isspace())  #是否是全空格
#运行结果
True
True
True

列表类型

1、用途
记录多个值,比如人的多个爱好

2、定义方式
在[ ]内用逗号分隔开多个任意类型的值

li=[1,2,3]  #li=list([1,2,3])

除了能造列表类型数据外,还能将其他数据类型转换成列表数据

x=list('hello')
print(x)

原理,先造一个空列表,然后底层类似于for循环,凡是能被for循环循环的数据类型:字符串、字典

3、常用操作和内置的方法

优先掌握的操作

1、按索引存取值(正向存取、反向存取):即可存也可取

li=['a','b','c','d']
print(li[-1])
li[-1]='D'
print(li)
#运行结果
['a','b','c','D']
根据索引即可取值也可改值,可以删除,但是不能新增值

2、切片(顾头不顾尾、步长)

li=['a','b','c','d']
print(li[0:3])
#运行结果
['a','b','c']

3、长度

li=['a','b','c','d']
print(len(li))
#运行结果
4

4、成员运算in和not in

li=['a','b','c','d',[1,2,3]]
print('a' in li)
print([1,2,3] in li)
#运行结果
True
True

5、追加

li=['a','b','c','d']
print(id(li))
li.append('e')
li.append([1,2,3])
print(li)
print(li,id(li))
#运行结果
['a','b','c','d','e',[1,2,3]]
数值改变,内存地址不变,列表类型是可变类型

6、删除

li=['a','b','c','d']
按照元素值去单纯地删除某个元素
res=li.remove('c')
print(li)
print(res)
#运行结果
['a','b','d']
None   #无返回值

按照元素的索引去删除某个元素并且拿到该元素作为返回值
li=['a','b','c','d']
res=li.pop(1)
print(li)
print(res)
#运行结果
['a','c','d']
b  #有删除掉的返回值

7、循环

li=['a','b','c','d']
for item in li:
    print(item)
#运行结果
a
b
c
d

该类型总结
1、存多个值
2、有序
3、可变(不可hash)

需要掌握的操作
1、count 记录某一个元素出现的次数

li=['a','b','c','d','c','e']
li.count('c')
#运行结果
2

2、clear 清空列表
3、copy 赋值一个新的列表列表
4、extend

li=['a','b','c','d','c','e']
li.extend([1,2,3])
print(li)
#运行结果
['a','b','c','d','c','e',1,2,3]
li.append([1,2,3])
print(li)
#运行结果
['a','b','c','d','c','e',[1,2,3]]

5、index(查找元素)(顾头不顾尾,不指定开头结尾默认查找全部)

li=['a','b','c','d','c','e']
print(li.index('a'))
#运行结果
0
结果返回所查找元素的索引值
li=['a','b','c','d','c','e']
print(li.index('d',0,4))
#运行结果
3

6、insert 插入

li=['a','b','c','d','c','e']
print(li.insert('1','egon'))
#运行结果
['a','egon','b','c','d','c','e']

7、reverse 反转

li=['a','b','c','d','c','e']
li.reverse()
print(li)
#运行结果
['e','c','d','c','b','a']

8、sort 排序

li=['a','b','c','d','c','e']
li.sort()
print(li)
#运行结果
['a','b','c','c','d','e']

li=['a','b','c','d','c','e']
li.sort(reverse=True)
print(li)
#运行结果
['e', 'd', 'c', 'c', 'b', 'a']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值