很多热爱编程的学友经常会问这样的问题:如何才能学好Python?我的回答是:你的热情+经常练习。

也许你会说我没有时间啊?今天我们介绍的就是一个利用碎片化时间学习Python的利器:QPython。

这是一款能够在安卓手机上运行Python的软件,你可以在地铁上、公交车上甚至在无聊的会议上随时随地练习Python。

闲话少说,正式开始我们的内容吧!

版本介绍

QPython是一种通用叫法,其实它分为两款,分别是QPython、QPython3分别对应支持Python2和Python3。

目前QPython3的正式版本:1.0.3,支持到Python3.2.2。测试版本:1.2.0-BETA-3,这个版本具有较大的改进,Python也支持到3.6.1,增加了QPYPI(为Python3添加第三方库的QPython3工具),详情:qpython-android/qpython3

Qpython的正式版本:2.0.5(目前我在软件市场上没有找到这个版本),支持到Python2.7.12,详情:qpython-android/qpython

目前从各大软件市场上下载的QPython3的版本是:1.0.3,QPython的版本是:1.4.1。而且从实际使用上,QPython的体验比QPython3要好一些,至少从软件市场上下载QPython能够支持到Python2.7.12,而QPython3只能支持到Python3.2.2,当然作为练习也足够了。

本次的介绍是以QPython2.0.5为例(QPython3请参考),分为使用界面、安装第三方库、以及小例子。

使用界面

当我们安装完毕QPython后,我们进入软件看到是这个界面:

从这个界面上我们可以清晰的看到QPython可以实现的功能,其中主要功能包含:终端、程序编辑器、文件(从文件中读取程序)、二维码(这个绝对是神器)、QPYPI(安装第三方库)、社区、课程。

我们一一来看下。

终端

从图中我们可以看到这个Python运行的命令行界面是不是和我们在电脑上使用的很像啊,从图中我们可以看到它的Python版本是2.7.12,足够我们学习使用了啊。

同时在“+”这个位置,我们可以增加多个命令行窗口,感觉是不是很爽啊!

程序编辑器

在程序编辑器中我们写了一个简单的程序,打印出“Hello xdbcb8”。

下面我按照数字标记分别介绍一下对应的功能。

这里在提醒一下:当保存时,不要忘记增加.py,编辑器可不会帮你自动添加的。

最后我们来运行一下这个小程序。

文件

在这里我们可以选择需要运行的程序或者打开相应的项目。

二维码

为什么这是一个神器呢?我们知道在手机编辑脚本毕竟没有在电脑上方便,但是有了这个我们可以把自己的脚本制作成二维码(在线制作二维码的工具太多,这里不做介绍,请自行百度)。

一个二维码可以存储多少信息呢?

据百度百科介绍:二维码可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字。这对于普通的练习程序足够用了。

我们演示一下,代码就是每周一练中的《罗马数字转阿拉伯数字》

首先我们将代码转换成二维码,如下图:

接着我们点击QPython中的二维码按钮,扫描一下

然后我们保存一下程序

最后运行一下,如下图:

完整的操作过程如下:

QPYPI

QPython提供了一个QPypi服务,发布了几个库,你可以下载安装。当然你也可以通过pip方式安装第三方库。标记的地方可以使用手动安装第三方库。具体的操作我们将在安装第三方库那里讲解。

社区、课程

顾名思义就是提供讨论区、课程的地方了,这里不做讲解,有兴趣的话,大家可以看看。

安装第三方库

Python之所以强大,除了它语句便捷好用外,其第三方库众多是非常大的一个原因。QPython可以通过三种方式安装并使用第三方库。但是需要注意的是:如果你安装的库中有c/++文件需要编译,则会因为找不到编译链工具而失败

手动安装库

可以将库复制到设备中的/sdcard/qpython/lib/python2.7/site-packages中。

2. 从QPypi安装

从QPypi安装一些预构建的库,如numpy、tornado等。具体操作如下:

3.从Pypi安装

点击之后,您进入了pypi命令界面,它调用了pypi工具来让您自行安装,只需要输入pip命令,比如pipinstall[HTML_REMOVED]之类的语句即可安装库,不过需要注意地是,当前无法安装带有c/c++等需要编辑的文件的库,因为安卓默认没有可用于编译的工具链。

下面我以安装requests库为例操作一下:

小例子

下面的小例子均来源互联网,仅作为示例介绍。

这是一个关于欢迎的例子

import androidhelper

droid = androidhelper.Android()

respond = droid.dialogGetInput("Hello", "What is your name?")

print respond

name = respond.result

if name:

message = 'Hello,%s!' % name

else:

message = "Hey! And you're not very polite, %Username%!"

droid.makeToast(message)

先看看执行效果

这个程序的目的比较简单,就是弹出一个对话框,然后输入姓名,根据输入的姓名是否为空,给出相应的信息。我们具体解析一下。

import androidhelper

这句话很重要啊,SL4A 是支持驱动安卓特性工作的脚本库。

在QPython中它以importandroidhelper开始,是QPython里最有用的模块之一,它用Python的形式封装了几乎所有的安卓接口(是不是说可以用Python写点安卓程序?_?)。在QPython里开发的任何脚本,如果想要调用安卓的SL4A接口,都需要以这则声明开始(至少它可以和用户通信)。

顺便提一下,如果你要让你的脚本兼容其他SL4A库,你最好用下列代码替换迪一行(并且在程序里进一步使用android替代androidhelper):

try:

import androidhelper as android

except ImportError:

import android

droid = androidhelper.Android()

我们要创建一个droid对象(实际上是一个类),调用RPC函数来与安卓系统通信是很有必要的。同时,我们代码的最后一样会调用类似的方法droid.makeToast(),它将会在屏幕上显示一个弹出消息。好了,接下来,我们会添加更多的功能。让它向用户询问用户的名字并且问候他们。

respond = droid.dialogGetInput("Hello", "What is your name?")

print respond

name = respond.result

我们使用dialogGetInput调用来显示一个对话框盒子,带标题,提示,编辑区域、CANCEL和OK按钮。然后我们看看droid.dialogGetInput()返回什么东东。实际是返回了一个带有3个项目的JSON对象。我们只需要一个result,它包含了来自用户实际的输入。如下图:

if name:

message = 'Hello,%s!' % name

else:

message = "Hey! And you're not very polite, %Username%!"

这里就是一个Python的格式化输出,如果name不为空,message被赋予不同的值。

droid.makeToast(message)

在屏幕上弹出message信息。

这是一个关于调用手机摄像头扫描图书的例子

import androidhelper

droid = androidhelper.Android()

code = droid.scanBarcode()

isbn = code[1]['extras']['SCAN_RESULT']

url = "http://book.douban.com/subject_search?search_text=%s&cat=1001"%isbn

droid.startActivity("android.intent.action.VIEW",url)

先看看执行效果

这段代码就是利用豆瓣读书可以根据ISBN查询图书的原理进行图书信息的查询。

code = droid.scanBarcode()

isbn = code[1]['extras']['SCAN_RESULT']

启动条码扫描器,返回扫描到的信息:

/qpython/scanner.py" && exitResult(id=1, result={u'action': u'com.google.zxing.client.android.SCAN', u'extras': {u'SCAN_RESULT': u'9787546354835', u'SCAN_RESULT_FORMAT': u'EAN_13'}, u'flags': 524288, u'categories': None}, error=None)

然后我们取得ISBN码:9787546354835

url = "http://book.douban.com/subject_search?search_text=%s&cat=1001"%isbn

豆瓣读书在读取到我们的ISBN码后通过以下链接展示结果:

https://book.douban.com/subject_search?search_text=9787546354835&cat=1001,

如下图:

droid.startActivity("android.intent.action.VIEW",url)

开始动作,这里是通过系统默认浏览器打开相应的链接。

最后

今天的QPython我们就介绍到这里,实际上它的功能还不仅仅如此,甚至能运行WebApp,大家可以试试。如果你还要了解更多关于QPython的知识,欢迎留言给我。人气旺的的话我还会再写的。

更新的QPython软件如果在软件市场上下载不到,github上下载慢的话,可以关注微信公众号:发送qpython,得到百度云盘下载链接。

在实操中遇到问题?欢迎来讨论。

qpython androidhelper_安卓运行Python的神器:QPython相关推荐

  1. python手机版怎么用-QPython,一个在手机上运行Python的神器

    之前安利过一款手机上运行Python的神器Termux,不过Termux的使用比较重,它实际是一款linux系统模拟器,安装好Termux后还要再安装python,并且是全命令行操作,一些读者使用起来 ...

  2. qpython手机版-QPython,一个在手机上运行Python的神器

    之前安利过一款手机上运行Python的神器Termux,不过Termux的使用比较重,它实际是一款linux系统模拟器,安装好Termux后还要再安装python,并且是全命令行操作,一些读者使用起来 ...

  3. python在线编辑器手机-QPython,一个在手机上运行Python的神器

    之前安利过一款手机上运行Python的神器Termux,不过Termux的使用比较重,它实际是一款linux系统模拟器,安装好Termux后还要再安装python,并且是全命令行操作,一些读者使用起来 ...

  4. python编辑器手机版-QPython,一个在手机上运行Python的神器

    之前安利过一款手机上运行Python的神器Termux,不过Termux的使用比较重,它实际是一款linux系统模拟器,安装好Termux后还要再安装python,并且是全命令行操作,一些读者使用起来 ...

  5. django手机访问_在手机上运行Python的神器

    之前安利过一款手机上运行Python的神器Termux,不过Termux的使用比较重,它实际是一款linux系统模拟器,安装好Termux后还要再安装python,并且是全命令行操作,一些读者使用起来 ...

  6. python手机版-QPython,一个在手机上运行Python的神器

    image Qpython是一个Python引擎,只能运行在安卓系统上,相比Termux,它可以全图形界面操作,非常友好. 内置了一个Python编辑器,可以直接在手机上写Python代码,支持缩进, ...

  7. python3安卓版下载-QPython3H安卓运行Python神器

    QPython3H是专为Python语音程序员和学习者们准备的一款手机app,它集成了Python3解释器.Console控制台.QEdit编辑器和SL4A库等元素,可以直接允许用户在手机上运行简单的 ...

  8. 可视化运行Python的神器Jupyter Notebook

    文章目录 简介 Jupyter Notebook 启动notebook server notebook document 的结构 code cells markdown cells raw cells ...

  9. python怎么让py里面逐行运行_怎样在安卓上运行python

    "人生苦短,我用python" python丰富的开发库确实为广大使用者缩减了大量的开发时间.小ming没事用python跑个自动化脚本,枯燥乏味的工作就让电脑帮忙做. 怎样在安卓 ...

最新文章

  1. Qt实用技巧:使用OpenCV库的视频播放器(支持播放器操作,如暂停、恢复、停止、时间、进度条拽托等...
  2. Android真机调试打印日志的方法
  3. 资深数据产品经理陈家崑:如何从 0 到 1 构建埋点体系
  4. Linux基础-1.0共享文件夹创建
  5. C#图片处理基本应用(裁剪,缩放,清晰度,水印)
  6. Codeforces Round #277(Div 2) A、B、C、D、E题解
  7. java模块化发布选型_Java模块化开发
  8. Linux Mint外接显示器分辨率调节
  9. Visual C# 2005——超好用的DropDown与DropDownClosed事件
  10. jdk在Windows下为什么要配置环境变量(引用)
  11. mybatis一简单one2one关系xml配置
  12. bt 介绍以及 bt 种子的hash值(特征值)计算
  13. 面试官:内存耗尽后Redis会发生什么 ?
  14. unity 观察者模式
  15. LeetCode 2171. 拿出最少数目的魔法豆
  16. C#编程基础——综合项目实践:KTV点歌系统项目第九课:制作歌曲排行窗体
  17. word快捷键被占用
  18. Mac 调节鼠标移速
  19. 生如蝼蚁当立鸿鹄之志,命薄似纸应有不屈之心,乾坤未定,你我都是黑马!(祝大家飞黄腾达前程似锦)
  20. 关于网站中图片排名优化的技巧是?

热门文章

  1. 步步高s5pro和s5区别
  2. 神经网络预测结果分析,神经网络预测适用范围
  3. Java方法和数组练习
  4. Non-local:用于捕获长距离依赖关系
  5. mutual information matlab,Mutual information and Normalized Mutual information 互信息和标准化互信息...
  6. autojs 捕获异常并处理
  7. wifi7000米远程连接服务器失败,【电视派控制设备连wifi总失败 怎么办?】PjTime.COM 应用技巧 创维...
  8. 没有免费用户却飞速发展,Uber技术栈全解析!
  9. 去应用商店给app评分
  10. 一个假猪套神器:NET CAT-NC