Python摸索开始

灵魂拷问,为什么天选之子是它 ???

  • 主要是想做个量化工具,看了看招聘渠道需要会Python和C,据说Python用来做数据分析最方便快捷,里面存在非常多成熟的数据分析用的库。

思考

Q: 那我怎么开始认识Python呢?我对它不是很熟,半年的时候简单摸索了一下,后面有事情就暂停摸索了。
A: Python是解释型语言。
补充A:大家好奇不好奇,高级语言是怎么被机器执行的?机器只能识别机器语言0、1这样源码或者汇编语言movl $5 、addl这样的,那高级语言能被执行就需要翻译成这样的语言,既然是翻译那就会有提前翻译和执行期间翻译。不同翻译时机就造成了两种名词:编译型语言(提前翻译好)、解释型语言(执行代码的时候翻译),关于两者的优劣就不说了自己查下就好,无非就是编译型语言提前翻译好执行效率会更高一点。解释型语言扩平台好,只要平台提前安装了解释器就可以执行
A:再补充一点,是不是有人对动态语言类型静态语言类型也有些懵。顺带解释下哈,针对静态语言、动态语言是根据数据类型校验时间而言的。执行前,也就是编译时候对数据类型做了校验,明确要求了数据类型,这就是静态语言也是强类型语言。运行期间才做数据类型校验的,开发时候不用指定数据类型的是动态语言比如(JavaScript、Python、PHP)。通常情况下编译型语言是静态类型,解释型语言是动态类型语言。但是也有特殊的,比如swift语言就很怪,是编译型语言+动态类型的混合体,C#和Java反而是解释型语言+静态类型

Q:既然明白了Python是解释型语言,那就需要安装解释器才能用喽,怎么安装解释器呢?
A:解释器其实就是安装Python安装包就好了,Mac默认的是2.7版本,当下流行的是3.11版本,可以安装多版本。win执行的时候可以用py选择版本执行。

Q:那我需要用什么平台来开发Python的项目呢?
A:可用平台比较多,常用的PyCharm、VS等,我还是选择了pycharm,主要是看着这个跟Python开发看起来就更般配一些,具体有什么区别也没对比。。

Q:Python开发中的包管理工具是什么?
A: 在语言开发中,任何语言几乎都会有自己的包管理工具。Python中的包管理工具是pip,可以安装对应的pip3版本,查询是否安装了可以通过pip -V 或者 pip3 -V

Q:我写的Python程序如有运行??
A:用编译器运行即可,进入到指定目录,然后pyhton xxx.py即可运行该文件。所以我们只要安装好了解释器环境,即可终端运行程序。当然PyChram里面的终端也可以运行。

Q:我们如何打包自己的项目?
A:我们使用Cpython打包exe文件。Cpython是C语言写的python的代码解释器,将python代码转换成计算机识别的字节码。通过cpython可以直接将Python代码编译成exe文件而不需要安装Python环境,实现真正独立运行。其次我们需要通过PyInstaller将代码打包成可独立执行的工具,可以通过PyInstaller打包成不同平台的可执行程序(Win、Mac、Linux)。

Q:执行一遍通过CPython的打包吧
A: 通过CPython打包exe

Q: 我们如何引入三方库?
A: 我们通过pip管理包,安装:pip install xxx 查询当前都有哪些包:pip list
查看某个包的具体信息:pip show xxxx 卸载某个包:pip uninstall xxxx

Q: 我们如何调试程序?
A:我在win上面开发的,使用的VSCode开发工具,左侧有个debug按钮,项目第一次时候需要再最上面选择下Python File Debug .....的选项即可

开始第一个hello python的程序创建吧

  1. 打开开发PyCharm工具,点击File选择创建项目,然后选择好解释器进行创建即可


    截屏2023-08-05 下午6.54.04.png
截屏2023-08-05 下午6.56.54.png
  1. 编写一个小程序,然后执行吧。找到项目右击new--> file 创建.py的文件,文件内容写print("hello python") ,然后工具下面的终端进入对应的文件件运行pyhton xxxx.py即可。

Q:Queue队列怎么回事?
A: 任何语言都绕不开性能,异步、同步、线程安全问题

问题汇总

Q: python执行时如何选定某个版本执行?
A:
Mac工具: python2 xxx.py 或者 python3 xxx.py
Win工具: py -2.7 .\xx.py 或者 py -3.11 .\xxxx.py

Q: 开发中常见的if __name__ == ‘__main__‘是什么?
A:通常一个.py的项目文件有两种运行情况,一种是直接运行此文件,一种是被引入其他文件中执行。此处的判断就是对这种情况进行的。
如果直接运行此文件则__name__ == 是 __main__,如果是此文件被导入其他文件中执行,则__name__ == 包名.文件名,这个名称是有变化的,所以此处的判断是对直不直接运行此文件的影响。直接运行此文件,则此处逻辑代码执行,如果被导入其他文件运行的代码,则此处文件不被运行。

Q:经??吹?try: with xxx 和 except: 这些有什么特点呢?
A:此处可以单独开一篇文章介绍

Q: 如何写内容到一个文件里面
A:用到open()函数,里面参数具体使用参照里面文档吧。第一参数是文件名、写入读取的类型、内容编码格式。打开后通过json的fump函数写入即可,然后关闭函数。

with open(filename, 'a', encoding='utf-8') as fileObj:
        json.dump("写入测试", fileObj, ensure_ascii=False)
        fileObj.write('\n')
fileObj.close()

Q: 刚看到一个with as 的语法,这是什么?
A: Python中with as 语句

Q:ModuleNotFoundError: No module named 'xxx'
A: 这是在Win环境下,安装了Python3 到D盘中,项目在桌面的C盘中,刚开始pip install的三方包后,正常运行了几次,然后突然报上面错误。这就是包没有被识别。也就是说项目运行时候需要找到Python解释器但是在当前路径下没有找到,那么我们先确定下我们安装的包是存在的。
那么Python代码执行逻辑是什么呢?
我们import??橹?,代码执行的时候,是先去sys.path里依次搜索,直到找到对应???/em>。
那么搜索??榈?code>sys.path里面的路径是怎么来的呢?
A:主要是前两种

  1. 一是系统的PYTHONPATH变量,所以我们可以通过设置此变量来改变Python的默认搜索位置
  2. sys.path的另一个来源就是当前执行程序所在目录。注意是文件所在的目录不是文件路径
  3. 第三就是win系统C盘上的一些python路径,乱七八糟的无啥用。

那我们就知道怎么解决这个问题了,两个方面,一个是修改系统的PYTHONPATH变量,另一方面通过 sys.path.append添加??槁肪?/p>

一、先检查下Pyhton的搜索路径
先看下当前模块路径都有哪些
再看下当前当前PYTHONPATH变量是什么
再找到当前安装的那些三方??樵谀睦?br> 其次就是添加这些路径即可

import sys
print(sys.path)
print(os.environ.get('PYTHONPATH'))

打印的是None,说明项目本身就找不到Python的解释器,无法运行。
二、pip list 查看包确实存在
三、pip show xxxx会把路径给你打印出来 d:\tools\python\python3\lib\site-packages(1.6.1),这样我们就明确知道包所在的具体位置。
三、添加Win的Python环境:

方法1:通过sys.path.append()函数 虽然是python里面最常用的,但是不推荐

import sys
sys.path.append('d:\tools\python\python3\lib\site-packages')

添加完成后可以通过
print(sys.path)来查看是否添加成功

此处常用是由于通常项目都是一个本地电脑运行一个项目,如果同一个环境需要多个环境来回切换,并且项目类似,那么还是建议修改系统的PYTHONPATH变量来修改??樯杪肪?。

很奇怪的是,我明明导入成功了site-packages,但是还是无法识别到websocket这个???/em>
很神奇的事情,那就是明明导入到了??榈乃阉髀肪吨校怯惺焙蛳钅恐匦麓蚩焙蚧崾?,所以推荐第二种。

重点推荐】方法2:修改系统PYTHONPATH变量路径,不同环境Win和MacOS还有些区别,
MacOS环境可以选择用命令行。

export PYTHONPATH= d:\tools\python\python3\lib\site-packages:$PYTHONPATH

Win环境可以手动添加:搜索环境变量,然后在系统变量模块里,点击新建
添加。当然在用户环境编辑(推荐),或者在系统环境编辑都可以。但是【问题出现】加入后路径变量后,sys.path还是无法显示出添加的路径导致导入的??榛故遣荒苁侗?,分别在path和PYTHONPATH都添加了路径,但是就是无法加载识别出来,真是奇葩了。。。。

重新排查一遍问题:

where python

出现两个python,一个是我自己安装的D盘里的,一个是C盘WindowsApps里面的,真是奇怪。

import sys;print(sys.executable)

查看我们的python解释器路径,理论上同where的路径一致才对。但是只是同D盘路径一致。

在win搜索Python 发现还同步再微软商店下载了Python3.11,卸载了这个。然后重启后面发现添加成功了。。。。。。
记得添加PYTHONPATH路径后,重启。对了,还有一个细节需要注意,就是VSCode的右下角突然可以给选择解释器了,选择对应位置的Python解释器即可。

FillNotFoundError
问题描述:
文件A.py引用了文件B.py,然后B??橛忠昧薈???,C??橹惺侗餵son文件时候通过debug模式无法识别,但是直接run的话没问题。。。
解题思路:
其实还是文件路径无法找到的问题。那我们只需要导入正确文件路径即可。
一、找到正确路径
二、更改当前正确的工作目录即可
我们需要用到

# 查看当前工作目录
os.getcwd()

#正确工作目录
sys.path[0]

#添加争取工作目录到当前文件
os.chdir(sys.path[0])

可以通过获取当前工作目录对比添加前后变化

异常问题解释

  • except的时候出现Too broad exception clause
    A:问题太宽泛导致的,最好明确指出是什么类型的问题需要捕捉

参照文献:
https://blog.csdn.net/lcg910978041/article/details/50696196

https://blog.csdn.net/DALEONE/article/details/122267822

python中路径什么意思_python基础教程详解Python中的路径问题

ModuleNotFoundError:如何解决Python找不到模块错误?

ModuleNotFoundError: No module named 'xxx'可能的解决方案大全

如何修改Python的??樗阉髀肪??

Python环境变量配置不了 python设置环境变量不生效

最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,172评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,346评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,788评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,299评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,409评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,467评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,476评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,262评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,699评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,994评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,167评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,499评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,149评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,387评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,028评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,055评论 2 352

推荐阅读更多精彩内容