2021-11-27点击量:296
全局解释器锁的好处:1、避免了大量的加锁解锁的好处;2、使数据更加安全,解决多线程间的数据完整性和状态同步。全局解释器锁的劣势:多核处理器退化成单核处理器,只能并发不能并行。Python全局解释器锁(GIL)的作用多线程情况下必须存在资源的竞争,GIL是为了保证在解释器级别的线程唯一使用共享资源(cpu)。本文由培训无忧网千锋教育专属课程顾问整理发布,更多Python开发培训课程欢迎关注培训无忧网...
2021-11-27点击量:277
全局解释器锁是计算机程序设计语言解释器用于同步线程的工具,使得在同一进程内任何时刻仅有一个线程在执行,常见的有CPython、RubyMRI。每个CPU在同一时间只能执行一个线程,那么其他的线程就必须等待该线程的全局解释器,使用权消失后才能使用全局解释器,即使多个线程直接不会相互影响在同一个进程下也只有一个线程使用CPU,这样的机制称为全局解释器锁(GIL)。GIL的设计简化了CPython的实现,使得对象模型包括关键的内建类型,如:字典等,都是隐含的,可以并发访问的,锁住全局解释器使得比较容易的实现对多线程的支持,但也损失了多处理器主机的并行计算能力。Python全局解释器锁(GIL)是一种互斥锁或锁,仅允许一个线程持有Python解释器的控制权。本文由培训无忧网千锋教育专属课程顾问整理发布,更多Python开发培训课程欢迎关注培训无忧网Python开发培训频道或添加老师微信:15033336050...
2021-11-27点击量:243
QT是跨平台C++库的集合,它实现高级API来访问现代桌面和移动系统的许多方面。这些服务包括定位和定位服务、多媒体、NFC和蓝牙连接、基于Chromium的web浏览器以及传统的UI开发。PyQT5是一套Python绑定DigiaQT5应用的框架。PyQT做为Python的一个模块,它有620多个类和6000个函数和方法。这是一个跨平台的工具包,它可以运行在所有主要的操作系统,包括UNIX,Windows,MacOS。PyQt5是Qtv5的一组完整的Python绑定。它被实现为超过35个扩展模块,并使Python在所有支持的平台(包括IOS和Android)上被用作C++的替代应用程序开发语言。PyQT5也可以嵌入在基于C++的应用程序中,以允许这些应用程序的用户配置或增强这些应用程序的功能。pyqt5是双重许可。开发者可以在GPL和商业许可之间进行选择。本文由培训无忧网千锋教育专属课程顾问整理发布,更多Python开发培训课程欢迎关注培训无忧网Python开发培训频道或添加老师微信:15033336050...
2021-11-27点击量:203
pyqt5不向后兼容pyqt4。pyqt5有几个显著的变化。将旧代码调整到新库并不困难。有几个大的改变如下:·Python模块已经重组。一些模块已经删除(qtscript),有的被分割成子模块(QtGui,QtWebKit)。·新的模块作了详细的介绍,包括qtbluetooth,qtpositioning,或enginio。·pyqt5只支持新型的信号和槽handlig。电话signal()或slot()不再支持。·pyqt5不支持Qt的API被标记为过时或陈旧的任何部分在QTV5.0。本文由培训无忧网千锋教育专属课程顾问整理发布,更多Python开发培训课程欢迎关注培训无忧网Python开发培训频道或添加老师微信:15033336050...
2021-11-27点击量:182
Python在几年做了一个全面的升级,此次Python升级中有6个新特性,本期为大家介绍的Python培训教程就是关于介绍Python新版本中的6个新特性的,来看看下面的详细介绍。更清楚的错误追踪作为一个每天写Python、教Python的人,我深知遇到语法错误的挫败感。尽管一旦你掌握了Python和编程,就很容易修复语法错误,但是我们还是希望错误消息能给我们更好的提示,以帮助我们更好地定位错误并节省调试时间。在Python3.10中,两个新特性使得我们可以更好地处理错误,他们是更清楚地错误消息以及精确的行号。比如,我们有以下代码,包含一个字典和一个函数。但是我们忘记了字典结束的花括号“}”。随着新的错误消息和行号的改进,新的错误消息将包含更好的信息,例如准确的错误类型和精确的行号。这一新特性将有助于加快调试速度,并减少人们开始学习Python的挫败感。结构化模式匹配如果您使用过C++等其他编程语言,您可能希望Python有switch语句,这样您就不必经历冗长的if、elif、elif、…、else语句。好吧,Python3.10的新特性之一是添加了结构化模式匹配,或者换句话说,具有以下语法的switch、case语句。新的类型联合运算符尽管Python是一种动态类型的编程语言,但还是有一些方法可以使它的某些部分成为静态类型的。比如,你正在写一个函数,而属性的类型对于函数的内部通信很重要。在之前的版本中,你可以指定类型如下:1deffunc(num:int)->int:returnnum+5,但是,如果你要接受两种类型,你就需要使用Union关键字。在新版Python中,你可以用“|”运算符替代Union关键字,这样会更直接。1deffunc(num:int|float)->int|float:returnnum+5。其他很酷的特性4.1更严格的zipPython的乐趣之一就是zip()函数。它是一个内置函数,允许你同时遍历多个序列,并组合其返回值。在之前的版本中,你可以对不同长度的序列使用zip。但是,现在有了一个新的参数,strict,用来检查可遍历对象是否长度一致。4.2自动文本编码作为程序员,我们会说,“他在我的电脑上能运行的”。代码在一台机器上运行而不在另一台机器上运行的原因有很多;文本编码可能会导致此类错误。在以前的Python版本中,如果没有明确说明编码类型,首选的本地编码可能会导致代码在其他机器上失败。在Python3.10中,可以激活警告以通知用户打开文本文件没有指定编码类型。4.3异步迭代异步编程是一个强大而先进的编程范式,它从3.5版开始就成为Python的一部分。在Python3.10,有两个新的异步的内置功能aiter()和anext()使你的代码更易读。以上就是为大家介绍的关于“Python新版本中的6个新特性”的内容,Python的每个版本,都带来了不起的新特性。这些特性是大部分Python程序员需要的,能让我们高效写Python代码。总之,它们让人们写代码更容易。本文由培训无忧网千锋教育专属课程顾问整理发布,更多Python开发培训课程欢迎关注培训无忧网Python开发培训频道或添加老师微信:15033336050...
2021-11-25点击量:192
Python是一种简单的编程语言,用于网站开发用处当然是非常大的,无可厚非,相对于Java、C、PHP、C++和VB.Python作为一个很年轻的语言,是相当的优秀。著名的搜索引擎Google也大量使用Python。更加令人吃惊的是,在Nokia智能手机所采用的Symbian操作系统上,Python成为继C++,Java之后的第三个编程语言!2006年的Google编程大赛已经将Python作为参赛语言之一,可见Python的影响力之巨大。学Python对做网站用处肯定是大的,并且Python列为黑客应当学习的四种编程语言之一,当然不仅仅是黑客能使用,我们还可以用于网站安全。细数PYTHON的应用范围,但凡优点编程基础都能明白,学Python对做网站用处大不大的了。Zope-应用服务器Plone-内容管理系统Django-鼓励快速开发的webframeworkTwisted-PythonNetworkApplicationFrameworkPython的网络应用程序框架TurboGears-另一个Web应用快速开发框架BitTorrent-著名的BT下载工具还有很多游戏也是用Python制作的系统编程,提lass=innerlink>API,能方便进行系统维护和管理。图形处理,有PIL、Tkinter等图形库支持,能方便进行图形处理。数学处理,NumPy扩展提供大量与许多标准数学库的接口。文本处理,python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。数据库编程,程序员可通过遵循PythonDB-API(数据库应用程序编程接口)规范的模块与MicrosoftSQLServer,Oracle,Sybase,DB2,Mysql等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。网络编程,提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。作为Web应用的开发语言,支持最新的XML技术。多媒体应用,Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。本文由培训无忧网牛耳教育专属课程顾问整理发布,希望能够对想学习长沙Python开发培训的同学有所帮助。更多Python开发培训课程欢迎关注培训无忧网Python开发培训频道或添加老师微信:15033336050...
2021-11-22点击量:183
今天我将给大家分享7种对所有Python开发人员都感觉很有趣、有用的工具,相信它们在你的工作中会经常出现,提升工作效率。1、TheF*ck当我们忘记了某些软件包在这里或那里,TheF*ck优雅地解决了这个问题。你所要做的只是键入"Fuck",然后它会告诉你出了什么问题。它是该列表上最受欢迎的项目,并且将继续存在。安装方法如下:#macbrewinstallthefuck#otherpipinstallthefuck2、AnsibleAnsible几年来席卷全球。如果你是DevOps,或者曾经不得不在多台计算机上进行自动化操作,那么你会感到很痛苦。这就是每个人都使用Ansible的原因。Ansible是迄今为止最容易使用的IT自动化系统。它非常快速且并行地管理机器,ofc梦想着学习曲线。启动新服务器或聚合并收集主节点上的日志后,无论是否要安装所有必需的软件包。Ansible支持你,现在提供来自大型厂商(例如Microsoft的Azure)的流行集成。由RedHat开发,我们知道开源是它的核心,这是自动化工具真正需要的东西,该工具旨在交叉集成许多不同的事物。Ansible隐藏了其工作原理和完成方法的奥秘。它将艰巨的任务转换为可重复的脚本。3、BlackBlack是估计是你一直在寻找的Python代码格式化工具。你将停止手工格式化并重新开始享受生活。Black可以为你提供了速度和自由,让你摆脱烦人的格式化程序。截止目前该工具已获取1.98W星。安装pipinstallgit+git://github.com/psf/black使用方法black{source_file_or_directory}4、PythonFirePythonFire会自动为任何可能的Python对象生成一个命令行界面。是的,你没听错,这个项目确实非常棒!importfireclassCalculator(object):"""Asimplecalculatorclass."""defdouble(self,number):return2*numberif__name__=='__main__':fire.Fire(Calculator)这段代码定义了一个类,重要的代码发生在底部。如我们所见,我们将对象包装成fire.Fire("OurClass"),现在,我们可以在命令行中像这样使用它。pythoncalculator.pydouble42>>845、TQDMTqdm是一个快速,可扩展的Python进度条,可以在Python长循环中添加一个进度提示信息,用户只需要封装任意的迭代器tqdm(iterator)。我记得第一次浏览论文中看到一些代码弹出了TQDM。它很简单,但也很愚蠢。它所做的就是在输出窗口中打印一个漂亮的进度条。我知道这对许多人来说可能毫无用处。但是,如果你经常循环遍历以进行机器学习或从网站抓取内容,此工具就非常有用。6、Cookiecutter您是否曾经开始过一个新项目?太好了,这意味着你需要Cookiecutter。众所周知,开始一个新项目通常包括创建许多样板代码,这就是Cookiecutter工作的地方。可以从命令行轻松使用Cookiecutter,以下载并设置整个项目。无论你是寻找什么,都要确保有人已经为你完成了大部分工作。节省自己的时间,并使用Cookiecutter。要找到样板项目,请转到GitHub并搜索cookie-cutter项目。成千上万的可供你选择和自定义。Cookiecutter可以直接从控制台使用,设置项目非常简单。#Createprojectfromthecookiecutter-pypackage.gitrepotemplate#You'llbepromptedtoentervalues.#Thenit'llcreateyourPythonpackageinthecurrentworkingdirectory,#basedonthosevalues.$cookiecutterhttps://github.com/audreyr/cookiecutter-pypackage7、FastAPIFastAPI是一个现代的、快速的(高性能的)网络框架,用于根据标准Python类型提示使用Python3.6+构建APY。主要特点是:快:非常高的性能,与Nodejs和Go平起平坐快速编码:将开发功能的速度提高约200%到300%更少的错误:减少约40%的人(开发人员)诱发的错误直观:伟大的编辑支持。随处完成。调试时间更少简单:设计为易于使用和学习。更少的时间阅读文档结论Python不仅是一种很棒的编程语言。它改变了世界。我习惯偶尔在GitHub上浏览新的开源项目。每次检查时,我都会被世界各地令人惊奇的人们为我们造就的东西感到惊讶。他们构建了这些工具,供我们这样的程序员使用,并加快了我们的日常流程。本文由培训无忧网千锋教育专属课程顾问整理发布,希望能够对想学习Python开发培训的同学有所帮助。更多Python开发培训课程欢迎关注培训无忧网Python开发培训频道或添加老师微信:15033336050...
2021-11-22点击量:264
你一定用过那种“OCR神器”,可以把图片中的文字提取出来,极大的提高工作效率。今天,我们就来做一款实时截图识别的小工具。顾名思义,运行程序时,可以实时的把你截出来的图片中的文字识别出来。下次,当你想要复制“百度文库”中的内容时,不妨试试这个程序。源码解析1)等待用户截图此处需要借助贴图神器(Snipaste)其中“f1”是截图的快捷键,“ctrl+c”是把截图保存到剪贴板的快捷键。如果使用qq截图的话,需要把快捷键改为对应的“ctrl+alt+c”和“enter”顺便安利一波Snipaste,必备效率神器importkeyboard#利用截图软件(Snipaste)截图到剪贴板#输入键盘的触发事件keyboard.wait(hotkey="f1")keyboard.wait(hotkey="ctrl+c")time.sleep(0.1)上面这段代码执行之后,现在已经有一张图片等待在剪贴板里了。2)保存截图利用PIL模块的ImageGrab,可以把剪贴板里的那张图片,保存到当前的目录下,并命名为“screen.png”fromPILimportImageGrab#把图片从剪切板保存到当前路径image=ImageGrab.grabclipboard()image.save("screen.png")3)识别截图中的文本法一pytesseract模块优点:免费,易用缺点:识别效果很一般,准确率不高使用方法介绍:1)pipinstallpytesseract2)安装tesseract-ocr.exe配置环境变量3)修改pytesseract.py文件,将tesseract_cmd指向Tesseract-OCR的tesseract.exe的绝对路径importpytesseractfromPILimportImage#法一:利用pytesseract模块#参数一:图片#参数二:简体中文text=pytesseract.image_to_string(Image.open("screen.png"),lang='chi_sim')print(text)来看看效果:low的不行果然,要想精度高,还得用百度API法二百度API接口AI开放平台文档中心https://ai.baidu.com/ai-doc查看python语言的SDK文档点击右上角(控制台),登录自己的百度账号,创建“文字识别”的应用importpytesseractfromaipimportAipOcrfromPILimportImageGrab#法二:利用百度APIAPP_ID='你的AppID'API_KEY='你的ApiKey'SECRET_KEY='你的SecretKey'client=AipOcr(APP_ID,API_KEY,SECRET_KEY)#读取图片withopen("screen.png",'rb')asf:image=f.read()#调用百度API通用文字识别(高精度版),提取图片中的内容text=client.basicAccurate(image)result=text["words_result"]foriinresult:print(i["words"])结果如文章首图:我的总结1)等待用户截图2)保存截图到当前目录3)识别截图中的文本其中识别截图文本,有两种方法:1)利用pytesseract模块2)利用百度API接口本文由培训无忧网千锋教育专属课程顾问整理发布,希望能够对想学习Python开发培训的同学有所帮助。更多Python开发培训课程欢迎关注培训无忧网Python开发培训频道或添加老师微信:15033336050...
2021-11-22点击量:254
一、资源介绍《Python人工智能入门项目》主要是通过实现真实世界的人工智能项目来构建智能应用程序,并使用8个智能和令人兴奋的人工智能应用程序启动和运行人工智能人工智能(AI)是一种最新的技术,被广泛应用于各行各业。面向初学者的Python人工智能项目演示了Python中的AI项目,涵盖了构成人工智能世界的现代技术。作者简介:约书亚·埃克罗斯(JoshuaEckroth)是斯泰森大学(StetsonUniversity)计算机科学助理教授,教授大数据挖掘和分析、人工智能(AI)和软件工程。埃克罗斯博士于2014年秋季加入斯泰森大学(StetsonUniversity)数学和计算机科学系。他在俄亥俄州立大学获得了人工智能和认知科学的博士学位,主要研究外展推理和元推理。二、主要内容本书首先帮助您使用流行的Python库scikit-learn构建您的第一个预测模型。您将了解如何使用有效的机器学习技术、随机森林和决策树来构建分类器。通过预测鸟类种类、分析学生表现数据、歌曲类型识别和垃圾邮件检测等令人兴奋的项目,您将学习促进这些智能应用程序开发的基础知识和各种算法和技术。在最后几章中,在Keras库的帮助下,您还将通过这些项目了解深度学习和神经网络机制。在本书的最后,您将对使用Python构建自己的AI项目充满信心,并准备随着您的进展接受更高级的项目。本文由培训无忧网千锋教育专属课程顾问整理发布,希望能够对想学习Python开发培训的同学有所帮助。更多Python开发培训课程欢迎关注培训无忧网Python开发培训频道或添加老师微信:15033336050...
2021-11-22点击量:269
Web应用程序的第1章——Django入门。要使用Django,先要建立一个虚拟工作环境,就是按照书中所讲的内容,在建立虚拟环境时,由于心急,折腾了一会儿才成功。下面,将创建虚拟环境并安装Django的过程记录下来,方便以后查阅,也供有兴趣的朋友参考。1.新建一个目录文件夹,将其命名为learning_log,用于存放要开发的Web应用项目。我创建的新目录位于D盘的py文件夹中,即D:\py\learning_log。2.在Windows中打开命令端,将路径切换至刚创建的目录。3.使用下面的命令来创建虚拟环境:python-mvenvll_env注意,要等一段时间,直到又出现命令提示符,千万不要着急!4.添加路径:\ll_env\Scripts\5.输入命令:activate,激活虚拟环境。上述过程中输入的命令。此时,可以看到在路径前面出现(ll_env),表明已进入虚拟环境。如果查看刚才新建的目录文件夹learning_log,就会发现其中已经添加了文件夹和文件。。6.安装Django。在命令行中,输入:pipinstallDjango==1.11开始安装Django,这里安装的是1.11版。安装成功。显示:Installingcollectedpackages:pytz,DjangoSuccessfullyinstalledDjango-1.11pytz-2019.27.在Django中创建项目。命令:Django-admin.pystartprojectlearning_log.让Django新建一个名为learning_log的项目,注意,命令后面加上的句点。图中也列出了learning_log中创建的文件夹及文件,以及其中同名的learning_log文件夹中的文件4个文件,其中:settings.py指定Django如何与系统交互及如何管理项目。urls.py告诉Django应创建哪些网页来响应浏览器的请求。wsgi.py帮助Django提供它创建的文件。8.创建供Django使用的数据库。9.保持上面命令行终端窗口运行,再打开一个命令行终端窗口,切换到manage.py所在的目录,激活虚拟环境,再执行命令startapp,如下图6所示。此时,在目录中新增了一个名为learning_logs的文件夹,其中生成了重要的文件:models.py、admin.py、views.py,如下图7所示。接下来,就可以利用这些模板文件开发自已的Web应用程序了。本文由培训无忧网千锋教育专属课程顾问整理发布,希望能够对想学习Python开发培训的同学有所帮助。更多Python开发培训课程欢迎关注培训无忧网Python开发培训频道或添加老师微信:15033336050...
2021-11-22点击量:235
parameters与arguments有什么区别?如果大家看一些英文文档,可能会看到两个词parameters(有时候简写为params)和arguments(有时候简写为args)。他们的中文意思都是参数。那么他们有什么区别呢?实际上,parameters是我们在定义函数的时候,写在括号里面的参数名,而arguments是我们在调用函数的时候,传进去的具体值。例如:deftest(name,age=0):print(name,age)test('kingname',age=1)其中name和age叫做parameters,而kingname和1叫做arguments。使用import导入模块的最佳实践在任何情况下都禁止使用fromxxximport*这种写法。在绝大多数情况下,把import语句写在.py文件的最上面,并且按照下面的顺序:Python自带的标准库优先导入,例如time/os/re等等已安装的第三方库自己写到项目中的本地模块在必要的时候,为了避免循环导入,可以把部分import语句写在函数里面。有一个文件a.py,里面开头的语句是importb。又有一个文件b.py,里面开头的语句是importa。这样写是没有问题的。如下图所示:但是,如果在a.py里面写为frombimportwalk,那么就会出现循环引用,导致报错。如下图所示:这是由于,在a.py执行frombimportwalk的时候,会进入b.py文件。此时b.py文件会执行importa,但是由于a.py文件还没有执行完成,就导致b.py没有执行完成,此时walk()函数还没有被定义,所以就无法导入。对于这种情况,如果确实代码里面需要这样引用,那么可以把frombimportwalk写到say()函数里面,这样就能正常导入了,如下图所示:当导入某个模块特别耗时间,但它又只在某个特定的函数里面执行时,也可以把import语句写在这个函数里面。本文由培训无忧网千锋教育专属课程顾问整理发布,希望能够对想学习Python开发培训的同学有所帮助。更多Python开发培训课程欢迎关注培训无忧网Python开发培训频道或添加老师微信:15033336050...
2021-11-22点击量:142
工欲善其事必先利其器,一个好的工具能让起到事半功倍的效果,Python社区提供了足够多的优秀工具来帮助开发者更方便的实现某些想法,下面这几个工具给我的工作也带来了很多便利,推荐给追求美好事物的你。PythonTutorPythonTutor是由PhilipGuo开发的一个免费教育工具,可帮助学生攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。通过这个工具,教师或学生可以直接在Web浏览器中编写Python代码,并逐步可视化地运行程序。如果你不知道代码在内存中是如何运行的,不妨把它拷贝到Tutor里可视化执行一遍,加深理解。IPythonIPython是一个forHumans的Python交互式shell,用了它之后你就不想再用自带的Pythonshell了,IPython支持变量自动补全,自动缩进,支持bashshell命令,内置了许多实用功能和函数,同时它也是科学计算和交互可视化的最佳平台。JupyterNotebookJupyterNotebook就像一个草稿本,能将文本注释、数学方程、代码和可视化内容全部组合到一个易于共享的文档中,以Web页面的方式展示。它是数据分析、机器学习的必备工具。AnacondaPython虽好,可总是会遇到各种包管理和Python版本问题,特别是Windows平台很多包无法正常安装,为了解决这些问题,Anoconda出现了,Anoconda包含了一个包管理工具和一个Python管理环境,同时附带了一大批常用数据科学包,也是数据分析的标配。之前在公众号有介绍过AnacondaSkulptSkulpt是一个用Javascript实现的在线Python执行环境,它可以让你轻松在浏览器中运行Python代码。使用skulpt结合CodeMirror编辑器即可实现一个基本的在线Python编辑和运行环境。在你的工作中还有哪些好用的工具,欢迎留言分享你用过最好的工具。本文由培训无忧网千锋教育专属课程顾问整理发布,希望能够对想学习Python开发培训的同学有所帮助。更多Python开发培训课程欢迎关注培训无忧网Python开发培训频道或添加老师微信:15033336050...
2021-11-22点击量:124
本文不仅仅是学习Python的最佳书籍、视频和课程汇编,还包括Python初学者/早期和中级人员在学习和使用Python的过程中面临的更大的问题。这些问题往往是StackOverflow上无法解决的非具体问题。作为一个开发者,为何要选择Python?为什么要学习Python?为什么要选择Python,而不是其他别的20多种编程语言?当你开始走上开发者之路时,这个问题会可能会一天在你的脑海里出现多次。选择你的第一个编程语言,就像选择一个入门级“口袋妖怪”一样。如果你的目标不是Python,而是其他语言,那其实可以不用在往下读了。如果你对自己选择Python的决定有信心,那么这篇文章将让你获得更高的成功机会。其实选择哪种语言并不重要。但是一旦你做出决定,你就需要坚持下去。现在网上有大量对不同编程语言/框架进行比较的文章和观点。这些内容可能会让人觉得无所适从,甚至吓到一些人,让他们怀疑自己的决定并半路放弃。我认识一些人,声称自己掌握了3-4种语言。他们想要了解4种语言的很多细枝末节,但无法使用其中任何一种语言进行编程。这就是想要尝试一切,而没有始终坚持的结果。Python是一种设计精良的语言。有着大量在线说明文档和教程。而且被广泛用于许多领域。所以,无论你的水平如何,对于Python而言都有很多值得探索的东西。对于其他20种语言中的大多数也同样如此。每种语言都有自己的优点和缺点,及其最适合的应用领域。Python最常用的3个用途是数据处理、编写Web应用程序后端,以及编写自动化脚本。Python可以说是初学者的最佳选择,因为这门语言设计的基本原则侧重于清晰和简洁。怎样学习Python?既然你已经做出了选择,那么我们来谈谈如何学习Python。很简单。选择一个教程,然后学完。之后选择另一个教程。休息一下,重复这个过程。只看一本书,看一个教学视频是不行的。你需要不断地接触代码,需要让自己的脑子实现渐进式的“过载”,需要耐心、坚持、承诺(以及其他一些优秀特质)!下面是给初学者的一个基本流程图。不同的人的路线图版本会有所不同。下面的流程仅供参考,不过,搞清楚何时进入下一阶段非常重要。大多数人做得太晚了。你可能更喜欢选择去看edX的课程视频,而不是去读书。怎样都好,最重要的是坚持整个过程,这一点比单个教程/课程的选择更加重要。通过阅读书籍建立坚实的基础。参考基于Python的完成单个任务教程,比如发送电子邮件或编写文件。这些教程将介绍Python开发人员可用的有用的包和库。养成阅读文档的习惯。使用可用的库构建小型应用程序。深入理解Python语言及其工具。了解该领域的专家正在开展的工作。直接阅读源代码。记住,不管学习什么教程,请确保一直在真正写代码。仅仅阅读代码实例是不够的。学习解决通用问题学习语言(或框架/库)和学习编程之间存在着细微差别“全栈Web开发人员”课程并不会使你成为一名优秀的程序员。只会教你如何用一个特定的程序来解决一个简单的问题(是的,这些课程中构建的大部分网络应用程序确实属于简单问题)。了解并读懂程序是不错,但能够设计自己的程序就更棒了。注意编程结构、设计模式和算法。这些特定问题不只是Python所独有,几乎学习所有语言都要面对这些问题。寻找答案:从一无所知到无所不知如果你在这个过程中多次遇到困难,在知难而退之前努力尝试解决问题。很可能别人以前曾遇到过同样的问题,并且已经通过互联网得到了解决方案。此外,Python社区也非常受欢迎。你可以随时向社区中的人寻求帮助。可以加入Gitter上的Python频道。Python中有很多值得学习的东西,被广泛用于各种领域。不要跳过基础知识阶段,忙着进入特定专业领域。学习PyTorch应该在掌握包和库之后,学习Django应该在熟悉虚拟环境之后。从长远来看,掌握Python的深入知识是值得的。当你使用一些特殊库时,将可能大大减少调试程序所花费的时间。学好东西需要时间。可能要比你想象的时间要长。你不可能在几个月内成为专家程序员。获得进步需要时间和精力。我建议初学者关注Python至少一年。这期间免不了会有分心的事,尽量避免分心,但也不要害怕去学习和接受新事物。Python并不是成为一个全面的开发人员所需要的唯一技能。学习Git、Markdown、HTML等知识也能得到很大的回报。在学习过程中,可能还需要掌握一些JS或统计学信息。总之,要永远做个学习者,但不仅仅只做学习者!了解并践行学习/实践阶段循环任何创造性学科的学习都可以分两个阶段,学习阶段和构建阶段,彼此不断重复。在学习阶段,你应该专注于积累知识、阅读书籍,完成每个教程并探索已经完成的工作。在实践阶段,你应该可以通过应用知识创造的东西得到了前一阶段的结论。不要怀疑你学到的技能,编写出自己的应用程序。只有当你完成了这一阶段后,回去再进入学习阶段。尽量平衡这两个阶段。首先进行一两个月的学习阶段,然后进入一个月的构建阶段。大多数人都害怕进入实践阶段。不要怕!将你在学习阶段掌握的知识用在这个阶段,如果真的不够,就再多循环几次。本文由培训无忧网千锋教育专属课程顾问整理发布,希望能够对想学习Python开发培训的同学有所帮助。更多Python开发培训课程欢迎关注培训无忧网Python开发培训频道或添加老师微信:15033336050...
2021-11-22点击量:259
本文将介绍一些有用的小工具,它们能够帮助我们提高工作效率。本文将介绍笔者在近一周发现的三个小工具,写文章以做记录,希望能对大家有所帮助。本文将介绍的三个小工具如下:在SublimeText中支持Python运行;在Mac电脑的iTerm2中支持查看图片;Python的typing模块介绍。详细内容介绍如下。在SublimeText中支持Python运行在平时工作中,我们通常用PyCharm开发Python工程,也可以用Vim编辑和查看Python脚本。但是,如果我们仅仅想创造一个单独的脚本来实现某些功能,那么用PyCharm会显得大题小做,用Vim又不方便编辑。这时候,我们可以借助文本编辑器,比如SublimeText,来实现Python脚本的编辑和运行。SublimeText是Mac系统支持的文本编辑器,Notepad++不支持Mac系统。如果我们想在SublimeText中支持Python运行,需要做一些设置。打开SublimeText的Tools,选择BuildSystem中的NewBuildSystem...,会出现脚本,我们修改其中的内容如下:{"cmd":["D:/Anaconda3/python3.7.exe","-u","$file"],}我们示例的Python脚本为test.py,代码如下:importnumpyasnpmatrix=np.array([[0,1,2],[2,4,5])print(matrix[1,2])print("HelloworldfromSublimeText.")点击Tools中的Build或者Ctrl+B运行程序,结果如下:同样,在Windows系统中也可以这样设置,方便又使用。至于Notepad++是否有相似的功能,还有待研究。在Mac系统的iTerm2中支持查看图片iTerm2是Mac系统很好用的终端工具,本文不过多介绍iTerm2,而是介绍如何直接在iTerm2中查看图片,这样可以方便我们在终端直接查看图片。我们使用的工具为imgcat。在iTerm2中新建shell脚本imgcat.sh,里面的内容可以参考网址:https://www.iterm2.com/utilities/imgcat,编辑完文件后保存,并用chmodu+ximgcat.sh赋予执行权限。这样就可以直接查看图片了。什么,这么简单?对,就是这么简单!在笔者电脑上的效果如下:Python中的typing模块介绍typing模块是Python中提供类型支持的模块,它的主要作用为:类型检查,防止运行时出现参数和返回值类型不符合。作为开发文档附加说明,方便使用者调用时传入和返回参数类型。该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒。简单来说,使用typing模块我们可以对参数的类型做注释并检查,它不会影响程序运行,而这是提醒。总所周知,在Python中调用函数或变量时,不需要对参数或变量进行类型说明,这样虽然方便程序编写,但不利于程序阅读,有了typing模块,可以增加程序的可阅读性,同时也能提升代码的可维护性和健壮性。本文由培训无忧网千锋教育专属课程顾问整理发布,希望能够对想学习Python开发培训的同学有所帮助。更多Python开发培训课程欢迎关注培训无忧网Python开发培训频道或添加老师微信:15033336050...
2021-11-22点击量:360
考虑到很多同学可能是新手,这里首先要谈谈交叉编译的概念!交叉编译是嵌入开发中的基础概念,名字看起来高端大气上档次,但其本质还是编译,也就是把C/C++代码编译成可执行程序,和我们初学C/C++语言时的HelloWorld!程序编译几乎完全相同。那么,你可能会问,不同之处在哪里?不同之处仅仅是,HelloWorld!在本机编译,可执行程序在本机运行;而交叉编译则是:程序在本机编译,而可执行程序在设备运行(即:本机无法直接运行交叉编译得到的二进制文件)。对于大型嵌入式企业,开发环境一般分为两个部分:代码编辑环境代码编译环境产品代码位于代码服务器上,每个员工远程登录代码服务器之后创建自己的代码分支,之后就可以进行代码编辑和编译了。其中,代码编辑是在员工的工作PC上完成;而代码编译则是在服务器上完成。编译得到的二进制可执行程序,需要拷贝到工作PC上之后烧写到设备中。大家通过类比可以发现,其实目前的鸿蒙设备开发方式就是企业级嵌入式产品的开发方式,只不过进行了缩减而已!代码编辑和代码编译在“不同的机器上”,两台机器通过网络互联,交叉编译得到的二进制文件通过代码编辑所在的环境烧写到设备。那么,这有什么问题吗?传统的嵌入式开发方式对于程序老手来说,没有任何问题,用起来游刃有余。但是,对于新手来说就可能是个噩梦了。大家可以想想,程序出问题后如何定位?就目前鸿蒙设备开发的情况来说,只有打印日志这一招可用。这一招最常用,可问题也不少......当然,有同学可能会说:“接个JTag断点调试就可以解决这个问题了!”我想说,理论上确实如此,但是目前支持鸿蒙系统的开发板(如:Hi3861开发板)几乎不可能使用JTag进行调试!说得更简单一点:目前还没法用JTag对鸿蒙设备进行调试。所以,得另想办法,而Python是一个可行的选择。Python语言简单而又不失强大,用于设备应用开发是再合适不过了。并且的,Python开发者数量巨大,如果鸿蒙应用开发能够支持Python语言,那么鸿蒙宇宙又可以增加无数闪耀的新星!目标:除C语言之外,给开发者提供另一种选择,可以使用Python语言开发鸿蒙设备应用程序。所以,最迫切需要的是一个Python语言解释器,并且能够作为应用的一部分运行于设备上。如下图所示:那么现在的问题就是:如何获得需要的Python语言解释器?在这里有同学可能会问:为什么不直接移植MicroPython?而是对MicroPython做剪裁?原因很简单,我的想法是让鸿蒙设备支持Python开发方式,而不是取代C语言开发方式,更不是取代鸿蒙!大家要明白MicroPython设计的初衷是直接运行于微控器,使用Python控制硬件,所以MicroPython本身已经具备了一些操作系统的特质,如果直接移植到设备(Hi3861开发板),那么也就意味着用MicroPython替代了鸿蒙,这显然与期望不符!MicroPython的语言解释器是对Python的一个重新实现,非常适合资源受限的嵌入式设备。因此,最好的做法就是剪裁MicroPython的语言解析器,之后将鸿蒙设备的系统API接口绑定到Python语言(即:Python版同名系统API),这样就可以达到我的目的了。很显然,在设备端需要开发一个应用引擎。如果需要使用Python开发设备应用程序,直接编译运行这个应用引擎并运行于设备之上。而设备应用程序由Python脚本构成,编写好之后直接传入设备中即可。讲到这里相信各位同学也明白了,设备应用的Python脚本其实根本“不知道”自己执行在鸿蒙系统上,这些脚本的执行仅仅需要Python解释器和相应API接口。那么,请大家思考一下,如果这个引擎运行于Windows之上会发生什么?会发生的事情显然就是:我们可以在Windows上执行为鸿蒙设备而编写的Python应用脚本。于是,前面所说的调试问题就可以迎刃而解了。在Windows上使用纯Python语言模拟实现鸿蒙设备的API接口(Python版),然后使用现有的Python开发环境调试设备应用脚本(如:断点调试)。这样就可以大大提高开发效率,避免代码中满篇的添加printf打印语句。python是使用Java语言对Python的一个重新实现,借助它就可以在Java中使用Python进行编码。而鸿蒙手机APP支持使用Java语言进行开发,所以理论上可以在手机APP中使用Python完成部分代码的编写!相关案例我会在后续为大家提供出来。本文由培训无忧网千锋教育专属课程顾问整理发布,希望能够对想学习Python开发培训的同学有所帮助。更多Python开发培训课程欢迎关注培训无忧网Python开发培训频道或添加老师微信:15033336050...