python笔记(零基础学Python)

《零基础学Python》

1、基础

2、流程控制语句

3、序列的应用

4、字符串、正则表达式

5、函数

6、面向对象

7、模块(库)

8、异常处理+程序调试

9、文件及目录操作

10Python操作数据库

11GUI界面编程

12、网络爬虫开发

13Web编程

14Web框架(Flask+Django

一、基础

 基本数据类型    --------就3种

1. 数字类型-----------1、2、3

Python数字类型主要包括int(整型)、long(长整型)和float(浮点型),但是在Python3中就不再有long类型了。

2. 字符串-------------“先生”

在Python中,加了引号的字符都被认为是字符串,其声明有三种方式,分别是:单引号、双引号和三引号;

Python中的字符串有两种数据类型,分别是str类型和unicode类型。

3. 布尔型-------------真、假 (true 、 false)

Python布尔类型也是用于逻辑运算,有两个值:True(真)和False(假)。

0、

1、读写文件

(1)路径: 左斜杠/

df1 = pd.read_csv("C:/Users/Admin/Desktop/测试数据.txt", sep = ',', header = None)

2、Python用缩进、冒号:区分代码的层次关系,

3、缩进4个空格=1个Tab键

4、规范代码示例:

5、一行内容过长

6、命名要规范  

7、保留字

8、函数、变量 ,都是严格区分大小写的!使用:字母/数字/下划线

9Python语句后面不用加  ;   

10、变量的定义与使用       Name=“黎先生”     print(Name)  

11、转义字符:  \ 续行符号 ; \n换行符 ;  \t 表示1个table=4个空格键 

         

12、输入、输出

A=input("请输入数据:")

print("输入成功!")

print("你输入的数据是:"  + A )

print("你输入的数据是:"  +A,B,C )        #三个参数

13、输出到文本文件

fp=open( r 'C:/Users/83852/Desktop/test.txt',  'a+' )     #打开文件    r防止了\n的转义

print("你好!",file=fp)                          #输出到文件中

fp.close()                                    #关闭文件

14、赋值用1个等号,等于用2个。   if number==1:

15、多个文件一起运行:(就是导入模块的形式)

(1)先建一个differenttree.py文件,(右图)

(2)同级目录下再新建main.py文件,导入该模块即可:

import differenttree    #导入该模块

print(differenttree.pinetree)   #输出该模块的内容

当多个.py文件运行时,一定要加上这句:

if __name__ == '__main__':  

通俗的理解__name__ == '__main__':

假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明');在你自己眼中,你是你自己(__name__ == '__main__')。

if __name__ == '__main__'的意思是:

differenttree.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行;(如果main是我自己就运行)

differenttree.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行

二、流程控制语句

1、if语句

 

2、if.....else....语句

   

3、if.....elif....else.....语句

4、if语句的嵌套

5、for循环

1、2、

6、for循环的嵌套          提示: 先看里面的循环! 再不断更换外面的循环值!

7、while循环

  1. 使用continue语句直接跳到循环的下一次迭代

使用break语句完全终止循环

 

9、pass空语句

10、try....except....语句------------------调试常用语句

三、序列的应用

1、序列有4种 :列表、元组、字典、集合

说明: 

1集合{1,2}    字典{‘a’:1}   列表[1,’a’]     元组(1,‘a’) ------  列中元小

2集合、字典 不支持(索引、切片、相加、相乘 操作) 列表 、元组 都可以切片

============================================================================================

2、索引: 

(1)索引访问:

============================================================================================

3、切片: 取其中的一部分元素--------------[  ) 左闭右开,索引从0开始

  1. 计算:

序列相加: print (nba1+nba2)

序列的长度: print(len(num))

序列的最大值:  print(max(num))

序列的最小值:  print(min(num))

============================================================================================

4、列表

(1)创建列表

其他:     

(2)删除列表

(3)输出列表: print(team)      输出第3个元素: print(team[2])

(4)遍历列表

  

(5)添加元素---append

(6)添加整个列表----extend

(7)修改元素

(8)删除元素------del

(9)统计出现的次数------count

(10)求和--------sum

(11)排序------sort

(12)快速生成1个列表

============================================================================================

二维列表:列表里面的  每一个元素又都是1个列表

(1)创建

(2)使用嵌套for循环创建

============================================================================================

5、元组   

区别:元组是不可变序列,列表是可变序列。

       即元组中的元素不可以单独修改,而列表则可以任意修改

(1)创建

(2)删除

(3)访问--------------------------[  ) 左闭右开,索引从0开始

print(verse[0])    访问前3个元素: print(verse[:3])

(4)遍历

(5)修改元素

(6)添加元素

(7)快速生成元组

============================================================================================

6、字典  (键值对)

(1)创建

(2)创建空字典

(3)删除字典、清空元素

   

  1. 访问(通过get方法 、通过键来访问)

  

(5)遍历

说明:在Python中,字典对象还提供了values()方法keys()方法,用于返回字典的“值”和“键”列表,它们的使用方法同items()方法类似,也需要通过for循环遍历该字典列表,获取对应的值和键。

(6)添加元素

  1. 删除

(8)快速生成字典

============================================================================================

7、集合  

(1)集合创建

(2)set()函数创建-------推荐使用这种

(3)集合的添加、删除

  

删除集合:del mr

(4)交集、并集、差集

四、字符串、正则表达式

1、使用encode()方法编码;使用decode()方法解码

2、拼接字符串

3、字符串长度:UTF8编码1个中文占3个字符(中文输入的逗号也是)

4、截取字符串

   

5、分割、合并 字符串

(1)使用split()方法分割

(2)使用join()方法合并

6、字符串的其他常用方法  ------------count()、index()、find()

7、格式化字符串------------format(()方法

8、使用re模块 实现正则表达式的操作

匹配字符串可以使用re模块提供的 match()、search()、findall()方法。

五、函数

1、一个模块的代码可以多次使用,一个函数实现1个功能

2、内置函数: print()  input() range()

3、定义完 函数,需要调用,才会起作用!

4、函数的定义 + 调用

5、形参、实参  

6、函数传参 

7、实操  

 

说明:调用时把参数名称也写上去,这样可以不用按照参数顺序,更灵活!

============================================================================================

8、让定义的函数,可以传任意多个参数  

定义可变参数时,主要有两种形式:一种是 *parameter,另一种是 **parameter

9、返回值----------------------将函数的处理结果返回给调用它的程序

10、局部变量、全局变量   

局部变量:指在函数内部定义并使用的变量,它只在函数内部有效。

全局变量:能够作用于函数内外的变量 ,全局变量主要有以下两种情况:

(1)如果一个变量,在函数外定义,那么不仅在函数外可以访问到,在函数内也可以访问到。在函数体以外定义的变量是全局变量。

(2)在函数体内定义,并且使用global关键字修饰后,该变量也就变为全局变量。在函数体外也可以访问到该变量,并且在函数体内还可以对其进行修改。

六、面向对象

  1. 在Python中,一切都是对象。字符串、函数等也都是对象。

2、面向对象的特点:   封装、继承、多态

3、类、对象、属性 的关系

4、类的定义+使用

1)声明、定义 一个类 【建议必须带一个构造方法】

2)创建类的实例

3__init__()方法

4)创建类的成员+访问

1)创建实例方法+访问  -------创建函数

2)创建数据成员+访问------------定义变量(属性)

<1> 类属性

<2> 实例属性

============================================================================================

5、访问限制

为了保证类内部的某些属性或方法不被外部所访问,可以在属性或方法名前面添加单下划线(_foo)、双下划线(__foo)或  首尾加双下划线(__foo__,从而限制访问权限。作用如下:

(1)首尾双下划线表示定义特殊方法,一般是系统定义名字,如 __init__()

(2)以单下划线开头的表示protected(保护)类型的成员,只允许类本身和子类进行访问,但不能使用"from module import* "语句导入。

(3)双下划线表示private(私有)类型的成员,只允许定义该方法的类本身进行访问,而且也不能通过类的实例进行访问,但是可以通过“ 类的实例名 ._类__xxx”方式访问。

6、创建用于计算的属性

============================================================================================

7、继承

(1)继承的使用

说明:虽然在Apple类和Orange类中没有harvest()方法,但是Python允许派生类访问基类的方法。

(2)方法重写-----函数重写

七、模块(库)

1、数学模块下,已经包含了很多定义好的函数

2、在Python中,一个扩展名为 ".py" 的文件就称之为一个模块。

通常情况下,我们把能够实现某一特定功能的代码放置在一个文件中作为一个模块,从而方便其他程序和脚本导入并使用。另外,使用模块也可以避免函数名和变量名冲突。

3、在Python中,自定义模块有两个作用:

1)规范代码,让代码更易于阅读; 2)方便其他程序使用已经编写好的代码,提高开发效率。

4、实现自定义模块主要分为两部分:1)创建模块  2)导入模块。

5、创建模块: 模块名+ .py  (例如: 计算bmi指数的  bmi.py

6、创建模块后,就可以在其他程序中使用该模块了,使用时import bmi import+包名)语句导入

7、使用模块里面的函数:( bmi.fun_bmi:表示调用bmi模块中的fun_bmi()函数

8、as关键字     import  numpy as  np

9、如果不想在每次导入模块时都创建一个新的命名空间,而是将具体的定义导入到当前的命名空间中,这时可以使用from.....import语句。使用from....import语句导入模块后,不需要再添加前缀,直接通过具体的变量、函数和类名等访问即可。

============================================================================================

10、导入标准模块

11、导入第三方模块

(1)需要先下载安装该模块,然后导入就可以使用了

(2)下载安装:pip install numpy        pip install pandas

(3)说明:

<1> 在大型程序中可能需要导入很多模块,推荐先导入Python提供的标准模块,然后再导入第三方模块,最后导入自定义模块。

<2> 如果想要查看Python中都有哪些模块(包括标准模块和第三方模块),输入以下命令: help'modules'

<3> 如果只是想要查看已经安装的第三方模块,可以在命令行窗口中输入以下命令:   pip list

八、异常处理+程序调试

1、常见异常---------百度解决

2try....except....语句------------------调试常用语句(捕获并处理异常

使用:可能产生异常的代码放在try语句块中,把处理结果放在except语句块中。

当ty语句块中的代码出现错误时,就会执行except语句块中的代码

当try语句块中的代码没有错误,那么except语句块将不会执行

说明:

1)在使用try....except语句捕获异常时,如果在except后面不指定异常名称(IndexError,则表示捕获全部异常

2)异常处理的代码块:一般输出异常的提示信息

3)使用try..except语句捕获异常后,当程序出错时,输出错误信息后,程序会继续执行

4)except   [ɪkˈset]    除了; 除…之外;不包括;

5)处理多个异常

3try...except... else语句--------------选择1个来执行

在原来try...except语句再添加一个else子句,用于指定当ty语句块中没有发现异常时,要执行的语句块

当try语句中发现异常时,else语句将不被执行;

4try...except... finally语句--------------都会被执行

完整的异常处理语句应该包含finally代码块,无论程序中有无异常产生,finally代码块中的代码都会被执行。

说明:

1)使用except子句是为了允许处理异常。无论是否引发了异常,使用finally子句都可以执行清理代码。如果分配了有限的资源(如打开文件),则应将释放这些资源的代码放置在finally代码块中。

2)如果程序中有一些在任何情形中都必须执行的代码,那么就可以将它们放在finally代码块中。

============================================================================================

5、程序调试

断点的作用:     设置断点后,程序执行到断点时就会暂时中断执行,程序可以随时继续。

添加断点的原则: 程序执行到这个位置时,想要查看某些变量的值,就在这个位置添加一个断点

调试步骤:(自带IDLE为例) 

(1)添加所需的断点后,按下快捷键F5,执行程序,这时Debug Control对话框中将显示程序的执行信息,选中Globals复选框,将显示全局变量,默认只显示局部变量。此时的Debug Control显示执行信息。

(2)这里单击Go按钮继续执行程序,直到所设置的第一个断点。由于在division_apple.py文件中,第一个断点之前需要获取用户的输入,所以需要先在Python Shell窗口中输入苹果和小朋友的数量。输入后Debug Control窗口中的数据将发生变化。

(3)继续单击Go按钮,将执行到下一个断点,查看变量的变化,直到全部断点都执行完毕。

九、文件及目录操作

1、在调用open()函数时,指定mode的参数值为ww+aa+。这样,当要打开的文件不存在时,就可以创建新的文件了。

2、创建文件: file = open('test.txt','w')  

3、关闭文件: file.close()

4、写入内容:     (步骤:打开--写入--关闭)

file = open('C:/Users/83852/Desktop/test.txt','w')   #创建文件

file.write("你好!")           

file.close()               

5、一般都要加with语句:【常用这种!】

with open('test.txt','w') as file:      #with语句创建文件

    file.write("你好!")         

file.close()

6、读取字符

7、读取一行  : file.readline()

8、读取全部行 :   file.readlines()

============================================================================================

9、目录操作: 

(1)拼接路径

  1. 常用操作

10Python操作数据库 (建议使用可视化Navicat工具来操作)

1、数据库API接口中的“连接对象”、“游标对象”

2、SQLite是嵌入式数据库,安装SQLite3模块,就可以使用

3、创建SQLite数据库文件

4、操作SQLite数据库

(1)新增用户数据

(2)查看

(3)修改

(4)删除

========================================================================================

1、使用MySQL

(1)下载安装MySQL数据库

(2)Navicat连接MySQL数据库

(3)安装PyMysql模块  :  pip install pymysql

(4)连接数据库     通过pymysql模块的connect()方法

import pymysql

db = pymysql.connect(host="localhost", user="root", pass="XXX", database="dang")

cursor = db.cursor()

cursor.execute("select version()")

data = cursor.fetchone()

print("data v  is :" , data)

db.close()

上述(5)创据表

(6)添加数据

可以使用excute()方法添加一条记录,也可以使用executemany()方法批量添加多条记录

11GUI界面编程

.......

12、网络爬虫开发

=====================================================================================

一、爬虫常用技术

1、爬虫工作流程

2HTTP网络请求的3种方式 

urllib模块、 urllib3模块、 requests模块

(1)urllib模块

(2) urllib3模块

(3) requests模块

3、请求头部headers的处理 

(1)步骤

下面实现代码,首先创建一个需要爬取的url地址,然后创建headers头部信息,再发送请求等待响应,最后打印网页的代码信息。

4、网络超时   

5、代理服务 

在爬取网页的过程中,经常会出现不久前可以爬取的网页,现在无法爬取,这是因为您的IP被爬取网站的服务器所屏蔽了。此时代理服务可以为您解决这一麻烦,设置代理时,首先需要找到代理地址,例如,122.114.3177,对应的端口号为808,完整的格式为122.114.31.177:808

6Html解析之Beautiful Soup        

  Beautiful Soup是一个用于从HTML和XML文件中提取数据的Python库。Beautiful Soup提供一些简单的、函数用来处理导航、搜索、修改分析树等功能。Beautiful Soup模块中的查找提取功能非常强大。

Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为UTF-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。

(1)安装Beautiful Soup    pip install beautifulsoup4

(2)Beautiful Soup的使用

<1> 导入bs4库,然后创建一个模拟HTML代码的字符串

<2> 创建Beautiful Soup对象,并指定解析器为1xml,最后通过打印的方式将解析的HTML代码显示在控制台中

=====================================================================================

二、爬虫开发常用框架 

爬虫框架就是一些爬虫项目的半成品,已经将一些爬虫常用的功能写好,然后留下一些接口,在不同的爬虫项目中,调用适合自己项目的接口,再编写少量的代码实现自己需要的功能。

1Scrapy爬虫框架     

2Crawley爬虫框架     

3PySpider爬虫框架   

13Web编程

1、Web基础

(1)

(2)CSS是(层叠样式表)的缩写。CSS是一种标记语言,用于为HTML文档定义布局。例如,CSS涉及字体、颜色、边距、高度、宽度、背景图像、高级定位等方面,运用CSS样式可以让页面变得更加美观。

(3)

==========================================================================================

2、WSGI接口

WSGI,即服务器网关接口,是Web服务器和Web应用程序或框架之间的一种简单而通用的接口。

WSGI中存在两种角色:接受请求的Server(服务器)和处理请求的Application(应用)

它们底层是通过FastCGI沟通的,当Server收到一个请求后,可以通过Socket把环境变量和一个Callback回调函数传给后端Application,Application在完成页面组装后通过Callback把内容返回给Server,最后Sever再将响应返回给Client。

(1)定义WSGI接口

(2)运行WSGI服务

14Web框架(Flask+Django

(1)采用web框架(Flask、django),在搭建网站时,就不用从0开始搭建了,框架可以复用、节省时间。

(2)框架会提供如下常用功能:

1 管理路由 2)访问数据库 3)管理会话和 Cookies  4)创建模板来显示HTML  5)促进代码的重用

1Flask 

 Flask是一款轻量级Web应用框架,它是基于Werkzeug实现的WSGI和Jinja2模板引擎。Flask的设计哲学为:只保留核心,通过扩展机制来增加其他功能。Flask的扩展环境非常丰富,Web应用的每个环节基本上都有对应的扩展供开发者选择,即便没有对应的扩展开发者自己也能轻松地实现一个。

2Django 

提供了非常齐备的官方文档及一站式的解决方案,包含缓存、ORM/管理后台、验证、表单处理等,使开发复杂的数据库驱动的网站变得更加简单。但由于Django的系统耦合度太高,替换内置的功能往往会占用一些时间。

3Bottle 

   Bottle是一款轻量级的Web框架。它只有一个文件,代码只使用了Python标准库,却自带了路径映射、模板、简单的数据库访问等Web框架组件,而不需要额外依赖其他第三方库。它更符合微框架的定义,语法简单,部署也很方便。

4Tornado  

   由于Tomado是非阻塞式服务器,速度相当快,每秒钟可以处理数以千计的连接,这意味着对于长轮询、WebSocket等Web服务来说,Tornado是一个理想的Web框架。

==========================================================================================

一、Flask框架  

   Flask依赖两个外部库:WerkzeugJinja2,Werkzeug是一个WSGI(在Web应用和多种服务器之间的标准Python接口)工具集,Jinja2负责渲染模板。所以,在安装Flask之前,需要安装这两个外部库,而最简单的安装方式就是使用Virtualenv创建虚拟环境。

  

(1)安装flask库    pip install flask

==========================================================================================

二、Django框架

(1)安装django库    pip install django

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bigdata_pokison

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值