
版本:v8.22 安卓版
类别:系统工具
大小:73.0M
时间:2026-06-05 15:01
星级:
平台:Android
授权:免费软件
官网:https://github.com/topics/pydroid3
厂商:IIEC
python3.0安装包即Pydroid3无需联网即可启用Python3解释器运行代,这是一款编程行业认识们都在力推的工具,无需网络即可轻松学习各种计算编程知识,让大家不用系统性的学习仅仅依靠碎片化的时间就能够轻松掌握。

python3内置海量实战案例,搭载丰富的入门编程示例代码,零基础用户可直接参考学习、修改实操,搭配完整终端仿真工具,一站式满足练习、调试、学习需求,大幅降低Python入门门槛。点d

Pydroid3有一个悬浮条,把常用的tab、(、)、[、]等符号都放在上面了,这要比在手机输入法里找方便了很多。
不知道为什么,在Pydroid3上输入代码的时候,小米10手机会自动启动小米安全输入法。
这个小米安全输入法是不能输入中文的,这下把我喜欢用中文变量的毛病彻底治好了。
而且我发现粘贴到Pydroid3中的代码中文注释,也变成乱码了。
不过这些都是小问题,毕竟在手机上写代码只是偶尔为之,我只是不想半夜爬起来开电脑。
把代码发给豆包之类的AI大模型运行更加方便,不过我不是完全相信AI说的,更加相信原汁原味的运行结果。
纸上得来终觉浅,绝知此事要躬行。
闲话讲完,咱们接着刷力扣算法题。
82.删除排序链表中的重复元素II;
给定一个已排序的链表的头head,删除原始链表中所有重复数字的节点,只留下不同的数字。返回已排序的链表。
示例1:
输入:head=[1,2,3,3,4,4,5];
输出:[1,2,5];
示例2:
输入:head=[1,1,1,2,3];
输出:[2,3];
提示:
链表中节点数目在范围[0,300]内;
-100<=Node.val<=100;
题目数据保证链表已经按升序排列;
我的思路;
在这道题之前,我已经"做"了两道链表相关算法题了。
之所以给做打引号,是因为我都没做出来,最后看了答案。
我们先复习下链表的概念,题目里的链表是单链表。
单链表每个节点都包含两个部分,一个是节点值,一个是节点指针,节点指针指向下一个节点。
python中没有链表的概念,不过可以通过构建一个链表类来实现。
具体代码在力扣的代码注释中已经给出了。

这里的val就是节点值(value的缩写),next就是节点指针,Node就是节点的意思。
在Python中,__init__是一个特殊的方法(也称为构造方法),用于在创建类的实例时初始化对象的属性。
当你创建一个类的新实例时,Python会自动调用这个方法。
所以这里可以直接用ListNode类创建一个链表实例。
例如,创建一个包含1->1->2的链表:
head=ListNode(1,ListNode(1,ListNode(2)))
如果直接print(head),并不会像列表一样打印出结果,打印出来的是类似内存地址的东东。
咱们说回解题思路,我看到这道题的第一时间就想到很多解法,可惜都和链表无关。
比如新建一个列表,把重复出现的数字都存进去,再把排序结果中出现的这些数字都删除。
这是把链表当列表来理解了。
如果要用链表思路来解这道题,就要理解指针的概念。
我的想法是先输入一个简单的例子,比如刚刚说的[1,1,2],如果可以输出[2],再考虑代码的普适性。
为了更加形象一点,可以这样表示链表。
head=1->1->2->None;
最终的输出结果为2->None;
head是这个链表的头节点,节点值为1,节点指针指向下一个节点。
下一个节点的值也是1,按照题目要求需要将重复值删除。
如果不借助其他变量,只是改变head的指针指向,是无论如何都无法删除head自身的。
我的方法是在head前面增加一个虚拟节点,然后判断下一个节点值和下下一个节点值是否相同。
如果相同,将这个重复节点值存入一个变量。
用这个变量做判断,让虚拟节点的指针跳过所有重复值节点。
到这里已经可以输出结果2->None了。
可是如果输入的链表是head=1->2->2->None,怎么办呢?
创建一个变量指针指向虚拟节点,如果下一个节点值和下下一个节点值不相等,让变量指针指向下一个节点。

其中dummy就是虚拟节点,我看网上一般叫做哑节点或者哨兵节点。
之所以dummy的节点值是-101,是因为我看到题目中节点值的范围是-100<=Node.val<=100。
-101与节点值范围不重复。
不过代码写完我才发现dummy的节点值并没有参与任何计算和判断,也就是说dummy的节点值是多少并不影响代码输出结果。
难怪叫它哑节点。
current=dummy,current是指向dummy节点的变量指针。
current=current.next,代表节点从当前节点移动到下一个节点,对链表本身不会产生任何影响。
current.next=current.next.next,代表将当前节点的指针跳过下一个节点,指向下下一个节点,对链表本身会产生切切实实的改变。
我写出的第一版代码,运行时遇到了空指针bug。
比如whilecurrent.next.val==dups:
如果current.next是None,自然就没有节点值val了,所以会报错。
需要修改为whilecurrent.nextandcurrent.next.val==dups:
先判断current.next的布尔值,None的布尔值为False。
这里比较有趣的地方是and的短路特性,可以帮助我们避开很多特殊情况。
简单总结短路特性,and遇假则停,并返回该假值;or遇真则停,并返回该真值。这两种情况均会跳过后续判断,是通用逻辑优化。
如果head是空值,current.next为None,while代码部分不会执行,直接返回dummy.next。
如果head只有一个节点,current.next.next为None,while代码部分同样不会执行,直接返回dummy.next。
代码最后要返回dummy.next,而不是head,是因为如果输入的head=1->1->2->None,因为节点值重复,head节点会被跳过,所以不能返回head。
当我发现代码具有普适性的时候,就在力扣上提交了,果然通过了。
力扣给出的时间复杂度是O(N),空间复杂度O(1)。
这还是我第一次用自己的思路做出链表题,好激动呀:)

标准答案来自力扣官方,思路跟我的基本一样。这里就不赘述了。
不过遗憾的是,不管是我的代码,还是官方的代码,都只能在力扣网站运行。
可以独立运行在本地的代码应该如何写呢?


这里增加了两个函数,list_to_linkedlist可以将输入的列表转换为链表,print_linked_list可以将输出的链表再转换为列表打印出来。
这两个函数都是找豆包问的,对我解题也有启发,比如那个虚拟节点dummy。
安装好PyDroid后,打开APP,会自动安装Python3,稍等一下,就可以测试python是否正常工作。

在中间输入框输入测试代码:print(Hello World);
注意括号()和双引号要使用英文输入法下面标点符号来输入,不然会报错,
以后再手机上Code的时候也要注意这点。
输入代码完成后,点击右下角的黄色按钮就可以运行,如果无误的话会有Hello World的输出;

2.使用python;
可以写python程序了;

点右上文件夹样的图标,选择保存,就可以讲源文件保存到手机内存里了。然后点右下角的那个三角形按钮就可以运行程序了。有简单的编辑功能,但自然比不上PC里的IDE啦。

现在再来看看左上那个菜单里的选项;

第一个是python命令行解释器,可以交互式运行python程序。

点左上的白色箭头或者输入exit()就返回了。
第二项是打开一个linux终端;

示例里有很多范例程序,甚至还能写安卓界面程序,这个大家感兴趣可以自行尝试。

最后再来看看作图,先写一个绘图程序。

运行;

并没有图像出现。我想到一个变通的方法:把图象保存到文件里再手动打开。

再运行,手机内存里就多了个hello.png的文件,打开;

4.依赖库安装
点击右上角会显示更多菜单,选择Pip选项,可以在QUICK INSTALL找到常用的库,点击INSTALL就可以安装了,安装的时候要稍等一下(速度的确比较慢,大家需要耐心等待下),等提示安装完成时再退出界面。
首先可以先安装常用的包:numpy,pandas,cython,scipy。

特征:
-离线Python3解释器:运行Python程序不需要互联网。
-Pip包管理器和用于增强科学库的预构建轮包的自定义存储库,例如numpy、scipy、matplotlib、scikit-learn和jupyter。
-OpenCV现已可用(在支持Camera2API的设备上)。*
-TensorFlow和PyTorch也可用。*
-开箱即用的示例可加快学习速度。
-对GUI的完整Tkinter支持。
-全功能终端仿真器,具有readline支持(在pip中提供)。
-专门为Pydroid3设计的内置C、C++甚至Fortran编译器。它允许Pydroid3从pip构建任何库,即使它使用本机代码。您还可以从命令行构建和安装依赖项。
-Cython支持。
-带断点和监视的PDB调试器。
-Kivy图形库具有闪亮的新SDL2后端。
-快速安装存储库中提供PySide6支持以及matplotlibPySide6支持,无需额外代码。
-快速安装存储库中提供MatplotlibKivy支持。
-pygame2支持。
编辑器特点:
-代码预测、自动缩进和实时代码分析,就像在任何真实的IDE中一样。*
-扩展键盘栏,包含用Python编程所需的所有符号。
-语法突出显示和主题。
-标签。
-通过交互式赋值/定义跳转增强了代码导航。
-在Pastebin上一键分享。
*标有星号的功能仅在高级版本中可用。
快速手册。
Pydroid3需要至少250MB的可用内存。建议300MB+。如果您使用scipy等重型库,则需要更多。
要运行调试,请单击行号放置断点。
Kivy通过“importkivy”、“fromkivy”或“#Pydroidrunkivy”进行检测。
使用“importPySide6”、“fromPySide6”或“#Pydroidrunqt”检测PySide6。
sdl2、tkinter和pygame也是如此。
有一个特殊的模式“#Pydroid运行终端”来确保你的程序在终端模式下运行(这对于自动在GUI模式下运行的matplotlib很有用)
这些库非常难以移植,因此我们不得不请另一位开发人员来做到这一点。根据协议,他的这些库的分支仅提供给高级用户。如果您想开发这些库的免费分支-请联系我们。
通过向我们报告错误或提供功能请求来参与Pydroid3的开发。我们对此表示赞赏。
由于Pydroid3的主要目标是帮助用户学习Python3编程语言,因此我们的首要任务是移植科学库(因此只有当系统相关的库用作其他教育包的依赖项时才会移植)。
1.Python 3是Python 2的全面重构版本,print变为函数,除法自动得浮点数,语法不再向下兼容。
2.字符串默认采用Unicode,彻底解决中文与emoji等字符处理困扰,不再存在编码混乱。
3.Python 2已于2020年正式停止维护,所有主流库均已停止支持,Python 3是唯一活跃的版本线。
python3不再区分整数和长整数,统一为?
1.统一为int类型,无需在长数字后加L后缀,可自动处理任意精度的整数。
2.内存根据数值大小动态分配,运算时无需关心溢出,代码书写更一致简洁。
3.直接执行type(10**100)将显示<class 'int'>,不再有long类型出现。
1.当下最推荐Python 3.12,已发布两年多,第三方库兼容性极佳,生产环境首选。
2.Python 3.13也渐趋稳定,引入无GIL实验等新特性,适合尝鲜与性能敏感场景。
3.最新3.14虽提升显著,但部分库适配仍需时间,生产环境保守用户建议暂用3.12最稳妥。

谷歌服务框架(GMS)下载安装官方正版v26.18.61 (260400-914183794) 安卓版
系统工具 / 304.2M / 2026-05-14
scene最新版下载v9.3.1 安卓版
系统工具 / 7.2M / 2026-06-03
Gspace安卓版(华为装google play服务)v2.3.3最新版
系统工具 / 14.7M / 2026-02-06
poipiku汉化官方版下载v232 安卓最新版
系统工具 / 6.2M / 2026-05-27
PortalDev定位系统官方版下载v2.0.6.r86.8ed0978 安卓版
系统工具 / 43.2M / 2026-06-02
iScreen桌面小组件appv2.2.53 安卓最新免费版
系统工具 / 162.8M / 2026-06-02
Hunter环境检测app最新版下载v6.58 安卓版
系统工具 / 12.0M / 2026-04-01
灵动岛Pro解锁版vip版下载v6.0 安卓版
系统工具 / 89.2M / 2026-05-19
灵动岛pro5.3官方下载v5.3 安卓版
系统工具 / 54.3M / 2026-04-26
谷歌商店下载Google play商店官方正版2026最新版v51.5.24-31 安卓版
系统工具 / 95.6M / 2026-05-26
全部评论