python中pop类型_Python基础之基本数据类型

前言:基本类型是需要掌握的,是编程基础。不理解没关系,死记住就好了,就像你小时候背9*9乘法表也不需要为什么。

Python的基本数据类型有 数字,字符串,列表,元组,字典,集合;

一:数字

Python3 数字类型支持 int(长整型)、float(浮点型)、bool、complex(复数)。其中的bool为True(等同于数字1),或者False(等同于数字0),可以进行数值运算;

使用type()函数和isinstance()可以查看对象类型:

print(type(1), type(1.5), type(True), type(5 + 3j))

print(isinstance(1,int),isinstance(True,int),isinstance(True,bool))

print(True + 1,False+1)

结果为:

True True True

2 1

数值运算

①加法用 +,减法用 -,乘法用 *,乘方用**;

②关于除法有两种:\ 和 \\,前者表示结果为浮点数,后者表示结果为整型

print(9/2,9//2,10/3,10//3)

结果为

4.5 4 3.3333333333333335 3

二:字符串

用单引号 ' 或双引号 " 括起来的任意文本即为字符串,字符串中的特殊字符要使用 \ 来转义。

①转义

字符串中含有如特殊字符需要转义,比如 \' , \" ,\n,\t等,他自身\ 也需要转义。

print("I'm \n \"ok\" \n \\ \n \\")

输出

I'm

"ok"

\

\

使用 r ' '可以使字符串中的字符不转义,原样输出。

print(r"I'm \n \"ok\" \n \\ \n \\")

输出:

I'm \n \"ok\" \n \\ \n \\

②格式化

三种方式 % f, format:

name = 'tom'

mobile = 1388888888

print('%s 的手机号码是 %s' % (name, mobile))

print('{} 的手机号码是 {}'.format(name, mobile))

print(f'{name} 的手机号码是 {mobile}') #3.6支持

输出为

tom 的手机号码是 1388888888

tom 的手机号码是 1388888888

tom 的手机号码是 1388888888

③常见方法

find(),join (),split (),replace (),strip ()等等,遇到再翻资料;

三:布尔值

布尔值本质上0(False)和1(True),运算有and,or,not

print(True and True) # and是与运算,两边都为True,最终结果才是True

print(True or False) # or是或运算,一边为True,最终结果即是True

print(not False) # not是非运算,取反

结果为

True

True

True

最后,在判断条件中,None,"",(),[],{},0均代表Fasle:

if not '' or None or () or [] or {} or 0 or False:

print("均为假")

输出

均为假

因为 ' ' or None or () or [] or {} or 0 or False ,整体为False,所以not False为True,才能执行方法体中print。or运算中全为False才能整体为False。

四:列表(list)

list为可变的,有序的集合。即长度可变,元素排列有序;但元素类型可以不一致

①定义一个list:使用 [ ]

list = ['A', 'B', 666, True]

print(len(list)) # len()得到list长度,即元素个数

②对元素操作:

通过list[n],n范围为0~len(list)-1,本例中n可取值0,1,2,3,(如果倒着数,最后一个元素下标为-1)超过这个范围会跑出数组越界 IndexError 错误

(1)获取元素,元素赋值

print(list[0])

print(list[1])

print(list[2])

print(list[3])

# print(list[4]) IndexError

print("----------")

print(list[-1])

print(list[-2])

print(list[-3])

print(list[-4])

# print(list[-5]) IndexError

list[0] = "888" # 通过元素下标可以修改元素

print(list)

输出

A

B

666

True

----------

True

666

B

A

['888', 'B', 666, True]

(2)增减元素

# 增减元素

list.append("append") # append追加到末尾

print(list)

list.insert(0, 'insert') # insert插入到指定位置

print(list)

list.pop() # 删除末尾

print(list)

#pop可以接收删除的元素并继续使用

list.pop(0) # 删除指定位置,

print(list)

输出:

['888', 'B', 666, True, 'append']

['insert', '888', 'B', 666, True, 'append']

['insert', '888', 'B', 666, True]

['888', 'B', 666, True]

(3)list嵌套

list元素也可以是另一个list。

list = ['A', 'B', ['c', 'd']],#注意list的长度为3,看成是一个二维数组

# 拆解list为 l1,l2

l1 = ['c', 'd']

l2 = ['A', 'B', l1]

print(list)

print(l2)

#获取子list中的元素

print(list[2][1])

print(l1[1])

输出:

['A', 'B', ['c', 'd']]

['A', 'B', ['c', 'd']]

d

d

五:元组(tuple)

tuple用 ( )来表示。

tuple和list都是python内置的有序的集合,区别是前面的列表list是可变的,而元组tuple是不可变的。

既然是不可变的,那么tuple,只提供了获取元素的方法,其他类似append,pop,insert之类都是没有的。

t = (1, 2, 3) # 一旦初始化,不可更改,元素在初始化的时候定义

print(t[0])

print(t[2])

print(t[3]) #IndexError

注意:当tuple只有1个元素的时候,为了区分()是为了定义tuple还是数学意义的括号,需要加“ ,” 区分。

t = (1) # int 类型 1

print(t)

t = (1,)# tuple

print(t)

输出:

1

(1,)

当tuple内部有个可变的列表list的时候,tuple的元素是可以变化的。这和tuple的“不可变”并不冲突。

t = ('a', 'b', ['A', 'B'])

t[2][0]='X'

t[2][1]='Y'

print(t) #输出为 ('a', 'b', ['X', 'Y'])

搬个图解释:

c606e4355f97?tdsourcetag=s_pctim_aiomsg

初始状态.png

c606e4355f97?tdsourcetag=s_pctim_aiomsg

更改后.png

不可变指的是:tuple元素的引用指向不可变(可以理解为地址不改变),但是这个引用指向的内容是可变的。对应例中,t[2]的引用在初始化后就不变了,就可以可理解为t本身就不可变。至于t[2]本身内容是什么,变不变,t 本身并不关心。

六:字典dict

dict全称dictionary,是一种使用key-value ( 键值对 ) 的类型。优点,查找快。

①定义

(1):初始化的时候定义元素:

d = {'小王': 10, '大王': 20, '老王': 30}

(2) :通过key,当如指定的value:

d={}

d['小王']=10

d['大王']=20

d['老王']=30

print(d) #输出 {'小王': 10, '大王': 20, '老王': 30}

②赋值,查询,删除

(1)根据key赋值:

d['小王']=99

print(d) #{'小王': 99, '大王': 20, '老王': 30}

d['小王']=88 #多次对同一个key放入不同的value,会覆盖前面的赋值

print(d) #{'小王': 88, '大王': 20, '老王': 30}

(2)根据key查出相应的value:

age=d['小王']

print(age)

age=d['王'] #KeyError,当key不存在会抛出这个错误

当key不存在,会抛出KeyError,避免key是否存在的方法:

①‘key’in dict 判断dict中是否又该key

②dict.get('key',defaultValue),如果key不存在,可以返回None

(3) 用pop(key) 删除一个键值对

d.pop('小王')

print(d) #{'大王': 20, '老王': 30}

dict的查找是根据key计算出value的位置。因此必须保证key是不可变的,否则每次计算出的value位置都不同,内部将会混乱。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key. dict存储的顺序和插入顺序无关,是无序的。

七:set

set和dic的区别在于,set没有储存对应的value,只有key。同时对key的要求也是唯一不可变,因此set可以看成是无序和无重复元素的集合。

(1)定义

定义一个set,需要一个 list 作为参数:

l = [1, 2, 3, 4]

s=set(l)

print(s) # {1, 2, 3, 4}

(2)增加,删除元素

s.add(1)

s.add(2) #重复元素会过滤掉

print(s)

s.remove(4) #删除一个元素

print(s)

输出:

{1, 2, 3, 4}

{1, 2, 3}

点赞评论走起啊~

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值