Python2 不维护了
Python3
1. pip介绍
pip的用法其实跟linux的yum很像,它可以帮我们安装python所需要的环境包,并且可以包解决依赖关系
列出已安装的包:pip list
安装要安装的包:pip install 软件名
安装特定版本:pip install django==1.1.5
导出python的环境:pip freeze > requestment.txt
从导出的python环境中安装所需要的包:pip install -r requestment.txt
卸载导出的python环境中的包:pip uninstall -r requestment.txt
了解即可
升级包 :pip install -U <包名>
显示包所在的目录:pip show -f <包名>
搜索包:pip search <搜索关键字>
查询可升级的包 :pip list -o
下载包而不安装 :pip install <包名> -d <目录> 或 pip install -d <目录> -r requirements.txt
更换国内pypi镜像
阿里:https://mirrors.aliyun.com/pypi/simple
豆瓣:http://pypi.douban.com/simple
中国科学技术大学:http://pypi.mirrors.ustc.edu.cn/simple/
pip install <包名> -i http://pypi.v2ex.com/simple 临时指定
指定全局安装源
在unix和macos,配置文件为:$HOME/.pip/pip.conf
在windows上,配置文件为:%HOME%pippip.ini
(1):在windows文件管理器中,输入 %APPDATA%
(2):会定位到一个新的目录下,在该目录下新建pip文件夹,然后到pip文件夹里面去新建个pip.ini文件
(3):在新建的pip.ini文件中输入以下内容,搞定文件路径:"C:UsersAdministratorAppDataRoamingpippip.ini"
[global]
timeout = 6000
index-url = http://pypi.douban.com/simple
2.创建python的虚拟环境
为什么需要虚拟环境:
如果你现在用Django 1.10.x写了个网站,然后你的领导跟你说,之前有一个旧项目是用Django 0.9开发的,让你来维护,但是Django 1.10不再兼容Django 0.9的一些语法了。这时候就会碰到一个问题,我如何在我的电脑中同时拥有Django 1.10和Django 0.9两套环境呢?这时候我们就可以通过虚拟环境来解决这个问题。
2.1安装虚拟环境:
virtualenv是用来创建虚拟环境的软件工具,我们可以通过pip安装
pip install virtualenv
创建虚拟环境:
virtualenv [虚拟环境的名字]
进入虚拟环境:
虚拟环境创建好了以后,那么可以进入到这个虚拟环境中,然后安装一些第三方包,进入虚拟环境在不同的操作系统中有不同的方式,一般分为两种,第一种是Windows,第二种是*nix:
windows进入虚拟环境:进入到虚拟环境的Scripts文件夹中,然后执行activate。
linux进入虚拟环境:source /path/to/virtualenv/bin/activate
一旦你进入到了这个虚拟环境中,你安装包,卸载包都是在这个虚拟环境中,不会影响到外面的环境。
退出虚拟环境:
退出虚拟环境很简单,通过一个命令就可以完成:deactivate。
创建虚拟环境的时候指定Python解释器:
在电脑的环境变量中,一般是不会去更改一些环境变量的顺序的。也就是说比如你的Python2/Scripts在Python3/Scripts的前面,那么你不会经常去更改他们的位置。但是这时候我确实是想在创建虚拟环境的时候用Python3这个版本,这时候可以通过-p参数来指定具体的Python解释器:
virtualenv -p C:Python36python.exe [virutalenv name]
2.2 virtualenvwrapper(有了virtualenvwrapper,就不用virtualenv创建虚拟环境里)
virtualenvwrapper这个软件包可以让我们管理虚拟环境变得更加简单。不用再跑到某个目录下通过virtualenv来创建虚拟环境,并且激活的时候也要跑到具体的目录下去激活。
安装virtualenvwrapper
linux:pip install virtualenvwrapper
windows:pip install virtualenvwrapper-win
virtualenvwrapper基本使用:
1.创建虚拟环境: mkvirtualenv my_env
那么会在你当前用户下创建一个Env的文件夹,然后将这个虚拟环境安装到这个目录下。
如果你电脑中安装了python2和python3,并且两个版本中都安装了virtualenvwrapper,那么将会使用环境变量中第一个出现的Python版本来作为这个虚拟环境的Python解释器。
2.切换到某个虚拟环境:workon my_env
3.退出当前虚拟环境: deactivate
4.删除某个虚拟环境: rmvirtualenv my_env
5.列出所有虚拟环境:lsvirtualenv
6.进入到虚拟环境所在的目录:cdvirtualenv
修改mkvirtualenv的默认路径:
在我的电脑->右键->属性->高级系统设置->环境变量->系统变量中添加一个参数WORKON_HOME,将这个参数的值设置为你需要的路径。
设置好默认路径后,将CMD关了,在打开,这是在创建的虚拟环境就是在我们指定的路径上。
创建虚拟环境的时候指定Python版本:
在使用mkvirtualenv的时候,可以指定--python的参数来指定具体的python路径:
mkvirtualenv --python==C:Python36python.exe hy_env
3.变量
变量是什么?什么是变量?变量有什么好处?
变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息。例如,可以创建一个名为ClickCount的变量来存储用户单击Web页面上某个对象的次数。使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。在例如:咱们平时玩的游戏都有level,打怪就升级,那个level就是变量
变量定义的规范:
变量名只能是字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
变量名不能为关键字,比如 and,as,break,class,continue,def,del............
变量名字尽量起个个有意义的名字,比如:name=‘张三’,不要词不达意,比如:aaa='张三'
变量名字不要起过长
变量名字尽量不要起拼音或者汉字
变量应该具有的属性或者特征
name='李白'
id,type,value
id——代表变量的内存地址
type——代表变量的数据类型
value——代表等号右边的值
这3个特点缺一个都不叫变量
id不是真正得内存地址
python的小整数池
在交互模式下python有一个小的整数池,他的范围是[-5,256],这么做的好处是避免浪费空间和资源
只要是在这个数值内,内存地址都一样
在pycharm中,pycharm出于对性能的考虑会扩大这个整数池,至于扩大到多少,视内存而定
4.常量
常量即代表不变的量,其实在python里不存在真正不变的量,只不过潜规则在我们想定义一个常量的时候变量名为大写即为常量:
比如:一个人的年纪不断的增长,那么年纪就叫常量,如果这个人死了,那么他的年纪就被定格在了那一年的年纪上,这个时候年纪就是常量
AGE=60
5.用户与程序(python)交互
首先来说什么是交互,交互就跟人与人对话一样,你有来言,我有去语,能够对话...能够沟通,那么用户怎么跟程序去对话呢?这时候我们可以调用python的一个内置函数,叫:input
#例子
#如果你想让程序有提示信息
6.注释
单行注释可以用#表示,#号右边的为注释内容
如果要多行注释可以用''' ''',左右两边一边1个3引号中间的部分就是注释的内容
快捷键:ctrl+?
7.pycharm快捷键
ctrl + ?:快速注释,快速解注释
tab:缩进4个空格
shift+tab:回退4个空格
ctrl + w:选中字符段
ctrl + d:在当前行下复制一行所在行
8. 分隔符
print('='+'*')
print('='*5)
=*
=====
9.可变类型和不可变类型
1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典
2. 不可变类型:value一旦改变,id也改变,则称为不可变类型,(id变,意味着创建了新的内存空间)
如整数,浮点数,字符串。
a=10
print(id(a))
a=20
print(id(a))
1587340032
1587340192
3. 元组,集合:value相同,不同的名字id也不同
s1 = {1,2,3,4}
print(id(s1))
s2 = {1,2,3,4}
print(id(s2))
48686304
48686184
11.基本运算符
a=10 b=20
12.比较运算符
a=10 b=20
13.赋值运算符
14.身份运算符
is表示id是否相等,也就是比较内存地址是否一致,一致为True,不一致为False
a=5
print(id(a))
b=5.0
print(id(b))
print(a
1587339952
23147808
False
is b)
一个内存地址可以对应多个变量,一个变量只能对应一个内存地址,10.0和10就是不同的变量
==表示两个值是否一致,一致为True,不一致为False
15.逻辑运算符
and
与
都满足就为真
or
或
有一个满足就为真
not
结果取反
16.流程控制if...else....
if 条件语句
执行的代码块
else:
执行的代码块
实例1
a=None #当a为None,0,空为假,其余都为真
if a:
print('真')
else:
print('假')
假
实例2
name = '帅哥'
res = input('你叫什么名字?')
if res == name:
print('帅哥')
else:
print('丑男')
实例3
has_ticket = False
knife_length = 10
gun = True
gender = 'girl'
if has_ticket or gender == 'girl':
if knife_length > 20 and gun:
print('不让通行')
else:
print('请上车')
else:
print('没票,不让进')
17.流程控制之while
while 条件:
# 循环体
# 如果条件为真,那么循环体则执行,执行完毕后再次循环,重新判断条件。。。
# 如果条件为假,那么循环体不执行,循环终止
实例1:打印0到4的数字
num = 0
while num < 5:
print(num)
num+=1
实例2:打印0到10之间的偶数
num = 0
while num <= 10:
if num % 2 ==0:
print(num)
num += 1
实例3:死循环
# 0,None,空
while 1:
print('李白')
实例4:while……else……
count = 0
while count <= 5 :
count += 1
print("Loop",count)
else:
print("循环正常执行完啦")
print("-----out of while loop ------")
输出
Loop 1
Loop 2
Loop 3
Loop 4
Loop 5
Loop 6
循环正常执行完啦
实例5:pass,continue和break
continue跳过本次循环进入下一次循环
a=0
while a<4:
a+=1
if a==2:
continue
print(a)
1
3
4
break跳出循环体
a=0
while a<4:
a+=1
if a==3:
break
print('sss',a)
sss 1
sss 2
pass用来占位的,让语法格式正确。即让该语法不报错
a=0
while a<4:
a+=1
if a==3:
pass
print(a)
1
2
3
4
从结果可以看出,pass未产生任何结果,只是起到了占位的作用。
实例6:猜拳游戏 import导入模块
import random
win = 0
lose = 0
ping = 0
while True:
print('=====欢迎来猜拳=====')
print('胜:{} 败:{} 平:{}'.format(win, lose, ping))
print('1.石头 2.剪刀 3.布 4.退出')
computer = random.choice(['石头','剪刀','布'])
hum = input('==>:')
#赢
if (hum == '1' and computer == '剪刀') or (hum == '2' and computer =='布') or (hum == '3' and computer == '石头'):
print('挺牛逼!')
win += 1
#输
elif hum == '3' and computer == '剪刀' or hum == '1' and computer =='布' or hum == '2' and computer == '石头':
print('菜鸡!')
lose += 1
#平
elif hum == '2' and computer == '剪刀' or hum == '3' and computer =='布' or hum == '1' and computer == '石头':
print('不要走,决战到天亮')
ping += 1
elif hum == '4':
break
else:
print('别瞎输入!!')
print()
print()
print()
print()
18.流程控制之for循环
1 迭代式循环:for,语法如下
for i in range(10):
缩进的代码块
实例1:
for i in range(0,10,2): # range 如果不指定的话,默认从0开始,顾头不顾尾,最后一位是步长
print(i)
0
2
4
6
8
实例2:列表,字符串,字典都可以
dic={'name':'李白','age':18,'high':175}
for i,j in dic.items():
print(i,j)
name 李白
age 18
high 175
2 break与continue(同while)
19.将python里的.py文件转换为exe格式
在Terminal下输入:pip install pyinstaller
下载好后,pyinstaller -F game.py
就会生成game.exe