python适合开发哪些类型的应用呢?
首选是网络应用,包括网站、后台服务等等;
其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等;
另外就是把其他语言开发的程序再包装起来,方便使用。
那Python有哪些缺点呢?
第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。
但是大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍,但由于网络更慢,需要等待1秒,你想,用户能感觉到1.001秒和1.1秒的区别吗?这就好比F1赛车和普通的出租车在北京三环路上行驶的道理一样,虽然F1赛车理论时速高达400公里,但由于三环路堵车的时速只有20公里,因此,作为乘客,你感觉的时速永远是20公里。
Python的优点
Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。
除了内置的库外,Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。当然,如果你开发的代码通过很好的封装,也可以作为第三方库给别人使用。
许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。
龟叔给Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
总的来说,Python的哲学就是简单优雅,尽量写容易看明白的代码,尽量写少的代码。如果一个资深程序员向你炫耀他写的晦涩难懂、动不动就几万行的代码,你可以尽情地嘲笑他。
Python是跨平台的,它可以运行在Windows、Mac和各种Linux/Unix系统上。在Windows上写Python程序,放到Linux上也是能够运行的。
Windows会根据一个Path
的环境变量设定的路径去查找python.exe
,如果没找到,就会报错。如果在安装时漏掉了勾选Add Python 3.7 to PATH
,那就要手动把python.exe
所在的路径添加到Path中
目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的。由于3.x版越来越普及,我们的教程将以最新的Python 3.7版本为基础。
当我们编写Python代码时,我们得到的是一个包含Python代码的以.py
为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py
文件。
Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。
Python交互模式
在Python交互模式下输入exit()
并回车,就退出了Python交互模式,并回到命令行模式:
────────────────────────────────────────────────────────┐ │Command Prompt - □ x │ ├────────────────────────────────────────────────────────┤ │Microsoft Windows [Version 10.0.0] │ │(c) 2015 Microsoft Corporation. All rights reserved. │ │ │ │C:\> python │ │Python 3.7 ... on win32 │ │Type "help", ... for more information. │ │>>> exit() │ │ │ │C:\> _ │ │ │ │ │ └────────────────────────────────────────────────────────┘
可以直接通过开始菜单选择Python (command line)
菜单项,直接进入Python交互模式,但是输入exit()
后窗口会直接关闭,不会回到命令行模式。
写程序也讲究一个感觉,你需要一个字母一个字母地把代码自己敲进去,在敲代码的过程中,初学者经常会敲错代码:拼写不对,大小写不对,混用中英文标点,混用空格和Tab键,所以,你需要仔细地检查、对照,才能以最快的速度掌握如何写程序。
在命令行模式运行.py
文件和在Python交互式环境下直接运行Python代码有所不同。Python交互式环境会把每一行Python代码的结果自动打印出来,但是,直接运行Python代码却不会。
Python交互模式的代码是输入一行,执行一行,而命令行模式下直接运行.py
文件是一次性执行该文件内的所有代码。可见,Python交互模式主要是为了调试Python代码用的,也便于初学者学习,它不是正式运行Python代码的环境!
文本编辑器到底哪家强?
推荐两款文本编辑器:
一个是Sublime Text,免费使用,但是不付费会弹出提示框:
一个是Notepad++,免费使用,有中文界面:
请注意,用哪个都行,但是绝对不能用Word和Windows自带的记事本。Word保存的不是纯文本文件,而记事本会自作聪明地在文件开始的地方加上几个特殊字符(UTF-8 BOM),结果会导致程序运行出现莫名其妙的错误。
why?
在Python的交互式命令行写程序,好处是一下就能得到结果,坏处是没法保存,下次还想运行的时候,还得再敲一遍。
所以,实际开发的时候,我们总是使用一个文本编辑器来写代码,写完了,保存为一个文件,这样,程序就可以反复运行了。
必须要以.py
结尾,其他的都不行。此外,文件名只能是英文字母、数字和下划线的组合。
检查一下当前目录下是否有这个文件了。如果hello.py
存放在另外一个目录下,要首先用cd
命令切换当前目录。
使用文本编辑器
在Python的交互式命令行写程序,好处是一下就能得到结果,坏处是没法保存,下次还想运行的时候,还得再敲一遍。
所以,实际开发的时候,我们总是使用一个文本编辑器来写代码,写完了,保存为一个文件,这样,程序就可以反复运行了。
现在,我们就把上次的'hello, world'
程序用文本编辑器写出来,保存下来。
那么问题来了:文本编辑器到底哪家强?
推荐两款文本编辑器:
一个是Sublime Text,免费使用,但是不付费会弹出提示框:
一个是Notepad++,免费使用,有中文界面:
请注意,用哪个都行,但是绝对不能用Word和Windows自带的记事本。Word保存的不是纯文本文件,而记事本会自作聪明地在文件开始的地方加上几个特殊字符(UTF-8 BOM),结果会导致程序运行出现莫名其妙的错误。
安装好文本编辑器后,输入以下代码:
print('hello, world')
注意print
前面不要有任何空格。然后,选择一个目录,例如C:\work
,把文件保存为hello.py
,就可以打开命令行窗口,把当前目录切换到hello.py
所在目录,就可以运行这个程序了:
C:\work>python hello.py
hello, world
也可以保存为别的名字,比如first.py
,但是必须要以.py
结尾,其他的都不行。此外,文件名只能是英文字母、数字和下划线的组合。
如果当前目录下没有hello.py
这个文件,运行python hello.py
就会报错:
C:\Users\IEUser>python hello.py
python: can't open file 'hello.py': [Errno 2] No such file or directory
报错的意思就是,无法打开hello.py
这个文件,因为文件不存在。这个时候,就要检查一下当前目录下是否有这个文件了。如果hello.py
存放在另外一个目录下,要首先用cd
命令切换当前目录。
直接运行py文件
有同学问,能不能像.exe文件那样直接运行.py
文件呢?在Windows上是不行的,但是,在Mac和Linux上是可以的,方法是在.py
文件的第一行加上一个特殊的注释:
#!/usr/bin/env python3 print('hello, world')
然后,通过命令给hello.py
以执行权限:
$ chmod a+x hello.py
就可以直接运行hello.py
了,比如在Mac下运行:
小结
用文本编辑器写Python程序,然后保存为后缀为.py
的文件,就可以用Python直接运行这个程序了。
Python的交互模式和直接运行.py
文件有什么区别呢?
直接输入python
进入交互模式,相当于启动了Python解释器,但是等待你一行一行地输入源代码,每输入一行就执行一行。
直接运行.py
文件相当于启动了Python解释器,然后一次性把.py
文件的源代码给执行了,你是没有机会以交互的方式输入源代码的。
用Python开发程序,完全可以一边在文本编辑器里写代码,一边开一个交互式命令窗口,在写代码的过程中,把部分代码粘到命令行去验证,事半功倍!前提是得有个27'的超大显示器!
Python代码运行助手
python代码运行助手可以让你在线输入Python代码,然后通过本机运行的一个Python脚本来执行代码。
- 在网页输入代码:
-
点击
Run
按钮,代码被发送到本机正在运行的Python代码运行助手; -
Python代码运行助手将代码保存为临时文件,然后调用Python解释器执行代码;
-
网页显示代码执行结果:
需要支持HTML5的浏览器:
- IE >= 9
- Firefox
- Chrome
- Sarafi
输入和输出
输出:
用print()
在括号中加上字符串,就可以向屏幕上输出指定的文字
print()
函数也可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出;依次打印每个字符串,遇到逗号“,”会输出一个空格
print()
也可以打印整数,或者计算结果
输入
如果要让用户从电脑输入一些字符怎么办?
Python提供了一个input()
,可以让用户输入字符串,并存放到一个变量里