数据类型及常用方法(一)

一、整型和浮点型

  1.整型作用:QQ号、手机号、不带字母的的身份证。。。

    浮点型作用:薪资、身高、体重

  2.整型定义方式:

    age = 18  (age = int(18))

    浮点型定义方式:

    salary = 1.1 (float(1.1))

    int只能转纯数字的字符串

    进制转换:

    其他进制转十进制:

      二进制转十进制(0,1)      

10  # 1*(2**1) + 0*(2**0)  2

      八进制转十进制(0-7)

235 # 2*(8**2) + 3*(8**1) + 5*(8**0)

      十六进制转十进制(0-9,A-F)

217 # 2*(16**2) + 1*(16**1) + 7*(16**0)

      int可以传第一个参数,表示第一个参数是什么进制,然后转换成十进制

print(int('1100',2))
print(int('14',8))
print(int('c',16))

    十进制转其他进制:

      十进制转二进制:

print(bin(12))  # 0b1100  0b表示后面的数字是二进制数

      十进制转八进制:

print(oct(12))  # 0o14  0o表示后面的数字是八进制数  14 >>> 1*(8**1) + 4*(8**0))

      十进制转十六进制:

print(hex(12))  # 0xc  0x表示后面的数字是十六进制数

  3.常用操作

    存一个值、不可变类型

    有序:有索引的数据都是有序的

  ps:可变类型与不可变类型

    可变类型:值改变的情况下,id不变,改的是原值

    不可变类型:值改变的情况下,id一定变

x = 10
print(id(x))  # 1882746624
x = 11
print(id(x))  # 1882746656

二、字符串类型

  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))

  3.常用操作+内置的方法

    优先掌握的操作:

    (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])  # hlobg 步长表示隔几个取一个

     了解负值取值:

s = 'hello big baby~'
print(s[-1])  # ~
print(s[0:5:-2])  # 切片取值默认是从左往右的 从0开始读起,所以是无
print(s[5:0:-1])  # 切片取值默认是从右往左的 从5开始读起,所以是 olle
print(s[-1:-10:-1])  # ~ybab gib

    (3)长度len():统计的是字符串中的字符的个数

s1 = ' '
print(len(s1))  # 1

    (4)成员运算in和not in:判断一个子字符串是否存在于一个大的字符串中

print('egon' in 'egon is dsb and egon is sb')  # True
print('g' in 'egon is dsb and egon is sb')  # True
print('jason' not in 'egon is dsb and egon is sb')  # True

    (5)去掉字符串左右两边的字符strip,不管中间的

      strip()默认取出字符串首尾的空格

      使用内置的方法统一采用 句点符(.)

username = input('>>>:').strip()
if username == 'jason':
    print('good job')
name1 = 'jason'
name2 = '   jason   '.strip()
print(name1 == name2)  # True
name3 = '$$$$$eg$on$$$$'
print(name3.strip('$'))  # eg$on

      了解即可

name4 = '% ¥#jason&*)'
print(name4.strip('% ¥#)'))  # jason&*
# rstrip() lstrip()
name5 = '$$$$jason$$$$'
print(name5.lstrip('$'))  # left左边 jason$$$$
print(name5.rstrip('$'))  # right右边 $$$$jason

    (6)切分split:针对按照某种分隔符组织的字符串,可以用split将其切分成列表,进而进行取值

data = 'jaso n|123| handsome'
print(data.split('|'))  # ['jaso n', '123', ' handsome']
username,password,info = data.split('|')
print(username,password,info)  # jaso n 123  handsome

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

data = 'jaso n|123| handsome'
print(data.split('o'))  # 切割的顺序其实从左往右的 ['jas', ' n|123| hands', 'me']
print(data.split('o',1))  # 切割的顺序其实从左往右的 ['jas', ' n|123| handsome']
print(data.rsplit('o',1))  # 切割的顺序其实从左往右的 ['jaso n|123| hands', 'me']

      如果不指定那么split和rsplit效果都是一样

    (7)循环

data = 'jason'
for i in data:
     print(i)
# j a s o n

    需要掌握的:

    (1)strip:去掉字符串左右两边的字符

      lstrip:去掉字符串左边的字符

      rstrip:去掉字符串右边的字符

    (2)lower:使字符串全部小写

      upper:使字符串全部大写

s = 'JaS1oN'
res = s.lower()
print(res)  # jas1on
print(s)  # JaS1oN
print(s.upper())  # JAS1ON
print(s)  # JaS1oN

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

    (3)startswith:判断字符串是否以什么开头

      endswith:判断字符串是否以什么结尾

s1 = 'egon is dsb'
print(s1.startswith('e'))  # 判断字符串是否以什么什么开头 True
print(s1.endswith('n'))  # 判断字符串是否以什么什么结尾 False

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

      第一种:按位置占位(跟%s原理一致)

str = 'my name is {} my age is {}'.format('jason',18)
str1 = 'my name is {} my age is {}'.format(18,'jason',)
print(str)  # my name is jason my age is 18
print(str1)  # 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:按照某种分隔符组织的字符串切分成列表,从而取值

      rsplit:从右边切分

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

data = 'jason|123|handsome'
res_list = data.split('|')
print(res_list)  # ['jason', '123', 'handsome']
res_str = '$'.join(res_list)  # 将容器类型中的多个元素通过指定字符拼接成一个字符串
print(res_str)  # jason$123$handsome
l = ['1','a','b']
res = '|'.join(l)
print(res)  # 1|a|b

    (7)replace:修改字符串中的某个字符

str = 'egon is dsb and egon is sb he has a BENZ'
res = str.replace('egon','kevin',1)
print(res)  # kevin is dsb and egon is sb he has a BENZ
print(str)  # egon is dsb and egon is sb he has a BENZ

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

while True:
    age = input('>>>:')
    if age.isdigit():
        age = int(age)
        if age > 28:
            print('阿姨好')
    else:
        print('请输入数字')

    需要了解的内置方法:

    (1)find,rfind,index,rindex,count

s = 'kevin is dsb o and kevin is sb'
print(s.find('dsb'))  # 返回的是d字符所在的索引值
print(s.find('xxx'))  # 找不到的时候不报错返回的是-1
print(s.find('i',0,3))  # 还可以通过索引来限制查找范围
print(s.index('o'))  # 返回所传字符所在的索引值
print(s.index('i',0,3))  # 返回所传字符所在的索引值
print(s.count('n'))  # 统计字符出现的次数

    (2)center,ljust,rjust,zfill

s9 = 'jason'
print(s9.center(12,'*'))  # 居中
print(s9.ljust(40,'$'))  # 左对齐
print(s9.rjust(40,'$'))  # 右对齐
print(s9.rjust(40,' '))
print(s9.zfill(40))  # 中部填充

    (3)expandtabs

s10 = 'a\tbc'
print(s10.expandtabs(100))

    (4)captalize,swapcase,title

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

    (5)is数字系列(通常情况下使用isdigit)

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())

    存一个值,不可变类型

    有序

三、列表类型

  1.作用:多个装备,多个爱好,多门课程,多个女朋友等

  2.定义:[ ]内可以有多个任意类型的值,逗号分隔

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

    优先掌握的操作:

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

l = [1,2,3,4]
print(l[0:4:1])  # [1, 2, 3, 4]
print(l[0::])  # [1, 2, 3, 4]
print(l[5::-1])  # [4, 3, 2, 1]
print(id(l))  # 1584786580552
l[0] = 69
print(id(l))  # 1584786580552
print(l)  # [69, 2, 3, 4]

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

    (3)长度

l = [11,22,33,44,55]
print(len(l))  # 14

    (4)成员运算in和not in

l = [11,22,33,44,55]
print( 444 in l)  # False

    (5)往列表中添加元素

l = [11,22,33,44,55]
l1 = [99,88,77,66]
# [11,22,33,44,55,99,88,77,66]

# 1.尾部添加一个66
l.append(66)  # 注意append值能将被添加的数据当作列表的一个元素
print(l)

# 2.任意位置添加元素
l.insert(2,96)  # 通过索引在任意位置添加元素
print(l)  # 注意insert值能将被添加的数据当作列表的一个元素

# 3.添加容器类型数据
l.append(l1)
l.insert(-1,l1)
l.extend(l1)  # 内部原理for循环l1一个个追加到列表的尾部
l.extend([1,])
print(l)

    (6)删除

l = [11,22,33,44,55]
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)循环

l = [11,22,33,44,55]
for i in l:
    print(i)

转载于:https://www.cnblogs.com/yljbky/articles/11128321.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值