python基础(三)-数据类型与内置方法1

今日内容

数据类型

(1)整型(INT)

‘’‘int只能转纯数字的字符串,小数点都不行’‘’

存一个值且有序:但凡有索引的数据都是有序的。

进制转换

  10进制转二进制:print(bin(12)) 0b1100 0b表示后面的数字时二进制数

  10进制转八进制:print(oct(12)) 0o14 0o表示后面的数字时八进制数

  10进制转16进制:print(hex(12)) 0xc 0x表示后面的数字是16进制

  print(int(‘1100’,2)) ’‘’转二进制‘’‘

  print(int(‘14’,8)) ’‘’转8进制’‘’

  print(int(‘c’,16)) ‘’‘转16进制’‘’

可变类型与不可变类型

  • 可变类型:只改变的情况下,id不变,说明你改的是原值。
  • 不可变类型:值改变的情况下,id一定改变。
x = 10
print(id(x))
x = 11
print(id(x))

(2)浮点型

作用例子:薪资 身高 体重

salary = 1.1 float(1.1)

res = float(‘1.11’)

print(type(res)) ‘’‘float’‘’

(3)字符串型

存一个值;不可变型;

1、用途:描述性 2、定义方式:'',"",""""""

s = 'hello baby' # str('hello baby')
s1 = str([1,2,3,4])
print(type(s1))
s2 = str({'name':'jason','password':123})
print(type(s2))
  • 1.按索引取值(正向取+反向取):只能取
s = ‘hello big baby’

print(s[0]) ‘’‘h’‘’
按索引取值
  • 2.切片操作(顾头不顾尾,步长):从一个大的字符串中截取一段新的小字符串,左边是头,右边是尾,并且不是按数字来分头尾的
s = ‘hello big baby’

print(s[0:5]) ‘’‘hello’‘’

print(s[0:10:1]) ‘’‘hello big 步长默认是1’‘’

print(s[0:10:2]) ‘’‘步长表示隔几个取一个‘’‘
切片操作
  • 3.了解复数取值
s = ‘hello big baby’
print(s[-1])
 ‘’‘无’‘’
print(s[0:5:-2])
 ‘’‘-2是步长,’无‘ 切片取值默认是从左往右的’‘’
print(s[5:0:-1]) 
‘’‘-1是步长, ’ olle‘ 此切片取值为从右往左’‘’
print(s[-1:-10:-1]) 
‘’‘ybab gib ’‘’
复数取值
  • 4.长度len:统计的是字符串中字符的个数
s1 = ‘ ’
print(len(s1)) 
''' 1 '''
  • 5.成员运算in和not in:判断一个子字符串是否存在于一个大的字符串中
print(‘zkj’ in ‘zkj is wd and zkj is godman’)
print(‘k’ in ‘zkj is wd and zkj is godman')
print(‘jason’ not in ‘zkj is wd and zkj is godman’)
  • 6.去掉字符串首尾的空格,不管中间的,用 .strip()
username = input('>>>:').strip()
if username == 'jason':
    print('good job')
‘’‘strip()默认去除字符串首尾的空格
rstrip()去除右边的空格;lstrip()去除左边空格
使用内置的方法统一采用 句点符 ( . )
’’‘
name1 = ‘jason’
name2 = ‘ jason ’.strip()
print(name1 == name2)
’‘’ ‘jason’ == ‘ jason ‘ ’‘’

name3 = ‘$$$$egon$$$$’
print(name3.strip(‘$’))
‘’‘ ’egon’ ‘’‘

name4 = ‘% $&jason@*)’
print(name4.strip(‘% $&@*)’))
’‘’ ‘jason’ ‘’‘
去掉字符串首尾空格,不管中间的,用.strip()
  • 7.切分split:针对按照某种分隔符组织的字符串,可以用split将其切分成成列表,进而进行取值
data = ‘jason|123|handsome’
print(data.split(‘ | ’))
username,password,info = data.split(‘ | ’)
print(username,password,info)

'''[ ’jason‘,‘123’,‘handsome’ ]'''

‘’‘强调:split切分出来的数据类型是一个列表’‘’

data = ‘jason|123|handsome’
print(data.split( j ))
'''split切割的顺序其实是从左往右的'''
print(data.split(‘o’,1)) 
''' [‘jas’,‘n|123|hands’,‘me’] '''
print(data.rsplit(‘o’,1)) 
'''这次是从右往左,依照’0‘切割,不过只切割第一个‘o’ '''
print(data.split('o',2)) 
'''这次是从左往右,依照’0‘切割,不过要切割从左往右数第一个‘o’和 第二个‘o’ '''
'''如果不指定,那么split和rsplit效果是一样的'''
  • 8.循环
data = ‘jason |123|handsome’
for i in data:
print(i)

'''空格也会被打印出来'''

‘’‘需要我们掌握的‘’’

1).strip、lstrip、rstrip

  同上

2).lower、upper

s = ‘JaS1oN’
res = s.lower()
print(res)
print(s)
print(s.upper())
print(s)

'''jas1on,JaS1oN,JAS1ON,JaS1oN'''

‘’‘调用字符串的方法并没有改变字符串本身‘’’

3).startswith,endswith

s1 = ‘egon is dsb’
print(s1.stratswith(‘ j ’)) 
'''False'''
print(s1.stratswith(‘e’))
'''True'''

'''判断字符串是否以XXX开头'''

print(s1.endswith(‘n’)) 
'''True'''

'''判断字符串是否以XXX结尾'''
startswith,endswith

4.format的三种玩法(python推荐使用format格式化输出)

’‘’第一种 按位置占位‘’‘

str1 = ‘my name is { } my age is { }’ .format(‘jason’,18)
str1 = ‘my name is { } my age is { }’ .format(18,‘jason’)
print(str1)
'''my name is jason my age is 18
my name is 18 my age is jason
'''

‘’‘第二种 按索引占位’‘’

str1 = ‘my {1} name is {0} my {0} age is {0}’ .format(‘egon’,18)
print(str1)
'''my 18 name is egon my egon age is egon'''

‘’‘第三种 指名道姓占位(关键字传参)’‘’

str1 = ’my {name} name is {age} my {name} age is {name}‘ .format(name=‘jason’,age=18)
print(str1)
'''my jason name is 18 my jason age is jason'''

5.split、lsplit、rsplit

  上面已经说过了。

6.join(将容器内的多个元素通过指定的字符拼接成一个字符串)

data = ‘jason|123|handsome’
res_list = data.split(‘ | ’)
print(res_list)
res_str = ‘$’.join(res_list)
print(res_str)

'''[’jason’,‘123’,‘handsome’]
jason$123$handsome
'''

7.replace

str = ‘egon is dsb and egon is sb he has a BENZ’
res1 = str.replace(‘egon’,‘kevin’,1)
res2 = str.replace(‘egon’,‘kevin’,2)
print(res1)
print(res2)
print(str)

'''kevin is dsb and egon is sb he has a BENZ
kevin is dsb and kevin is sb he has a BENZ
egon is dsb and egon is sb he has a BENZ
'''

8.isdigit(判断字符串中包含的是否为纯数字)

while True:
    age = input('>>>:')
    if age.isdigit():
        age = int(age)
        if age > 28:
            print('阿姨好')
    else:
        print('你他妈的能不能好好输')
        break

‘’‘需要了解的内置方法’‘’

1.find,rfind,index,rindex,count

s = ‘kevin is dsb and kevin is sb’
print(s.find(‘dsb’)) 
'''返回的是d字符所在的索引值'''
print(s.find(‘XXX’))
'''找不到的时候不报错且返回的是-1'''
print(s.find(‘i’,0,3))
'''还可以通过索引来限制查找范围'''
s = ‘kevin is dsb 0 and kevin is sb’
print(s.index(‘o’))
'''返回所传字符所在的索引值 13'''
print(s.index(‘and’))
'''返回所传字符所在的索引值 15'''
print(s.index(‘i’,0,3))
'''顾头不顾尾,在0,1,2中寻找不到则直接报错'''
View Code

s = ‘kevin is dsb 0 and kevin is sb’

print(s.count(‘n’)) ‘’‘统计字符出现的次数‘’’

2.center,ljust,rjust,zfill

s9 = ‘jason’
print(s9.center(11,‘$’)) 
'''$$$jason$$$'''
print(s9.ljust(11,‘$’))
'''jason$$$$$$$$$$$'''
print(s9.rjust(11,‘$’)) 
'''$$$$$$$$$$$jason'''
print(s9.rjust(11,‘ ’)) 
''' jason'''
print(s9.zfill(40)) 
'''00000000.......00000000000jason'''

3.expandtabs

s10 = ‘a\tbc’
print(s10.expandtabs(100))

'''a bc,空格被拓展了
\r\n或者\n、\r   回车换行
'''

4.captalize,swapcase,title

s12 = ‘hElLo WoRLD sH10’
print(s12.capitalize())
'''Hello world sh10首字母大写'''
print(s12.swapcase())
'''每个单词字母大小写互换'''
print(s12.title())
'''每个单词的首字母大小写互换'''

5.is数字系列

num1 = b’4’ ‘’‘bytes’‘’

num2 = u’4’ ‘’‘unicode,python3中无需加u就是unicode’‘’

num3 = ‘壹’ ’‘’中文数字‘’‘

num4 = ‘Ⅳ’ ‘’‘罗马数字’‘’

‘’‘ ’’.isnumeric():unicode,中文数字,罗马数字;只要是表示数字就都识别‘’‘

print(num2.isnumeric())

print(num3.isnumeric())

print(num4.isnumeric())

’‘’ ''.isdecimal(): unicode 只识别普通的阿拉伯数字‘’‘

print(num2.isdecimal())

print(num3.isdecimal())

print(num4.isdecimal())

‘’‘ ’ ‘.isdigit() :bytes,unicode 通常情况下使用isdigit就已经满足需求了’‘’

print(num1.isdigit())

print(num2.isdigit())

print(num3.isdigit())

print(num4.isdigit())
is数字系列

(4)列表类型

‘’‘list内部原理就是for循环取值,然后一个个塞到列表中去’‘’

优先掌握的操作

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

l = [1,2,3,4]

‘’’print(l[0:4:1])

print(l[0 : :])

print(l[5: :-1])

‘’‘’

print(id(l))

l[0] = 69

print(id(l))

print(l)
按索引存取值

2.切片(顾头不顾尾,步长)

l = [11,22,33,44,55]
l1 = [99,88,77,66]
'''尾部添加一个66'''
l.append(66)
'''注意append值能将被添加的数据当作列表的一个元素'''
print(l)
'''l = [11,22,33,44,55,66]'''
'''任意位置添加元素'''
l.insert(2,96)
'''通过索引在任意位置添加元素'''
print(l)
'''注意insert值能将被添加的数据当作列表的一个元素'''
'''添加容器类型数据'''
'''l.append(l1)
l.insert(-1,l1)
l.extend(l1) ‘’内部原理for循环l1一个个追加到尾部
'''
l = [11,22,33,44,55]
l.extend([1,])
print(l)
'''[11, 22, 33, 44, 55, 1]'''
切片操作

3.长度

print(len(l))

4.成员运算in和not in

print(444 in l)
'''True或者False'''

5.往列表中添加元素(很重要)

append

insert

extend    '''只能添加列表'''

6.删除

print(l)
del l[2]
'''del适用于所有数据类型的删除操作'''
print(l)

res1 = l.pop()
'''尾部弹出'''
res2 = l.pop()
res3 = l.pop()
print(res1,res2,res3)

res1 = l.pop(0) 
'''可以指定索引,按照索引弹出元素'''
print(res1)

res = l.remove(33)
'''指定要删除的元素的值'''
print(l)
print(res)

s = ‘haha’
print(s)
del s
print(s)
删除操作

7.循环

for i in l:
print(i)
posted @ 2019-07-03 20:41  泡泡茶壶i  阅读(246)  评论(0编辑  收藏  举报