Python 第二课
Python教学【第二课】
Python基础:数据类型
我们来看这么一段代码,并运行他:
x = 10 |
通过分析运行过程,上面声明了三种不同数据类型下10的变量,我们可以看到,不同类型的数据类型相加产生不一样的结果:
- x 是整数型 int -> integer,相加之后值为整形20
- y 是字符串型 str -> string,相加之后值为字符串”1010”,这就是字符串拼接
- z 是浮点型 float,相加之后值为浮点型20.0
Python解释器
Python的解释器(Python Interpreter)是个很强大的功能。它能够实时的将您所输入的代码反馈到终端界面上,让您查看这段代码的执行结果。事实上,在Python解释器中所输入的Python语句都能在代码里写出来。
在终端输入python
即可进入python解释器中(前提是你得在安装python过程中勾选Add to Path选项)。这时,您的终端界面应该长这样:
C:\Users\username>python |
进行数学运算
进入解释器之后,我们可以在>>>
之后写入我们的python语法,我们试试输入几个简单的数学公式。每输入一个公式之后,解释器会直接写出答案:
python支持多种数学运算符,+ - * /
只是其中几个,我们将在后续课程进行讲解;()
符对公式进行分组。和数学一样,python也遵循”先乘除,后加减”的运算原则,所以我们需要通过括号对某些公式的优先级进行分组。
/
一定返回一个浮点数,如果结果只是要获得一个整数,可以使用//
运算分;我们也可以使用%
计算余数
**
用来计算乘方
=
用于给变量赋值,赋值不会有结果显示出来
50 - 5*6 |
如果访问一个没有定义(未赋值)的变量,尝试访问它时就会报错。
# 尝试访问一个未初始化的变量 n |
上一次打印出来的值会被保存在变量_
,你可以通过访问变量_
继续使用这个值。
注意:这个变量是只读的,不要尝试向他赋值
12.5 / 100 tax = |
字符串
使用单引号'... ...'
或双引号"... ..."
包含起来的一串字符称为字符串,\
可以用来转义;输出的字符串会加上引号,print()
函数会生成可读性更强的输出,即略去两边的引号,并且打印出经过转义的特殊字符:
'spam eggs' # 用单引号包含 |
如果不希望前置\
的字符被转义,可以使用原始字符串模式,在引号前面加上r
:
print('C:\some\name') # \s 无意义,但 \n 是换行 |
第一堂课我们提到了多行字符串的输入,也就是三个单引号'''...'''
或三个双引号"""..."""
,字符串的回车会直接包含在字符串中,如果不想要包含该行的回车,可以用\
跳过:
print("""\ # 如果不加上反斜杠,这里将输出个换行 |
我们学会了+
能够连接两个字符串,那么*
可以对字符串进行重复;两个相邻的字符串也将会自动连接在一起,把很长的字符串拆开分别输入的时候尤其有用:
3 * "un" + "ium" "Py" "thon" # 注意字符串的输出 |
但是字符串的自动相连只能对两个字面值这么做,变量或表达式不行,如果想链接变量或表达式,可以用+
,但前提是被连接的必须是字符串:
'Py' prefix = |
字符串是可以被 索引 (下标访问)的,第一个字符索引是 0。单个字符并没有特殊的类型,只是一个长度为一的字符串;索引也可以用负数,这种会从右边开始数:
'Python' word = |
除了索引,字符串还支持 切片。索引可以得到单个字符,而 切片 可以获取子字符串,切片的开始总是被包括在结果中,而结束不被包括。这使得 s[:i] + s[i:]
总是等于 s
;切片的索引有默认值:省略开始索引时默认为0,省略结束索引时默认为到字符串的结束
0:2] # characters from position 0 (included) to 2 (excluded) word[ |
您也可以这么理解切片:将索引视作指向字符 之间 ,第一个字符的左侧标为0,最后一个字符的右侧标为 n ,其中 n 是字符串长度。例如:
+---+---+---+---+---+---+ |
第一行数标注了字符串非负的索引的位置,第二行标注了对应的负的索引。那么从 i 到 j 的切片就包括了标有 i 和 j 的位置之间的所有字符。
对于使用非负索引的切片,如果索引不越界,那么得到的切片长度就是起止索引之差。例如, word[1:3]
的长度为2.
使用过大的索引会产生一个错误(数组越界),但是,切片中的越界索引会被自动处理::
42] # the word only has 6 characters word[ |
Python 中的字符串不能被修改,它们是不可变的。因此,向字符串的某个索引位置赋值会产生一个错误:
0] = 'J' word[ |
如果需要一个不同的字符串,应当新建一个:
'J' + word[1:] |
内建函数 len()
返回一个字符串的长度:
'supercalifragilisticexpialidocious' s = |
这只是字符串的其中一部分,后续会通过实例等讲解更多字符串的用法
列表(List)
Python里的数组叫做列表(个别教程上也叫他序列),它的定义方式是这样的:
alist = [1, 3, 5, 7, 9] # 这个alist列表将会贯彻接下来这个单元的教程 |
和字符串一样(实际上字符串可以理解为一个数组),列表里面的元素也可以通过下标来访问。当然也包括切片(Slices)
name = "Xiaomai" |
跟字符串很相似,使用+
运算符可以拼接列表
alist += [2, 4, 6, 8, 10] |
和字符串不一样的是:列表的元素可以被改变
alist[5] = 11 |
Index函数:我们可以用list的index函数找到某个元素的下标:比如我们需要替换alist
列表里值为11
的元素,可以通过这行代码。但是Index参数里的数据值没有出现在列表里,则会报错
alist[alist.index(4)] = 13 # 等价于:alist[6] = 13 |
Append函数:用于在数组末尾添加元素
alist.append(666) |
从上面的例子可以知道,list的元素可以包含不止一种数据类型
利用切片,我们也可以对列表的某一个片段的值进行增加、修改、删除等操作。或者直接清空整个列表。这个过程不会“创建”新的列表实例(进阶教学里解释)
alist = ["Apple", "Ball", "Covid", "Donkey", "Egg", "Food"] # 重新初始化数组 |