zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【转载】最常见的数据类型映射列表
    【自然框架 NatureFramework】 项目结构、命名空间和命名规范
    【自然框架之SSO】实现SSO的一个初步想法
    两张图说明三层的奥义!
    Android中文API(146) —— Display
    [视频监控][海康威视]二次开发 网友文章转载贴
    Android中文API(141) —— GridLayout
    Android支持横行滚动的ListView控件
    Android应用开发提高系列(5)——Android动态加载(下)——加载已安装APK中的类和资源
    [WinForm]DataGridView通过代码新增行问题
  • 原文地址:https://www.cnblogs.com/liangzb310/p/11026982.html
Copyright © 2011-2022 走看看