数据类型及内置方法

一. 可变类型与不可变类型

不可变类型: 值改变的情况下,ID也随之改变。

可变类型 :值改变的情况下,ID不变。

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

二.int类型

用途:用于记录年龄、号码、身份证号等等。

定义方式:age=18   # age = int(18)

十进制对其他进制的转换

            print(bin(14))  # 十进制转二进制

            print(oct(14))  # 十进制转八进制

            print(hex(2))   # 十进制转16进制            
View Code

其他进制转十进制

        

        print(int("110",2))   # 二进制转十进制

        print(int("77",8))    # 八进制转十进制

        print(int("39",16))   # 十六进制转十进制            
View Code

ps:int()强制转换时只能识别数字。

三.float类型

用途:用于记录描述身高、薪资、体重等状态。

定义方式:salary = 3.1   #  salary = float(3.1)

ps:float()强制转换时除了能识别数字外还能识别字符.小数点。

int和float统称为数字类型,数字类型只能存一个值,无序且属于不可变类型。

四.str类型

用途:用于描述记录事物的状态。

定义:通过使用单双引号及三引号来定义。

   name = 'stone'    #  name = str('stone')

常用操作及内置方法

1.按索引取值

         str1 = "hello world!
"
        print(str1[4])    # 正数代表方向从左到右,正数索引从0开始

        print(str1[-2])   # 负数代表方向从右到左,负数索引从-1开始            
View Code

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

        str1 = "hello world!"

        print(str1[0:7:1])   
      # 第一个数代表开始索引,第二个数代表结束索引,第三个数代表步长

        print(str1[5:0:-1])  # 索引为0代表第一个字符,-1代表最后一个字符

        print(str1[5::-1])   #步长为负数代表方向从右向左执行

        print(str1[-1::-1])  #字符串倒序输出

        print(str1[::])      #空切片代表遍历一遍字符串

        print(str1[::-1])    #字符串倒序输出                    
View Code

3.长度len

        str1 = "hello world!"

        print(len(str1))    # 显示字符串中字符的个数
View Code

4.成员运算innot in

作用: 判断一个子字符串是否存在于一个大的字符串中

        str1 = "wanglei is dsb!"

        print("wanglei" in str1)

        print("wanglei" not in str1)
    
View Code

5.strip

作用: 用来去除字符串左右两边的字符,可以指定字符,不指定默认去除的是空格

        str1 = "   wanglei is dsb!  "

        str2 = "*******wanglei is dsb!****"

        print(str1.strip())
        print(str2.strip("*"))
View Code

6 split

作用:针对按某种分隔符组成的字符,可以用split将其切成列表

        str1 = "wanglei:is:dsb!  "

        res  = str1.split(":")

        print(res,type(res))
View Code

7 循环

        str1 = "wanglei:is:dsb!"

        for item in str1 :

            print(item)
View Code

8 需要掌握的

#strip,lstrip,rstrip     # 默认去除字符是空格
print('$$$$$$$egon$$$$$$'.lstrip('$'))  #去除左边的选中字符
print('$$$$$$$egon$$$$$$'.rstrip('$'))  #去除右边的选中字符
print('$$$$$$$egon$$$$$$'.strip('$'))   #去除两边的选中字符

#lower,upper
msg='aABBBBb'
print(msg.lower())  #字母全部变为小写
print(msg.upper())  #字母全部变为大写

#startswith,endswith
msg='alex is dsb'
print(msg.startswith('alex'))  # 判断字符串是否是指定字符开头
print(msg.endswith('b'))   # 判断字符串是否是指定字符结束

#format的三种玩法
print('my name is %s my age is %s' %('egon',18))
print('my name is {name} my age is {age}'.format(age=18,name='egon')) # 给括号里的变量命名,通过大括号加变量名来实现

# 了解
print('my name is {} my age is {}'.format(18,'egon'))  # format括号后的数,要大于等于大括号的个数
print('my name is {0} my age is {1}{1}'.format(18,'egon')) # 通过index来进行读取

#split,rsplit
msg='get|a.txt|333331231'
print(msg.split('|',1))   #从左向右切割,切割符为'|',切割1次
print(msg.rsplit('|',1))  #从右向左切割,切割符为'|',切割1次
#选择默认切割次数,split,rsplit返回结果一致


#join
msg='get|a.txt|333331231'
l=msg.split('|')
print(l)
src_msg='|'.join(l)    # 选定列表之间的连接符号,通过.join来连接变成str
print(src_msg,type(src_msg))

#replace
msg='alex say i have one tesla,alex is alex hahaha'
print(msg.replace('alex','sb',1))   # 三个参数 (被替换字符,替换字符,替换个数)

#isdigit # 判断字符串中包含的是否为纯数字
print('123'.isdigit()) # 如果字符串是由纯数字组成的,则返回True不是为False
View Code

9需要了解的内置方法

#find,rfind,index,rindex,count
s = 'qweqwRWEFW is dsb o and kevin is sb'
print(s.find('weq'))  # 返回的是w字符所在的索引值
print(s.find('xxx'))  # 找不到的时候不报错返回的是-1
print(s.rfind('W',0,25))  # 还可以通过索引来限制查找范围,不包括两边
print(s.index('o'))  # 返回所传字符所在的索引值
print(s.count('q'))  # 统计字符出现的次数
# find比index有更加良好的容错性,加入index没有查找到相应结果会报错,而find不会

#center,ljust,rjust,zfill
s9 = 'wefwgfen'
print(s9.center(20,'*')) # 长度为20,字符个数不够两边填充指定字符
print(s9.ljust(40,'$'))  # 长度为40,字符个数不够右边填充指定字符
print(s9.rjust(40,'$'))  # 长度为40,字符个数不够左边填充指定字符

print(s9.zfill(40))  # 长度为40,左边填充0


#expandtabs
s10 = 'a	bc'
print(s10.expandtabs(100))   # 把制表符扩展成指定长度

#captalize,swapcase,title
s12 = 'hElLo WoRLD!12434'
print(s12.capitalize())  # 首字母大写
print(s12.swapcase())    # 大小写交换
print(s12.title())       # 每个单词的首字母大小

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


# ''.isdigit() :bytes,unicode    通常情况下使用isdigit就已经满足需求了
print(num1.isdigit())
print(num2.isdigit())
View Code

ps:str类型能存一个值,有序,是不可变类型。

四.list类型

用途:按照位置来记录值,通过索引来取值。

定义:在[]内用逗号把多个值分开。friends=['alex','wupeiqi'] # friends=list([...])

优先掌握操作

1.按索引取值

            l = [1,2,3,4]

            print(l[0],l[-1])    
View Code

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

            l = [1,2,3,4]

            print(l[0:4:1])

            print(l[4:0:-1])    
View Code

3.长度

len()获取列表元素个数

4. in 和not in

5.添加长度的三种方法

l = [11,22,33,44,55]
l1 = [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,2])
print(l)
View Code

6.删除元素的三种方法

     
            l = [1,2,3,33,4]

            del l[2]  # del适用于所有的删除操作

            res1 = l.pop()  # 尾部弹出

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

            res = l.remove(33)  # 指定要删除的元素的值    
View Code

7.循环

 
           l = [1,2,3,4]

            for item in l:

                print(item)    
View Code

ps:list类型能存多个值,有序,是可变类型

      clear方法可以清空列表.

原文地址:https://www.cnblogs.com/Cpsyche/p/11129603.html