python常用内置对象

常量与变量

在python中,变量存储的是值得地址,不需事先声明,可以直接赋值使用,它是一种强类型编程语言,解释器会根据值或者运算自动推断变量类型,也是一种动态类型语言,变量类型可以随时改变。
python采用基于值得内存管理方式,如果为不同的变量赋予相同的值(仅适用于-5到256的整数和短字符串),这些变量指向同一地址。

>x = 3
>y = x;
>id(x)
140729996321232
>id(y)
140729996321232
>x += 6
>x
9
>id(x)
140729996321424
>y
3
>id(y)
140729996321232

数字

  • 支持任意大数字,仅受到内存限制
>9999 ** 99
2271489747289376003753354963522413909540003577071282827989791465001781373721534002114854962776655912708340735608699953341392362473086303333047427623535370333620989169235173371187234500913060176977851254236091855092039112925904305023232125074256130829162384856963161031062069757647848697487167334072579505391812096936169658465260127141575438309768287883431096652914535098294289625568674204657115
  • 由于精度问题,应尽量避免在实数之间直接进行相等测试,应该以二者之差的绝对值是否足够小为依据
>0.4 -0.1
0.30000000000000004
>0.4 - 0.1 == 0.3
False
>abs(0.4 - 0.1 - 0.3) < 1e-6 #10的-6次方
True
  • 在数字的算术运算表达式求值时会进行隐式的类型转换,如果存在复数则都变为复数,没有复数但有实数就都变为实数,如果都是整数则不进行类型转换
  • 标准库fractions中的Fraction对象支持分数及其运算
  • 标准库fractionsdecimal中提供的Decimal类实现了更高精度实数的运算。

字符串(有序、不可变序列)与字节串

>>> x = 'Hello world.'                  #使用单引号作为定界符
>>> x = "Python is a great language."   #使用双引号作为定界符
>>> x = '''Tom said, "Let's go."'''     #不同定界符之间可以互相嵌套
>>> print(x)
Tom said, "Let's go."
>>> x = 'good ' + 'morning'             #连接字符串
>>> x
'good morning'
>>> x = 'good ''morning'                #连接字符串,仅适用于字符串常量
>>> x
'good morning'
>>> x = 'good '
>>> x = x'morning'                      #不适用于字符串变量
SyntaxError: invalid syntax
>>> x = x + 'morning'                   #字符串变量之间的连接可以使用加号
>>> x
'good morning'

字符串与字节串之间使用encode(),decode()方法转换

列表、元组、字典、集合

对比

>>>x_list = [1,2,3]
>>>x_tuple = (1,2,3)
>>>x_dict = {'a':97,'b':98,'c':99}
>>>x_set = {1,2,3}
>>>print(x_list[1])
>>>print(x_tuple[1])
>>>print(x_dict['a'])
>>>print(3 in x_set)


2
2
97
True

列表(有序、可变序列)

  • 元素有序、存储连续
  • 增删时自动对内存进行扩展或者收缩,但烟瘴严重影响效率,应尽量避免
  • 位于[]中,可以包含不同类型的元素。
[10,20,30,40]
['crunchy ll','red','lark']
['span',2.0,5,[10,20]]
[['file',200.7],['fielw',260.9]]
[{3},{5:6},(1,2,3)]
[]#空列表
  • 列表的创建与删除
>>> list((3,5,7,9,11))                #将元组转换为列表
[3, 5, 7, 9, 11]
>>> list(range(1, 10, 2))             #将range对象转换为列表
[1, 3, 5, 7, 9]
>>> list('hello world')               #将字符串转换为列表
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
>>> list({3,7,5})                     #将集合转换为列表
[3, 5, 7]
>>> list({'a':3, 'b':9, 'c':78})      #将字典的“键”转换为列表
['a', 'c', 'b']
>>> list({'a':3, 'b':9, 'c':78}.items())#将字典的“键:值”对转换为列表
[('b', 9), ('c', 78), ('a', 3)]
>>> x = list()                          #创建空列表
[]
>>> del x #删除
  • 列表的访问
>>> x = list('Python')             #创建类别对象
>>> x
['P', 'y', 't', 'h', 'o', 'n']
>>> x[0]                           #下标为0的元素,第一个元素
'P'
>>> x[-1]                          #下标为-1的元素,最后一个元素
'n'
  • 列表的常用方法
    在这里插入图片描述
  • 列表推导式
>>> aList = [x*x for x in range(10)]
#相当于
>>> aList = []
>>> for x in range(10):
    aList.append(x*x)
  • 列表切片[start:end:step]
    第一个数字start表示切片开始位置,默认为0;
    第二个数字end表示切片截止(但不包含)位置(默认为列表长度);
    第三个数字step表示切片的步长(默认为1)。
    当start为0时可以省略,当end为列表长度时可以省略,当step为1时可以省略,省略步长时还可以同时省略最后一个冒号。
    当step为负整数时,表示反向切片,这时start应该在end的右侧才行。

元组(有序、不可变序列)

  • 元组的创建与访问

字典(无序、可变序列)

集合(无序、可变序列)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值