Quick_Python_0
Quick_Python_0
Markdown By 云天
所有程序注释是用英文撰写的,不过为了便于理解,我会在代码块间穿插中文的讲解。
首先,我们学习Python的两种注释方法。“#”可对单行进行注释。如果想同时为多行代码注释,则有两种方法:(1)使用一对三引号括住要注释的内容;(2)选中所有要注释的行,在Windows系统中用**“Ctrl + /”**完成。
# Basic Points of Python
'''
Today, I will use about 1-2 hours in total to teach you about some basic points of Python.
'''
# try 'Ctrl + /' in Windows
Act as an advanced calculator
因为是刚刚接触Python,我们先来敲几行代码感受下它的简洁风格。
print('Hello World')
Hello World
888 * 6
5328
关于import的用法,后面会详细讲解,它可以说是Python功能强大而富有活力的重要原因之一。
import math
print(math.sqrt(4))
2.0
True and False
False
0 and 666
0
想必在C中,我们没有体会过这般“粗暴”的写法,就像是可执行的伪代码一样!
# different from C, just like executable pseudocode
2 < 3 < 2
False
一个功能强大,应用广泛的Python库Numpy。作为大学生,很容易想到它像是线性代数领域的高级计算器。
阅读以下代码示例。我们先导入Numpy库,并赋予它一个公认的别名np(有些的库的名字如BeautifulSoup会很长,使用别名会使代码简洁易写)。接下来的两行,原理是一致的,即我们调用Numpy中的array函数,构造两个矩阵。shape函数会返回矩阵的维度,帮助我们分析,如矩阵matrix_1便是一个3*1的矩阵,也称列向量。最后一行,我们调用dot函数进行矩阵的相乘运算,传入的参数便是两个要相乘的矩阵。
# numpy menas 'Numerical Python', allowing python act as an advanced calculator
import numpy as np
matrix_1 = np.array([[1], [2], [3]])
matrix_2 = np.array([[1, 2, 3]])
print(matrix_1.shape)
np.dot(matrix_1,matrix_2)
(3, 1)
array( [ [1, 2, 3],
[2, 4, 6],
[3, 6, 9] ] )
Tuple, list and dict
结合个人的学习体会,我个人觉得相比于C这样底层的编程语言,我们学习Python时,很有必要尽早对它的一些数据组织形式有了解,因为这将贯穿我们学习的始终。Python封装好了许多便利的数据容器,其中最重要的便是列表,字典和元组。鉴于元组是特殊的列表,我们先详细讲解好列表和字典。
# list and dict are both important data structrues in Python, many datasets are organized by them
# tuple can be seen as a special case of list
An intuitive impression
首先,我们直观地感受一下列表,字典和元组。
构造一个列表并打印,很像C里的数组对吧,不过有些操作列表比数组便捷得多!
# list is similar to array in C
my_list = [1, 2, 3, 4]
print(my_list)
[1, 2, 3, 4]
构造一个元组并打印:
my_tuple = (1, 2, 3, 4)
print(my_tuple)
(1, 2, 3, 4)
构造一个字典并打印。字典的形式可能比较独特,它最外侧是一对花括号,里面以逗号分隔出三个键值对。每个键值对由键和值组成。键和值之间以冒号连接。
# dict is somehow new to us
my_dict = {'Chinese':80, 'Math':90, 'English':95}
print(my_dict)
{‘Chinese’: 80, ‘Math’: 90, ‘English’: 95}
Basic operation on LIST and DICT
有了对三者的直观认识后,我们就需要学习它们的一些基本操作了。不过在此之前,我觉得很有必要编写两个简短的示例,引导各位理解好列表与字典一个十分重要的区别。
创建两个列表,score和score_copy。可以发现,它们最后两个元素调换了一下位置。score == score_copy
的结果会以布尔值的形式返回,并被打印出来。
# list must be organized in order
score = [88, 90, 78, 60, 77]
score_copy = [88, 90, 78, 77, 60]
print(score == score_copy)
False
创建两个字典,grade和grade_copy。可以发现,它们前面两个键值对调换了一下位置。grade == grade_copy
的结果会以布尔值的形式返回,并被打印出来。
# Let us make a comparison now, dict can be out of order
# KEY and VALUE act as basic structure
grade = {'Chinese':90, 'Math':86, 'English':99}
grade_copy = {'Math':86, 'Chinese':90, 'English':99}
print(grade == grade_copy)
True
Order ? List : ✔ Dict : ❌
想必各位也有所体会:
当列表中元素顺序调换后,两个列表便不再相等。我们可以说,列表中的元素是有序的,只有这样,我们后面讲的列表索引才可以正常工作。
当字典中的键值对顺序调换后,两个字典依然相等。我们可以说,字典中的键值对是无序的。原因也很简单:字典的核心是键值对,键映射值,它们“捆绑”在一起。如果我们想获取相应的值,只需搜索对应的键就可以,与顺序完全无关系!
另外多提一句,字典也是Python中散列表实现的重要组成部分,也是大有用处呢!
好啦,这就是我们的第一课,Quick_Python_0 !
我们学会了Python中注释的写法,对Python语言的简洁有了直观的体会。同时我们了解到Python重要的三种数据组织形式:列表,字典与元组。另外,我们理解了列表与字典一个很大的区别,在其中进一步加深对于二者的理解。
接下来的一课,我们将深入学习列表与字典的索引、切片、添加、删除、拼接等操作,并引入元组。希望各位学得开心,有所收获!
上一篇: Java 多线程同步
下一篇: Java中死锁的例子及其解决办法
推荐阅读