linux下的python

来源:互联网 发布:珠江钢琴天猫淘宝 编辑:程序博客网 时间:2024/06/06 07:13

  • 一 引言
  • 二 Linux安装
    • 虚拟机还是双系统
      • 虚拟机的选择
        • hyper-v
        • vmware workstation
        • vmware player
        • virtualbox
    • 系统的选择
      • Ubuntu Kylin优麒麟
      • ubuntu
  • 三 代码编辑器
    • ipython
    • vi
    • Sublime text3
      • 安装
      • 输入中文
  • python基础
    • python2与3的区别
      • raw_input与input
    • 其它知识点
      • 匿名函数
      • 可变类型与不可变类型
      • 引用
      • 坑爹的引用
      • 面向对象的三个特点
        • 封装
        • 继承
        • 多态
      • 我想想还有啥

一 引言

本来在读scrapy文档,找了找教程,感觉仍然不透彻,便去找视频教程,还找到一些基础教程,发现讲的十分不错,比自己照着网页学简单明了多了,便照着视频重新复习一遍。
感谢黑马程序员出品的视频
等到做实例的时候,第一个实例需要import image,ImageFont,ImageDraw
自己敲了一下,image包没有,pip一下吧。安好了,结果ImageFont还是没有。上网搜索一下,发现其集成在pil这个非常著名的图像处理模块里。然而,我没有找到这个模块在python3版,也就是这个模块不支持python3,这就是尴尬了。虽然我找到了对应python3的pillow,想想python2,3之间差距不大,便想着一起学了拉倒。考虑到windows下编写python的种种不便,便决定安装linux进行编程。

二 Linux安装

虚拟机还是双系统

网上对于双系统还是虚拟机各有讨论,我结合自身的实际情况(没u盘了),便很轻易的决定安装虚拟机。

虚拟机的选择

hyper-v

windows旗下,据说很不错,本来我是第一个选择这个的,但安了一下出了些问题,看起来操作还有些困难,便放弃了

vmware workstation

功能多,有点服务器特性
但是需要付费,虽然可以破解
在有选择的情况下,我想做个好人

vmware player

功能不那么多 基本够用
忽略掉了

virtualbox

比较轻量级 还能限制cpu占有率
决定就是你了,直接在某软件管家里下载了

系统的选择

Ubuntu Kylin(优麒麟)

在Linux内核上有着诸多版本,想来还是打算安装比较熟悉了ubuntu(乌班图)我一直以为是乌托邦,上网搜索了一下,发现有个号称什么最有中国味的优麒麟,便下载了一份最新版。安装十分简单,最初直接安装在机械硬盘里的,但是实在是太卡顿了,便卸载掉,重新安装到固态硬盘中,结果还是卡顿,而且只有两种分辨率,还都是4:3的,上网搜索方案试了几种也不行。想了想,下决心去下原版的ubuntu

ubuntu

ubuntu本来我以为没有中文版的,所以才去下的优麒麟,哪知道在安装过程中发现有中文选项,以前怎么就没注意到呢。为了防止卡顿,直接安装在固态上了。确实十分流畅,最重要的是,ubuntu的界面可以随着虚拟机窗口的大小变化而变化,实在是十分方便。

三 代码编辑器

ipython

非常好用,非常常用的代码命令行输入

vi

不只是python,功能强大

Sublime text3

安装

最初不会使用apt-get安装,这就很烦了
不要用以下这种方法
Sublime text官网
1.从官网下载安装包
2.解压
3.根据教程将文件移动到/opt文件夹下
4.将sublime_text.desktop移动到/usr/share/applications
但是这样安装无法通过终端启动,很不爽,于是上网搜索,没有,最终重新搜索了命令行安装Sublime的方法。
用这种

sudo add-apt-repository ppa:webupd8team/sublime-text-3sudo apt-get updatesudo apt-get install sublime-text-installer

通过subl指令启动

输入中文

Sublime本身不支持输入中文,上网搜索后发现有很多种方法,各不相同
最简单的方法
使用方法

#更新并升级系统为最新(较新的系统会解决很多可能出现的问题)sudo apt-get update && sudo apt-get upgrade#克隆项目到本地 :git clone https://github.com/lyfeyaj/sublime-text-imfix.git#运行脚本 :cd sublime-text-imfix && ./sublime-imfix

但是这个方法由于我最初用的是第一种安装方式导致没有找到安装的Sublime,真是…
我由于用的是第一种安装方式费了九牛二虎之力,安装环境,修改快捷图标,没有权限使用chmod更改权限,到最后不能在终端里启动,后来覆盖安装,结果终端内启动的还是不能输入中文,最后把程序卸载了,重新安装,重新配置,一共六行代码(还有两行是用来更新)….唉

python基础

现在反而不能全部规划,只能继续补充知识点了

python2与3的区别

raw_input与input

在2中,分raw_inputinput,而3中只有input。
在2中,raw_input只能接受并存为字符串,input可以接受一个式子并计算,比如

a =input()

输入1+3,a的值为4
在3中,input与2中的raw_input相同,由于input直接执行代码,担心有危险,被废除。

其它知识点

匿名函数

lambda函数可以用于字典的种种处理,例如:
想一想,下面的数据如何指定按age或name排序?

stus = [    {"name":"zhangsan", "age":18},     {"name":"lisi", "age":19},     {"name":"wangwu", "age":17}]

按name排序:

>>> stus.sort(key = lambda x:x['name'])>>> stus[{'age': 19, 'name': 'lisi'}, {'age': 17, 'name': 'wangwu'}, {'age': 18, 'name': 'zhangsan'}]

按age排序:

>>> stus.sort(key = lambda x:x['age'])>>> stus[{'age': 17, 'name': 'wangwu'}, {'age': 18, 'name': 'zhangsan'}, {'age': 19, 'name': 'lisi'}]

厉害了

可变类型与不可变类型

可变类型,值可以改变:
列表 list
字典 dict
不可变类型,值不可以改变:
数值类型 int, long, bool, float
字符串 str
元组 tuple

引用

id()是类似与c语言中指针所指的地址
在python中,算了我敲串代码比较好懂。
这里写图片描述
即不可变类型若改变值,则为修改指针指向的位置,原空间不会立即释放(如此可以实现a,b=b,a,等到空间满或手动刷新后才会释放),若有其它变量被赋相同的值,则将该变量的指针指向相应地址。
这里写图片描述
对于可变类型来说,修改内容不会导致指针修改,而是修改地址对应内容。内容相同并不一定指向同一个地址,但指向同一个地址的内容必定相同,即使内容改变,所有指向该地址的全部改变。
还有一件非常坑爹的事我想想怎么表述。

坑爹的引用

这里写图片描述
这里写图片描述
怎么说呢,a+=会对原值产生影响,a+a则不会。
在python中,a=a+b是先创建一个新的对象并让变量a引用这个对象(即指针对应的地址改变),a+=b是让a所引用的对象的值变成a+b的值(即地址对应的内容改变,追加)
调用的方法不同,分别是__add__,__iadd__
厉害了

面向对象的三个特点

封装

函数的封装
函数与变量的封装——类

继承

继承

多态

定义的时候是想让这个类型的使用,实际使用的时候可以把鸭子类型的传进去

我想想还有啥

原创粉丝点击