精华内容
下载资源
问答
  • python 安卓移至I have been a PHP developer(and fan) for a decade. It formed my perspective on what a programming language should be. Now I’m joining the Python camp and here are my reasons. 我已经...

    python 安卓移至

    I have been a PHP developer(and fan) for a decade. It formed my perspective on what a programming language should be. Now I’m joining the Python camp and here are my reasons.

    我已经成为PHP开发人员(和爱好者)已有十年了。 它形成了我对什么是编程语言的看法。 现在我要加入Python训练营,这就是我的原因。

    整洁的代码 (Neat Code)

    How many times do you have to rub your eyes and look closer to match the ending brackets of statements?

    您需要揉搓眼睛并仔细观察几次以匹配语句的结尾括号?

    I did it everyday when coding with PHP. Before a proper IDE came into play, I literally placed a ruler on monitor screen to vertically line up brackets!

    我每天都使用PHP进行编码。 在使用合适的IDE之前,我确实在监视器屏幕上放置了一个标尺以垂直对齐支架!

    Here is an example of ending brackets in PHP

    这是一个用PHP结尾的示例


    }
    }
    }
    }
    }
    }
    }

    Here is an example Python function

    这是一个Python函数示例

    def hello(arg):
    if arg == 'hello':
    print('world')
    else:
    print('!')

    That’s right, just use indentation to group your statements. No need of brackets or ending semicolons! It might not be a big deal for a few lines of code here. But it makes your code base much neater and therefore improves code readability.

    没错,只需使用缩进将语句分组即可。 不需要括号或结尾的分号! 对于这里的几行代码来说,这可能不是什么大问题。 但这使您的代码库更加整洁,因此提高了代码的可读性。

    Imagine you are reviewing Pull Request from your co-worker, the code is much easier to read now. This allows you to focus on the code logic rather than the formatting.

    想象一下,您正在查看同事的“拉取请求”,该代码现在更容易阅读。 这使您可以专注于代码逻辑而不是格式。

    简易清单操作 (Easy List Manipulation)

    In Python world, processing data structure(such as list, dictionary etc) is made so simple. This is an important one, as processing data structure is such a daily routine for every developer.

    在Python世界中,数据结构(如列表,字典等)的处理变得如此简单。 这很重要,因为处理数据结构对于每个开发人员来说都是日常工作。

    Below are code snippets to find even numbers in a list.

    以下是用于在列表中查找偶数的代码段。

    In Python

    在Python中

    def find_even (numbers):
    return [num for num in numbers if

    In PHP

    在PHP中

    function find_even ($numbers) {    
    $results = [];
    foreach ($numbers as $num) {
    if (
    $results[] = $num;
    }
    }
    return $results
    }

    The syntax in Python is so neat. It might look a little confusing in the beginning (as it did for me), but soon you will find writing this kind of syntax is easy and time-saving for little tasks like this.

    Python中的语法非常简洁。 一开始可能看起来有些混乱(就像对我所做的那样),但是很快您会发现编写此类语法非常容易,而且可以节省诸如此类的小任务。

    数据科学 (Data Science)

    Python is the most popular programming language in the data science world, thanks to its compatibility and simple syntax. To me, this means there are great libraries, tools and communities for data science study.

    由于Python的兼容性和简单语法,它是数据科学世界中最流行的编程语言。 对我来说,这意味着有大量用于数据科学研究的图书馆,工具和社区。

    When I was learning data science online, I have been taught to use Jupyter Notebook, Scikit-learn, Pandas, Numpy and Spark. The course is designed around Python. As a result, I have to learn a great deal of Python. The communities like Kraggle and articles on medium helped me a lot on data science learning.

    当我在线学习数据科学时,我被教导要使用Jupyter Notebook,Scikit学习,Pandas,Numpy和Spark。 本课程围绕Python设计。 结果,我必须学习大量的Python。 像Kraggle这样的社区和有关媒体的文章对我在数据科学学习方面的帮助很大。

    There is simply no such thing in PHP world.

    PHP世界中根本没有这样的东西。

    非常适合微服务 (Great for Micro-service)

    Object Orientation(OO) and framework play a big part in PHP. You are encouraged to write code in OO style and you are probably going to use a MVC framework, such as Laravel, which is perfect for a traditional website.

    面向对象(OO)和框架在PHP中起着重要作用。 我们鼓励您以OO风格编写代码,并且您可能会使用MVC框架,例如Laravel,它非常适合传统网站。

    The software architecture today is shifting to an agile, micro-service pattern. You are required to code light-weight micro-service, deployed on cloud, exposed as API. For a micro-service, a strong OO and heavy-weight framework really makes little sense. It also slows down agile process (building a MVP takes longer)

    当今的软件架构正在转变为敏捷的微服务模式。 您需要对轻量级微服务进行编码,这些微服务部署在以API形式公开的云中。 对于微服务,强大的OO和重量级框架确实没有任何意义。 它还会减慢敏捷过程(构建MVP需要更长的时间)

    And AWS Lambda doesn’t even support PHP! It natively supports Python and node.js etc. You would prefer all of your code written in same language, so Python becomes an all-rounder in the cloud.

    而且AWS Lambda甚至不支持PHP! 它本身支持Python和node.js等。您可能希望所有用同一语言编写的代码,因此Python成为云计算的全能者。

    All of these reasons make Python and lightweight framework standing out as a good choice for micro-service.

    所有这些原因使Python和轻量级框架脱颖而出,成为微服务的不错选择。

    性能 (Performance)

    PHP is slightly faster than Python in terms of execution speed(but who cares).

    就执行速度而言,PHP比Python略快(但谁在乎)。

    I used to be thrilled by the performance gains of PHP over last couple of years. But in today’s cloud computing world, it is becoming less of a concern.

    过去几年来,我对PHP的性能提升感到非常兴奋。 但是,在当今的云计算世界中,它变得不再那么重要了。

    The biggest impact of performance of your application could be coming from your app architecture, cloud infrastructure and maybe even a block of your code.

    应用程序性能的最大影响可能来自应用程序体系结构,云基础架构,甚至可能是代码块。

    I hardly hear anyone complaining about a programming language’s execution speed these days. It’s more likely other factors causing a performance problem.

    这些天,我几乎没有听到有人抱怨编程语言的执行速度。 更有可能是其他因素导致性能问题。

    人才市场 (Job Market)

    The mindset in job market right now is that PHP is for building traditional website and it is a little out-dated. Therefore the pay range is usually lower than trending language such as Python.

    目前,就业市场的心态是PHP是用于构建传统网站的,而且有些过时了。 因此,薪资范围通常低于趋势语言(如Python)。

    It is true a good developer can master any language, however it is undeniable that Python is a sought-after language in today’s market because it is a key skill to have for booming areas such as cloud, AI, data science, cryptocurrencies and more.

    优秀的开发人员可以熟练掌握任何语言,这是真的,但是不可否认,Python是当今市场上广受欢迎的语言,因为它是诸如云,人工智能,数据科学,加密货币等新兴领域的一项关键技能。

    And you want to future-proof your career. So you might want to consider starting to learn Python today.

    而且您想使自己的职业生涯适应未来。 因此,您可能要考虑立即开始学习Python。

    简单易学 (Easy to Learn)

    With years of experience coding with PHP and JS, it doesn’t take long for me to confidently write Python code and even do it in Pythonic style.

    凭借多年使用PHP和JS进行编码的经验,我很快就可以自信地编写Python代码,甚至以Pythonic风格进行编写。

    Tricky concept like decorator is similar to that of functional composition of JS. You can always find similarities with your existing skillset. Although it might take some time to learn framework, libraries and tools in Python, the language itself is quite sweet to pick up.

    像装饰器这样的棘手概念类似于JS的功能组成。 您总是可以找到与现有技能组的相似之处。 尽管用Python学习框架,库和工具可能要花费一些时间,但是语言本身还是很不错的。

    摘要 (Summary)

    There are plenty of articles out there comparing PHP with Python, and one with another. Most of them are technical focused. I offered my opinions from a software developer’s perspective as I switched from PHP to Python.

    有很多文章将PHP与Python进行了比较,而另一篇文章进行了比较。 其中大多数是技术重点。 从PHP切换到Python时,我从软件开发人员的角度提出了自己的观点。

    I was really impressed by the neatness and agileness of Python and excited by its possibilities with AI and data science. It is also trending in job market right now and turns out easy to learn.

    Python的简洁性和敏捷性给我留下了深刻的印象,并且它对AI和数据科学的可能性感到非常兴奋。 目前,它在就业市场上也有发展趋势,并且易于学习。

    翻译自: https://medium.com/swlh/moving-to-python-from-php-eb9dfa798e8f

    python 安卓移至

    展开全文
  • python3.0安卓版-python安卓

    千次阅读 2020-11-01 13:15:36
    安卓完美使用python开发所需linux环境搭建软件linuxdeployjuicessh----两个比较好用的代码编辑器quickedit(推荐使用这个)droidedit下载地址: https:pan.baidu.coms1tx9_8m2y9ynafuegucfytq密...

    flbm1hkjk6.jpg广告关闭

    2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品。未来,我们一起乘风破浪,创造无限可能。

    ibaao2tgnk.png

    安卓完美使用python开发所需linux环境搭建软件linuxdeployjuicessh----两个比较好用的代码编辑器quickedit(推荐使用这个)droidedit下载地址: https:pan.baidu.coms1tx9_8m2y9ynafuegucfytq密码:8jex方法在linux deploy的配置中设置挂载点 ? 使用代码编辑器在挂载目录下编写程序代码 ? 在juicessh中切换到挂载的目录...

    下面的代码需要在安卓手机上安装qpython3,然后打开qedit,把代码复制粘贴过去,保存文件,然后运行就可以自动打开相机了。 import sl4aimport osdroid = sl4a.android()# 默认保存到手机存储卡的根目录下,也可以自己修改成其他目录#获取已拍照片数量t = # 计算下一张照片的文件名序号n =len(t) + 1#打开摄像头并...

    psr7r4u3ym.gif

    裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程使用演示一、安卓手机(已成功)cmd窗口中路径保持在wechat_jump_game不变。 step1:将...13(64位)环境配置step1:安装python安装python2.7并添加到环境变量中。 step2:配置adb将相关文件中提供的adb.zip文件解压,将解压后的文件夹添加到环境...

    b5buriffek.jpeg

    appium+python安卓自动化测试之启动app和配置获取本文章未讲述appium+python环境部署环境部署会新开文章 一、手机连接电脑 1、usb连接电脑和手机,手机上点确认连接(最好用原装线)2、开启手机开发者模式和usb调试(每种手机不一样,可百度) ? 3、电脑和手机开启应用宝确认是否连接上,如下图说明已连上 ?...

    9nicszdeht.png

    ----1针对这个问题我劝大伙儿谨慎尝试谨慎尝试为什么咧我把大家骗进来的目的就是让大家看看什么叫做好惨一男的不过放心你依然可以看到这个问题的可能有效解决方案然后你就可以付诸实践至于结果我就不知道了2想必大家都知道正常安卓app的开发主流靠的是java、kotlin而其他语言的开发可能就需要开发框架python就不例外...

    相信多数安卓用户都使用过qpython这款移动端的python编辑器吧? 之前我也研究过一阵子这个工具,但因为一次简单的爬虫让我对它失望之极。 qpython不支持lxml这个模块,然而python中lxml作为最底层的模块,不管是爬虫还是文档解析,都需要使用它。 所以,termux应运而生.... termux不仅可以帮助你学习和使用linux系统...

    ifefjyyc71.jpeg

    接上篇,话说我已经完成了buildozer官方所有步骤,然而由于buildozer的缺陷,apk文件并没有生成,于是就有了下面的结局。 ——聪明的瓦肯人? ----1正如上篇结尾所述我手动添加了aild文件怎么做的呢对于我这个安卓盲不得不白嫖于stack overflow(ps:幸好小哥我懂点英语) ? 在我尝试了诸如安装低版本libstdc++等狗血...

    一、qpython 3h1. 下载与安装进入手机“应用市场”,搜索“qpython 3h”,单击“安装”。 ?2. 安装之后在桌面上找到qpython 3h的图标,打开,主界面如下。 ...?然后编写代码,保存,运行。 ? 运行结果界面如下图,按任意键返回编辑器界面。 ?5. 如果需要使用安卓系统功能编写应用程序,可以在主界面上单击“程序”...

    一.开始准备:请将安卓手机的usb调试模式打开, 开发者选项》usb调试然后与电脑相连运行环境(这里我是基于ubuntu中的python3环境)安装程序所需要的所有包,进入到这个包链接:https:pan.baidu.coms1sldtwzv 密码:rzd7 执行这个命令$ sudo pip install -r requirements.txt第一张图是进入这个目录,第二张图是执行安装...

    40no5xvqug.jpeg

    正如一番在这个系列文章的(00)篇中所说,一番在做1.0版本的时候用到了一些取巧的方法,其中就包括python通过adb操作手机。 之前微信第一款小程序游戏...有趣又实用(有兴趣的同学,公众号后台回复“跳一跳”获取github源码地址)。 1adb的使用方法及常见命令adb的基本使用方法和常见的命令,接触过安卓调试的...

    今天是python专题第20篇文章,我们来聊聊python当中的多线程。 其实关于元类还有很多种用法,比如说如何在元类当中设置参数啦,以及一些规约的用法等等。 只不过这些用法比较小众,使用频率非常低,所以我们不过多阐述了,可以在用到的时候再去详细了解。 我想只要大家理解了元类的原理以及使用方法,再去学习那些...

    做安卓时间长了,接触到各种各样的框架,前前后后遇到了很多问题,这里顺便记录一下那些年在安卓开发的发展过程中的那些跨平台开发技术框架,大致如下:如有错误,欢迎指正。 (一)适合webapp的一些框架1、cordova 优点: 开源免费,社区生态成熟,插件丰富支持离线场景应用开发工具选择空间大 缺点: 只提供基础访问...

    96zsud7jxo.jpeg

    做安卓时间长了,接触到各种各样的框架,前前后后遇到了很多问题,这里顺便记录一下那些年在安卓开发的发展过程中的那些跨平台开发技术框架,大致如下:如有错误,欢迎指正。 (一)适合webapp的一些框架1、cordova 优点:开源免费,社区生态成熟,插件丰富支持离线场景应用开发工具选择空间大 缺点: 只提供基础访问...

    6e27bt9euv.jpeg

    使用安卓模拟机可以随意的定制各种安卓的版本:小米的,华为的,三星的等。 方便操作。? 安卓开发模拟机注意这里是开发用的安卓模拟器,可不是玩游戏的多开使用的。 模拟器名称支持的操作系统支持的虚拟机运行速度安装apk方式支持的机型调试难易程度google官方的avdwindowslinuxqemu慢adb多复杂genumotionwindowsmac...

    我在qpython3l(安卓版的python)在name.py的文件里用这软件自带的qedit输入了:first_name=lulast_name=benweifull_name= first_name.title()+ +last_nameprint=(full_name)然后点击运行,发现虽然没有提示语法错误tackbook,但只显示了一排空白(空格),然后下面一行是按enter退出。 请问这是错误还是什么?...

    nw03w6zmbn.jpeg

    qq空间支持ai图片语音即时描述:视障者能“看到”图片 据悉,最新的安卓版qq空间应用中特意增加了“图片语音即时描述”功能,基于腾讯ai lab(人工智能实验...一分钟aipython即将停止支持python 2.7,全面转向 python 3百度建无人驾驶体验站,目前尚在内测中只接受百度员工体验申请小鹏汽车宣布22亿b轮融资...

    github.comjobboleawesome-python-cngit学习资料:https:github.comxirongmy-git安卓开源代码解析https:github.comandroid-cnandroid-open-projectpython...github.comeast520autogetredenv微信抢红包插件(安卓版)https:github.comgeeeeeeeeekwechatluckymoneyhardsed神器:https:github...

    ----当前python太火了,好多同学开始学习python,耳边常有没时间的抱怨声,今天给大伙带来利器,地铁上,公交上,排队等候时... 一切碎片化时间用起来随时随地,来段python----qpython它是一款能够在安卓手机上运行python的app它包含终端,编辑器,二维码(有点意思),包管理,课程等众多功能当前有两个版本,分别对应python2(q...

    但是和后台那边还没有想好怎么联调。 想法一:安卓组直接提供爬虫组需要的用户信息。 怎么给? http协议? 反正我不知道... 想法二:安卓就相当于是前端,它的后台就是后台(这话听起来怪怪的)。 直接让后台把用户信息存成一张表。 读取每一条用户信息,调用爬虫组的python程序,参数传入。 爬虫组直接将数据又存进...

    c0w9pp1z08.jpg

    安卓手机需要将对应的文件发送到手机文件,进行安装。 将mitmproxy-ca-cert.cer放到sdcard根目录下选择设置-安全和隐私-从存储设备安装证书2. 使用mitmdump在windows平台下一般使用mitmdump 控制台运行 mitmdump,出现如下结果λ mitmdumpproxy server listening at http:*:80802.1 获取本地ip地址 ipconfig打开模拟...

    展开全文
  • python 安卓移至Last year I’ve given a workshop about packaging Python projects. One of the participants was a bioinformatics researcher. She needed advice because she wanted to switch from Python 2 ...

    python 安卓移至

    Last year I’ve given a workshop about packaging Python projects. One of the participants was a bioinformatics researcher. She needed advice because she wanted to switch from Python 2 to Python 3, but a library she needed was only available for Python 2. Moving the library to Python 3 was pretty interesting and I’ll share here how I did it — or rather how I would do it if I had the same situation again.

    去年,我举办了一个有关打包Python项目的研讨会。 参与者之一是生物信息学研究员。 她需要建议,因为她想从Python 2切换到Python 3,但是她所需要的库仅适用于Python2。将库移至Python 3非常有趣,我将在此分享我的工作方式,或者更确切地说,如果我再次遇到同样的情况,我会这样做。

    本地设置 (Local Setup)

    Make sure you can execute Python 2 and Python 3 locally. I like pyenv for that:

    确保可以在本地执行Python 2和Python 3。 我喜欢pyenv

    $ pyenv install 2.7.18
    $ pyenv install 3.8.5
    $ pyenv local 3.8.5
    $ pip --version

    Alternatively, you can use conda to switch between Python 2 and 3.

    另外,您可以使用conda在Python 2和3之间切换

    常规项目设置 (General project setup)

    The project should be under version control and you need to make sure that people can move back if they need to. You need to pin direct and transitive dependencies. You should have a reproducible environment, such as a Docker container with a fixed Python version like 2.7.18-slim-buster. Add a git tag for the current version, deploy the latest one to pypi, and support your users in pinning that version.

    该项目应受版本控制,并且您需要确保人们可以根据需要移回原位。 您需要固定直接和传递依赖 。 您应该具有可复制的环境 ,例如具有固定Python版本(如2.7.18-slim-busterDocker容器 。 为当前版本添加一个git标签 ,将最新的git标签部署到pypi,并支持您的用户固定该版本。

    Make sure that you document the current state of the migration to Python 3. Typically this is done via an issue tracker, e.g. the builtin one of Github or Jira.

    确保记录了向Python 3迁移的当前状态。通常,这是通过问题跟踪器完成的,例如,内置的Github或Jira。

    First make sure that you can execute the tests, that the test coverage is OK (see unit testing series) and that the general style is OK (see lining todo). Set up a CI / CD pipeline.

    首先,请确保您可以执行测试,测试范围可以确定(请参阅单元测试系列 ),常规样式可以确定(请参阅衬砌待办事项)。 建立CI / CD管道

    打印报表 (Print statements)

    In Python 2, you could write print statements:

    在Python 2中,您可以编写打印语句:

    print "hello world"

    In Python 3, you have to write print functions:

    在Python 3中,您必须编写打印函数:

    print("hello world")

    Luckily, you can also have print functions in Python 2. And confusingly, it does not behave the same way:

    幸运的是,您还可以在Python 2中具有打印功能。而且令人困惑的是,它的行为方式也不相同:

    py2>>> print(1, 2, 3)
    (1, 2, 3)
    py3>>> print(1, 2, 3)
    1 2 3

    You need to import the backported print function to make the Python 2 function behave like the Python 3 function:

    您需要导入向后移植的print函数,以使Python 2函数的行为类似于Python 3函数:

    py2>>> from __future__ import print_function
    py2>>> print(1, 2, 3)
    1 2 3

    Note that I didn’t use the print_function — I just imported it.

    请注意,我没有使用print_function我只是导入了它。

    Applying this small change is tedious, but you can use 2to3 to do it for you:

    应用此小的更改很繁琐,但是您可以使用2to3为您完成此操作:

    $ pip install 2to3
    $ 2to3 --fix=print .

    保持Python 2兼容性 (Keeping Python 2 Compatibility)

    You should have a version that works for Python 2 and Python 3 in exactly the same way for a while. For bigger projects with lots of dependencies, it’s a big help if they can move gradually forward.

    您应该拥有一个可以在一段时间内以完全相同的方式适用于Python 2和Python 3的版本。 对于具有大量依赖关系的较大项目,如果它们可以逐步前进,将有很大帮助。

    Python 3 moved/renamed parts of the standard library. This breaks compatibility with Python 2. However, the workaround is simple:

    Python 3移动/重命名了标准库的一部分。 这破坏了与Python 2的兼容性。但是,解决方法很简单:

    try:
    from urllib.parse import urlparse, urlencode
    from urllib.request import urlopen
    except ImportError:
    from urlparse import urlparse
    from urllib import urlencode
    from urllib2 import urlopen

    Even nicer is the compatibility library six:

    更好的是兼容性库6:

    $ pip install six

    six can then be used like this in both, Python 2 and Python 3:

    然后可以在Python 2和Python 3中像这样使用six

    from six.moves.urllib.parse import urlparse, urlencode
    from six.moves.urllib.request import urlopen

    When you write code only to keep the support for older versions, make sure you add a string that is easy to find. Something like “support for Python 2”

    如果仅编写代码以保留对较早版本的支持,请确保添加易于查找的字符串。 诸如“对Python 2的支持”之类的东西

    迭代器 (Iterators)

    Python 2 creates a list when you call range(10) whereas Python 3 creates a range object for the same code. In some rare cases, you actually need the list and thus need to change it to list(range(10)) .

    调用range(10)时,Python 2创建一个列表,而Python 3为同一代码创建一个range对象。 在极少数情况下,您实际上需要列表,因此需要将其更改为list(range(10))

    输入和raw_input (input and raw_input)

    Python 2 has input and raw_input , but Python 3 only has input. The raw_input of Python 2 is like the input of Python 3.

    Python 2具有inputraw_input ,但是Python 3仅具有input 。 Python 2的raw_input类似于Python 3的输入。

    除法和舍入 (Division and Rounding)

    If you apply / to two integers, Python 2 gives you an integer division. Python 3 gives you a float as a result. You can still do integer division with // which works in both, Python 2 and 3:

    如果将/应用于两个整数,Python 2将为您提供整数除法。 结果,Python 3给了您一个浮点数。 您仍然可以使用//进行整数除法,这在Python 2和3中都可以使用:

    >>> 1 / 2
    # Python 2: 0 vs Python 3: 0.5

    The rounding behavior at x.5 also changed:

    x.5处的舍入行为也发生了变化:

    • Python 2: if two multiples are equally close, rounding is done away from 0

      Python 2 :如果两个倍数相等接近,则四舍五入要从0开始

    • Python 3: if two multiples are equally close, rounding is done toward the even choice

      Python 3 :如果两个倍数相等,则四舍五入取整为偶数选择

    >>> round(2.4)
    # Python 2: 2.0 vs Python 3: 2>>> round(2.5)
    # Python 2: 3.0 vs Python 3: 2>>> round(2.6)
    # Python 2: 3.0 vs Python 3: 3

    There are ways to get the same rounding behavior in Python 2 and 3.

    有一些方法可以在Python 2和3中获得相同的舍入行为

    Unicode和字符串 (Unicode and Strings)

    Unicode was a big pain in Python 2 and got a lot simpler in Python 3. Unicode support was only added later to Python 2. In Python 2, there was a difference between a Unicode string and a string. Essentially, a string was a bytes object containing ASCII:

    Unicode在Python 2中是一个很大的痛苦,而在Python 3中则变得简单得多。Unicode支持只是后来才添加到Python 2中。在Python 2中,Unicode字符串和字符串之间存在区别。 本质上,字符串是一个包含ASCII的字节对象:

    >>> a = u"abc"
    >>> type(a)
    <type 'unicode'>>>> b = "abc"
    >>> type(b)
    <type 'str'>>>> c = b"abc"
    >>> type(c)
    <type 'str'>>>> ord('ö')
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    TypeError: ord() expected a character, but string of length 2 found>>> 'ü'[0]
    '\xc3'
    >>> 'ü'[1]
    '\xbc'

    In Python 3, it’s the same:

    在Python 3中,它是相同的:

    >>> a = u"abc"
    >>> type(a)
    <class 'str'>>>> b = "abc"
    >>> type(b)
    <class 'str'>>>> c = b"abc"
    >>> type(c)
    <class 'bytes'>>>> ord('ö')
    246>>> 'ü'[0]
    'ü'

    I could write a lot about Unicode and string representations, but to keep it brief:

    我可以写很多关于Unicode和字符串表示形式的文章,但要简短一些:

    纯Python和通用轮子 (Pure Python and Universal Wheels)

    A wheel file is a form of distributing Python code. Python code is considered pure if it does not have C extensions. If pure Python code is compatible with Python 2 and Python 3 and distributed via a wheel file, that file is called universal. It should work on every machine with every Python version.

    wheel文件是分发Python代码的一种形式。 如果没有C扩展名,则认为Python代码是代码。 如果纯Python代码与Python 2和Python 3兼容并通过wheel文件分发,则该文件称为Universal 它应在具有每个Python版本的每台计算机上运行。

    You should always distribute your code in form of a source distribution and a wheel distribution. If you can, try to create and publish one universal wheel.

    您应该始终以源代码分发和Wheel分发的形式分发代码。 如果可以,请尝试创建并发布一个通用轮子。

    创建版本支持政策 (Create a version support policy)

    Image for post
    Photo by Sebastian Herrmann on Unsplash
    塞巴斯蒂安·赫尔曼 ( Sebastian Herrmann)Unsplash拍摄的照片

    Library creators need to decide which Python versions they want to support. Newer versions of Python have killer features you want to have and supporting all versions takes a lot of time. Make it transparent which versions you want to support and when you want to drop the support. It’s best to link this to bigger projects, e.g. the last 3 major Python versions.

    库创建者需要确定他们要支持的Python版本。 较新版本的Python具有您想要的杀手级功能,支持所有版本需要花费大量时间。 使您要支持的版本以及何时放弃支持变得透明。 最好将其链接到更大的项目,例如最近3个主要的Python版本。

    You should also know that the Python release cycle was changed in PEP-602.

    您还应该知道PEP-602中的Python发布周期已更改。

    NEP-29 is the version support policy of NumPy and hopefully, all of the Scientific Python packages will follow it as well.

    NEP-29是NumPy的版本支持策略,希望所有的Scientific Python软件包也将遵循它。

    删除Python 2兼容性 (Remove Python 2 Compatibility)

    Image for post
    Photo by JESHOOTS.COM on Unsplash
    JESHOOTS.COMUnsplash上的照片

    Supporting Python 2 means you need to add additional code and likely that you cannot use some of the killer features of newer Python versions.

    支持Python 2意味着您需要添加其他代码,并且可能无法使用更新的Python版本的某些杀手级功能。

    When you remove the support for a Python version, do it in one git commit so that the change is clear. Search for that string:

    删除对Python版本的支持后,请在一个git commit中执行此操作,以使更改清晰可见。 搜索该字符串:

    $ grep -rnI "support for Python 2"

    使用新的东西! (Use the new stuff!)

    Python 3 has some super cool features you should use when you can. Migrating to Python 3 opens up a whole new world:

    Python 3具有一些您应该使用的超酷功能。 迁移至Python 3开辟了一个全新的世界:

    pyupgrade can help you to use new-style syntax, such as:

    pyupgrade可以帮助您使用新型语法,例如:

    dict((a, b) for a, b in y)    # -> {a: b for a, b in y}
    '%s %s' % (a, b) # -> '{} {}'.format(a, b)

    It’s not strictly necessary to do this, but it makes your code more modern and easier to read.

    并非必须这样做,但这会使您的代码更现代且更易于阅读。

    分叉项目 (Forking the project)

    I was pretty lucky that the maintainers of propy were welcoming the changes. However, with free software, you are not bound by the maintainers’ support. You can simply create a so-called fork: A copy of the original project which you control.

    我很幸运,维护者欢迎这些更改。 但是,使用免费软件,您不受维护人员支持的约束。 您可以简单地创建一个所谓的fork:您控制的原始项目的副本。

    Image for post
    Scipy has over 3000 forks. Screenshot of Github by Martin Thoma
    Scipy有3000多个叉子。 Martin Thoma的Github截图

    Forking happens all the time with free software. It’s also a mode of development, where independent developers make changes in their copy (their fork) and create a merge request (Github calls this a pull request (PR)).

    使用免费软件时常发生分叉。 这也是一种开发模式,其中独立开发人员在其副本(其分叉)中进行更改并创建合并请求(Github将其称为拉取请求(PR))。

    You can also upload your fork to pypi, but please only do this if you want to maintain that fork and continue the independent development.

    您也可以将fork上载到pypi,但是只有在要维护该fork并继续进行独立开发时,才可以这样做。

    元类 (Metaclasses)

    There are topics like metaclasses and exception scopes which I haven’t covered. If you need that, I recommend this tutorial by Mike Müller:

    我没有涉及诸如元类和异常范围之类的主题。 如果需要,我推荐MikeMüller撰写的本教程:

    Anders Hovmöller also wrote an interesting article about this topic. Check his “surprises in production” section!

    AndersHovmöller也写了一篇有趣的文章。 检查他的“生产中的惊喜”部分!

    TL; DR:如何从Python 2迁移到Python 3? (TL;DR: How do I move from Python 2 to Python 3?)

    1. Get a professional Python 2 setup

      获得专业的Python 2设置
    2. Move to a state where your codebase supports Python 2 and Python 3

      移至您的代码库支持Python 2和Python 3的状态
    3. Let it run for a while, make sure it works

      让它运行一段时间,确保它能正常工作
    4. Remove Python 2 support

      删除Python 2支持

    相关资源 (Related Resources)

    翻译自: https://towardsdatascience.com/how-i-moved-a-library-from-python-2-to-3-60fc2b2a21a1

    python 安卓移至

    展开全文
  • Python实现的安卓QQ5.8协议,实现了登录、注销、QQ聊天,群聊天等功能。
  • Appium+Python安卓自动化测试之启动APP和配置获取 本文章未讲述appium+python环境部署,环境部署会新开文章 一、手机连接电脑 1、USB连接电脑和手机,手机上点确认连接(最好用原装线) 2、开启手机开发者模式和...

    Appium+Python安卓自动化测试之启动APP和配置获取

    本文章未讲述appium+python环境部署,环境部署会新开文章

    一、手机连接电脑

    1、USB连接电脑和手机,手机上点确认连接(最好用原装线)

    2、开启手机开发者模式和USB调试(每种手机不一样,可百度)

    3、电脑和手机开启应用宝确认是否连接上,如下图说明已连上

    4、或cmd下adb devices确认下是否连接上,如下图说明已连上

    如果连接不上,尝试更换手机、数据线或多次重新连接或可采用无线连接(请查看博主博客)

     

    二、获取appium启动app配置信息

    1、获取'deviceName':'FJH5T18830006764',#手机唯一设备号

    确认手机已连接电脑,cmd下adb devices

    adb devices

    FJH5T18830006764        device

    2、获取'platformName':'Android',#移动设备系统IOS或Android

    是安卓手机就Android,是苹果手机就IOS

    3、获取'platformVersion':'9',#Android手机系统版本号

    设置-关于手机,找Android版本

    4、'app':'C:\\Users\\wangli\\Desktop\\kbgz-v5.7.0-release.apk',#APP文件路径

    要测试app存放的路径

    5、获取'appPackage':'com.xinrenlei.koubeigongzuo',#APP包名和'appActivity':'com.xinrenlei.koubeigongzuo.ui.setup.SplashActivity',#设置启动的Activity

    打开cmd,输入指令aapt dump badging D:\test\xxx.apk(APK的全名,如手机淘宝.apk)

    以手机淘宝.apk为例,如下图,这里就可以看到apk的包名:com.taobao.taobao

    接着上一步操作,cmd屏幕拖到中间l找到launchable-activity

    这里可以看到,淘宝的launcherActivity值为com.taobao.tao.welcome.Welcome

    三、启动appium服务

    1、双击appium打开启动页面,如果appium是在本机电脑host:127.0.0.1 port:4723

    如果非本机电脑host:所在机器ip port:4723

    2、点start Server启动appium成功,如下图

    四、代码如下:

    1、若手机已安装了app,每次启动不重新安装;偌手机未安装app,每次启动会安装app

    appium+python启动app
    
    #!/usr/bin/env python
    #_*_coding:utf-8_*_
    import time
    from appium import webdriver
    desired_caps = {						
    	'platformName':'Android',#移动设备系统IOS或Android
    	'platformVersion':'9',#Android手机系统版本号
    	'deviceName':'FJH5T18830006',#手机唯一设备号
    	'app':'C:\\Users\\wangli\\Desktop\\kbgz-v5.7.0-release.apk',#APP文件路径
    	'appPackage':'com.taobao.taobao',#APP包名
    	'appActivity':'com.taobao.taobao.ui.setup.SplashActivity',#设置启动的Activity
        'noReset':'True',#每次运行不重新安装APP
    	'unicodeKeyboard':'True', #是否使用unicode键盘输入,在输入中文字符和unicode字符时设置为true
    	'resetKeyboard':'True'#隐藏键盘
    	}
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps) #与appium-server的通信协议
    

    2、运行脚本,启动app

    展开全文
  • QPython - Python for Android 介绍QPython - Python for AndroidQPython is a script engine that runs Python on android devices. It lets your android device run Python scripts and projects. It contains ...
  • # 关于QPython OHQPython是安卓上的Python引擎,它包含一些有趣的特性,比如Python解释器,运行欢迎,编辑器和QPYPI。它让你更容易地在安卓上使用Python。并且它完全免费。QPython在全球范围内已经有了数百万的用户...
  • python手册中文版apk下载,这是一款可以学习python编程的基础知识的手册,中文讲解,通俗易懂,还有举例子,让你更好实现中文学习,每个步骤都有详细的讲解,让你随时随地学习编程,赶紧来试试吧。python手册中文版...
  • QPythonQPython是安卓上的Python引擎,它包含一些有趣的特性,比如Python解释器,运行欢迎,编辑器和QPYPI。它让你更容易地在安卓上使用Python。并且它完全免费。QPython在全球范围内已经有了数百万的用户,它也是.....
  • 至于结果 我就不知道了 2 想必大家都知道 正常安卓APP的开发 主流靠的是Java、Kotlin 而其他语言的开发可能就需要 开发框架 python就不例外 要想使用python开发 就需要使用kivy这个 开源的python开发框架 具体如何...
  • python 安卓王者荣耀刷金币

    千次阅读 2019-04-30 23:06:39
    python王者荣耀金币脚本 用python模拟按键自动刷王者荣耀冒险模式的脚本 1.在电脑上使用手游模拟器,我用的腾讯手游助手 2.王者代码中截图部分以及路劲部分自己设定,截图一定要自己截,可能我们电脑不一样像素也...
  • python手册中文版apk下载,这是一款可以学习python编程的基础知识的手册,中文讲解,通俗易懂,还有举例子,让你更好实现中文学习,每个步骤都有详细的讲解,让你随时随地学习编程,赶紧来试试吧。python手册中文版...
  • Python 安卓群控随机修改机型

    千次阅读 2018-12-22 22:12:46
    想过重新编译环境变量,对于某些Android4.0版本并不适用,运行不起来,利用adb修改 build.prop文件达到修改机型的目的效果也不错。...Python脚本 # -*- coding: utf-8 -*- import os import sys import jso...
  • 前言本人主要从事Android开发,也做过微信小程序,有时还会在Java那边客串一把(谁让Android是用的Java呢@~@),最近在自学Python,已有半月有余。因近年来,技术迭代快速,前端更是层层爆发,单纯的Android或者IOS...
  • 1.首先将monkeyrunner.bat所在的目录(sdk/tools/bin)放到环境变量path 2.在sdk/tools下面新建framework文件夹,然后将sdk/lib文件夹下面的内容复制一份到...4.编写python自动化脚本,在命令行输入 monkeyrunner X...
  • uiautomator +python+HTMLTestRunner 安卓UI自动化实现 # coding:utf-8 from uiautomator import Device import os import unittest from HTMLTestRunner import HTMLTestRunner import time d ...
  • 手机oppo reno10倍版,安卓9,安装了Unicode键盘,appium版本1.13,启动之后就会报错![图片说明](https://img-ask.csdn.net/upload/201909/24/1569307937_171811.png)
  • 文章目录 ...使用命令行执行:python manage.py runscript demotest/hello.py 注:需先进入文件目录 运行hello.py用例文件 结果展示 运行日志 用例执行
  • 学习head_first python 安卓开发那一章需要的程序android-sdk_r23.0.2-windows.zip //模拟器 PythonForAndroid_r4.apk sl4a_r4.apk 下载地址链接: http://pan.baidu.com/s/1nuzLadF 密码: 4sd8 PythonFor...
  • Python操作安卓手机

    2020-03-28 18:21:47
    Python操作安卓手机,内含代码和工具,连接手机,手机开启USB调试,将代码导入编辑器,运行即可。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,504
精华内容 1,401
关键字:

python安卓

python 订阅