今天来讲一些老生常谈,但凡学习一门语言都逃不过基本的语法,我们也来叨逼叨逼。不过不想事无巨细地讲,因为没有意义,估计讲完了大家都忘记了,我们挑钟爱你,其他的可以自学。
变量,学习一门语言第一件事可能是打印hello world,打印完后就可以学习变量。变量,怎么解释呢?简单来看就是一个用来指代对象的量。python里面的变量很好定义,比如你要定义变量a等于1
a = 1
对比Java、C啊什么的,大家有没有发现少了什么东西?对,就是少了变量声明。python是一门动态语言,什么叫动态?就是可以根据赋给变量的值,来自动确定变量类型,极大的简化了敲代码的过程。
基本数据结构,python基本的数据结构有,list(列表)、dict(词典)、cell(元组)、set(集合)。简单的讲一下,列表简单理解就是,几个对象组成的序列,你把菜单的菜名按顺序存储起来就是一个列表了
menu = ["小龙虾", "小炒牛肉", "烧公鸡", ..]
是不是有点饿了,挨个点一遍呗。python列表里存的对象可以很自由,不要求每个元素的类型都是一样的,比如
list1 = [1, 2, "A", "B", [2, 4]]
自由虽好,当时还是不要乱用,否则该是有你怀疑人生的时候。数组支持增删改,功能很强大,通常在python里实现【队列】、【堆】的时候会用列表。比如
a = [] # 初始化空数组
a.append(1) # 往数组a中加入元素1
a.pop() # 把a中最后一个元素弹出
词典是key到value的一个映射,类似于C中的hashmap,比如我们可以把一个班级的学生的成绩存在一个词典里
report_card = {'jacy': 99, 'xiaoming': 55, 'liming': 20, 'hanmeimei': 100 ...}
词典是用大括号{}的,不同于列表的方括号[]。词典的优势是可以通过key快速找到value的值,比如你是liming的家长,想知道liming的成绩,你只要
print(report_card['liming'])
就可以快速查到成绩。其实你也可以把成绩单存到一个列表里面,但是这个时候你可能要挨个去找名字,最后才能找到liming的成绩,耗时自然长。
元组,你可以看成是一个组合,和数组没有多大区别,但是元组不支持修改操作,也就是你定义好了就不能修改其中内容了。还是拿成绩单距离,我们可以把姓名,成绩组成一个元组
('liming', 20)
如果我们要知道成绩排名前三的学生怎么实现呢?把成绩存到列表,列表的元素是元组
report_card2 = [('jacy', 99), ('xiaoming', 55), ('liming', 20), ('hanmeimei', 100) ,...]
然后调用排序函数
report_card2 = sorted(report_card2, key=lambda x: x[1], reverse=True)
print(report_card2[:3])
这里有个数组的切片操作,就是你想知道数组前n个元素,用list[:n],注意点是数组的缩影是从0开始,list[:n],实际是取0, ..., n-1对应的元素。
最后就是集合set,集合是一个没有顺序的量/没有重复值的对象组合,不能用索引,感觉就像一个整体,通常个人是用来做去重复使用,比如
a = [1, 1, 2, 2, 3, 3]
a = list(set(a)) # 去重复
数组支持计算交集、并集、差集的运算。所谓交集,举个例子,我和王美女唯一的交集就是我们选了同一门英语课程,如果把我们选的课存到两个集合中s1, s2, 那么
s1 & s2 # 计算交集 应该输出英语
在自然语言处理中,有一种编辑距离的计算方式会用到集合,考虑两个文本有多少个字符一样。
然后再聊聊条件语句和循环语句,写程序可以理解为交代计算机去干活,计算机会按顺序去读取程序,一行一行地执行语句。但是有时候会遇到一些情况,某些语句我们希望在特定情况下才执行,比如当你收到100个赞的时候,打印你真棒,这候就需要用到条件语句:
if praise_num == 100:
print("you are really good!")
如果存在多种情况,可以写多个if语句+else ... 然后是循环语句,为什么要用到循环语句呢?比如你和妹子表白,你只说一句“我爱你”,妹子可能觉得不够,于是你大叫“我爱你”99次,妹子被感动得一塌糊涂,这就是循环的力量
for _ in range(99):
print("I love you very much! NvShen!")
当然你也可以用while语句
count=0
while(True):
print("I love you very much! NvShen!")
count += 1
if count == 99:
break
用while语句总免不了多定义一个变量,个人不太不喜欢!而且如果条件写错变成无限循环,就不好。就好比,你不停得大叫妹子,“我爱你”,妹子肯定以为你失心疯了,得治!
有变量以及基本数据结构,再补上条件语句和循环语句,python基本知识就妥妥地够,你可以自信地和世界说我会python了。
网友评论