您的位置:首页 > 编程语言 > Python开发

Python基础(二)------Python数据类型之数值、字符串和列表

2019-10-19 14:46 866 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_41155645/article/details/102638453

Python数据类型之数值、字符串和列表

目录

Python数据类型之数值、字符串和列表

一、数值

1.声明、赋值、使用

2.表达式

3.显示

4.比较

5.相除

6.取整

7.整形

8.十六进制、八进制、二进制

9.Decimal

10.布尔型

二、字符串

1.声明

2.转义符

3.忽略转义符

4.基本操作

三、列表

1.性质

2.常用操作

3.注意:列表是引用类型,支持原位修改

一、数值

1.声明、赋值、使用

补充一个Python中比较方便的变量值交换的操作,无需设置中间变量

[code]a , b = b , a

2.表达式

3.显示

  占位符:.format方法,用于在输出字符串中插入数值

[code]#占位符例程
print('3+2={0}'.format(5))
f = 3.3333333333
#保留两位小数的float
print('{0:.2f}'.format(f))

4.比较

返回布尔类型结果:True,False

5.相除

/ 和 //

[code]In [1]: 10/4
Out[1]: 2.5

In [2]: 10//4 #相除取整
Out[2]: 2

6.取整

math.floor() 往左移

math.trunc() 往数轴0的位置移动

round() 四舍五入

[code]In [4]: import math

In [5]: math.floor(3.94) #向下取整
Out[5]: 3

In [6]: math.floor(-3.94)
Out[6]: -4

In [7]: math.trunc(-3.94) #直接截断小数点
Out[7]: -3

In [8]: round(-3.94) #四舍五入
Out[8]: -4

7.整形

无限精度,仅受限于内存和计算机配置

8.十六进制、八进制、二进制

字面值:

[code]In [9]: 0o11 #八进制
Out[9]: 9

In [10]: 0x11 #十六进制
Out[10]: 17

In [11]: 0b11 #二进制
Out[11]: 3

十进制转八进制、十六进制、二进制(进制转换方法):

[code]In [12]: oct(64) #八进制转十进制
Out[12]: '0o100'

In [13]: hex(64) #十六进制转十进制
Out[13]: '0x40'

In [14]: bin(64) #二进制转十进制
Out[14]: '0b1000000'

9.Decimal

精确计算

[code]In [29]: import decimal^M
...: decimal.Decimal('3.14')+decimal.Decimal('1.1')
Out[29]: Decimal('4.24')

10.布尔型

Python中的布尔型本质上还是int型

[code]
In [33]: isinstance(True,int)
Out[33]: True

In [34]: True == 1
Out[34]: True

In [35]: False == 0
Out[35]: True

In [38]: result = 3 + True

In [39]: result
Out[39]: 4

二、字符串

1.声明

' 和 "" 用于直接声明

"""##"""用于定义说明文档

2.转义符

用于直接输出的:比如 \'   \"

[code]In [16]: print("\"s\"is a word!")
"s"is a word!

有特殊功能的:比如 \n(换行)  \t(四个空格) \b(退格) ...

 

3.忽略转义符

 r'... ' 将忽略掉单引号中间的所有转义符

[code]print('what is \n ?')
print(r'what is \n ? ')
[code]what is
?
what is \n ?

4.基本操作

[code]In [17]: len("Tom")  #长度
Out[17]: 3

In [18]: 'abc'+'cde' #拼接
Out[18]: 'abccde'

In [19]: 'OK'*6      #重复拼接
Out[19]: 'OKOKOKOKOKOK'

In [20]: s = 'hello' #打印
In [21]: for c in s:
...:     print(c,end = ' ' )
...:
h e l l o
In [22]: s[0:4]      #索引
Out[23]: 'hell

In [24]: int('42')+1 #强制转换成int
Out[24]: 43

In [26]: ord("c")    #字符串转ASCII码
Out[26]: 99

In [27]: chr(99)     #ASCII码转字符串
Out[27]: 'c'

In [41]: h
Out[41]: 'www.baidu.com'

In [42]: h.replace('com','cn') #注意:如果要真正改变h的值,需要写h = h.replace('com','cn')
Out[42]: 'www.baidu.cn'

In [45]: h
Out[45]: 'www.baidu.cn'

In [46]: l =list(h)        #字符串转换为列表,每一个元素为单个字符

In [47]: l
Out[47]: ['w', 'w', 'w', '.', 'b', 'a', 'i', 'd', 'u', '.', 'c', 'n']

In [48]: s = '#'.join(l)   #数组中的字符进行拼接

In [49]: s
Out[49]: 'w#w#w#.#b#a#i#d#u#.#c#n'

In [50]: url = 'www.baidu.com,www.zhihu.com,cc,hh,11'

In [51]: url.split(',') #将字符串按某字符进行拆分,每一部分变成数组中的子字符串
Out[51]: ['www.baidu.com', 'www.zhihu.com', 'cc', 'hh', '11']

此外还有.startwith() .endwith() .find() 等等

(tips:字符串不支持原位修改,见In[42]的结果)

三、列表

1.性质

任意对象的有序集合

通过索引访问元素

可变长度

属于可变序列

2.常用操作

append() 、extend()方法的区别:前者只添加一个元素,后者可以添加一个列表

[code]In [53]: l = [1,2,3,4]

In [54]: l.append(5)

In [55]: l
Out[55]: [1, 2, 3, 4, 5]

In [56]: l.extend([6,7,8,9])

In [57]: l
Out[57]: [1, 2, 3, 4, 5, 6, 7, 8, 9]

其他常用方法:

[code]In [58]: l = [2,5,1,7,2,1]

In [60]: l.sort()

In [61]: l
Out[61]: [1, 1, 2, 2, 5, 7]

In [62]: l.reverse()

In [63]: l
Out[63]: [7, 5, 2, 2, 1, 1]

In [63]: l
Out[63]: [7, 5, 2, 2, 1, 1]

In [64]: l.pop()

In [65]: l
Out[65]: [7, 5, 2, 2, 1]

In [66]: l.index(7)
Out[66]: 0

In [67]: l.count(1)
Out[67]: 1

 

3.注意:列表是引用类型,支持原位修改

例如.sort() .reverse()方法都可以直接作用于原列表

如果直接通过l2 = l1来创建l2,两者的地址相同,指向内存中的同一个列表,改变l1时l2也会发生改变

[code]l1 = [1,2,3,4,5]
l2 = l1
del(l1[0])
print(l2)
[code][2, 3, 4, 5]

通过.copy()方法(也可以l2 = l1[:]),则两个列表间不会互相影响,因为指向的是内存中不同的列表

[code]l1 = [1,2,3,4,5]
l2 = l1.copy()
del(l1[0])
print(l2)
[code][1, 2, 3, 4, 5]

再次提醒:字符串不支持原位修改,列表可以

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: