白月黑羽教python_其他 | 白月黑羽教Python

都说Python执行效率不高,为什么还要学习它?

就像你买了一辆汽车,有人却说, 汽车开的比飞机慢多了,买什么汽车啊。 然而,生活中大部分的场合,用汽车比用飞机方便的多。

同样的道理通常你开发的程序(自动化工具、网站后端等),Python的执行效率完全足够了。

如果一定要比执行效率,谁都比不过 二进制机器代码, 为什么程序员 不直接写 二进制机器代码 呢?

很多时候, 更重要的是看 开发效率 。

Python最大的优势是 开发效率 高 。

同样的系统,用Python 开发通常比用其他语言 所需的时间 少的多。 (这是在 对语言的熟练度相同 的情况下 的对比)

通常Python 开发一个项目 10天, 其他语言或许要 15 - 30天。

开发的速度快,这有多么重要,大家都能明白。

最后我们再来看 执行效率

Python 执行效率真的低吗?

要看写的代码做的什么事情。

就拿代码常见的字符串处理来说,Python官方解释器底层就是C语言开发的,本身就经过了大量地优化。

普通的 C程序员,水平有限,对字符串处理没有特别的优化,写出的程序 或许比 Python 效率更低。

Python很多的库,比如字符串处理、加解密、科学计算、人工智能,底层都是C语言开发的,执行效率并不低。

Python慢的地方在于 解释器对 语言逻辑代码的 解释执行速度 相对比较慢, 如果这些并不是你的程序中 最耗费时间的部分,Python语言就不会成为你程序的主要瓶颈。

你的程序真的需要那么高的执行效率的吗?

就拿开发网站服务来说 , 网站后端的性能瓶颈 通常在 数据库操作。

假设我们开发一个web服务

如果有一个请求的处理,假设java代码执行要0.01毫秒, python代码 要0.05毫秒, java比Python快5倍,对吧?

但是处理这个请求还要访问数据库, 这个操作和使用什么编程语言无关,java和Python花费的时间确是一样的,都要50毫秒。

这样 java的服务 50.01毫秒, 而Python是50.05毫秒,差别可以忽略不计了。

所以很多场景,即使语言本身执行性能再高,总体性能也高不起来。

白月黑羽 根据 前程无忧网站 的搜索结果, python在 国内的职位需求 仅次于 java、js 、c/c++ 位列第四,超过php、c#等明星语言。 而且成长势头来看,速度超过前面3位。

运行Python程序,提示找不到Python命令

如果你运行python的时候,显示如下

c:\>python first.py

'python' 不是内部或外部命令,也不是可运行的程序

或批处理文件。

这是因为,你安装Python解释器的时候,没有勾选 add Python to path

所以,命令行程序找不到Python.exe 在什么地方。

怎么解决这个问题呢?

如果你是Windows 操作系统,不需要重装Python, 在Windows环境变量path里面加上 Python解释器所在路径即可。

点击这里,打开windows设置

然后,如下下图所示,输入 huanj,点击 编辑系统环境变量

然后,在弹出对话框中,点击 环境变量

然后,双击系统变量栏目下面的 path 这条

然后,按照下图操作

注意:

你要看看你的python解释器安装在什么目录,填写你的目录。

一定是python所在目录 ,不要在最后加上python.exe

把python目录中的scripts目录也加上,就是最后要多两条记录,如下所示

最后,很重要,

因为刚才对环境变量的修改,对已经打开的窗口不生效!!!

所以你必须 关闭 你已经打开的命令行窗口, 重新打开一个窗口 , 再次执行python程序。

好了,大功告成。

运行Python程序,提示找不到代码文件

如果你运行python的时候,显示如下

c:\>python first.py

python: can't open file 'first.py': [Errno 2] No such file or directory

这是什么原因?

要运行一个Python脚本,通常我们需要打开命令行窗口,并 进入到该脚本所在的目录 。 这样Python解释器才能找到这个程序。

比如我们要运行的Python脚本的全路径 是 ‘d:\tmp\price.py’

那么我们通常需要进入到 ‘d:\tmp’ 目录下面,然后再执行 命令 python price.py

当然,你也可以 在命令行中使用 脚本的全路径 , 像这样 python d:\tmp\price.py 。 就可以在任意目录下面执行成功了。

查看和修改当前工作目录

当前Python程序的工作目录,可以通过 os.getcwd 获得,如下

import os

curDir = os.getcwd()

如果要修改当前工作目录,使用 os.chdir,如下

import os

os.chcwd('d:\\home')

查看导入的模块的路径

要知道导入的模块 对应的 代码文件的路径,可以使用模块的 __file__ 属性。

如下所示

>>> import selenium

>>> selenium.__file__

'C:\\Python36\\lib\\site-packages\\selenium\\__init__.py'

>>>

查看当前正在执行的代码文件的路径

有时候,我们需要得到 当前执行的代码文件 的 全路径。

这时候,我们可以 使用 os.path.realpath(__file__)

如下所示

import os

# 当前代码文件路径

current_script_path = os.path.realpath( __file__ )

print(current_script_path)

# 代码文件所在目录路径

print(os.path.dirname(current_script_path))

查看当前运行的python解释器的路径

有时候,我们需要得到 当前运行的python解释器的路径。

比如,我们需要使用当前的python解释器再运行 另外一个脚本程序

这时候,我们可以 使用 sys.executable 得到当前运行的python解释器的路径。

如下所示

import os,sys

pid_or_handle1 = os.spawnl(

os.P_NOWAIT,

sys.executable,

sys.executable,

"otherscript.py",

'param1',

'param2')

判断一个对象是否可以执行

hasattr函数可以用来判断变量对应的对象是否是可执行的。

返回值为True就是可执行的。

如下所示

def obj1():

pass

obj2 = 'ok'

hasattr(obj1,'__call__') # 返回 True

hasattr(obj2,'__call__') # 返回 False

字符串IP地址转换为 整数IP地址

我们做性能测试时,有时需要让网卡绑定很多IP地址,这时候,需要 把字符串IP地址转换为 整数IP地址。

可以这样做

import socket,struct

strIP = "192.168.0.1"

intIP = socket.ntohl(struct.unpack("I",socket.inet_aton(strIP))[0])

print(intIP)

如果反过来,需要把 整数IP转换为字符串IP,可以这样

import socket,struct

intIP = 3232235521

strIP = socket.inet_ntoa(struct.pack('I',socket.htonl(intIP)))

print(strIP)

提示ModuleNotFoundError

有的朋友明明已经安装了某个库,在Pycharm中编辑代码,导入库时,却有红色波浪线,提示

Unresolved reference '某个库名'

运行也会报错,类似如下

c:\untitled\venv\Scripts\python.exe C:/untitled/venv/first.py

Traceback (most recent call last):

File "C:/untitled/venv/first.py", line 1, in

from PySide2.QtWidgets import QApplication, QMessageBox

ModuleNotFoundError: No module named 'PySide2'

那是因为你们用Pycharm创建项目的时候,使用的解释器环境是新建的venv环境。

而你们执行pip安装的库,安装到了基础解释器环境(非venv)下面。

两种解决方法:

第一种:修改Pycharm使用基础解释器环境

第二种:执行venv环境里面的pip,安装这个库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我很抱歉,我不了解“白月黑羽”提供的Python教程。然而,Python是一门广泛使用的编程语言,有许多资源可供学习。以下是一些常用的Python学习资源: 1. 官方文档:Python官方网站提供了详细的官方文档,其中包含了Python的语法、模块和标准库的说明。您可以访问官方网站(https://www.python.org)并查看相关文档。 2. 在线教程:有许多免费的在线Python教程可供选择。一些受欢迎的在线教育平台,如Coursera、Udemy和Codecademy,提供了Python编程课程。您可以在这些平台上搜索并选择适合您的课程。 3. 图书:有很多优秀的Python编程书籍可供学习。一些经典的Python入门书籍包括《Python编程快速上手——让繁琐工作自动化》、《Python编程从入门到实践》等。您可以通过在线书店或图书馆获取这些书籍。 4. 社区和论坛:加入Python开发者社区和论坛,与其他Python爱好者交流和学习。可以参加Python开发者大会,订阅Python相关的邮件列表或加入在线论坛如Stack Overflow来获取帮助和经验分享。 5. 实践项目:通过实际编写代码来提高您的Python编程能力。尝试解决一些小项目或参与开源项目,这将帮助您应用所学的知识并提升技能。 请记住,学习编程需要持续的练习和实践。从基础知识开始,逐渐深入学习,并通过编写代码来巩固所学的内容。祝您在学习Python的过程中取得成功!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值