前言
数据类型的内置方法
整型int
使用方法: int ( )
用途1 : 将其他类型( str 类型和float 类型) 的纯数字转化为整型 ps: str 类型只能转换整数、float 类型可以用来取整
res = '123'
res1 = 123.9
print ( type ( res) )
print ( type ( res1) )
res = int ( res)
res1 = int ( res1)
print ( type ( res) )
print ( res1, type ( res1) )
用途2 : 做进制数转换
print ( bin ( 100 ) )
print ( oct ( 100 ) )
print ( hex ( 100 ) )
print ( int ( '0b1100100' , 2 ) )
print ( int ( '0o144' , 8 ) )
print ( int ( '0x64' , 16 ) )
浮点型float
使用方法: float ( )
用途: 将其他类型( str 类型和int 类型) 转换为float 类型
res = '123.12'
print ( type ( res) )
res = float ( res)
print ( type ( res) )
print ( float ( '123' ) )
字符串str
1. str之类型转换
使用方法: str ( )
用途: 将其他"任意类型" 转换为str 类型
print ( str ( 123 ) )
print ( str ( 123.21 ) )
print ( str ( [ 1 , 2 , 3 , 4 ] ) )
print ( str ( { 'name' : 'jason' , 'pwd' : 123 } ) )
print ( str ( ( 1 , 2 , 3 , 4 ) ) )
print ( str ( True ) )
print ( str ( { 1 , 2 , 3 , 4 } ) )
1. str之索引取值与切片
res = 'hello world'
print ( res[ 1 ] )
print ( res[ 1 : 4 ] )
print ( res[ 1 : 10 : 3 ] )
print ( res[ - 1 ] )
print ( res[ - 5 : - 1 ] )
print ( res[ - 5 : - 1 : - 1 ] )
print ( res[ : : - 1 ] )
2. str之字符串长度统计 len()
print ( len ( res) )
3. 移除字符串首尾指定的字符 strip()
name = ' tony '
print ( name. strip( ) )
name1 = '$$tony$$$'
print ( name1. strip( '$' ) )
print ( name1. lstrip( '$' ) )
print ( name1. strip( '$' ) )
4.按照指定字符切割字符串 split()
res2 = 'jason|123|18'
print ( res2. split( '|' ) )
print ( res2. split( '|' , maxsplit= 1 ) )
print ( res2. rsplit( '|' , maxsplit= 1 ) )
5.成员运算
res = 'hello world'
print ( 'hello' in res)
print ( 'xx' not in res)
6.大小写
res = 'my NAME IS tom'
print ( res. upper( ) )
print ( res. lower( ) )
res1 = res. upper( )
res2 = res. lower( )
print ( res1. isupper( ) )
print ( res2. isupper( ) )
print ( res1. islower( ) )
print ( res2. islower( ) )
7. 指定开头与结尾
res = 'my name is tom'
print ( res. startswith( 'm' ) )
print ( res. startswith( 'my' ) )
print ( res. endswith( 'm' ) )
print ( res. endswith( 'tom' ) )
8.格式化输出
9.字符串拼接
方式1 : +
print ( 'hello' + 'world' )
方式2 : join
print ( '%' . join( 'hello' ) )
print ( '|' . join( [ 'tom' , '18' , 'read' ] ) )
10.字符串替换
str1 = 'my name is tom, my age is 18!'
str1 = str1. replace( '18' , '28' )
print ( str )
str1 = 'my name is tom, my age is 18!'
str1 = str1. replace( 'my' , 'MY' , 1 )
print ( str1)
11.判断是否是纯数字
str2 = '5201314'
print ( str2. isdigit( ) )
str2 = '123g123'
print ( str2. isdigit( ) )
12.字符串循环
str3 = '今天你好吗?'
for line in str3:
print ( line)
'''
今
天
你
好
吗
?
'''
13.了解操作
>> > msg= 'tony say hello'
>> > msg. find( 'o' , 1 , 3 )
1
>> > msg. index( 'e' , 2 , 4 )
>> > msg = "hello everyone"
>> > msg. count( 'e' )
4
>> > msg. count( 'e' , 1 , 6 )
1
>> > name= 'tony'
>> > name. center( 30 , '-' )
- - - - - - - - - - - - - tony- - - - - - - - - - - - -
>> > name. ljust( 30 , '*' )
tony** ** ** ** ** ** ** ** ** ** ** ** **
>> > name. rjust( 30 , '*' )
** ** ** ** ** ** ** ** ** ** ** ** ** tony
>> > name. zfill( 50 )
0000000000000000000000000000000000000000000000tony
>> > name = 'tony\thello'
>> > name
tony hello
>> > name. expandtabs( 1 )
tony hello
>> > message = 'hello everyone nice to meet you!'
>> > message. capitalize( )
Hello everyone nice to meet you!
>> > message1 = 'Hi girl, I want make friends with you!'
>> > message1. swapcase( )
hI GIRL, i WANT MAKE FRIENDS WITH YOU!
>> > msg = 'dear my friend i miss you very much'
>> > msg. title( )
Dear My Friend I Miss You Very Much
num1 = b'4'
num2 = u'4'
num3 = '四'
num4 = 'Ⅳ'
>> > num1. isdigit( )
True
>> > num2. isdigit( )
True
>> > num3. isdigit( )
False
>> > num4. isdigit( )
False
>> > num2. isdecimal( )
True
>> > num3. isdecimal( )
False
>> > num4. isdecimal( )
False
>> > num2. isnumeric( )
True
>> > num3. isnumeric( )
True
>> > num4. isnumeric( )
True
>> > num5 = '4.3'
>> > num5. isdigit( )
False
>> > num5. isdecimal( )
False
>> > num5. isnumeric( )
False
'''
总结:
最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景
如果要判断中文数字或罗马数字,则需要用到isnumeric。
'''
>> > name = 'tony123'
>> > name. isalnum( )
True
>> > name. isalpha( )
False
>> > name. isidentifier( )
True
>> > name. isspace( )
False
>> > name. istitle( )
False
列表list
1.列表之类型转换
list ( 'wdad' )
list ( [ 1 , 2 , 3 ] )
list ( { "name" : "jason" , "age" : 18 } )
list ( ( 1 , 2 , 3 ) )
list ( { 1 , 2 , 3 , 4 } )
2.列表之增删查改
1. 取值
1.1 . 索引取值
list1 = [ 'tom' , 'jason' , 'timor' , 4 , 5 ]
print ( list1[ 0 ] )
print ( list1[ - 1 ] )
1.2 . 切片( 顾头不顾尾,步长)
print ( list [ 0 : 3 ] )
print ( list [ 0 : 4 : 2 )
2. 索引改值
list1[ 0 ] = 'cat'
print ( list1)
3. 增加值
3.1 . append( ) 列表尾部追加元素
l1 = [ 'a' , 'b' , 'c' ]
print ( l1. append( 'd' ) )
3.2 . extend( ) 一次性在列表尾部添加多个元素
print ( l1. extend( [ 'a' , 'b' , 'c' ] ) )
3.3 . insert( ) 在指定位置插入元素
print ( l1. insert( 0 , 'tom' )
4. 删除值
4.1 . del ( )
print ( del l1[ 2 ] )
4.2 . pop( )
l1 = [ 'a' , 'b' , 'c' ]
res = l1. pop( )
print ( l1)
print ( res)
4.3 . remove( )
l1 = [ 'a' , 'b' , 'c' ]
res = l1. remove( 'b' )
print ( l1)
print ( res)
3.列表之表内顺序
1. reverse( )
l2 = [ 11 , 22 , 33 , 44 ]
l2. reverse( )
print ( l2)
2. sort( )
'''
强调: 排序时列表元素之间必须是相同数据类型,不可混搭,否则报错
'''
l3 = = [ 11 , 22 , 3 , 42 , 7 , 55 ]
l3. sort( )
print ( l3)
l3 = = [ 11 , 22 , 3 , 42 , 7 , 55 ]
l3. sort( reverse= True )
print ( l3)
4. 列表循环
list1 = [ 'tom' , 'jason' , 'timor' , 4 , 5 ]
for line in list1:
print ( line)
'''
tom
jasom
timor
4
5
'''
5.了解知识
l1= [ 1 , 2 , 3 ]
l2= [ 2 , ]
print ( l2 > l1)
s1= 'abc'
s2= 'az'
print ( s2 > s1)
l = [ 'A' , 'z' , 'adjk' , 'hello' , 'hea' ]
l. sort( )
print ( l)
l= [ 1 , 2 , 3 , 4 , 5 , 6 ]
print ( l[ 0 : 3 : 1 ] )
print ( l[ 2 : : - 1 ] )
print ( l[ : : - 1 ] )
元组
1.元组之类型转换
'''
1、元组可以看成是不可变的列表
2、但凡能被for循环遍历的数据类型都可以传给tuple()转换成元组类型
3、tuple()会跟for循环一样遍历出数据类型中包含的每一个元素然后放到元组中
'''
print ( tuple ( 'hello' ) )
print ( tuple ( 1 , 2 , 3 ) )
print ( tuple ( { 1 , 2 , 3 } )
2.基本使用
t1 = ( 1 , 2 , 3 , 4 , 5 )
print ( t1[ 0 ] )
print ( t1[ 3 ] )
print ( t1[ 1 : 5 : 2 ]
print ( len ( t1) )
print ( 0 in t1)
print ( 4 in t1)
print ( 6 not in t1)
for i in t1:
print ( i, end= ' ' )
字典
1.字典之类型转换
'''
强转成字典时,必须是等长的二级容器,元素个数为2k,外层可以是列表、元组或集合,里面的容器是元组或者列表
列:
[(1,2,),[1,2]]
((1,2,),[1,2])
{(1,2,),[1,2]}
如果里面出现集合(外层不是set集合{}),语法上是允许的,但有局限性 列: ([1,2],{1,2})
如果里面出现字符串,语法上是允许的,但有局限性,字符串的长度只能是2 列: ([1,2],'as')
'''
d1 = dict ( [ [ 'name' , 'tom' ] , ( 'age' , 21 ) ] )
print ( d2)
d2 = { }
d2. formkeys( ( 'name' , 'age' , 'sex' ) , None )
字典基本使用
dic = {
'name' : 'tom' ,
'age' : 21 ,
'hobbby' : [ 'LOL' , 'basketball' ]
}
1 、按key取值
print ( dic[ 'name' ] )
print ( dic[ 'age' ] )
2 、按key修改值、存值
'''对于赋值操作,如果key原先存在于字典,就会更改value值'''
dic[ 'name' ] = 'timor'
print ( dic)
'''如果key原先不存在于字典,则会新增key:value'''
dic[ 'sex' ] = 'male'
print ( dic)
3 、长度len
print ( len ( dic) )
4 、成员运算
print ( 'name' in dic)
print ( 'timor' in dic)
'''
字典暴露在外面的只有他的key,没有value 值
'''
5 、删除
del dic[ 'name' ]
print ( dic)
print ( dic. pop( 'sex' ) )
print ( dic)
print ( dic. popitem( ) )
print ( dic)
print ( dic. clear( ) )
6 . get( ) 取值
dic = {
'name' : 'tom' ,
'age' : 21 ,
'hobbby' : [ 'LOL' , 'basketball' ]
}
dic. get( 'name' )
print ( dic. get( 'sex' ) )
print ( dic. get( 'name' , 'timor' ) )
print ( dic. get( 'sex' , 'male' ) )
7 、键keys( ) ,值values( ) ,键值对items( )
print ( dic. keys( ) )
print ( dic. values( ) )
print ( dic. items( ) )
字典之了解操作
dic = {
'name' : 'tom' ,
'age' : 21 ,
'hobbby' : [ 'LOL' , 'basketball' ]
}
dic. update( { 'name' : 'timor' , 'pwd' : 123 } )
print ( dic)
2. 初始化字典
print ( dict . fromkeys( [ 'k1' , 'k2' , 'k3' ] , [ ] ) )
'''笔试题'''
res = dict . fromkeys( [ 'k1' , 'k2' , 'k3' ] , [ ] )
res[ 'k1' ] . append( 111 )
res[ 'k2' ] . append( 222 )
res[ 'k3' ] . append( 333 )
print ( res)
res[ 'k1' ] = [ 111 , 222 ]
res[ 'k1' ] . append( 444 )
print ( res)
print ( dic. setdefault( 'name' , 'jasonNB' ) )
print ( dic)
print ( dic. setdefault( 'sex' , 'male' ) )
print ( dic)
元组
元组之类型装换
print ( tuple ( 111 ) )
print ( tuple ( 11.11 ) )
print ( tuple ( 'hello' ) )
print ( tuple ( [ 11 , 22 , 33 ] ) )
print ( tuple ( { 'name' : 'tom' , 'pwd' : 123 } ) )
t1 = ( 111 )
t2 = ( 11.11 )
t3 = ( 'hello' )
'''元组哪怕内部只有一个元素 也需要加上逗号'''
print ( type ( ( 111 , ) ) )
'''容器类型:内部可以存放多个值的数据类型都可以称之为容器类型
建议:所有的容器类型在存储数据的时候 如果内部只有一个元素
那么也推荐你加上逗号
'''
元组之基本操作
t = ( 111 , 222 , 333 , 444 , 555 )
print ( t[ 2 ] )
print ( t[ - 1 ] )
print ( t[ 1 : 5 ] )
print ( t[ 1 : ] )
print ( t[ : ] )
print ( t[ 1 : 5 : 2 ] )
print ( len ( t) )
for i in t:
print ( i, end = ' ' )
print ( t. count( 111 ) )
'''笔试题'''
t1 = ( 111 , 222 , [ 11 , 22 , 33 ] )
t1[ 2 ] . append( 44 )
print ( t1)
集合
集合之类型转换与基本用法
'''集合内元素是无序的'''
s1 = { 1 , 2 , 2 , 2 , 3 , 4 , 3 , 4 , 3 , 1 , 2 , 3 , 2 , 1 , 2 , 3 , 2 , 1 , 2 , 3 }
print ( s1)
name_list = [ 'kevin' , 'jason' , 'jason' , 'jason' , 'kevin' , 'kevin' ]
s1 = set ( name_list)
l1 = list ( s1)
print ( l1)
集合之关系运算
"""两个群体之间做差异比较 共同好友 共同关注..."""
friends1 = { "zero" , "kevin" , "jason" , "eg" }
friends2 = { "Jy" , "ricky" , "jason" , "eg" }
print ( friends1 & friends2)
print ( friends1 | friends2)
print ( friends1 - friends2)
print ( friends2 - friends1)
print ( friends1 ^ friends2)
s1 = { 11 , 22 , 33 , 44 }
s2 = { 11 , 33 }
print ( s1 > s2)
print ( s2 < s1)
总结
按存值个数区分 只能存在一个值: 可称为标量/原子类型 数字、字符串 可以存放多个值:可称为容器类型 列表、元组、字典
按访问方式区分 直接访问:只能通过变量名访问整个值 数字 顺序访问:可以通过索引访问指定的值、索引代表顺序,又称为序列类型 字符串、列表、元组 key访问:可以通过key 访问指定的值、又称为映射类型 字典
按可变不可变区分 可变类型 列表、字典 不可变类型 数字、字符串、元组