一、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是非常依赖于已编译完成的代码吗_初识Python的几点疑惑相关推荐

  1. python语言的单行注释以井号开头_初识Python

    Python Python开发 Python语言 初识Python 初识Python 计算机基础 计算机的组成: 输入输出设备.存储器.主板.CPU.硬盘.内存.显示器.电源.显卡. CPU:中央处理 ...

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

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

  3. python测试代码性能_使用python timeit 模块检测代码性能

    使用Python 通常在乎的是它的开发效率,而不是运行性能. 但如果通过很简单的方法可以测试出n种不同的写法之间的性能差异,这个过程本身也是一种乐趣. python 自带了timeit 模块,可以在代 ...

  4. python画圣诞树代码解读_使用Python画了一棵圣诞树的实例代码

    分享给大家一篇文章,教你怎样用Python画了一棵圣诞树,快来学习. 如何用Python画一个圣诞树呢? 最简单: height = 5 ​ stars = 1 for i in range(heig ...

  5. python电子相册制作代码大全_用Python和Conky做个电子相册,美化你的Linux桌面

    现在手机的拍照功能日趋强大,每个人电脑上想必都至少有几十个G的照片吧.全打印出来实在是太费钱了.而闲置的旧电脑完全可以利用起来播放这些照片.下面就介绍利用Conky和Python实现随机播放相片的功能 ...

  6. python从入门到实践课后题答案第7章_《Python从入门到实践》--第七章 用户输入和while循环 课后练习...

    题目: 7-8 熟食店 :创建一个名为sandwich_orders 的列表,在其中包含各种三明治的名字:再创建一个名为finished_sandwiches 的空列表.遍历列 表sandwich_o ...

  7. python从入门到实践课后题答案第7章_《Python从入门到实践》--第七章 while循环 课后练习...

    题目: 7-4 比萨配料 :编写一个循环,提示用户输入一系列的比萨配料,并在用户输入'quit' 时结束循环.每当用户输入一种配料后,都打印一条消息,说我们会在比萨 中添加这种配料. 7-5 电影票 ...

  8. python程序保存_初识python 文件读取 保存

    上一章最后一题的答案: infors.sort(key=lambda x:x['age']) print(infors) --->[{'name': 'laowang', 'age': 23}, ...

  9. python序列符号_初识Python(4)__Python序列

    序列 序列包含:字符串,列表和元组 序列基本操作符 索引:seq[ind] 获得下标为ind 的元素 分片( [], [:], [::] ):seq[ind1:ind2] 获得下标从ind1 到ind ...

最新文章

  1. java 自定义tostring_自定义java toString方法
  2. golang数据运算符
  3. 新手建站注意点,你有注意到没?
  4. WebApp匯入資料之From Excel
  5. css文本行高是哪个属性_CSS中的line-height行高属性的使用技巧小结
  6. OpenVINO主要工作流程
  7. Caused by: org.apache.catalina.LifecycleException: A child container failed during start
  8. 第二周代码(wc项目)
  9. 什么是预热 压测_全链路压测探索实践之路
  10. Thinking in Java 11.10 Map
  11. Java 产品与软件下载
  12. 安卓仿苹果键盘输入法_仿ios输入法安卓版
  13. 计算机视觉教程7-3:Openpose配置与实践
  14. 小米笔记本UEFI关闭安全启动
  15. 小猿日记 - 程序猿的日常日记(2)
  16. 【软著】自己申请软件著作权流程
  17. Python三维绘图——Matplotlib
  18. 划片机是芯片切割制造流程中一个重要的环节
  19. 利用Photoshop对图片进行修改(图片英文换汉字,汉字换英文)
  20. 编程累了,欣赏一下小马的创业语录。

热门文章

  1. 微信页面通过LocalID预览图片,getlocallmgdata
  2. div浮动到另一个div上面或者浮动到img图片上面
  3. 广西大学oj1042(小西的数据结构作业)
  4. C语言中所有,C语言所有关键字.doc
  5. IT计算机前后端相关专业——20个常用的学习教程及在线编程工具
  6. sata学习5:常用的概率函数
  7. Android知识点 431 -- recovery 强制执行恢复出厂设置(Rescue Party)
  8. OpenCV学习:基础图像操作 (四):绘制几何图形
  9. 我对spring springcloud的简单理解
  10. openwrt查看网卡型号