易学的高级语言
Python诞生于1991,如今已经发展成了一门被广泛使用的高级编程语言,和Java、C++相比,Python的语法更加简洁,用Python写出来的代码也更易读。完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。
以下是用Java和Python实现相同功能的代码量比较:
Java:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Python:
print('Hello World!')
另一方面,代码少的代价是运行速度慢,C程序运行1秒钟,Java程序可能需要2秒,而Python程序可能就需要10秒。
为什么呢?我们需要了解一下编程语言的基础知识。编程语言是我们和电脑沟通的工具,我们通过编程语言让计算机干活,比如下载文件,编辑视频,写游戏和网站等等。而让计算机干活的CPU只认识机器指令(0和1),所以不管任何的编程语言最后都会被翻译成机器指令,把高级语言翻译成机器指令的复杂程度各不相同,这也造成了越高级的语言,运行效率越慢。
编译性语言C和C++的执行过程很直接了当:源代码通过编译器被翻译成机器语言,而翻译好的文件直接拿来运行就好了。而运行Python这类解释性的语言就较为繁琐:源代码需要先被翻译成字节码,然后再通过解释器被翻译成机器码才能被执行。翻译的复杂性是造成Python语言运行速度慢的主要原因。
强大的工业界语言
如今电脑的运行速度越来越快,用Python来应付大部分的开发领域是绰绰有余的。著名图片视频分享平台Instagram的后端就是用基于Python的Django框架编写的,Google开发的机器学习框架Tensorflow也是基于Python的。而且Python的社区也越来越强大,所以,不管对于初学者还是专业开发者,Python如今已经成为了一门必备的编程语言。(popularity, stackshare)
Python当然也有硬伤,由于编译速度慢,是无法应用于对运行速度有要求的领域的。比如写操作系统,这个只能用C语言写;写原生手机应用,需要用Swift/Objective-C(针对iPhone)和Java(针对Android);写3D游戏,最好用C或C++。
第一个Python程序 (Mac)
安装编程Python:
1. 登入Python官方网站,下载最新版本的Python3: https://www.python.org/
2. 打开安装包并根据默认提示完成安装
3. 打开Terminal测试Python是否安装完成
编辑第一个Python程序:
1. 使用Termnial / 下载文本编辑器 (Visual Studio Code, Atom, Sublime[免费使用, 但是不付费会弹出提示框], PyCharm)
2. 创建一个Python文件 “hello_word.py”:
name = input("I'm Bot, What's your name? ")
print(f"Hi, {name}. Let's start coding!")
3. 运行Python文件: $Python3 hello_world.py
I'm Bot, What's your name? Enoch
Hi, Enoch. Let's start coding!
编写单行备注和多行备注:
# 提示用户输入姓名
name = input("What's your name?")
"""
输出
欢迎信息
"""
print(f"Hello {name}")
Python语言的设计理念
打开Mac的Terminal,输入Python3,点击确定键,我们就进入Python自带的交互式解释程序了,最后输入 import this 我们就能看到Python语言的设计理念:
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
《Python一周入门教程》大纲
1. 变量, 基础数据结构 (Variable and Data Types)
2. 其他数据类型 (Collection Data Types)
3. 条件判断和循环 (Conditional and Iterative Programing)
4. 函数 (Function)
5. 类和模块 (Class and Module)
6. 文件读写 (File Handling)
7. 异常处理和测试 (Exception Handling and Testing)
希望大家能在最短的时间内,掌握Python大部分最重要的语法特征,快速入门并爱上这门强大的语言!
课后练习
用Python输出“我要飞向太空”
print(“我要飞行太空!”)