Python
- python的安装
1.安装python环境
下载地址:https://www.python.org
2.pthon的包管理工具的安装
https://pypi.python.org/pypi/setuptools
如果下载的是一个可执行文件,双击执行,如果下载的是一个压缩包,解压,执行目录当中的setup.py
Python setup.py install
当setuptools安装完成,我们的python目录下就会自动出现scripts目录,我们需要把该路径同样加到环境变量中。
在path路径中配置完环境变量之后,在cmd中,用easy_install 安装pip。cmd输入如下:
easy_install pip
到此为止python包管理工具安装完成
运行python可用:IDLE、windows命令行
写脚本可在记事本、notepapad++、sublimeTest3
python 常用目录
1)lib里面存放着当前版本的python所有模块
lib/site-packages存放着所有的第三方模块
2)Doc里面存放着当前python的手册
3)scripts默认是没有的
我们安装完python环境通常会部署easy_install和pip这两个python包管理工具在这两个工具部署完后才能之后,我们就会出现scripts目录,该目录存放着模块的环境变量
3.安装pycharm
进入https://www.jetbrains.com/pycharm 下载pycharm Professional Edition然后百度安装步骤安装,激活码也百度
进入cmd
cd 到python 环境
pip install
pip install --upgrade pip 升级pip
pip uninstall xxx 删除某个模块
Lamba
常用网站:
https://pythontutor.com/visualize.html#mode=edit
https://zhuanlan.zhihu.com/p/32456573
常用工具:atom
二、社区
pypi :第三方库的管理网站
https://pypi.python.org
github:
https://github.com
StackOverFlow
Oschina
Pycharm的用法以及快捷键
1.shift+F10 运行
2.Tab 参数提示
3.shift+F10 运行代码
4.shift+F9 调试代码
5.调试代码:单步调试F7
6.F8单步调试,会把函数当成一段代码
7.跳出代码:shift+F8
8.CTRL+Q:
9.多行注释的快捷键选中然后CTRL+/
10.Shift+F9进入调试:点击下面的Console可以看见条件的输出信息
11.如果代码写的太乱,可以用pycharm的CTRL+ALT+L格式化代码或者菜单CODE->Reformate Code,不光能格式化我们写的代码,还可以格式化json文件便于我们查看
12.如果我们写一段代码使用一个陌生的模块,我们想看下这个方法怎么用,可以点击这个函数,CTRL+B或者CTRL选中这个函数点击就进入这个方法
恢复初始设置
新建和打开python项目
如果右上角的运行按钮是灰色的,点击.py文件右键Run ‘hello’
设置项目的python的版本
二、.Python的基础语法
基础数据结构
List
Dict
如何统计字母出现的
reverse=True 反转 从大到小
2.网络协议
机器之间是怎么聊天的?
IP :寻址
URL:协议头://域名:端口/资源地址?参数#锚点
Method
Get和post区别
协议头
- python 基础
1)python 交互式环境
cmd 输入python回车打程序,如果想退出python,输入exit()、回车。
创建文件名.py不要已数字开头
2)python 网上编程
https://repl.it/languages/python3
1.基础
四则运算
加(+)、减(-)、乘(*)、除(/)、整除(//)、幂(**)
特殊字符:
\ 转义符
\r 回车
\n 换行
\t tab键
\f 换页
Type 获取变量的类型
类型转换
Int/str=》float
Float/str=》int
Int/float=》str
Bool()
流程控制
条件语句:
http://pythontutor.com/visualize.html#mode=edit
http://pythontutor.com/visualize.html#mode=display
if condition_1:
code1
elif:
code2
else:
code3
循环语句
While condition:
Code
防止换行
加上end=‘’
Random 包含左右两个值
import random
2.列表
Help(list)查看这个函数
每个元素之间用逗号分隔
可以包含任意数据类型
有序
编号,可以通过编号访问
从左到右index从0开始,从右往左访问index从-1开始,访问元素的索引必须存在,不存在报错
可遍历
可追加/可插入
可删除/可以弹出
可修改
长度不定
Range 生成一个可interable(可迭代)的对象
Range 倒序的整数数列
len()
max()
min()
在于不在用 in \ not in
del nums[index]
list的切片
按照规则获取list一部分元素生成一个新的list
list[strat,stop,step]
- 复制数组
- 引用:临时数组发生改变原来数组也发生改变
- 利用切片复制数组的话原来数组不发生改变
- 反转list list[::-1]
- 获取奇数偶数
Nums[1::2]
- 可以通过切片来增删改原来的数组
列表的函数
append 添加元素到list最右侧
clear 清空list中的元素
copy 复制list中的所有元素到新的list中并返回
count 计算list中存在相同元素的数量
extend 将一公分可遍历数据中的所有元素追加到list后
index 获取元素在list中的位置
insert 在list指定位置添加元素
pop 弹出list中指定位置的元素(默认最右侧),根据索引来移除的并返回这个元素
remove 移除list中指定的元素
reverse对list中元素进行反转
sort对list中元素进行排序
查看数据类型有哪些函数方法:dir(list)
查看具体函数的用法:help(list.append)
| append | extend |
| 任何数据类型 | 可遍历 |
|
|
|
|
|
|
|
|
|
队列
先进先出
list.append+list.pop(0)
堆栈
先进后出
List.append+list.pop
tuple
不可变的
字符串
字符串是有序的数据集,通过字符串[索引]的方式访问字符串中的元素
索引编号
0~len(str)-1
-1~-n
字符串是不能修改的
变量的输入:input函数实现键盘的输入
name="shina"
print("Please input name: %s " %name)
num=1 print("Please input number: %06d " %num)
If语句
代码缩进可以选中代码,按住TAB键
函数:
写个函数怎么给函数增加注释
模块名
列表
向列表的末尾增加数据
删除列表的数据
列表的循环
元组
字典
字符串:
字符串的应用
1.爬虫的数据输出的文本使对其
切片
字典不支持切片因为是无序的,
倒序索引:最后一个字符是-1,步长如果是-1,表示从右向左切片
接收返回值是元组的方法:
交换两个变量
上述代码的运输结果是
Print(gl_num)打印的值为9
Print(gl_list)打印的值为[1,2,3,1,2,3]
因为glnum是数字类型是不可变类型
因为gl_list是list类型是可变类型,被修改了
class HouseItem:
def __init__(self,name,area):
self.name=name
self.area=area
def __str__(self):
return " [%s] 占地面积 %.2f" %(self.name,self.area)
bed = HouseItem("席梦思",4)
chest = HouseItem("衣柜",2)
table = HouseItem("餐桌",1.5)
print(bed)
print(chest)
print(table)
如果在一个文件夹定义两个类,两个类中之间隔两行
class HouseItem:
def __init__(self, name, area):
"""
:param name: 家具名称
:param area: 占地面积
"""
self.name = name
self.area = area
def __str__(self):
return "[%s] 占地面积 %.2f" % (self.name, self.area)
class House:
def __init__(self, house_type, area):
"""
:param house_type: 户型
:param area: 总面积
"""
self.house_type = house_type
self.area = area
# 剩余面积默认和总面积一致
self.free_area = area
# 默认没有任何的家具
self.item_list = []
def __str__(self):
# Python 能够自动的将一对括号内部的代码连接在一起
return ("户型:%s\n总面积:%.2f[剩余:%.2f]\n家具:%s"
% (self.house_type, self.area,
self.free_area, self.item_list))
def add_item(self, item):
print("要添加 %s" % item)
# 1. 判断家具面积是否大于剩余面积
if item.area > self.free_area:
print("%s 的面积太大,不能添加到房子中" % item.name)
return
# 2. 将家具的名称追加到名称列表中
self.item_list.append(item.name)
# 3. 计算剩余面积
self.free_area -= item.area
# 1. 创建家具
bed = HouseItem("席梦思", 4)
chest = HouseItem("衣柜", 2)
table = HouseItem("餐桌", 1.5)
# 2. 创建房子对象
my_home = House("两室一厅", 60)
my_home.add_item(bed)
my_home.add_item(chest)
my_home.add_item(table)
print(my_home)
调用父类的方法:
Super().调用父类的方法
如果继承的多个父类方法重名,会先继承前面的类
例如:C(A,B):就输出A中的方法,如果是C(B:A) 就输出B中的方法
class Dog(object):
def __init__(self,name):
self.name=name
def game(self):
print("%s 蹦蹦跳跳玩耍..." % self.name)
class XiaoTianQuan(Dog):
def game(self):
print(" %s 飞到天上玩耍" % self.name) # 在继承时会继承父类的所有属性
class Person(object):
def __init__(self, name):
self.name = name
def game_with_dog(self,dog):
print(" %s 和 %s 快乐的玩耍" % (self.name,dog.name))
dog.game()
# 创建狗的对象
# wangcai = Dog("旺财")
wangcai = XiaoTianQuan("飞上天的旺财")
#创建人的对象
xiaoming = Person("小明")
xiaoming.game_with_dog(wangcai)
class Game(object):
# 历史最高分
top_score = 100
def __init__(self, player_name):
self.player_name = player_name
Game.top_score += 1
@staticmethod
def show_help():
print("游戏的说明")
@classmethod
def show_top_score(cls):
print(" 游戏的最高为 %d" % (cls.top_score))
def start_game(self):
print(" %s 开始玩游戏" % self.player_name)
xiaoming=Game("小明")
xiaoming.start_game()
Game.show_top_score()
注:定义是不是静态方法:静态方法既不要访问类属性又不要访问对象属性
try:
num = int(input("请输入整数:"))
result = 8/num
print(result)
except ZeroDivisionError:
print("除0错误")
except ValueError:
print("请输入正确的整数")
。。
再次调用read方法,第一次读取文件read已经把指针移动到末尾了,所以读取不到任何信息
with open(file_path,"w",encoding="utf-8") as f:
以上这种写法,可以自动关闭file文件
Python2 只需要在首行加入如下注释就可以使用中文
爬虫
Django
创建项目
django-admin startproject message
创建app
python manage.py startapp online
启用online app
添加online app配置到messages/settings.py
online 当初创建app的名称
创建online app urls映射文件
在online 中创建一个urls.py文件
写入:
然后到message 中的urls中
MTV
M Model 进行业务逻辑判断和数据存取
T模板 Template
将数据展示给用户
View 试图
将用户请求数据传递给Model
将Model返回的数据传递给Template
URLS
用于配置url和View处理对应关系
注:url都使用/结尾配置
ORM 关系对象映射
用来把对象映射到基于SQL的关系模型数据库结构中去
在具体的操作实体对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作实体对象的属性和方法