Python知识点记录一

Posted 老梧桐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python知识点记录一相关的知识,希望对你有一定的参考价值。

一、基本数据类型

1、各进制数字的表示和转换

2进制、8进制、16进制的数据在数字之前需要分别增加0b、0o、0x来表示。

>>> 10  #10进制
10
>>> 0b111   #2进制
7
>>> 0o777   #8进制
511
>>> 0xfeda  #16进制
65242

各个进制的转换,2进制、8进制、10进制、16进制的转换方法分别为bin()、oct()、int()、hex()。

>>> bin(16)   #10进制数转换为2进制
0b10000
>>> bin(0o766)#8进制数转换为2进制
0b111110110
>>> oct(0xfff)#16进制数转换为8进制
0o7777
>>> oct(0b1101)#2进制数转换为8进制
0o15
>>> int(0b1111)#2进制数转换为10进制
15
>>> int(0o117)#8进制数转换为10进制
79
>>> hex(0b11111111) #2进制数转换为16进制
0xff
>>> hex(65535)  #10进制数转换为16进制
0xffff

2、布尔值

Python中的数值0、空值对象以及‘None’的布尔值都为False,其他都为True。

>>> bool(1.1)
True
>>> bool(0x00)  #16进制的数值0
False
>>> bool(‘‘) #空字符串
False
>>> bool([1,2])
True
>>> bool(())
False
>>> bool(None)
False

 3、字符串

*多行字符串可以通过三引号表示:‘‘‘ ‘‘‘或""" """。

>>> s=‘‘‘
a
b‘‘‘
>>> s
\na\nb

可以看到变量s在定义的时候使用了三引号,而在命令行格式中可以看到s的内容是‘\na\nb‘;其中的‘\n‘就表示了定义时候输入的换行符。这也可以通过s[0]看出:

>>> s[0]
\n

这里的‘\n‘也称为转义字符,转义字符在使用print()输出时是按格式显示的,比如换行符\n直接就输出换行,\t输出水平制表符。

>>> print(s)

a
b

*转义字符:一般为无法看见的特殊字符(如\n、\t等等)或者与语言本身语法有冲突的字符(如\‘表示‘,\\表示\)

#用print打印出‘hello \n world!‘
#\n需要通过转义字符表示
s=hello \\n world
print(s)
print(hello \\n world)

*原始字符串:在原始字符串中所有字符都是所见即所得

>>> s=r\nabc\n  #这里就是原始字符串,其中的\n就是两个字符
>>> s[0]    #访问第一个字符,即‘\‘
\\
>>> #可以看出上面输出了‘\\‘,这里是普通字符串,其中以转移字符串表示了实际的‘\‘
>>> s[1]
n
>>> print(s)
\nabc\n
>>> len(s)
7

 4、序列(str、list、tuple)

在Python中,str/list/tuple都是有序的数据组合,对于有序的组合,都可以使用下标的方法访问,也可以进行切片操作。

>>> 123[2]
3
>>> (1,2,5)[0]
1
>>> [1,2,3,a][-1]
a
>>> (1,2,3,4,5)[:5]
(1, 2, 3, 4, 5)
>>> "12345"[-1:]
5
>>> [1,2,3,4,5,6,7,8,9,10][1:10]
[2, 3, 4, 5, 6, 7, 8, 9, 10]

5、str和list/tuple的相互转换

(1)直接通过类型转换函数:

>>> list(s)    #字符串转换为列表
[1, 2, 3, 4, 5]
>>> tuple(s)   #字符串转换为元组
(1, 2, 3, 4, 5)
>>> tuple(list(s)) #列表转换为元组
(1, 2, 3, 4, 5)
>>> list(tuple(s))  #元组转换为列表
[1, 2, 3, 4, 5]
>>> #可以看出str()方法并不能让列表转换成我们想要的字符串内容
>>> #str()方法直接把参数内容当成字符串内容了
>>> str([1,2,3])
[1, 2, 3]
>>> str([1,2,3])[0]
[

(2)列表和元组转换为字符串必须依靠join函数

>>>  .join([1,2,3])
1 2 3
>>> ‘‘.join((a,b,s,123))
abs123

需要注意,只有元素为字符串类型的列表和元组才可以使用join()方法。

(3)字符串转为列表的特殊方法:split()

>>> s=12 34 56 78,90,100 
>>> s.split()  #没有参数时,默认按空格划分原始字符串形成列表各元素
[12, 34, 56, 78,90,100]
>>> s.split(,)
[12 34 56 78, 90, 100 ]

(4)字符串去除首尾空格、换行字符的方法:strip()

>>> s=\n   \n  123  abc  999   \n  
>>> s.strip()
123  abc  999
>>> s
\n   \n  123  abc  999   \n  
>>> s.strip().split()
[123, abc, 999]

(5)列表排序方法:sort()/sorted()

>>> l=[16,87,35,100,96,62,8,3,19]
>>> l.sort()    #把l按默认的顺序(这里是由小到大)排序,l变成新列表
>>> l1=[16,87,35,100,96,62,8,3,19]
>>> sorted(l1)  #返回一个排序后的新列表,l1本身不变化
[3, 8, 16, 19, 35, 62, 87, 96, 100]
>>> l1
[16, 87, 35, 100, 96, 62, 8, 3, 19]
>>> t=(16,87,35,100,96,62,8,3,19)  
#元组和字符串也可以使用sorted()方法,返回一个排序后的新列表
#但元组和字符串不能使用sort()
>>> sorted(t)   
[3, 8, 16, 19, 35, 62, 87, 96, 100]
>>> t
(16, 87, 35, 100, 96, 62, 8, 3, 19)
>>> sorted(102814124128765)
[0, 1, 1, 1, 1, 2, 2, 2, 4, 4, 5, 6, 7, 8, 8]

6、集合(set)、字典(dict)

(1)集合是无序的,所以不能通过下标访问,也因为是无序的,所以对于重复的元素在集合中是无法区分的,因为没有顺序之说,所以集合中不能有重复元素。

>>> {1,2,3,4,5}-{1,3,5}   #两个set求差集
{2, 4}
>>> {1,2,3,4,5}|{6,7,8}  #求合集
{1, 2, 3, 4, 5, 6, 7, 8}
>>> {1,2,3,4,5,6,7}&{1,3,5,7,9}  #求交集
{1, 3, 5, 7}

(2)字典是集合的一种特殊类型,其键值必须为不可变类型。不可变类型包括int/float/bool/str/tuple。

以上是关于Python知识点记录一的主要内容,如果未能解决你的问题,请参考以下文章

python小白学习记录 多线程爬取ts片段

python小知识片段

python小知识片段

[未解决问题记录]python asyncio+aiohttp出现Exception ignored:RuntimeError('Event loop is closed')(代码片段

动态SQL基础概念复习(Javaweb作业5)

开发工具 | 即将jupyter的新一代notebook