学好Python能做什么

学好Python能做什么,第1张

近年来,Python市场火爆,从业人员薪资不断增加,选择学Python的人也在逐年增多。然而,很多人学Python只是盲目的跟随潮流,对于Python却不甚了解,学好Python能做什么?今天昌平电脑培训就来给大家介绍一下Python的就业方向。

在了解学好Python能做什么之前,我们首先要了解一下Python是什么。

Python是一种计算机程序设计语言,是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。

学好Python能做什么,你可以从事以下工作:

1、Web开发。Python可以用来做网站,而且更快捷和高效。Django和Flask等基于Python的Web框架,在Web开发中非常流行。

2、爬虫。很多初学Python的人都是使用它编写爬虫程序,通过Python入门爬虫比较简单易学,不需要在一开始掌握太多太基础太底层的知识就可以很快上手,而且很快可以做出成果,非常适合小白一开始想做出点看得见的东西的成就感。

3、桌面程序。Python中包含很多UI库,你可以很方便地完成一个GUI程序。Python实现GUI的实例也不少,比如Dropbox,就是Python实现的服务器端和客户端程序。

4、人工智能(AI)与机器学习。现在释放出来的几个非常有影响力的AI框架,大多是Python的实现,因为Python足够动态、具有足够性能。比如基于Python的深度学习库、深度学习方向、机器学习方向、自然语言处理方向的一些网站基本都是通过Python来实现的。

可以

0、前言

有不少初学者会问,Python 写的程序看起来好丑啊,只能在那个黑黑的框里运行吗?隔壁家的 JS 好像挺好看的,还能有酷炫效果呢……

其实呢,术业有专攻,Python 擅长的领域在后台服务器、数据处理、科学计算等方面,以及作为一种工具,搞定各种可以自动化的事情。做界面并不是它的优势项目。但即便如此,本可以靠实力的 Python,偏偏也能靠脸走出一片天。

从诞生伊始,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI 工具集,使得 Python 也可以在图形界面编程领域当中大展身手。而由于 Python 的流行,也从而产生了许多由 Python 结合那些优秀的 GUI 工具集编写的应用程序。

今天我们简单分享一些 Python 的图形化界面库及其相关资源,供广大学习者参考。

本文涉及的,也是现今主流的 Python 图形化界面主要有以下几种:

Tkinter

PyQt

wxPython

PyGTK

PySide

Kivy

1、Tkinter

Tkinter 内置于 Python。没错,Tkinter 姓赵。是与 Tk/Tcl 关系最密切的图形库,历史悠久、用户广泛。跨平台运行,支持 windows/macOS/Linux。由于内置,就不用考虑 Python 版本问题了,也算是一大优势。

下面是一些 demo:

Python发邮件实例,并用Tkinter实现UI - 推酷

用 Tkinter 编写交互日记系统

Tkinter 学习资源:

Python GUI编程(Tkinter) - 中文教程易佰

Introduction to Tkinter - 英文教程zetcode

官方文档 py2

官方文档 py3

基于Tkinter的姻缘测试器

2、PyQt

PyQt 是 Qt 的 Python 版本,Qt 库是最强大的 GUI 库之一,PyQt 有超过620个类以及6000种函数。我想数据已经能表现PyQt的强大了吧!该库适用于 Python2 和 Python3,能在所有桌面平台运行。

demo:

某大神的仿虾米音乐界面

某大神的仿网易云播放器

学习资源:

官方文档

pyqt4 中文文档

pyqt4 英文教程

pyqt5 英文教程

有哪些颜值高的 PyQt/Qt 应用?- 知乎

基于PyQt或PySide开发图形化界面

3、wxPython

wxPython 使用 C++ 编写,是目前比较流行的替代 Tkinter 的图形界面,比 Tkinter 重但又比 PyQt 轻。官网上赫然挂着醒目的一句话:

Why the hell hasn't wxPython become the standard GUI for Python yet

wxPython 在主流的三大桌面平台都有不错的表现,但目前仅支持 Python2,Python3 需安装 wxPython_phoenix。

demo:

一个简单的记事本软件

python+wxpython 写的音乐播放器

学习资源:

英文教程

官方教程

wxpython in action

github: ubbn/wxPython

github: wxWidgets/wxPython

4、PyGTK

PyGTK 基于 GTK+ 开发,它提供了一套全面的图形元素创建桌面程序。易用、适合快速原型,许多 Gnome 下的著名应用程序的 GUI 都是使用 PyGTK 实现的,比如 BitTorrent、GIMP

和 Gedit。跨桌面平台,但只能在 Python2 上使用,另外该库最后更新日期是 2012 年。

demo:

PyGTK 做的 Linux Server 管理毕业设计

学习资源:

英文教程

官方文档

github: majorsilence/pygtknotebook

5、PySide

基于 Qt 框架,类似于 PyQt。在 2009 年由 NOKIA 发布,现在由 Riverbank Computing 维护。跨桌面平台,甚至支持 Android 和 Symbian 。PySide 有 15 个模块,这些模块提供了强大的工具来处理 GUI,多媒体,XML 文档,网络或数据库。

demo:

python版d幕姬

学习资源:

英文教程

Intro to PySide/PyQt: Basic Widgets and Hello, World! - Python Central

官方教程

PySide图形界面开发(一) - bamb00 - 博客园

PySide--Python图形化界面入门教程(一) - ASCII0x03 - 博客园

github: pyside/Examples

github: shuge/Qt-Python-Binding-Examples

6、Kivy

Kivy 于 2011 年发布,现在依然在不断更新。它最大的优点是不但可以在桌面平台上运行,还可以在移动设备上运行,包括 Android、iOS,甚至是树莓派。而且,Kivy 可以看作许多模块的超集:许多知名的模块如 PyGame、SDL、GStreamer 都是 Kivy 的组成部分。Kivy 的 API更加高级、统一,方便使用。

游戏 Deflectouch

目前,最优的选择有四个:

1如果只在win下使用,net form是不二选择,可谓是又快又好,企业应用或定制开发都是相当好的,初学者也可以入手。

2electron,跨平台。需要会前端,必须熟悉js、css和html。属于前端人员大杀器,如果是初学者,需要一下子学三样东西,再加上electron的进程间通信,可能会被搞懵。

3 qt5,可以使用qml(js语法)进行UI编程,但是需要懂c艹,但是写软件相当快,还可以写安卓、ios、Linux、嵌入式中的应用。

4flutter,刚刚正式支持win平台的软件开发。谷歌出的这个东西,适合没有基础的初学者,因为是一个全新的体系,全新的语言,写ios、安卓非常高效,之后还会兼容h5。如果是初学者可以跟着走,值得尝试。但是新东西总有一些坑。

正式项目跨平台建议electron或qt,只用win平台强烈建议微软自己的net。个人技术尝试建议flutter。

桌面端开发跨平台的,如果你是轻量级的项目,那么我推荐你用electron, 目前使用Electron来开发的桌面应用非常多,我们最熟悉的比如Atom,VScode等等。

而且在github上也能找到许多应用使用了electron。

electron是Node,Chromium,html,css,js的结合框架,这就需要你有一定的前端基础。其实只需要了解一下electron的API就行了,其他的就像你在做web是一样的。

这种方式最大的缺点就是性能,还有透明窗口也有问题。所以在做需要性能方面占有很大成分的项目时,并不推荐使用这个方式。

那么其他的,就是最近几年使用比较多的windows directui框架,但它不是跨平台的。

那么就引出了qt,作为c++跨平台的界面框架,这个上手的话,我觉得对一般人是有难度的,因为首先需要扎实的c++功底,其次你要熟悉控件的制作原理,因为有时候你需要定制自己的UI控件。它现在在嵌入式,军工领域非常受欢迎。但是整个库非常臃肿庞大,而且开发界面的效率也非常低。如果来做互联网项目,迭代更新的速度根本就跟不上。

目前都只有大公司会采用,像maya这种生产力型的应用很多是qt做的。

还有一种是直接使用Cef加js,比如网易云音乐,就是这么搞的,但是很多和系统平台的交互接口你需要重写,等于是需要自己造轮子。工作量大,目前没有适合的框架给你套用,也需要扎实的c++功底。

其实pc端的应用基本也就windows会火一些,再加一个macos,那么选择qt应该会很好一点,毕竟你自己造一个跨平台的框架,太费时。总之,做跨平台就意味着,不可能做到既有效率又完美的实现各种功能,许多都要自己摸索。

win桌面端直接上visual studio啊!然后你熟悉什么语言?vbnet,c#,c++都有相应的win桌面工具。直接用就好了,非常好用

编程语言这种东西无所谓,只要能用啥都可以。 主要看你老板需要和你会用什么语言。

比如 我用AS编安卓程序,当然用JAVA。不过我后台最开始用ASP和ASPNET来做,现在换PHP了。桌面端用QT或者VB做。 涉及单片机部分控制也用C。

现在做跨平台的了 开始以QT为主了。

只要能达到目的啥都可以。

学会1-2种 换其他的也不是很难。

对初学者来建议学C起步吧。

精通一门,重新学个语言入门也就1个月的事。

PC桌面程序,如果简单一点的,用pyqt5+python的开发难度和周期都比较现实一点

会C++ 用Qt5 非常不错 写代码效率很高

会js 用atom使用的那个框架

会Python用PyQt 写代码很快

会java用JavaFX

看语言咯

还可以用delphi,其firemonkey框架发布8年时间,支持跨平台:win,安卓,ios,macos,linux,后续支持webassembly,界面是控件拖拽布局所见即所得,开发效率较高。编译生成的是机器码,编译速度快,调试方便,其生成机器码运行效率较高,支持x86,arm的32位64位处理器。支持跨平台3D界面,蓝牙通讯,定位,重力,摄像等,支持多种SQL,NoSQL数据库。单个开发工具实现前后端开发,跨平台开发。适合个人和小公司用一套工具实现大部分开发需求。

主要有以下几种技术

### Duilib

#### 简述

Duilib是在Windows平台上使用最广泛的类库,使用C++和XML混合编程,国内很多计算机企业都喜欢使用这个类库,可能是由于他的技术许可比较宽泛的原因。

适合于界面比较简单的软件,视觉特效丰富,局限于Windows的平台。例子:360电脑管家。

#### 优势

#### 劣势

### Gtk、Qt或WxWidget:

#### 简述

三种基本可以做到跨平台的技术,使用C/C++开发,使用者广泛。其中WxWidget使用了API嫁接方式,Qt和Gtk(包括各种绑定技术)使用自绘技术。

结构严谨,软件可以做的很大很复杂。例子:WPS和Maya。

#### 优势

#### 劣势

### Electron:

#### 简介

使用Web技术开发桌面软件,基于Chromium(Chrome)引擎,使用JS编程语言,绝大多数使用者都是原来的网页开发者。

绝大多数都是爱好者使用,处于“勉强可用”的地步。

适合大面积静态展示型软件使用。例子:网易云音乐。

#### 优势

#### 劣势

### QtQuick(QML)

#### 简述

Qt公司开发的一款基于OpenGL的图形类库,有显卡加速,类似于Duilib。采用了C++与QML混合编程。QML类似于JavaScript语言。

QtQuick下一个版本在Qt 6上更加强大,业界期待已久。

#### 优势

#### 劣势

### Atk、Swing或JavaFX

使用Java语言开发软件,有JDK加持业界积累的众多Java类库支持。有不输于VS的IDEA加持,本应该更棒,只是现在已经式微了。

绝大多数使用者都是企业开发(不追求界面美观)、爱好者(开发顺手)。

### WinForm、WPF或Xamarin:

使用C#开发,WinForm和WPF局限于Windows平台。有VisualStudio加持使用很爽。

### Flutter:

使用Dart语言,新类库,bug可能会很多。

### SwiftUI或Cocoa:

苹果平台原生界面技术,macOS平台内建支持,不是macOS专用软件不推荐。

### Win32:

经典Windows 平台API,绝大多数只有一些老软件还在使用,不是维护老软件不推荐。

winform,不二选择

webview2,作为一个浏览器控件嵌入在桌面应用中,支持net core和net framework

前言:用Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般),那么久Google了一下Python写安卓的APP的可能性,还真行。

既然要写个APP,那么总得要有个想法吧。 

其实笔者想做两个APP来着,一个是自己写着好玩的,一个是关于运维的。 

关于运维的APP,设计应该如下 

可能长这样:

然后设计应该是这样:

如果觉得可行的话,评论留言一下你觉得应该写进这个APP的运维常用命令吧^_^,笔者暂时想到的是top,free -m,df –h,uptime,iftop,iotop,如果有什么好的想法就狠狠的砸过来吧,笔者到时应该也会把这个写成一个项目放到github上,大家一起用嘛,开源才是王道,哈哈。

好吧,进入正题。 

我们使用kivy开发安卓APP,Kivy是一套专门用于跨平台快速应用开发的开源框架,使用Python和Cython编写,对于多点触控有着非常良好的支持,不仅能让开发者快速完成简洁的交互原型设计,还支持代码重用和部署,绝对是一款颇让人惊艳的NUI框架。 

因为跨平台的,所以只写一遍代码,就可以同时生成安卓及IOS的APP,很酷吧。 

本文会带大家写一个Hello world并瞧一瞧Python版的2048的代码

kivy安装 

环境说明:笔者在用的是Python2710 

这里仅介绍windows平台安装 

更新pip,setuptools

python -m pip install --upgrade pip wheel setuptools12

然后是安装所需要的依赖

python -m pip install docutils pygmentspypiwin32 kivydepssdl2 kivydepsglew \

kivydepsgstreamer --extra-index-url ple/123

值得注意的是,上面的安卓需要访问Google,所以请自备梯子,而且kivydepsgstreamer这个包比较大(95MB),可以单独本地安装,h

然后就是安装kivy了

python -m pip install kivy12

至此,安装就已经完毕了,值得注意的是64位系统没有开启虚拟化支持,在导入kivy的时候会报错,如果是64位系统就设置一下机器的BIOS,开启虚拟化支持吧。 

注:这里只是kivy的运行环境,这样我就能直接在windows机器上直接调试了,怎么将代码编译成APK文件我们会在后面讲到。

如果kivy在python中应该就能导入了。

按照世界惯例,我们”hello”一下吧。 

新建一个py文件

from kivyapp import App

from kivyuixbutton importButton

class TestApp(App):

def build(self):

return Button(text='Hello,kivy')

TestApp()run()123456789

运行:

然后会d出一个框,大概如下,点击”hello,kivy”会变颜色

点击窗口并按“F1”会这个窗口的一些属性

然后我们回过头看一看代码。

##导入App,然后让TestApp这个类继承

from kivyapp import App

##导入一个Button,运维有这个button,当你点击的时候才会有所反应

from kivyuixbutton importButton

###定义类,名字必须是xxxApp

class TestApp(App):

###build一个Button

def build(self):

###返回一个Button,文字内容是“Hello,kivy”

return Button(text='Hello,kivy')

##运行,因为继承了App,所以才有的run这个方法

TestApp()run()123456789101112131415

上面就是我们的Hello了 

在windows上运行当然没有什么太大的意义,怎么在安卓手机上运行才是我们想要的, 

这时我们需要一个编译环境。 

官方说明的环境,如下:

You’ll need:

A     linux computer or a virtual machine

Java

Python     27 (not 26)

Jinja2     (python module)

Apache     ant

Android     SDK12345678

虽然官方提供了一个似乎还不错的虚拟机镜像,但是还是有很多内容需要翻出去,所以笔者在

当然你也可以下载官方镜像,因为第一次编译需要去国外下一大堆东西,所以请自备梯子。

Virtual Machine 

A Virtual Machine with Android SDK and NDK and all otherpre-requisites pre installed to ease apk generation: 

Kivy Buildozer VM 

Or select the Torrent

在笔者提供的镜像里,桌面上有一个dev_and,只要将上面写的代码,放入这个文件夹即可(当然也可以在其他目录,后面会讲到)。

cd Desktop/dev_and/12

初始化会在当前目录生成一个buildozerspec文件 用于配置生成的apk相关信息

buildozer init12

修改buildozerspec文件

vi buildozerspec12

至少修改下面三项

# (str) Title of your application

title = helloworld

# (str) Package name

packagename = helloapp

# (str) Package domain (needed for android/ios packaging)

packagedomain = youercom123456789

然后注释

# (str) Application versioning (method 1)

#versionregex = __version__ = ['"]()['"]

#versionfilename = %(sourcedir)s/mainpy

下面这行改为非注释

version = 120123456

最后我们生成我们需要的apk文件

buildozer -v android debug12

buildozer命令会在当前文件夹创建一个bin,该文件夹里面有我们想要的apk文件

helloapp-120-debugapk

安装以后应该是这样

话说在编译的时候可能出现空间不足的情况,根据虚拟机的不同(vmware或virtualbox)自行扩容吧。

最后我们来瞧瞧简易版Python开发的2048这个游戏的源代码。 

先看效果图

试玩了一下,还是蛮流畅的,有兴趣的可以下载玩一下 

这个游戏代码虽然不长,但是还是蛮占篇幅的,所以简要的说明一下流程:

主要由三部分组成,一是素材,音频之类的文件,二是Python代码,三是kv文件,这个kv文件有点像html中的css。 

Python代码的文件名一般命名为mainpy 

然后一定有一个叫做XXXApp的类,并继承App。 

比如该类叫做GameApp,那么该目录下的kv文件则必须为Game,如上图所示,如果不是,那么kv文件中的一些设定就不会生效。 

比如设定一个标签

Label:

id: time

text: 'xxxx'

font_size: 6012345

id为time,text文本内容为’xxxx’,然后字体为60 

好吧,点到为止吧,不过似乎什么都没点到~~~

从无到有做一个App,我想我会另起一篇文章吧。

python可以做:

1、Web开发;

2、数据科学研究;

3、网络爬虫;

4、嵌入式应用开发;

5、游戏开发;

6、桌面应用开发。python是一种动态的、面向对象的脚本语言,有着简单易学、速度快、易于维护等特点。

python语言的特点

1、简单易学

2、速度快:Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。

3、可移植性

4、可嵌入

5、易于维护

6、互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。

以上就是关于学好Python能做什么全部的内容,包括:学好Python能做什么、python开发的gui漂亮吗、桌面端开发都用什么语言,简单分析下这些语言的优劣势对比等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9348012.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存