数据类型及内置方法

时光毁灭记忆、已成空白 提交于 2019-12-03 14:51:24

数据类型及内置方法

1、数字类型

1、整型 int

用途:用于存取整数,手机号,QQ号等

定义方式:age = 18 或者 age = int(18)

常用方法:数学计算

其他进制转十进制

二进制转10进制:110 = 1 * (2 ** 2) + 1 * (2 ** 1) + 0 * (2 ** 0) = 6

print(int('110',2)) # >>>6

八进制转10进制:123 =1 * (8 ** 2) + 2 * (8 ** 1) + 3 * (8 ** 0) = 64 + 16 + 3 = 83

print(int("123",8)) # >>>83

16进制转10进制:321= 3 * (16 ** 2) + 2 * (16 ** 1) + 1 * (16 ** 0) = 768 + 32 + 1 = 801

print(int("321",16)) # >>>801

十进制转其他进制

bin(6)# >>>0b 110

oct(83)# >>>0o 123

hex(801)# >>>0x 321

有索引的类型都是有序的

可变类型:值变,id不变

不可变类型:值变,id不变

整型int是无序的,不可变类型

只能存一个值

2、浮点型 float

用途:用于存小数,如身高,体重等

定义方式:height = 1.81 或 height = float(1.81)

常用方法:数学计算

浮点型字符串转整型,必须先转换成浮点型才能转换成整型,并且是直接去除小数部分

s1 = '1.9'
print(type(s1))
f1 = float(s1)
print(f1)
print(type(f1))
a1 = int(f1)
print(a1)
print(type(a1))

浮点型是无序的,不可变的,只能存一个值

2、字符串类型

用途:存描述性信息的数据,如个人简介,姓名等

定义方式

  1. 单引号 ' '
  2. 双引号 "" ""
  3. 三引号 ''' ''' 或者""" """

三种方式没有区别,但是同一级引号不能混用,字符串内套字符串,需用不同引号

字符串前面加个小写的r,表示转义,将字符串内有特殊意义的字符,全部转成普通字符串

用引号引起的部分,全部转成字符串

print("不换行\r","打印")# >>>打印
print(r"不换行\r")# >>>不换行\r

内置方法

  1. 索引取值(正向从0开始,反向从-1开始),只能取,不能存
s1 = "15,4'shen',[2]"
print(s1[2])# 正向取>>>,
print(s1[-3])# 反向取>>>[
  1. 索引切片 :截取字符串中的一小段字符,(顾头不顾尾)第三个为步长
s1 = "hello,world"
print(s1[0:5])
print(s1[:5])# 取前5个数
print(s1[::-1])# 反向取
print(s1[-5:])# 取后五个数
print(s1[0:7:2])# 以步长为2取
  1. 成员运算:in 和 not in 返回的是布尔值
s1 = "hello,world"
print("o"in s1)# >>>True
print("e" not in s1)# >>>False
  1. .strip():去除字符串左右两边指定的字符
s1 = input(">>>").strip()# 去除字符串两边的空格
s2 = input(">>>").strip("*")# 去除输入两边的*
s3 = "***shen****"
print(s3.strip("*"))# 去除两边的*
  1. len():获取字符串中字符的个数,列表中,值的个数,字典中键值对个数
s1 = "hello world"
print(len(s1))# >>>11(空格也算)
  1. .split():切分:对字符串按照指定的分隔符进行从左往右切分,可以指定切分次数,返回的是一个列表
s1 = "python hello world"
print(s1.split())
s1 = "python|hello|world"
print(s1.split("|"))
print(s1.split("|",1))# 指定切分次数,从左往右切
s1 = "python\hello\world"
print(s1.split("\\"))# 需两个\\前面一个为转义\特殊意义的,python中\\代表自身\
  1. for 变量 in 可迭代对象:循环取值:字符串、列表、字典中能索引取值的
s1 = "hello world"
for i in s1:
    print(i)
  1. .rstrip()/lstrip():去除字符串右边/左边的指定字符
s3 = "***shen****"
print(s3.strip("*"))
print(s3.rstrip("*"))
print(s3.lstrip("*"))
  1. .lower()/.upper():转换大小写
s1 = "Hello WorlD"
print(s1.lower())# 全部字母转成小写
print(s1.upper())# 全部字母转成大写
  1. .starswith()/.endswith():判断是否以。。字符开头或者以。。字符结尾,返回的是布尔值
s1 = "hello world"
print(s1.startswith("h"))
print(s1.endswith("ld"))
  1. 字符串格式化,%s,%d,.format(),f-string
  • %s和%d

%s可以接收任意字符,%d只能接收数字类型并且输出转换成整型

name = input("输入名字:")
age = input("输入年龄:")
#age = int(age)#%d只能接收数字类型,故需要转换成数字类型
age = eval(age)#%d只能接收数字类型,故需要转换成数字类型
print("my name is %s" % name)
print("my name is %s , my age is %d" % (name, age))
print("my name is %s , my age is %s" % (name, age))
  • .format()

三种玩法

  1. “{}{}”.format(xxx,yyy)#按照顺序往花括号里放值
  2. "{1}".format(xxx,yyy,zzz)#按照索引往花括号里放值
  3. "{name}".format(name=xxx)#指定放值
name = "shen"
age = 18
hobby = "study"
#按顺序往{}里放值
print("我的名字是{}我的年龄{}".format(name, age, hobby))
#按索引放值
print("我的名字是{0}我的年龄{2}".format(name, hobby, age))
#按指定放值
print("我的名字是{mz}我的年龄{nn}".format(mz=name, nn=age))
  • f-string (python3.6版本之后才有的功能)

f"{xxx}"

name = "shen"
age = 18
habby = "study"
print(f"我的名字是{name},我的年龄是:{age}我的爱好是{hobby}")
  1. .rslipt():切分,从右往左切,可以指定切分次数,返回列表
s1 = "python|hello|world"
print(s1.split("|",1))
print(s1.rsplit("|"))
print(s1.rsplit("|",1))
  1. .join():按照分隔符将加入纯字符串组成的可迭代对象中元素拼成字符串
s1 = ["1","8","shen"]
print("*".join(s1))# 将*加入到纯字符串列表中拼接成字符串
s1 = {"name":"shen","age":18}
print("$".join(s1))# 列表拼接的是key关键字
  1. .replace():将字符串中字符按照旧值,新值进行替换
s1 = "hello world"
print(s1.replace("hello", "hi"))# >>>hi world
  1. .isdigit():判断当前字符串中的数据,是否为存数字(整数),返回是布尔值
s1 ="123"
s2 = "123,321"
print(s1.isdigit())# >>>True
print(s2.isdigit())# >>>False

可以索引取值,有序,值变id变所以是不可变类型,只能存一个值

3、列表类型 list

用途:用于存一个或者多个不同类型的值

定义方式:通过中括号[],存值,值之间用逗号分隔

常用方法:

  1. 索引取值,正向取和反向取,可以取也可以存
l1 = [1, 2, 3, "shen"]
print(l1[2])
print(l1[-1])
l1[3] = 8# >>>将l1索引3位置的值换成8
  1. 索引切片

跟字符串索引切片相同,顾头不顾尾,默认步长为1

  1. .append():在列表最后追加一个值,传入什么类型加入什么类型,一次性只能加一个值
l1 = [1, 2, 3, "shen"]
l1.append(100)
print(l1)# >>>[1, 2, 3, 'shen', 100]
l1.append("age")
print(l1)# >>>[1, 2, 3, 'shen', 100, 'age']
l1.append([1,2])
print(l1)# >>>[1, 2, 3, 'shen', 100, 'age', [1, 2]]
  1. .insert():在任意位置插入一个值
l1 = [1, 2, 3, "shen"]
l1.insert(3,"name")# 将"name"插入索引的位置
print(l1)# >>>[1, 2, 3, 'name', 'shen']
  1. .extend():将传入的可迭代对象打散后追加到列表后面
l1 = [1, 2, 3, "shen"]
l1.extend([1,2,3])
print(l1)
l1.extend({"name":"shen","age":18})
print(l1)
  1. .remove():删除指定值,仅删除第一个,没有返回值
l1 = [1, 2, 3, "shen",1]
l1.remove("shen")
print(l1)# >>>[1, 2, 3, 1]
l1.remove(1)
print(l1)# >>>[2, 3, 1]
  1. .pop():按照索引删除,如果不指定索引默认删除最后一个,有返回值
l1 = [1, 2, 3, "shen", 1]
v1 = l1.pop()# 返回值是删除的那个值
print(l1)# >>>[1,2,3,"shen"]
print(v1)# >>>1
v2 = l1.pop(2)# 拿出删除的那个值
print(l1)# >>>[1,2,"shen"]
print(v2)# >>>3
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!