一些python的记录

安装pip3

sudo apt update
sudo apt install python3-pip

pip更新到最新版本ImportError: cannot import name ‘main’

/usr/bin/pip改为

from pip._internal import main

setup.py的编译安装

python setup.py build
python setup.py install

linux的编译安装

linux编译安装中configure、make和make install各自的作用

  • ./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。
  • make是用来编译的,它从Makefile中读取指令,然后编译。
  • make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

虚拟环境

linux下载

sudo apt install python-virtualenv
sudo easy_install virtualenvwrapper

或者

sudo pip install virtualenv
sudo pip install virtualenvwrapper

创建

mkvirtualenv 虚拟环境名称

mkvirtualenv -p python路径 虚拟环境名称

whereis python3来确认python路径

环境变量

# 方法一临时使用
# 找到virtualenvwrapper的脚本文件
whereis virtualenvwrapper
# 进入该目录
cd /usr/local/python3/bin
# 执行脚本文件激活virtualenvwrapper
source virtualenvwrapper.sh
# 可以正常使用命令了
# 方法二添加至环境变量
# 方法一每次重启后都需要手动激活,不方便,将命令添加到环境变量
sudo vi ~/.bashrc
# 在末尾添加一行
source /usr/local/python3/bin/virtualenvwrapper.sh
# 保存后执行
source ~/.bashrc
# 现在可以正常使用命令了,且每次重启主机自动加载命令

进出、删除、查看

# 进入虚拟环境
workon [虚拟环境名称]
# 退出
deactivate
# 删除
rmvirtualenv [虚拟环境名称]
# 虚拟环境列表
pip list
pip freeze

在linux中查找python安装包的路径

~$ python -c "import pip;print(pip)"
<module 'pip' from '/usr/local/lib/python2.7/dist-packages/pip/__init__.pyc'>

统计list中各个元素出现的次数

a = [1, 2, 3, 1, 1, 2]
dict = {}
for key in a:
    dict[key] = dict.get(key, 0) + 1
print dict

实现栈、队列

# 后进先出
class Stack():
    def __init__(self,size):
        self.size=size
        self.stack=[]
        self.top=-1

    def push(self,x):  # 入栈之前检查栈是否已满
        if self.isfull():
            raise exception("stack is full")
        else:
            self.stack.append(x)
            self.top=self.top+1

    def pop(self):  # 出栈之前检查栈是否为空
        if self.isempty():
            raise exception("stack is empty")
        else:
            self.top=self.top-1
            self.stack.pop()

    def isfull(self):
        return self.top+1 == self.size
    def isempty(self):
        return self.top == '-1'
    def showStack(self):
        print(self.stack)

s=Stack(10)
for i in range(6):
    s.push(i)
s.showStack()
for i in range(3):
    s.pop()
s.showStack()

"""
类中有top属性,用来指示栈的存储情况,初始值为1,一旦插入一个元素,其值加1,利用top的值乐意判定栈是空还是满。
执行时先将0,1,2,3,4,5依次入栈,然后删除栈顶的前三个元素
"""

队列

# 先进先出
class Queue():

    def __init__(self,size):
        self.size=size
        self.front=-1
        self.rear=-1
        self.queue=[]

    def enqueue(self,ele):  # 入队操作
        if self.isfull():
            raise exception("queue is full")
        else:
            self.queue.append(ele)
            self.rear=self.rear+1

    def dequeue(self):  # 出队操作
        if self.isempty():
            raise exception("queue is empty")
        else:
            self.queue.pop(0)
            self.front=self.front+1

    def isfull(self):
        return self.rear-self.front+1 == self.size
    def isempty(self):
        return self.front == self.rear
    def showQueue(self):
        print(self.queue)

q=Queue(10)
for i in range(6):
    q.enqueue(i)
q.showQueue()
for i in range(3):
    q.dequeue()
q.showQueue()
print(q.isempty())

"""
类中设置两个属性分别为front和rear来模拟队列的头尾指针,通过它们值的关系可以判定队列是空还是满
"""

时间类型转换

导图:幕布思维导图

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夜会美丶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值