Tag: python

2019年最值得学习的5种语言-2019

大家好,这是我的第一篇文章。 我希望这将帮助其他人选择他们今年可以学习的语言。 这些建议基于市场趋势以及我们学习和部署事物的难易程度。 选择您喜欢的语言并进行学习。 让我们按时间顺序检查语言列表 05.C ++: 这是非常强大的语言。 我们使用从软件到游戏开发的 C ++。 这很容易学习。 回顾并从现在开始。 04. Swift : 为什么使用Swift听起来很奇怪? 除亚洲/非洲外,我们还有大量使用iPhone的客户。 我们也有许多在iOS中运行的应用程序(iPhone,Mac,Apple Watch),有趣的是,iOS工程师要少一些。 但是从Swift语言开始并不是一个最便宜的选择,您需要昂贵的设备和Apple Store订阅才能发布您的应用程序。 您还可以考虑使用本机响应,颤振响应来开发的混合应用程序,但是在iOS应用程序开发过程中,核心知识非常重要。 03. Java: 在亚洲,它是最主要的语言之一。 Android-它拥有良好的市场,许多用户正在使用Android手机,并且每天都有许多应用程序开发。 Selenium —诸如selenium之类的测试工具使用Java作为编写测试的后端代码。 许多库和框架都在使用它( Maven,Spring-boot等),并且它现在越来越流行。 02. Javascript: 从后端到前端使用的Javascript。 NodeJ,机器学习和AI,React&Redux,Angular,Web开发,移动开发,ES6,ES7,ES8,ES9等……您想使用什么? 我们可以使用Javascript创建所有内容。 我们还可以为使用Javascript的任何解决方案提供答案。 学习Javascript框架和库确实很重要,仅JS语言并不能帮助您事业发展。 01. Python : 你知道答案。 是的,是Python。 如果您是初学者,则最好从Python开始。 Instagram,Nasa,Google,Quora,Reddit是使用Python构建的。 我们可以轻松地使用它创建原型,并使用Django框架轻松扩展它。 数据科学,人工智能和机器语言中使用的Python – Netflix,亚马逊使用数据科学向您推荐要观看的电影和购买的产品 Python开发人员是收入最高的人员之一,现在更需要他们。 甚至我也想学习it 以下是堆栈中本年度最受欢迎的语言,请看一看。

超级棒,易于遵循的分步指南,用于设置自动执行iOS测试的Appium

因此,您构建了一个kickass iOS应用程序。 您将其安装在iPhone上,进行试用,执行一些基本的手动测试,一切都将正常工作! 您感觉到了世界的最高境界,并且继续前进,开发应用程序的下一个重要功能,同时听到天使在后台唱歌。 海绵宝宝天使GIF –在GIPHY上找到并分享 与您认识的所有人一起发现并分享这个有趣的GIF。 GIPHY是您搜索,共享,发现和创建GIF的方式。 giphy.com 然后它像一堆砖头一样打击您。 对于您添加的每个新功能,还需要进行大量测试。 在设备上进行更多的部署-进行更多的手动测试-将更多的时间花费在测试上,而不是享受生活。 这就是Appium发挥作用的地方。 用其创建者的话说,Appium是一种开源工具,用于自动化iOS和Android平台上的本机,移动网络和混合应用程序。 简而言之:Appium允许您使用Python为您的应用程序创建自动化测试,因此您不必自己手动对其进行测试。 既然您对未来充满了期待和兴奋,现在该开始使用iPhone模拟器运行Appium进行iOS测试了! 启动您喜欢的文本编辑器并开始编写出色的测试可能会令人兴奋,我们首先需要安装一些模块,这些模块将帮助我们(和Appium)实现自动化。 首先,通过在命令行中键入pip -V来确保在系统上安装了PiP。 您应该得到类似于以下结果: pip 9.0.1 from /Users/johnnyt/.py/lib/python2.7/site-packages (python 2.7) 如果由于某种原因没有安装pip,请转到https://pip.pypa.io/en/stable/installing/了解有关如何安装的详细信息。 接下来,创建一个文件夹以放入我们所有的测试和配置文件,然后创建一个名为pip-reqs.txt的文本文件,其中包含我们希望安装的所有软件包: selenium==3.3.1 py==1.4.34 pytest==3.2.3 Appium-Python-Client==0.24 为什么我们需要您可能会问的这4个软件包? Selenium是浏览器自动化工具。 我们将使用它来执行测试中的各种动作。 Pytest是一个用Python编写测试的框架。 Py是pytest的依赖项。 Appium-Python-Client是Appium的Python包装器。 使用以下命令安装所有软件包: pip wheel –wheel-dir wheelhouse -r pip-reqs.txt 使用NPM安装了Appium。 没错,这很容易。 npm install -g appium 为了使您的应用在模拟器中运行,必须为该模拟器专门编译该应用。 这是使用项目文件夹中的xcodebuild命令行工具完成的。 让我们研究以下示例: xcodebuild […]

一个普通人的编码之旅

我决定着手#100DaysOfCode开始新的一年。 通过其他推文,我看到了许多雄心勃勃的目标(通常涉及找到开发人员职位)。 我的目标虽然没有那么崇高,但我想与其他像我一样悠闲地学习编码的人分享。 我没有任何近期的职业目标,但我确实认为知道如何编码将变得越来越有价值。 我衷心希望开发人员与用户之间的界线继续变得模糊,并且我相信我会找到方法将我从学习中学到的知识应用于日常工作中。 我的旅程开始了,因为我确定还有很多其他人。 我从Codeacademy开始工作,完成了一些挑战,被困住并离开了几年! 但是,嘿,没关系。 后来我遇到了FreeCodeCamp,并决定再次尝试编码。 事情几乎都以同样的方式进行,充满挫败感的时刻让我将其搁置很长时间。 对我来说起作用的是还有其他需要切换的地方。 我在iPad上启动了Swift游乐场。 我确定有人会觉得它很幼稚,但是在编码的背景下,我只是个婴儿。 我真的很喜欢这样的事实,当我的代码无法正常工作时,很容易逐步了解错误所在。 当然,现在我已经找到了其他语言可以做到这一点的工具和技巧,但是一开始内置此功能确实很有帮助。我还发现,在两种类型的教程之间进行切换可以帮助我思考不同方面的问题。角度。 总是有一些小怪癖没有得到明确的解释,但是当您以略有不同的方式看到相同的信息时,便可以建立更直观的联系。 每个人对学习哪种最佳语言都有不同的看法。 老实说,我想担心这些事情为时尚早。 但是有几个人向我赞扬了Python的优点,所以我想我会看一下。 我还想要Raspberry Pi,并记住它使用Python。 这使我参加了麻省理工学院的EdX课程, 《计算机科学入门和使用Python编程》 。 尽管他们强调这不是一门Python课程(而是一门使用Python演示核心原理的CS课程),但这似乎是一个不错的起点。 现在,事情真的开始融合了。 我见过for和while循环,并学会了迭代。 我知道if语句和布尔运算符。 了解如何以另一种语言使用这些技术并了解异同是非常有教育意义的。 我会说,由于在语言之间进行切换,我在语法上有些挣扎,但是最终这是一件好事,迫使我更加努力地记住正确的语法。 本周,我实现了几个重要的里程碑,使我成为了一个很好的#100DaysOfCode。 首先,我完成了FreeCodeCamp上的所有基本算法脚本挑战。 哇,我认为那将永远不会结束。 我迷失了绝望的放弃次数,但稍后会再次提出并找到解决方案。 我想我克服了对方法的恐惧。 从一开始,解决方案总是使用某种基本为您完成挑战的方法,而不是构建一些冗长的算法来逐步解决问题,这似乎一直是不公平的。 我也被吓倒了,因为我永远无法记住所有可用的方法,所以我只是不想使用它们。 而且,它们通常是一个黑匣子-很难确切地了解一种方法在特定情况下会做什么。 但是,不仅学会了通过测试,还学会了尝试一些不同的方法并使自己对使用方法更加满意。 我的另一个重要里程碑是在MIT课程的第3周结束时通过了问题集。 问题基本上是要开发一款像a子手一样的游戏。 老实说,我认为这将花费我几个小时,而且我想知道我是否学得足够好,足以应付如此艰巨的任务。 我最了解的是坚持。 我的第一次尝试没有效果? 当然不是,它几乎永远不会。 调整代码。 找出问题所在。 重新阅读一些笔记。 真的无法消除特定的错误吗? 破坏代码并采用其他方法-解决问题始终是一种以上的方法。 令我感到惊讶的是,我能够整理出一些实际上是交互性的代码,而最好的是没有办法作弊,这使我自己找到了解决方案,因此我为自己的全部代码而感到自豪自己的工作。 我议程上的下一件事是MIT课程的期中考试。 在完成之前,我将尽量避免使用其他语言。 这是有时间限制的考试,因此我不想浪费宝贵的时间试图记住我是否需要分号或逗号。 我真的不知道会发生什么,但希望一切顺利。 […]

在MacOS应用程序中嵌入Python

通过pyinstaller将python应用程序嵌入MacOS可可应用程序中 用于macOS核心的Mosaic Shapes用Python编写。 该UI用Objective-C编写,并通过NSTask和NSPipes与嵌套的Python应用程序进行通信。 由于产生的沙箱约束和代码签名问题,花了很多时间,咒骂和深夜才弄清楚如何将Python应用程序嵌套在Cocoa应用程序中。 我找不到在线全面的解决方案来解决我的问题。 我希望本演练对将来在搜索Google搜索结果的人中有所帮助。 从pyinstaller生成.app并将其嵌套在XCode中之后,通过NSTask调用python应用程序很简单。 但是,一旦准备好将应用程序提交给商店,就需要正确设置应用程序的沙箱权利并对该应用程序进行代码签名。 这就是噩梦通常开始的地方。 从这里下载python 2.7.13: https://www.python.org/downloads/ 下载pyinstaller: http://www.pyinstaller.org/ 一旦将应用程序沙箱化,MacOS的默认出厂python版本和Python的Hombrew / Cellar版本将出现代码签名问题。 嵌套python应用程序后,使用适当的沙盒权利对其进行签名,然后尝试调用您的python应用程序后,就会显示该错误。 您将收到崩溃消息,该崩溃消息给出了引用Python的古老代码签名错误。 (堆栈溢出)。 确保直接从python.org下载Python安装程序。 就我而言,我正在使用2.7.13(尚未使用Python 3进行测试) 下载并安装后,仔细检查默认的Python: guppy:〜dean $哪个python /Library/Frameworks/Python.framework/Versions/2.7/bin/python guppy:〜院长$ python -version Python 2.7.13 如果您使用的安装方式不是默认的python解释器,则可以明确指定要在python virtualenv中使用的python版本 mkvirtualenv -python = /库/框架/Python.framework/版本/2.7/bin/python 现在,打包您的python应用程序(替换为您的参数): python pyinstaller.py run.py -icon = icon-windowed.icns -clean -windowed -onefile -osx-bundle-identifier“ com.mosaic.mosaicshapes” 注意 :请确保您已经准备好图标文件,否则pyinstaller将默认使用其自己的图标。 此外,将包ID替换为父应用程序的包ID。 将生成的应用程序嵌入XCode […]

如何在两个不同的音频样本之间找到比例?

我打算制作一个分析音频样本的通用应用程序。 当我说’通用’时,我的意思是任何技术(Javascript,C,Java等)都可以使用它。 基本上我在iOS上使用Apple的AVFoundation制作了一个应用程序,它实时接收长度为512(bufferSize = 512)的麦克风样本。 在Python我使用PyAudio做了同样的事情,但不幸的是我收到了非常不同的值…… 看样品: Samples of bufferSize = 512 on iOS: [0.0166742969, 0.0181432627, 0.0184620395, 0.0182254426, 0.0181945376, 0.0185530782, 0.0192517322, 0.0199078992, 0.0204724055, 0.0212812237, 0.022370765, 0.0230008475, 0.0225516111, 0.0213304944, 0.0200473778, 0.019841563, 0.0206818394, 0.0211550407, 0.0207783803, 0.020227218 …. Samples of bufferSize = 512 on Python: [ -52. -32. -11. 10. 24. 31. 37. 38. 33. 25. 10. -4. […]

Xcode 8无法启动:加载插件失败

我有一个Xcode 8的大问题,无法启动它^ _ ^,我总是得到以下错误: 加载插件失败。 插件或其中一个必备插件可能丢失或损坏,可能需要重新安装。 我正在看日志,我可以看到问题是Python,所以我试图更新Python,重新安装但没有什么不对的T_T [MT] DVTPlugInLoading:无法加载插件com.apple.dt.dbg.DebuggerLLDB的代码(/Applications/Xcode8b.app/Contents/PlugIns/DebuggerLLDB.ideplugin),错误=错误域= NSCocoaErrorDomain代码= 3587“dlopen_preflight (/Applications/Xcode8b.app/Contents/PlugIns/DebuggerLLDB.ideplugin/Contents/MacOS/DebuggerLLDB):未加载库:/System/Library/Frameworks/Python.framework/Versions/2.7/Python 参考自:/Applications/Xcode8b.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/LLDB原因:未找到合适的图像。 找到:/System/Library/Frameworks/Python.framework/Versions/2.7/Python:mmap()错误1在地址= 0x11C480000,大小= 0x00171000段= __文本在Segment :: map()映射/系统/库/框架/Python.framework/Versions/2.7/Python /Library/Frameworks/Python.framework/Versions/2.7/Python:mmap()错误1在地址= 0x11C6C0000,size = 0x00171000 segment = __ TEXT in Segment :: map()mapping / Library / Frameworks / Python.framework / Versions / 2.7 / Python /System/Library/Frameworks/Python.framework/Versions/2.7/Python:mmap()错误1 at address = 0x11C900000,size = 0x00171000 segment = __ TEXT in […]

PyAPNs和发送之间需要hibernate

我正在使用PyAPNs向iOS设备发送通知。 我经常发送一组通知。 如果任何令牌因任何原因而变坏,则该过程将停止。 因此,我使用增强的设置和以下方法: apns.gateway_server.register_response_listener 我使用它来跟踪哪个令牌是问题,然后我从那里接收发送其余的。 问题是,当发送陷阱这些错误的唯一方法是在令牌发送之间使用睡眠定时器。 例如: for x in self.retryAPNList: apns.gateway_server.send_notification(x, payload, identifier = token) time.sleep(0.5) 如果我不使用睡眠定时器,则不会捕获任何错误,因此当存在错误令牌时,我的整个APN列表不会被发送到进程。 但是,这个睡眠定时器有点武断。 有时0.5秒是足够的,而有时我必须将它设置为1.在任何情况下,如果没有添加一些睡眠延迟,它都无法工作。 这样做会减慢网络电话的速度,并且进入随机hibernate时间的感觉不足以防范。 有关如何在APN呼叫之间没有延迟的情况下工作的任何建议,或者是否需要延迟的最佳做法? 由于下面的请求,添加更多代码。 以下是我用来控制它的类中的3个方法: class PushAdmin(webapp2.RequestHandler): retryAPNList=[] channelID=”” channelName = “” userName=”” apns = APNs(use_sandbox=True,cert_file=”mycert.pem”, key_file=”mykey.pem”, enhanced=True) def devChannelPush(self,channel,name,sendAlerts): ucs = UsedChannelStore() pus = PushUpdateStore() channelName = “” refreshApnList = pus.getAPN(channel) if sendAlerts: alertApnList,channelName […]

将OpenCV-Python转换为C ++ / Objective C

我从@ abid-rahman-k中发现了非常好的代码来检测图像中的一个矩形: OpenCV C ++ / Obj-C:高级平方检测现在代码是在Python中,这里是: import cv2 import numpy as np img = cv2.imread('sof.jpg') img = cv2.resize(img,(500,500)) gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) ret,thresh = cv2.threshold(gray,127,255,0) contours,hier = cv2.findContours(thresh,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE) for cnt in contours: if cv2.contourArea(cnt)>5000: # remove small areas like noise etc hull = cv2.convexHull(cnt) # find the convex hull of contour hull = cv2.approxPolyDP(hull,0.1*cv2.arcLength(hull,True),True) if […]

Django推送通知与设备自定义模型

我有一个关于Django推送通知的问题。 在我的Django项目中,我有我的移动设备模型。 在这个模型中,我拥有所有设备信息,如令牌(用于发送推送通知),设备平台(iOS或Android)以及其他设备信息。 现在我已经实现了发送这些推送通知的逻辑,我会使用一些类似django-push-notifications的库。 我已经阅读了文档,我意识到这个库已经在设备内部使用了一个模型:GCMDevice或者APNSDevice。 我如何使用我的设备模型使用django-push-notification? 有没有一个干净的方式来做到这一点?

保存Kivy应用程序的login屏幕用户名和密码

我正在为iOS和Android的Kivy应用程序工作,并需要帮助保持用户永久login,甚至在应用程序closures或死亡后。 我正在使用分析来存储用户凭据。 我已经给App类添加了一个on_pause方法,但是这只会保持用户login,如果应用程序closures,但不会被杀死。 是否有一个安全允许持久用户loginKivy的最佳做法,甚至在一个应用程序被杀害后? 编辑:我更喜欢一个适用于Android应用程序和iOS应用程序的单一Kivy解决scheme,无需编辑/添加iOS或Android特定的代码。