一、Python中的数字类型
在这一部分里,我们将学习Python中数字类型和如何使用数字类型。具体我我们将学到:
1)Python中数字类型的细分
2)基本的数学运算
3)经典除法和地板除法的区别
4)Python中的赋值
1.数字类型
Python有许多不同的数字类型细分,这里我们只学习整数(integer)和浮点数(float)数字类型。
整数通俗理解就是日常数学的整数,又分为正整数和负整数。比如2和-2都是Python的整数类型。
Python中的浮点数很容易被识别,一般他们带有小数点或者带有“e”。比如2.0和-2.1就是浮点数。
4E2也是一个浮点数。(4E2=4*10^2=400.0)。
2.基本数学运算
3. Python的赋值
一般我们使用一个等号做赋值。等号左边是变量名称,等号右边是赋值内容。让我们看下面的例子。
以下为变量名命名规则:
1)变量名不能以数字开头;
2)变量名中不能用空格,可以用"_"代替,比如my_name才是正确的变量名命名方法;
3)在变量名中不能使用以下符号 :'",<>/?|\()!@#$%^&*~-+
4)根据PEP8,变量名最好小写;
5) 变量名中尽量不出现小写的字母l和字母O,因为容易和数字1数字0混淆
6)避免用Python的关键字做变量名
通过type()查看数据类型
二、Python中的字符串类型
Python的字符串用于记录文本信息。字符串实际是一串序列或者说Python按一定的次序记录字符串的信息。比如,对于“Hello”这个字符串,Python能识别出其为字符串以及它的特定顺序。这意味着我们可以通过下标取抓取“Hello”内部的字母。这一点非常关键。
关于字符串部分,我们将学习:
1)创建字符串
2)打印字符串
3)字符串索引和切片
4)字符串不变性
5)字符串常用函数方法
6)格式化打印
1、创建字符串
通过单引号和双引号创建字符串
2.打印字符串
使用jupyter notebook可以直接输出字符串,但这并不是正确的打印字符串的方法。正确的打印字符串的方法应该是使用print()函数。
3.字符串索引和切片
前面提到字符串是有序序列,意味着Python可以下标进行索引。
在Python中,我们用变量名[]进行索引。[]里的数字又叫下标,Python的下标是从0开始,这个非常重要。下面我们通过例子来掌握。
先创建字符串
开始索引和切片
请注意s[:3]指的是输出0-2下标的字符,并不包括3,所以是'hel'
4.字符串不变性
字符串有一个重要的属性是不变性,也就是说字符串一旦创建,其内部的元素不可以改变.我们通过例子来看.
虽然字符串内部不可改变,但是外部却可以进行一些操作,比如拼接,比如做简单数学运算.见例子.
5.字符串常用函数方法
常用字符串函数方法包括字符串长度、将字符串全部变为大写、将字符串全部变为小写、将字符串用空格符隔开。
6.格式化打印
字符串格式化可以让你往字符串插入元素而不需要使用拼接的方法.用一个例子来进行直观的对比,两种方法的差别在哪里?
player = ' thomas'
points = '33'
'last night, ' + player + 'scored ' + str(score) + 'points' #拼接的方法
f'last night, {player} scored {points} points.' #字符串格式化
6.1使用占位符进行格式化打印
6.1.1 你可以使用%s往你的语句里插入字符串.%又称作字符串格式化运算符.
print("I am going to inject %s here." %'something')
6.1.2通过%后接元组实现多个元素插入
print("I am going to print %s text here, and %s text here." %('some', 'more'))
6.1.3 甚至可以通过变量名称来传递进行格式化打印
x, y = 'some', 'more'
print("I am going to print %s text here, and %s text here." %(x, y))
6.1.3 %r %s %d的区别
%r会把字符串括住的引号也打印出来,%d和%s都可以格式化打印整数和浮点数,%d会自动将数字取整数部分(注意是取整而不是四舍五入)。
6.1.4 浮点数的格式化打印和精度问题
浮点数使用例如%5.2f来进行格式化打印。这里面,小数点前面的数字表示输出列数数字位数大于它时,按实际位数输出,小数点前空缺也是小数点后面的数字表示输出的小数点位数,如果位数不足就会四舍五入,如果位数不够显示就会在后面补0.
6.1.6混合格式化打印
print(‘First:%s, Second:%5.2f, Third: %r' %('hi!', 3.1415, 'bye!'))
6.2 通过.format()方法来进行格式化打印
6.2.1 相比占位符格式化打印,.format()打印有以下优势。
6.2.1.1 插入的数据可以通过下标来索引
print(’The {2}, {1}, {0}' .format('fox', 'brown', 'quick'))
6.2.1.2 插入的元素可以赋予关键字
print('First Object:{a}, Second Object:{b},Third Object:{c}'.format(a=1,b='two',c=12.3))
6.2.1.3 插入的元素可以重复使用,避免多次输入
6.2.2 .format()的对齐、填充和精度
通过{}你可以指定字段长度、指定对齐方式和指定取整精度
.format()默认文字左对齐,数字右对齐,你可以<,^, 或者> 来调整实现左对齐、居中和右对齐。
在对齐处加上填充符号
.format() 的精度和占位符格式化打印处理方法一样
6.3f-strings格式打印方法
python3.6引入了f-strings格式化打印方法,和.format()相比,f-strings方法可以直接将外部变量整个插入到字符串里.如果想获得字符串外部的引号,可以使用!r.
f-strings使用"result: {value:{width}.{precision}}"来表示精度
请注意使用f-strings方法,精度指的是所有的数字个数而不是小数点后的数字个数.这和科学计数以及统计分析类似.可惜的是,f-strings不会对齐向右自动填充.
可以通过结合f-strings和.format()的方法使数字对齐且向右填充
三、Python中的列表类型
列表是Python中最应该被称为有序序列的概念.而且和前面的字符串不同,列表中的元素是可以改变的.这部分里我们将学到:
1)创建列表
2)列表索引和切片
3)基本函数方法
4)列表嵌套
5)列表解析
1.创建列表
列表用[]表示,[]里面的每一个元素用","隔开.
列表内的元素可以装不同的数据类型.
2.列表索引和切片
列表的索引和切片和字符串一样.我们来看一些例子.
我们可以用+ 来拼接列表,就像字符串一样.
请注意,拼接只是临时并不会改变my_list.要采用重新赋值的方法才能永远改变my_list
我们可以同样用*给列表做简单运算
3.基本函数方法
你可能会将Python中的列表和数组联系起来,但是Python中的列表灵活很多,第一,它没有大小限制,第二它也没有类型限制.
创建一个新列表
使用append()在列表末尾添加新元素
使用pop()将列表末尾的元素删除,同时pop关键字删除也可以通过下标索引指定删除的元素
如果下标对应没有响相应的元素,程序会报错
可以使用reverse()来将元素顺序颠倒,可以使用sort()将元素按照字母顺序排列
4.列表嵌套
Python一个很大的灵活性就是数据结构支持嵌套,也就是说数据结构里含数据结构.比如一个列表里面的元素是另一个列表.
我们可以用下标抓取元素,不过现在因为列表嵌套,元素有两层结构,分别是矩阵里的元素,矩阵里元素的元素.
5.列表解析
列表解析可以迅速构造列表,理解列表解析需要了解for loop循环.我们使用列表解析来抓取矩阵中的第一行的每一个元素.
四、Python中的字典类型
字典是一种映射.和字符串以及列表通过元素位置不同定位不同,字典是无序的而是由不同的键-值对构成.通过找到键就可以找到相应的值.字典里的值可以是任何Python的类型,因此应用起来非常的灵活.
在这部分里我们将学到:
1.) 创建字典
2.) 提取字典里的信息
3.) 字典嵌套
4.) 常用字典函数方法
1.创建字典
字典对于数据类型非常宽容,可以放置任何的数据类型。比如:
将字典内部的值进行简单数学运算
通过赋值来创建字典
2.字典嵌套
简单理解,就是字典里面再包含字典,看下面的例子
3.常用字典函数方法
五、Python中的元组类型
元组和列表非常相似,不同的是元组是不能更改的,在表示不能更改的元素比如日期、时间等时使用元组。因为学过列表的相关知识,元组和列表的方法很相似。
1.创建元组
2.基本函数方法
元组也有一些内置的函数方法,但是不如列表那么多。
3.不可改变性
记住元组是不能改变的,一旦创建好的就只能保持原来的样子,删除元组元素或尝试增加元组元素都会报错。
六.Python中的集合和布尔值类型
Python中的集合和布尔值类型并不是重点,可以快速了解一下.
1.集合
set是一个无序且不重复的元素集合。
请注意虽然有{},但并不是字典,虽然你可以把集合比作只有键的字典.我们知道集合的元素是唯一的不重复的,那如果我们尝试将重复的元素添加到集合里会是什么情况呢?
集合主要用于去重
2.布林值
所谓 布林值 ( Boolean Value ) 就是一种只有 true 或 false 两种值的类型.
可以利用比较运算符创建布林值