--学习笔记
近期忽然有点迷上了爬虫Python,可能原因是最近人工智能,深度学习炒的比较热火有关。所以在网上搜了一大圈,想找点基础教程看看,发现还真不少,不过还真没有发现比较适合我这种菜鸟的教程,要么是英文的,要么一开始就讲的比较深,连测试环境都搭建不起了。让人一看就有点畏难放弃了。最后终于发现了唐老师的视频教程,好了,废话不多说,我就把我最近一段时间的学习笔记给大家分享一下。
要想学习Python,首先要搭建测试环境。本教程所用的环境如下: 一、测试环境:
系统:64位win7中文版
浏览器:Google Chrome,尽量不要用IE浏览器,测试中可能不能使用。 Python:Anaconda3-4.3.1-Windows-x86_64.exe Python可以自行通过Baidu自行搜索下载安装即可。 二、Python安装:
如果你能下载到上面的版本,直接双击运行安装即可,可以更改安装路径到D盘,因为占用空间比较大。我就是安装到D盘。安装完成后你就可以在开始菜单-所有程序-Anaconda3找到Jupyter Notebook。本次教程所有脚本全部在该notebook中运行和测试。
三、入门学习:
如果你顺利看到这里,并能在你的电脑上看到上面的截图,那么恭喜你,你已经成功的拥有了本次学习测试的环境。
1、打开Jupyter notebook。
路径:开始菜单-所有程序- Anaconda3找到Jupyter Notebook单击打开,界面如下。如能打开Dos窗口,不能出现下面的截图,请尝试安装Google Chrome,并设置成默认浏览器即可解决。
单击上图中的New,从下来菜单中选择Python 3即可打开代码编辑窗口。如下两图:
好了,终于可以看到Python的一些真面目了,下面我们就和他来一个亲民接触吧。还是从最经典的“Hello Word!”入手,让我们看看如何通过Python输出“Hello Word!”。在代码输入处输入以下代码:print (“Hello, Word!”)然后按Control+enter键运行即可看到屏幕上输出Hello Word!是不是有点成就感了。好,我们继续。
2、变量
python是一种动态类型语言,在赋值的执行中可以绑定不同类型的值,这个过程叫做变量赋值操作,赋值同时确定了变量类型。 在python中变量定义方法很简单:a = 3
这个操作过程就是赋值,意思把整型数字5赋值给了变量a,用等号来连接变量名和值。之后就可以在表达式中使用这个新变量了 A * 5的结果就是15,如下图所示。
Say_Hello = “你好,很高兴见到你”这个赋值语句就把“你好,很高兴见到你”赋值给Say_hello变量,并且定义了SayHello的变量类型为字符型(String)如下图,type()函数可以显示变量类型
如果一个变量有多个单词组成,建议使用下画短线连接,如Say_Hello变量。
怎么定义一个浮点类型的变量啊,和上面一样我们直接给他一个浮点类型的数字即可:float_v = 3.05,好,我们看看如何判断一个变量的类型,这就是上面我们提到的type()函数如下图:
如下列语句: str_666 = \"666\"定义一个字符类型的666 print (type(str_666))显示变量类型:str型 print (str_666)显示变量内容 int_666 = int(str_666)定义一个整型类型的数值变量,并通过int()把字符类型的666转换成数值类型666 print (type(int_666))显示变量类型:Int型 print (int_666) 显示变量内容 运行结果如下图所示 关于变量类型转换需要满足一些条件才可进行,否则则会报错。一般会将字符类型的数值转换为整型和浮点型。 4、运算符号 在Python中也和其他的编程语言一样,有运算符号,加:+;减:-;乘:*;除:/;乘方:**看下面的例子: a = 10 b = 5 print (a+b) #输出a+b的结果为10 print(a-b) #输出a-b的结果为5 print(a*b) #输出a*b的结果为50 print(a/b) #输出a/b的结果为2 print(a**b) #输出a**b的结果为100000也就是10的5次方。 实际上Python的运算和其他语言一样,很简单,对吧! 5、List变量 除了上面讲的字符型str、整型int、浮点型float类型变量之外,python还有一个重量级变量类型list变量,也是非常好用。使用方法和其他变量一样。 Numbers = [] #定义一个空的list变量numbers. Numbers.append (1)#向numbers变量中添加值 Numbers.append (2) #向numbers变量中添加值 Numbers.append (3) #向numbers变量中添加值 print (Numbers) #输出numbers print (Numbers[0]) #输出numbers 注意:list变量的索引是从零开始的,如上例中取出第一个值使用的 是nmbers[0]. 如果我们要定义一个这样的list变量,看看该怎么做。某学生的各科学习成绩。 Scores=[] #定义一个空的list变量 Scores.append(\"语文\")#添加字符类型的值 Scores.append(90)#添加数值型的值 Scores.append(\"数学\") Scores.append(98) Scores.append(\"英语\") Scores.append(88) 如果我们要输出该学生的数学成绩怎么办? print (Scores[2:4])# 输出该生的数学成绩 这儿要注意以下,如果使用list的索引index来获取值时,从一个index取到另一个index的区间的值时,规则是包含第一个index的值,不包含最后一个index的值,叫做“取头不取尾。”如上例中的Scores[2:4],实际输出为:第二和第三两个值,并没有输出第四个值。 还有一个问题,如果我要取一个list的最后一位值,怎么取呢? 两种方法: 因为list的index有两个,一个是正向的0,1,2,3…另一个是反向的-1,-2,-3,-4… 因此我们可以使用-1这个index获取一个list的最后一个值。 print(Scores[-1])#输出Scores的最后一位值 另外一种方法为使用len()函数,大家如果使用过其他的编程语言或excel函数,都应该知道这个函数是回去长度的函数。在python中我们也有len()函数。 index = len(Scores) - 1 #获取Scores的最大索引 print (Scores[index])#输出Scores的最后一位值 怎样获取一个list中从第二个值开始后所有的值呢? print (Scores[1:])#输出Scores的地二位到最后一位值 6、循环结构 首先我们看一下for循环。 For 变量 in 循环体: 表达式 我们先看一个例子: scores = ['语文', 90, '数学', 98, '英语', 88]#定义一个list变量 #我们要列出该list中的所有的值 for score in scores:#注意冒号 print(score)#注意前面的空格,4个空格或一个Tab键 程序运行结果如下: 例子: scores = ['语文', 90, '数学', 98, '英语', 88]#定义一个list变量 #我们要列出该list中的所有的值 for score in scores: print(score) print('abc')#这个语句和上面的语句执行一样的次数 print('123')#这个只执行一次 这个例子说明python中的循环结构是靠前面的空格来进行控制的。运行结果如下: While循环 While 变量 判断表达式: 表达式 看下面的例子: 下面我们再来看一个稍微复杂一点的循环结构。 scores=[['语文', 90],[ '数学', 98],[ '英语', 88]]#定义一个list,注意该list的值也是一个list for score in scores:#使用 for循环遍历该list print (score) 如何得到下面的结果输出呢? 语文 90 数学 98 英语 88 scores=[['语文', 90],[ '数学', 98],[ '英语', 88]]#定义一个list,注意该list的值也是一个list for score in scores:#使用 for循环遍历该scores list for i in score:#在使用for遍历score list print (i) 7、判断结构 要说判断结构,首先要知道一个变量类型:布尔类型,这个更简单,只有两个值:true和false 我们看一下下面的例子: a = True #定义a为布尔型的变量,注意后面的True首字母要大写 b = False #定义b为布尔型的变量,注意后面的False首字母要大写 print (type(a)) #输出a的类型 print (a) #输出a的值 print (type(b)) #输出b的类型 print (b) #输出b的值 代码运行结果如下: 再看一下下面的例子: print ('i' == 'i')#输出i等于i的结果 print ('i' == 'j')#输出i等于j的结果 print ('i' != 'i')#输出i不等于i的结果 print ('i' != 'j')#输出i不等于j的结果 代码运行结果如下:和你判断的一致吗?这个地方“==”表示判断两个值是否一样,“!=”表示不等于 好,下面我们看一下判断结构if…else… If 判断表达式:#表达式的值为True时执行“执行语句1” 执行语句1 Else:#表达式的值为False时执行“执行语句2” 执行语句2 例子:我们要判断一个学生的成绩是否大于90分,大于90,在屏幕上输出“优秀”,否则在屏幕上输出“革命尚未成功,同志仍需努力!” score = 95 if score > 90: print (\"优秀\") else: print(\"革命尚未成功,同志仍需努力!\") 你可以尝试把95改成小于90的数试一下,看看输出结果是不是你想要的? 我们再看一下下面的例子: if 1:#在python中除0以外所有的数值都表示True。 print(\"True\") else: print(\"False\") 使用for循环和if判断查找list中的某个值 numbers = [1,2,3,4,5,6,7,8,9] for number in numbers: if number == 8: print (\"8被找到了!\") else: print(\"没有找到\") 仅使用if判断来找出8 numbers = [1,2,3,4,5,6,7,8,9] if 8 in numbers: print (\"8被找到了!\") else: print(\"没有找到\") 8、字典结构 我们先来看这样两个list: items = [\"语文\数学\英语\"] scores = [\"95\item = \"语文\" i = 0 while i < len(items): if items[i] == item: print (scores[i]) i += 1 代码运行结果如下: 我们也可以这样写: items = [\"语文\数学\英语\"] scores = [\"95\item = \"语文\" for i in range(0,1,2): if items[i] == item: print (scores[i]) 如果我们使用python的字典结构来做的话就更简单了: scores = {}#定义一个空的字典,是大括号{key,value} scores[\"语文\"] = 95#给字典赋值 scores[\"数学\"] = 90#给字典赋值 scores[\"英语\"] = 92#给字典赋值 print (scores)#输出字典的内容 print(scores[\"数学\"])#输出指定Key的Value 是不是比上面的两个例子简单多了?! 下面我们再看一个关于字典的例子: 如何更改字典中的某个Key的Value scores = {\"数学\":90,\"语文\":85,\"英语\":95} #先定义一个字典 scores[\"语文\"] = 90 #更改语文的分数为90 print (scores) #打印输出scores字典 scores[\"语文\"] = scores[\"语文\"] - 5 #对语文成绩进行计算更改 print (scores) #打印输出scores字典 继续看一个关于list和字典的例子:如何统计list中项出现的次数,并将其存入字典中 items=[\"apple\ape\定义一个list item_counts = {} #定义一个空的字典 for item in items:#遍历items中的每一个item if item in item_counts:#判断item是否已经存在于item_counts字典 item_counts[item] = item_counts[item] + 1 #存在,则再其Value上+1 else: item_counts[item] = 1 #不存在,指定其value为1 print (item_counts)#打印输出item_counts 9、文件处理 文件的读取,主要用到open函数,我们下面看一个例子如何读取存在于d盘的一个名为123.csv的文件,当然也可以是text文件,或者word和excel等文件 f = open(\"d:/123.csv\以只读的方式打开指定路径的文件 g = f.read() # 读取内容 print (g) #打印输出读取的内容 f.close() #关闭文件 下面再通过open函数创建一个文本文件并添加一些内容 f = open(\"d:/test.txt\打开d盘的test文件,如没有则创建 f.write('123456')#写入123456 f.write('\\n')#插入换行键 f.write('234567')#写入2345657 f.write('345678')#继续写入345678 f.close()#关闭文件 然后我们继续看一个稍微复杂一点的文件操作: months = [] f = open(\"d:/123.csv\data = f.read() rows = data.split('\\n') #根据换行符把读取到的数据进行划分 #print (rows) for row in rows: split_row = row.split(',')#根据逗号进行划分 #print (split_row) months.append(split_row)#将数据添加到months #print (months) print (months) f.close() 10、 函数基础 定义一个函数格式: def 函数名(): 表达式1 表达式2 … 举个例子: def printHello(): #定义一个函数 print (\"Hello Python!\") #定义函数所执行的动作 printHello()#调用刚刚定义的函数 def addnum(a,b): return a+b addnum(2,3) def printNum(): for i in range(0,10): print (i) return printNum() 因篇幅问题不能全部显示,请点此查看更多更全内容