python基础实践 -python是一门动态解释性的强类型定义语言
python是一门动态解释性的强类型定义语言
Python能做什么?
Python是一门综合性的语言,你几乎能在计算机上通过Python做任何事情,以下是Python应该最广泛的几个方面:
1.网络应用:包括web网站 、服务器后台服务等,在这方面Python有优秀的web框架如Django\Tornado\Flask等,网络服务框架有著名的Twisted,异步通信有牛X的eventlet.
2.科学运算:随着NumPy、SciPy、matplotlib、ETS等众多程序库的开发,Python越来越适合于做科学计算。与科学计算领域最流行的商业软件MATLAB相比,Python是一门真正的通用程序设计语言,比MATLAB所采用的脚本语言的应用范围更广泛,有更多程序库的支持,适用于Windows和Linux等多种平台,完全免费并且开放源码。虽然MATLAB中的某些高级功能目前还无法替代,但是对于基础性、前瞻性的科研工作和应用系统的开发,完全可以用Python来完成。
3.GUI程序:python提供了多个图形开发界面的库,包括PyQt,WxPython,自带的有Tkinter,这些库允许Python程序员很方便的创建完整的、功能健全的GUI用户界面。
4.系统管理工具:Python可以是做运维人员最喜欢用的语言了,可以用它来轻松的开发自动化管理工具、监控程序等,事实上现在很多开源软件也都是用Python开发的,如用于IT配置管理的SaltStack\Ansible, 做虚拟化的OpenStack,做备份用的Bacula等。
5.其它程序:你知道吗?Python 用来写爬虫也是很拿手的,还有做游戏,之前看社区里有个哥们花了不到300行代码就实现了《愤怒的小鸟》的游戏,还可以用来做嵌入式开发、做驱动程序等,总之,Python能做的事情还是非常多的,好好学吧,很快你就会fall in love with this great language!
先看优点
Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
再看缺点:
速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运一个程序花了0.1s,用Python是0.01s,这样C语言直接比Python快了10s,算是非常夸张了,但是你是无法直接通过肉眼感知的,因为一个正常人所能感知的时间最小单位是0.15-0.4s左右,哈哈。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。
代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。
线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。
一、首先先推荐一个教程
8天深入理解python教程:http://pan.baidu.com/s/1kVNmOar
主要讲解,python开发环境的构建,基础的数据类型,字符串如何处理等简单的入门级教程。
二、第二个教程,是系统的基础知识,学习周期大概一个月左右的时间,根据自己的学习能力吸收能力来定。 初学者只要跟着此套教程学习,入门完全没有问题。
学完后可掌握的核心能力
1、掌握基本的Linux系统操作;
2、掌握Python基础编程语法;
3、建立起编程思维和面向对象思想;
可解决的现实问题:
字符串排序,切割,逆置;猜数字、飞机大战游戏;
市场价值:
具备编程思维,掌握Python基本语法,能开发出一些小游戏
所涉及知识点:
wKiom1lxtjaB9xEFAAHc9J602tk084.jpg-wh_50
教程地址:http://pan.baidu.com/s/1i5mfB4D
python基础实践 -python是一门动态解释性的强类型定义语言的更多相关文章
- Python基础之Python语言类型
编程语言主要从以下几个角度进行分类: 编译型和解释型 静态语言和动态语言 强类型定义语言和弱类型定义语言 编译和解释的区别是什么? 编译器把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样 ...
- Python基础之Python分类
python环境 编译型: 一次性将所有程序编译成二级制文件,开发效率极低,因为一旦出现BUG所有的程序需要全部重新编译 缺点: 开发效率低,不能跨平台 优点: 执行速度快 解释型: 当程序执行时,一 ...
- python基础(1):python介绍、python发展史
1. python介绍 1.1 python是什么样的语言 编程语⾔主要从以下⼏个⻆度为进⾏分类,编译型和解释型.静态语⾔和动态语⾔.强类型定义语⾔和弱类型定义语⾔,我们先看编译型语⾔和解释型语⾔.稍 ...
- 二十一. Python基础(21)--Python基础(21)
二十一. Python基础(21)--Python基础(21) 1 ● 类的命名空间 #对于类的静态属性: #类.属性: 调用的就是类中的属性 #对象.属性: 先从自己的内存空间里找名 ...
- python基础实践(一)
-*-纸上得来终觉浅,绝知此事要恭行.-*-# -*- coding:utf-8 -*-# Author:sweeping-monkname = "什么是字符串?"What_is_ ...
- python基础-初识Python和不同语言之间的区别
一.Python的创始人谁? Python之父:吉多·范罗苏姆GuidovanRossum 吉多·范罗苏姆是一名荷兰计算机程序员,他作为Python程序设计语言的作者而为人们熟知.在Python社区, ...
- Python基础 初识Python
机器码 机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据. 通常意义上来理解的话,机器码就是计算机可以直接执行,并且执 ...
- python基础1 ---python简介
python基础 一.python前言 1.什么是编程语言 编程语言是程序员与计算机之间沟通的介质. 2.编程语言的分类 机器语言:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集 ...
- Python基础-1 python由来 Python安装入门 注释 pyc文件 python变量 获取用户输入 流程控制if while
1.Python由来 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚 ...
随机推荐
- mybatis源码解析2---SqlSessionFactoryBuilder、SqlSessionFactory解析
1.先看一个mybatis最简单的Demo String resource = "mybatis-config.xml"; //1.流形式读取mybatis配置文件 InputSt ...
- Linux基础命令---添加用户useradd
useradd 创建新的系统用户,useradd指令只能以管理员的身份运行,创建的用户都在“/etc/passwd”文件中.当不加-D参数,useradd指令使用命令列来指定新帐号的设定值and使用系 ...
- Linux基础命令---chfn
chfn chfn指令可以改变通过finger指令查看到的信息.此信息存储在/etc/passwd文件中,并由Finger程序显示.LinuxFinger命令将显示可由chfn更改的四条信息:您的真名 ...
- linux系统电视盒子到底是什么
经常看到各种大神说今天刷了什么linux系统可以干嘛干嘛了,刷了乌班图可以干嘛干嘛了,但是身为一个小白,对这种名词都是一知半解.所以这边给大家科普一下,什么是linux系统?电视盒子刷了这个可以干啥? ...
- 案例:Redis在唯品会的大规模应用
目前在唯品会主要负责redis/hbase的运维和开发支持工作,也参与工具开发工作,本文是在Redis中国用户组给大家分享redis cluster的生产实践. 分享大纲 本次分享内容如下: 1.生产 ...
- 报文、http、https的理解
一.何为报文? 报文是网络中交换与传输的数据单位,即站点一次性要发送的数据块.报文包含了将要发送的完整的数据信息,其长短不一致,长度不限且可变. 二.报文的作用 报文多是多个系统之间需 ...
- 使用Ajax出现302 Moved Temporarily
现象:在用ajax发送请求时,各种参数都对,地址也对,一直进error返回parse error. 使用浏览器发现ajax请求的header的响应码处:302 Moved Temporarily 百度 ...
- Golang错误处理函数defer、panic、recover、errors.New介绍
在默认情况下,当发生错误(panic)后,程序就会终止运行 如果发生错误后,可以捕获错误,并通知管理人员(邮件或者短信),程序还可以继续运行,这当然无可厚非 errors.New("错误信息 ...
- P3203 [HNOI2010]弹飞绵羊(LCT)
P3203 [HNOI2010]弹飞绵羊 LCT板子 用一个$p[i]$数组维护每个点指向的下个点. 每次修改时cut*1+link*1就解决了 被弹出界时新设一个点,权为0,作为终点表示出界点.其他 ...
- ReentrantLock$Sync.tryRelease java.lang.IllegalMonitorStateException
早上一来,例行性的看主要环境的运行情况,发现有个环境中有如下异常: 17-02-28 08:13:37.368 ERROR pool-2-thread-65 com.ld.net.spider.Spi ...