Python3简明教程(一)—— 开始Python之旅
第一个Python程序
作为我们第一个Python程序——打印"Hello World!"。
在终端输入Python3进入交互界面:
输入print("Hello World!")并回车,就打印出了"Hello World!"
如何退出解释器呢?可按 Ctrl+D 输入一个EOF字符来退出解释器,也可以输入 exit() 来退出。
解释器与脚本文件
Python是一个编程语言,你可以在Python解释器中直接写代码或者将代码写到一个文件里,然后执行这个文件(即脚本文件)。
打开终端,输入Python3并回车,这时候解释器便工作于交互模式。
将上面的程序写成脚本的形式,可通过 vim helloworld.py 命令,如下:
#!/usr/bin/env python3
print("Hello World!")
其中第一行的前两个字符 #! 称为 Shebang,目的是告诉shell使用Python解释器执行其下面的代码。
写好后保存并退出,发现并不能直接运行(权限不足的错误),所以先要为文件添加可执行权限:
chmod +x helloworld.py
注:在这里使用了linux下的chmod命令来变更文件或目录的权限,+x 代表赋予了其可执行的权限。
然后执行脚本文件:
./helloworld.py
注:./ 表示当前目录下
这里请注意如果程序中没有 #!/usr/bin/env python3 的话,应该使用 python3 helloworld.py 来执行,否则使用 ./helloworld.py 程序会被当作bash脚本来执行,最终报错。关于解释器和脚本文件详情请参阅shell脚本编程。
代码风格建议
在Python中,空格很重要,我们使用空格将标识符区分开,行开始处的空格我们称之为缩进,如果你的缩进是错误的,Python解释器会抛出异常。例如下面情形:
>>> a = 12
>>> a = 12
File "<stdin>", line 1
a = 12
^
IndentationError: unexpected indent
这是因为在第二行开始处出现了多余的空格,所以需要经常检查代码的缩进。请注意,Python使用缩进来定义语句块,缩进是Python语法的一部分,这与其它大多数语言不同。
如果你在代码中混用了制表符和空格,这种缩进错误会很常见。所以如果是用空格,就一直用空格缩进,不要使用制表符。
建议遵循以下约定:
- 使用4个空格来缩进
- 永远不要混用空格和制表符
- 在函数之间空一行
- 在类之间空两行
- 字典、列表、元组以及参数列表中,在 , 后添加一个空格。对于字典,: 后面也添加一个空格。
- 在赋值运算符和比较运算符周围要有空格(参数列表中除外),但是括号里则不加空格:a = f(1, 2) + g(3,4)。
代码风格在后面的PEP8代码风格指南中有更详细的讲述。
注释
注释是一些文本用来解释此代码是做什么的,写注释是为了使他人更容易理解代码。
Python的注释以 # 字符开始,在 # 字符到行尾之间的所有东西都被程序忽略为注释,也就是说对程序没有任何影响。
>>> # 这是一个注释
>>> # 下面这一行是求两数之和
>>> a = 12 + 34
>>> print(a) # 这里也是注释 :)
注释主要面向的人群是开发人员和维护代码库的人员,所以如果你写了一些复杂的代码,你应该写足够的注释在里面,以便让其它任何人能够通过你的注释读懂代码。你应该总是在 # 后跟一个空格,然后再写注释。你也可以做一些标准的注释:
# FIXME -- fix these code later
# TODO -- in future you have to do this
注释能使用英语建议使用英语。
参考链接:https://www.shiyanlou.com/courses/596
Python3简明教程(一)—— 开始Python之旅的更多相关文章
- Python 简明教程 --- 18,Python 面向对象
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 代码能借用就借用. -- Tom Duff 目录 编程可分为面向过程编程和面向对象编程,它们是两种不 ...
- Python 简明教程 --- 14,Python 数据结构进阶
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果你发现特殊情况太多,那很可能是用错算法了. -- Carig Zerouni 目录 前几节我们介 ...
- Python 简明教程 --- 16,Python 高阶函数
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 对于那些快速算法,我们总是可以拿一些速度差不多但是更容易理解的算法来替代它们. -- Douglas ...
- Python 简明教程 --- 17,Python 模块与包
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 正确的判断来源于经验,然而经验来源于错误的判断. -- Fred Brooks 目录 我们已经知道函 ...
- Python 简明教程 --- 9,Python 编码
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 当你选择了一种语言,意味着你还选择了一组技术.一个社区. -- Joshua Bloch 目录 1, ...
- Python 简明教程 ---10,Python 列表
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 程序 = 算法 + 数据结构 -- Nicklaus Wirth 目录 从这句话程序 = 算法 + ...
- Python 简明教程 --- 4,Python 变量与基本数据类型
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 任何一个人都会写出能够让机器理解的代码,只有好的程序员才能写出人类可以理解的代码. -- Marti ...
- Python 简明教程 --- 7,Python 字符串
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 过早的优化代码是罪恶之源. -- Donald Knuth 目录 无论哪种编程语言,字符串处理都是最 ...
- Python 简明教程 --- 19,Python 类与对象
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 那些能用计算机迅速解决的问题,就别用手做了. -- Tom Duff 目录 上一节 我们介绍了Pyt ...
- Python 简明教程 --- 20,Python 类中的属性与方法
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 与客户保持良好的关系可以使生产率加倍. -- Larry Bernstain 目录 类中的变量称为属 ...
随机推荐
- 重新安装VMware10提示"The Msi '' Failed"问题解决方案
想把虚拟机软件升级以下,没想到卸载的时候不干净,再安装的时候总提示让我先卸载旧版本但实际上旧版本已经卸载过了,这里又没法再卸载一次,所以就提示”The MSI '' failed“ 显然,安装程序还是 ...
- Eclipse中删除导入的jar包,总是报错?已解决!
参考百度经验 http://jingyan.baidu.com/article/851fbc37c7512e3e1f15abec.html
- DateTime.Now.ToString("yyyy/MM/dd") 输出的结果是 2006-03-16(转)
今天我在使用 DateTime.Now.ToString("yyyy/MM/dd") 输出的结果是 2006-03-16 而不是我想要的 2006/03/16,都快把我郁闷的不行了 ...
- AndroidStudio中添加依赖的三种方式以及如何引入so文件和arr文件
AndroidStudio中添加依赖的三个选项,如图: 分别为:库依赖(Library dependency).文件依赖(File dependency)和module依赖(Module dep ...
- lightoj1169【DP】
题意(来自大哥): 有两栋楼,左边一栋,右边一栋,层数从1-n,地面的标号为0,每一层有一个水果.有一只猴子在地面上,他现在要上到n层去,在第i层会吃掉水果花费一定时间. 猴子有两种方式从第i层到i+ ...
- qq教xixi写模拟加法【非常爆炸】
#include<iostream> #include<cstdio> #include<math.h> #include<queue> #includ ...
- POJ1236【图的前连通(缩点)】
题意: 1.初始至少需要向多少个学校发放软件,使得网络内所有的学校最终都能得到软件. 2.至少需要添加几条传输线路(边),使任意向一个学校发放软件后,经过若干次传送,网络内所有的学校最终都能得到软件. ...
- 笔记-JavaWeb学习之旅3
数据库的设计 1.多表之间的关系 一对一 一对一关系实现,可以在任意一方添加唯一外键指向另一方的主键 一对多 在多的一方建立外键指向一的一方建立主键 多对多 多对多关系实现需要借助第三张中间表.中间表 ...
- AtCoder Grand Contest 018 D - Tree and Hamilton Path
题目传送门:https://agc018.contest.atcoder.jp/tasks/agc018_d 题目大意: 给定一棵\(N\)个点的带权树,求最长哈密顿路径(不重不漏经过每个点一次,两点 ...
- Codeforces 1107G(dp)
1.答案要取连续的区间疯狂暗示线段树. 2.外层枚举r,内层枚举l显然过于暴力. 3.考虑内层的优化.dp[i]:以第i位为结尾的答案(长度大于1的).dp[i] = max(第一种情况,第二种情况) ...