python基础知识

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,将这个参数的值设置为你需要的路径。

clip_image001

设置好默认路径后,将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个特点缺一个都不叫变量

clip_image002

id不是真正得内存地址

python的小整数池

在交互模式下python有一个小的整数池,他的范围是[-5,256],这么做的好处是避免浪费空间和资源

只要是在这个数值内,内存地址都一样

在pycharm中,pycharm出于对性能的考虑会扩大这个整数池,至于扩大到多少,视内存而定

4.常量

常量即代表不变的量,其实在python里不存在真正不变的量,只不过潜规则在我们想定义一个常量的时候变量名为大写即为常量:

比如:一个人的年纪不断的增长,那么年纪就叫常量,如果这个人死了,那么他的年纪就被定格在了那一年的年纪上,这个时候年纪就是常量

AGE=60

5.用户与程序(python)交互

首先来说什么是交互,交互就跟人与人对话一样,你有来言,我有去语,能够对话...能够沟通,那么用户怎么跟程序去对话呢?这时候我们可以调用python的一个内置函数,叫:input

#例子

clip_image003

#如果你想让程序有提示信息

clip_image004

6.注释

单行注释可以用#表示,#号右边的为注释内容

如果要多行注释可以用''' ''',左右两边一边1个3引号中间的部分就是注释的内容

clip_image005

快捷键: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格式

clip_image006

在Terminal下输入:pip install pyinstaller

下载好后,pyinstaller -F game.py

就会生成game.exe

原文地址:https://www.cnblogs.com/liangzb310/p/11026982.html