一、python是什么?

  Python(英语发音:/ˈpaɪθən/), 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年 。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块很轻松地联结在一起。根据其实现方法的不同,可分为:CPython(默认用C实现),Jython,IronPython,PyPy等等。

  1、python是解释型语言而非编译型语言:将源码转换成字节码,之后再解释这些字节码,执行之。

解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执 行一次都要翻译一次。因此效率比较低。比如Basic语言,专门有一个解释器能够直接执行Basic程 序,每个语句都是执行的时候才翻译。
编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等

编译型与解释型,两者各有利弊
前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。

  2、为什么有那么多python实现?
  
  前面也提到,CPython是最通用的,是一个用C实现的,被认为是”默认“的实现。但其他的呢?其中最显赫的之一就是Jython,一个用Java实现的采用了JVM的实现。CPython中很容易为你的Python代码写C扩展,因为最终都是由C解释器执行的。另一方面,Jython则使得和其他java程序共同工作很容 易:无需其他工作,你就可导入任何Java类,在你的Jython程序中使用其他Java类。IronPython是另一很流行的Python 实现,完全用C#实现,针对.NET平台。她运行在可以叫做.NET虚拟机的平台上,这是微软的 Common Language Runtime (CLR),同JVM相对应。

二、为什么要使用Python?

1、开发效率高

Python是一门开发效率最高的语言,它比C有6倍的开发效率,简单来说,如果一个C开发人员工作6天,使用Python的开发人员只需要工作一天即可,意味着做Python开发人员可一周只上一天班。它比C++有2倍的开发效率,它比Java和C#也有1.5倍的开发效率。有这么高的开发效率,当然是用性能换来的代价,不过从目前硬件技术进步来看,目前的CPU计算能力普遍是过剩的,并且越来越多硬件成本降低,但人工的成本越来越贵。其实从社会进步来看,也是工具越来越先进,但人的大脑管理复杂程度并没有跟着提高,显然要提高起来就比较困难了。

2、调试运行方便

无论是在Windows平台,还是Linux平台,都一样开发和调试。跨平台运行更加方便,如果没有使用平台差别的API接口,只要写一遍代码,就可以在Windows平台或Linux平台上运行。

3、开源免费

Python无论在商业上,还是教育上,都是免费使用,意味可以零成本进入学习它,使用它。Python拥有众多功能完善的开发库可以使用。

4、测试领域需求

测试是软件开发里有相当大的工作量,比如模块测试,当开发人员把一个模块功能完成之后,需要测试这个模块是否正确,就需要搭建一堆测试代码,才可以验证的。这时,如果使用C++或Java来写这些功能,显然没有使用Python来得快,从前面效率就可以看到。因此,通常就会变成这样的开发模式:发布的软件是使用C++或Java开发,但测试的代码使用Python来开发。比如嵌入式系统涉及网络通讯方面,需要不断地向嵌入式系统发送网络数据和接收网络数据,就可以使用Python搭建一个测试环境出来,这样花费很少的时间,就可以对嵌入式系统进行验证,提高代码的质量,减少嵌入式系统与其它系统的调试时间,以及以后维护时间。另外,通过使用Python语言编写众多的脚本,就可以提高自动化测试水平,每发布一个版本,就可以把以前的测试用例,全自动化测试一遍,这样会大大提高对软件快速发布的要求。像我所见过的测试用例,就有几万个,如果靠手工方式测试,验证起来是非常慢的,并且并不全面。目前采用全自动化测试之后,每天24小时运行,一台电脑相当于10个测试员工的工作量,可见带来多大效率的提升。在可以预见的将来,在测试领域里,Python的工作需求会持续增加,要求所有测试人员都会掌握这个好用的工具。
 

三、Python 应用领域有哪些?

  Python 不仅仅是一个设计优秀的程序语言,它能够完成现实中的各种任务,包括开发者们日复一日所做的事情。作为编制其他组件、实现独立程序的工具,它通常应用于各种领域。实际上,作为一种通用语言,Python 的应用角色几乎是无限的:你可以在任何场合应用Python, 从网站和游戏开发到机器人和航天飞机控制。
  
  主要应用领域包括:系统编程,用户图形接口,Internet 脚本,组件集成,数据库编程,快速原型,数值计算和科学计算编程,游戏、图像、人工智能、XML 、机器人等。 
  
  详见:http://blog.163.com/myhome_2/blog/static/28595817201311259355568/ 

四、Python语法有什么独特之处?

1、基本概念

A、数
在Python中有4种类型的数——整数、长整数、浮点数和复数。
(1)2是一个整数的例子。
(2)长整数不过是大一些的整数。
(2)3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。
(4)(-5+4j)和(2.3-4.6j)是复数的例子。

B、字符串
(1)使用单引号(’)
(2)使用双引号(”)
(3)使用三引号(”’或”“”)
利用三引号,你可以指示一个多行的字符串。你可以在三引号中自由的使用单引号和双引号。例如:

'''This is a multi-line string. This is the first line.
This is the second line.
"What's your name?," I asked.
He said "Bond, James Bond."
'''

(4)转义符
(5)自然字符串
自然字符串通过给字符串加上前缀r或R来指定。例如r”Newlines are indicated by \n”。

C、逻辑行与物理行
一个物理行中使用多于一个逻辑行,需要使用分号(;)来特别地标明这种用法。一个物理行只有一个逻辑行可不用分号

2、数据结构

A、列表

shoplist = ['apple', 'mango', 'carrot', 'banana']
print 'I have', len(shoplist),'items to purchase.'
print 'These items are:', # Notice the comma at end of the line
for item in shoplist:print item,
print '\nI also have to buy rice.'
shoplist.append('rice')
print 'My shopping list is now', shoplist
print 'I will sort my list now'
shoplist.sort()
print 'Sorted shopping list is', shoplist
print 'The first item I will buy is', shoplist[0]
olditem = shoplist[0]
del shoplist[0]
print 'I bought the', olditem
print 'My shopping list is now', shoplist

B、元组
元组和列表十分类似,只不过元组和字符串一样是不可变的即你不能修改元组。

zoo = ('wolf', 'elephant', 'penguin')
print 'Number of animals in the zoo is', len(zoo)
new_zoo = ('monkey', 'dolphin', zoo)
print 'Number of animals in the new zoo is', len(new_zoo)
print 'All animals in new zoo are', new_zoo
print 'Animals brought from old zoo are', new_zoo[2]
print 'Last animal brought from old zoo is', new_zoo[2][2]

像一棵树
元组与打印

age = 22
name = 'Swaroop'
print '%s is %d years old' % (name, age)
print 'Why is %s playing with that python?' % name

C、字典
类似哈希

ab = {    'Swaroop'  : 'swaroopch@byteofpython.info','Larry'   : 'larry@wall.org','Matsumoto' : 'matz@ruby-lang.org','Spammer'  : 'spammer@hotmail.com'}
print "Swaroop's address is %s" % ab['Swaroop']
# Adding a key/value pair
ab['Guido'] = 'guido@python.org'
# Deleting a key/value pair
del ab['Spammer']
print '\nThere are %d contacts in the address-book\n' % len(ab)
for name, address in ab.items():print 'Contact %s at %s' % (name, address)
if 'Guido' in ab: # OR ab.has_key('Guido')print "\nGuido's address is %s" % ab['Guido']

D、序列
列表、元组和字符串都是序列。序列的两个主要特点是索引操作符和切片操作符。

shoplist = ['apple', 'mango', 'carrot', 'banana']
# Indexing or 'Subscription' operation
print 'Item 0 is', shoplist[0]
print 'Item 1 is', shoplist[1]
print 'Item -1 is', shoplist[-1]
print 'Item -2 is', shoplist[-2]
# Slicing on a list
print 'Item 1 to 3 is', shoplist[1:3]
print 'Item 2 to end is', shoplist[2:]
print 'Item 1 to -1 is', shoplist[1:-1]
print 'Item start to end is', shoplist[:]
# Slicing on a string
name = 'swaroop'
print 'characters 1 to 3 is', name[1:3]
print 'characters 2 to end is', name[2:]
print 'characters 1 to -1 is', name[1:-1]
print 'characters start to end is', name[:]

E、参考
当你创建一个对象并给它赋一个变量的时候,这个变量仅仅参考那个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定。

print 'Simple Assignment'
shoplist = ['apple', 'mango', 'carrot', 'banana']
mylist = shoplist # mylist is just another name pointing to the same object!
del shoplist[0]
print 'shoplist is', shoplist
print 'mylist is', mylist
# notice that both shoplist and mylist both print the same list without
# the 'apple' confirming that they point to the same object
print 'Copy by making a full slice'
mylist = shoplist[:] # make a copy by doing a full slice
del mylist[0] # remove first item
print 'shoplist is', shoplist
print 'mylist is', mylist
# notice that now the two lists are different

F、字符串

name = 'Swaroop' # This is a string object
if name.startswith('Swa'):print 'Yes, the string starts with "Swa"'
if 'a' in name:print 'Yes, it contains the string "a"'
if name.find('war') != -1:print 'Yes, it contains the string "war"'
delimiter = '_*_'
mylist = ['Brazil', 'Russia', 'India', 'China']
print delimiter.join(mylist)  //用delimiter来连接mylist的字符

初识Python之刨根问底相关推荐

  1. 初识python教学反思_[python第一课]初识python

    print("1.第一章:初识python\npython历史:\n1.python是用c语言写的\n2.python是可以调用c语言库函数\n3.Python1.0是1994年1月\n4. ...

  2. option:contains后面加变量_Python基础篇 -2:初识Python中的变量

    Python学习基础篇 -2 前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 . 第二篇 ...

  3. 孤荷凌寒自学python第三十八天初识python的线程控制

    孤荷凌寒自学python第三十八天初识python的线程控制 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.线程 在操作系统中存在着很多的可执行的应用程序,每个应用程序启动后,就可以看着 ...

  4. python中matrix是什么意思_初识Python

    初识Python 跟学习所有的编程语言一样,首先得了解这门语言的编程风格和最基础的语法.下面就让我们一起来了解一下Python的编程风格. 1.逻辑行与物理行 在Python中有逻辑行和物理行这个概念 ...

  5. 慕课网初识python_初识Python笔记

    初识Python 基本数据类型 基本数据类型: 整数 十六进制用0x前缀和0-9,a-f表示 浮点数 整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差 字符串 以''或"" ...

  6. Python练习 | 初识Python、数据类型、基本语句

    博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/u011344545 ***************** ...

  7. 初识python教案青岛版八年级_青岛版信息技术六上第二单元第8课8.初识python教案...

    教学 内容 初识 Python 课时 1 课时 设计者 于敏 教学 目标 知识目标: 初步认识软件,了解 Python 软件的界面和基本功能: 能力目标: 在尝试实践的过程中掌握 Python 的基本 ...

  8. 《Python游戏编程入门》——1.2 初识Python

    本节书摘来自异步社区<Python游戏编程入门>一书中的第1章,第1.2节,作者[美]Jonathan S. Harbour ,李强 译,更多章节内容可以访问云栖社区"异步社区& ...

  9. Python基础(一)--初识Python

    目录 Python基础(一)--初识Python 1 Python基本概念 1.1 什么是Python 1.2 Python的语言特征 1.3 Python的应用领域 2 Python开发环境 2.1 ...

最新文章

  1. 《数据科学家养成手册》第五章---矛盾的世界笔记
  2. servlet——web应用中路径问题
  3. 操作系统之内存管理:5、虚拟存储技术(请求分页管理、页面置换算法、虚拟内存、地址变换)
  4. 再见,Python2。你好,Python3
  5. 【新版】Android技术博客精华汇总
  6. Java架构师之路资源
  7. 印象笔记使用方法————印象笔记下载安装以及浏览器插件下载安装
  8. 遇到的算法题--02(斗牛)
  9. hibernate中的检索策略
  10. 口袋里只有一百块钱,也要活出十个亿的气势
  11. JavaScrpit+Html实现日期时间启动、停止操作(应用场景:计时器、秒表)
  12. rfid射频前端的主要组成部分有_超高频RFID电子标签的组成
  13. java 解析器_高性能Java解析器实现过程详解
  14. Go : constant shifts恒定位移旋转(附完整源码)
  15. 汇编语言(王爽版)实验一
  16. zabbix 监控snmp 网络设备
  17. 关于Unity绑定手机
  18. 7. 无线体内纳米网:改善体内电磁通道信号传播性能的若干新型石墨烯材料
  19. 如何用命令查看服务器raid信息,查看服务器RAID卡信息的SHELL脚本和命令介绍
  20. 《UML用户指南(第2版.修订版)》—第1章1.1节建模的重要性

热门文章

  1. Vmware虚拟机和主机之间复制、粘贴内容、拖拽文件
  2. 一加8T 原装65W WARP闪充 充电功率记录
  3. 风险价值法在券商风险管理中的运用
  4. 知否大学-大学课后习题答案
  5. 贝叶斯优化 Bayesian Optimization
  6. 218 扑克牌(数学期望)
  7. 百度CEO李彦宏在毕业二十周年之际受邀重回母校
  8. 百度董事长兼CEO李彦宏创立《百度互联网》全球最大的中文搜索引擎
  9. 计算机一级ppt定位,课件全国计算机一级基础知识.ppt
  10. 实现 组件-实体-系统