再见Python《Python从入门到卸载》

前言

兴致勃勃学了一周的py基础知识,也从0开始成功编写了py爬虫,但我毕竟还是个搞web设计的,怎么能轻易离开老本行呢。所以我就开始着手学习django

Django

这TM什么反人类东西啊。我跟着教程一步步创建好项目,设置好导入,配置好incloud,各种东西,然后教程告诉我该测试运行了,然后我兴致勃勃的

[python]python3 manage.py runserver

[/python]

然后给我报了整整18条错误(我没截图,但是我真的不知道我哪里写错了)。

按着教程一步步走,有些地方教程版本比较老了,比如教程里还是url(),而现在已经是path()了,但不管怎么样,就是无法运行,项目都创建不了更别说继续写下去了。

再见python

于是乎,我就卸载了Pycharm,卸载了Python3 删掉了项目文件。。。。

未来

作为一个电力专业的前段web设计者,不像全职设计一样有充足的时间去学习和制作,我接下来会尝试 spring boot (一个学java的同学推荐的),如果还是不尽人意,我真的要回去认真学TP5了,唉。

不是我没有毅力,如果接下来的spring boot 简称sb ,在部署,设计,运行上和php不相上下或者感觉还是php好(我真的还没开始碰sb),我还是回去认认真真给我php学完。之前的博客还会留着,再怎么样,也是学了,学了东西一定不能忘记。

看来成为后端程序员还有很长的路要走啊。

【Python】关于index()方法及切片功能的一些小细节

前言

由于我今天要练手做一个获取指定两文本之间的内容(取出中间文本),所以用到了index()方法
在使用过程中,碰上几个有趣的问题,我决定记录一下保证以后不会再出现!

这里是事情经过

我要获取的是全民K歌分享歌曲的真实下载链接,在经过各种网页分析之后(此处忽略一万字网页分析过程,如果你有需要我可以在另开文章写,很简单),我需要取出 “playurl”:”  至 “, 之间的内容,也就是歌曲链接啦。先贴上我刚开始写的代码(其实是网上copy过来再改改的

[python]begin = data.index(‘"playurl":"’) + 1
end = data.index(‘",’, begin)
play_url = data[begin:end][/python]

执行后得到如下结果

playurl”:”http://dl.stream.kg.qq.com/szkge/5f1df0f6432bd9287e866f1142a6f99780d859e0?ftnrkey=7a039fed55b00c20be61cf2da649f4f57a9f9d55129571b7959260f624d28ea217e4370a39ba0e79415a1d832047ed1a3468428a3711c3e321cd2e008d9d3ffc&vkey=87B8FA7323B449912EA32D8D9C5105A32BFBD78D0C5D75F94F41ECC603FE43FB750FD87037555B2E2ED2F07263FF7B41AD1359DC5EF4B74B9A70BEBF5A55490411EAAACD5C675A4C8FF4A0764E2B79D1A14C4EDE61D5B35D&fname=1021_e9638deee080f1bb547e47ef80f987fc618188ad.0.m4a&fromtag=1506&sdtfrom=v1506

而我想要的是从http开始的内容,所以我测试了半天,发现是那个 +1 的问题。
原来,index()获取到索引后,默认是最左边一个字符的索引,也就是上文代码中的 ” 所在的索引,我们+1后,就变成了p所在索引,因此执行后出现第一个引号消失了而从p开始算
明白了原因,就可以解决了。很简单,直接获取+自身长度即可。修改后代码如下

[python]begin = data.index(‘"playurl":"’) + len(‘"playurl":"’)
end = data.index(‘",’, begin)
play_url = data[begin:end][/python]

也就是把+1 改成了 +len(‘”playurl”:”‘) ,这样在执行结果如下

http://dl.stream.kg.qq.com/szkge/5f1df0f6432bd9287e866f1142a6f99780d859e0?ftnrkey=ffa2360d2a287aad928b4cdb7bfd8132b814c4f2d8e919b74f26bd37b0e4470d80469ae091b6fe35ce30d45fffb9a782e777045217f9011dda9b2a2bd42f7a1a&vkey=E698512E5CB7A541942685C77FBF1068235409934EF5E3F13B498DDFCD2965C24E2ACB8C7B2126700222961FB84FD640356A0A2DB38B82D6111AEBDDD7797F9DE1A6B2C69311E2D9A202C1A06DCE2BC821385A70DBF73824&fname=1021_e9638deee080f1bb547e47ef80f987fc618188ad.0.m4a&fromtag=1506&sdtfrom=v1506

Perfect,完美达到预期。

结束

今天就到这吧,明天继续把这个小爬虫写完,不过怎么还是觉得易语言方便些呢。可能习惯了吧!

在MacOs安装pip 及各种问题解决

安装方法

在使用brew安装的时候出现未找到pip,然后发现是因为brew默认在执行brew install python的时候会自带pip??不太懂。但是pip又提示command not found。没办法只能用下面语句安装

[shell]sudo easy_install pip[/shell]

成功安装,这时我们执行

[shell]pip -V[/shell]

查看版本,发现竟然TMD安装到了系统的2.7版本py里,这不是我想要的结果

因为我开发是用python3.7(可以参考我的另一篇博文https://blog.zixutech.cn/archives/106 来查看如何在macos上安装双版本py)

所以pip必须为3.7服务,这样一来默认的指令 pip install xxx 就不能用了。

有两种方法可以为3.7版本装包

方法1

首先查看py3.7的包文件夹路径

终端以此执行

[shell]$ python3
>>> import sys
>>> print(sys.path)[/shell]

得到如下结果

复制最后一个路径,我的是

/usr/local/lib/python3.7/site-packages

然后就可以开始执行安装指令了

[/shell]pip install -t /usr/local/lib/python3.7/site-packages/ 包名[/shell]

然后你的包就会安装在-t后面指定的位置了。

 

方法2

由于方法1比较复杂,这里推荐方法2

直接终端执行

[shell]python3 -m pip install 包名[/shell]

也是可以顺利安装的。

总结

至此,pip及未来的包安装都弄好了。略略略

 

 

在Mac上兼容安装Python3并保留原先的Python2.7

前言

博主的电脑为2017款macbook pro ,电脑自带python2.7版本,在网上查资料得知由于很多系统服务依赖于自带的2.7py,所以不敢卸载,因此只能安装双兼容python,这里以Python3.7版本为例。

1、安装Xcode Command Line Tool

在网上查资料,好多都说要先从App Store里装Xcode应用才能装这个Tool,但是经过测试发现,压根不需要。这下就省了5个多G的下载时间

打开终端,执行以下命令安装Xcode Command Line Tool

 

xcode-select --install

 

安装是可视化的,会持续一段时间,耐心等待安装完毕即可

 

2、安装HomeBrew

这是一个Mac平台上很不错的下载源,很多软件可以直接使用brew安装,很省事。

Home Brew官网:https://brew.sh/index_zh-cn

官网首页就有安装指令,直接复制进终端即可。

安装完毕后可以在终端输入以下命令测试是否安装成功

 

brew doctor

 

如果提示

 

Your system is ready to brew.

则表示安装顺利成功,如果出现错误或警告,按照提示进行修复即可。

 

3、安装Python

做完前两步之后,就很简单了,直接在终端输入:

 

brew search python

会出现如下结果

 

可以看到我的python打对勾了,说明安装过了,接下来执行:

 

brew install python

注意:不要管其他的,你只需要安装这个。

 

稍等片刻就会安装完成。

4、设置$PATH变量

这一步不是每个人都要设置,执行下面指令查看是否需要设置$PATH

 

echo $PATH

注意,区分大小写

 

如果执行后显示的类似于

 

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

则你不需要设置,直接跳到第5步。

 

如果你的显示的类似于

 

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

则你需要设置,继续看即可。

 

TIPs:简单来说,如果你的PATH第一条不是/usr/local/bin 就需要设置!

更改$PATH内容

执行

 

sudo vim /etc/paths

将内容里的/usr/local/bin 移动到第一行

 

也就是像我这样

更改完毕后保存退出。这时需要重启终端才能看到改变,重启终端后,再次执行

 

echo $PATH

查看是否已经变成你修改后的样子。

 

至此,安装完成!

5、查看电脑安装的Python版本

此时你可以执行

 

which python
which python3
which python3.7

执行后查看是否输出/usr/local/bin

 

查看各个python的版本只需要这样执行(其他都一样,数字改改就行)

 

/usr/local/bin/python3 --version

大功告成!!开发去咯!!!

 

 

详解Python中的逻辑运算符and or 和not

总体解释

首先,‘and’、‘or’和‘not’的优先级是not>and>or。

其次,逻辑操作符and 和or 也称作短路操作符(short-circuitlogic)或者惰性求值(lazy evaluation):它们的参数从左向右解析,一旦结果可以确定就停止。例如,如果A 和C 为真而B 为假, A and B and C 不会解析C 。作用于一个普通的非逻辑值时,短路操作符的返回值通常是最后一个变量。因此,逻辑运算符的理解也与C语言中不同。举个例子:

QQ20180702-230615@2x.png

输出内容:

QQ20180702-230720@2x.png

在以上例子中,按照C语言对的思维,3 and 4即3与4为3,但是由于是短路操作符,结果为4,是因为and运算符必须所有的运算数都是true才会把所有的运算数都解析,并且返回最后一个变量,即为4;改变一下顺序4 and 3 ,结果也不一样,即为3

而或逻辑(or),即只要有一个是true,即停止解析运算数,返回最近为true的变量,即 3 or 4,值为3;改变顺序4 or 3 即为4

个人理解

赋值变量为非布尔型时,进行判断永远返回真,所以and时,由于两个值都是true,则返回末尾的值,or 时,由于第一个已经是true了,所以第二个将不再继续判断。