python 简明教程
第一个源程序
#!/usr/bin/python
# Filename :
helloworld.pyprint 'Hello world'
执行:
$ python helloworld.py 或者 $ ./helloworld.py
因为系统知道它必须用源文件第一行指定的那个解释器来运行程序
字面值常量:
这样的字符串'This is a string'、"It's a string!"
数
在Python中有4种类型的数——整数、长整数、浮点数和复数。
2是一个整数的例子。- 长整数不过是大一些的整数。
3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。(-5+4j)和(2.3-4.6j)是复数的例子。
变量
它们的值可以变化,即你可以使用变量存储任何东西。
标识符的命名
变量是标识符的例子。 标识符 是用来标识 某样东西 的名字。在命名标识符的时候,你要遵循这些规则:
标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _ ’)。
标识符名称的其他部分可以由字母(大写或小写)、下划线(‘ _ ’)或数字(0-9)组成。
标识符名称是对大小写敏感的。例如,
myname和myName不是一个标识符。注意前者中的小写n和后者中的大写N。有效 标识符名称的例子有
i、__my_name、name_23和a1b2_c3。无效 标识符名称的例子有
2things、this is spaced out和my-name。
数据类型
变量可以处理不同类型的值,称为数据类型。基本的类型是数和字符串,我们已经讨论过它们了。在后面的章节里面,我们会研究怎么用类创造我们自己的类型。
缩进
在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。
这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。
你需要记住的一样东西是错误的缩进会引发错误。例如:
i = 5
print 'Value is', i # Error! Notice a single space at the start of the
lineprint 'I repeat, the
value is', i
当你运行这个程序的时候,你会得到下面的错误:
File "whitespace.py", line 4
print 'Value is', i
# Error! Notice a single space at the start of the line
^
SyntaxError:
invalid syntax
它告诉你,
你不能随意地开始新的语句块 (当然除了你一直在使用的主块)。何时你能够使用新块,将会在后面的章节,如控制流中详细介绍。
如何缩进
不要混合使用制表符和空格来缩进,因为这在跨越不同的平台的时候,无法正常工作。我
强烈建议 你在每个缩进层次使用 单个制表符 或 两个或四个空格
。
选择这三种缩进风格之一。更加重要的是,选择一种风格,然后一贯地使用它,即 只 使用这一种风格。
运算符优先级
如果你有一个如2 + 3 * 4那样的表达式,是先做加法呢,还是先做乘法?我们的中学数学告诉我们应当先做乘法——这意味着乘法运算符的优先级高于加法运算符。
我建议你使用圆括号来分组运算符和操作数,以便能够明确地指出运算的先后顺序,使程序尽可能地易读。例如,2 + (3 * 4)显然比2 + 3 * 4清晰。
表达式
例5.1 使用表达式
#!/usr/bin/python
# Filename:
expression.py
length = 5breadth = 2area = length * breadthprint 'Area is',
areaprint 'Perimeter
is', 2 * (length +
breadth)
输出
$ python expression.py
Area is 10
Perimeter is 14
它如何工作
注意Python如何打印“漂亮的”输出。尽管我们没有在'Area和变量
is'area之间指定空格,Python自动在那里放了一个空格,这样我们就可以得到一个清晰漂亮的输出,而程序也变得更加易读(因为我们不需要担心输出之间的空格问题)。这是Python如何使程序员的生活变得更加轻松的一个例子。
使用if语句
例6.1 使用if语句
#!/usr/bin/python
# Filename: if.py
number = 23guess =
int(raw_input('Enter an integer :
'))
if guess ==
number: print 'Congratulations, you guessed it.' # New
block starts here print "(but you do not win any prizes!)" # New
block ends hereelif guess <
number: print 'No, it is a
little higher than that' # Another
block # You can do whatever you want in a
block ...else: print 'No, it is a little lower than that'
# you must have guess > number to reach
here
print 'Done'# This last statement is always
executed, after the if statement is executed
输出
$ python if.py
Enter an integer : 50
No, it is a
little lower than that
Done
$ python if.py
Enter an integer : 22
No,
it is a little higher than that
Done
$ python if.py
Enter an integer :
23
Congratulations, you guessed it.
(but you do not win any
prizes!)
Done
使用while语句
例6.2 使用while语句
#!/usr/bin/python
# Filename:
while.py
number = 23running = True
while
running: guess = int(raw_input('Enter an integer :
'))
if guess ==
number: print 'Congratulations, you guessed it.' running =
False # this causes the while
loop to stop elif guess <
number: print 'No, it
is a little higher than that' else: print
'No, it is a little lower than that' else: print 'The while loop is over.' # Do
anything else you want to do here
print
'Done'
输出
$ python while.py
Enter an integer : 50
No, it is a
little lower than that.
Enter an integer : 22
No, it is a little higher
than that.
Enter an integer : 23
Congratulations, you guessed it.
The
while loop is over.
Done
使用for语句
例6.3 使用for语句
#!/usr/bin/python
# Filename:
for.py
for i in range(1, 5): print
ielse: print 'The for loop is over'
输出
$ python for.py
1
2
3
4
The for loop is
over
使用break语句
例6.4 使用break语句
#!/usr/bin/python
# Filename:
break.py
while True: s = raw_input('Enter something :
') if s == 'quit': break print 'Length of the string is', len(s)print 'Done'
使用continue语句
例6.5 使用continue语句
#!/usr/bin/python
# Filename:
continue.py
while True: s = raw_input('Enter something :
') if s == 'quit': break if len(s) < 3: continue print 'Input is of sufficient length' #
Do other kinds of processing here...
输出
$ python continue.py
Enter something : a
Enter
something : 12
Enter something : abc
Input is of sufficient
length
Enter something : quit
定义函数
函数是重用的程序段。它们允许你给一块语句一个名称,然后你可以在你的程序的任何地方使用这个名称任意多次地运行这个语句块。这被称为 调用 函数。我们已经使用了许多内建的函数,比如len和range。
函数通过def关键字定义。def关键字后跟一个函数的 标识符 名称,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾。接下来是一块语句,它们是函数体。下面这个例子将说明这事实上是十分简单的:
例7.1 定义函数
#!/usr/bin/python
# Filename:
function1.py
def sayHello(): print
'Hello World!' # block
belonging to the function
sayHello() # call the function
输出
$ python function1.py
Hello World!
使用函数形参
例7.2 使用函数形参
#!/usr/bin/python
# Filename:
func_param.py
def printMax(a, b): if
a > b: print a,
'is maximum' else: print
b, 'is
minimum'
printMax(3,
4) # directly
give literal values
x = 5y = 7
printMax(x, y) #
give variables as arguments
(源文件:code/func_param.py)
输出
$ python func_param.py
4 is minimum
7 is maximum
使用局部变量
例7.3 使用局部变量
#!/usr/bin/python
# Filename:
func_local.py
def func(x): print
'x is', x x =
2 print 'Changed local x to', x
x =
50func(x)print 'x is still', x
输出
$ python func_local.py
x is 50
Changed local x to
2
x is still 50
使用global语句
如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是 全局
的。我们使用global语句完成这一功能。没有global语句,是不可能为定义在函数外的变量赋值的。
例7.4 使用global语句
#!/usr/bin/python
# Filename:
func_global.py
def func(): global
x
print 'x is', x x = 2 print 'Changed local x to', x
x =
50func()print 'Value of x is', x
输出
$ python func_global.py
x is 50
Changed global x to
2
Value of x is 2
默认参数值
对于一些函数,你可能希望它的一些参数是 可选 的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。这个功能借助于默认参数值完成。你可以在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。
注意,默认参数值应该是一个参数。更加准确的说,默认参数值应该是不可变的——这会在后面的章节中做详细解释。从现在开始,请记住这一点。
使用默认参数值
例7.5 使用默认参数值
#!/usr/bin/python
# Filename:
func_default.py
def say(message, times = 1): print
message * times
say('Hello')say('World', 5)
(源文件:code/func_default.py)
输出
$ python
func_default.py
Hello
WorldWorldWorldWorldWorld
它如何工作
名为say的函数用来打印一个字符串任意所需的次数。如果我们不提供一个值,那么默认地,字符串将只被打印一遍。我们通过给形参times指定默认参数值1来实现这一功能。
在第一次使用say的时候,我们只提供一个字符串,函数只打印一次字符串。在第二次使用say的时候,我们提供了字符串和参数5,表明我们想要
说 这个字符串消息5遍。
重要
只有在形参表末尾的那些参数可以有默认参数值,即你不能在声明函数形参的时候,先声明有默认值的形参而后声明没有默认值的形参。
这是因为赋给形参的值是根据位置而赋值的。例如,def是有效的,但是
func(a, b=5)def func(a=5, b)是 无效 的。
python 简明教程的更多相关文章
- 《Python简明教程》总结
Python经典教程<Python简明教程> 目录: 为什么Python 安装Python 体验Python Python数据类型 运算符与表达式 控制流 函数 模块 数据结构 解决问题 ...
- 【笔记】Python简明教程
Python简明教程,此资源位于http://woodpecker.org.cn/abyteofpython_cn/chinese/ s=u'中文字符' #u表示unicode,使用u之后能正常显示中 ...
- python中global的用法——再读python简明教程
今天看了知乎@萧井陌的编程入门指南,想重温一下 <python简明教程>,对global的用法一直不太熟练,在此熟练一下,并实践一下python中list.tuple.set作为参数的区别 ...
- python简明教程
Python简明教程 MachinePlay关注 0.7072018.09.26 01:49:43字数 2,805阅读 9,287 Python一小时快速入门 1.Python简介 pylogo. ...
- Python 简明教程 --- 3,Python 基础概念
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 控制复杂性是计算机编程的本质. -- Brian Kernighan 了解了如何编写第一个Pytho ...
- Python 简明教程 --- 2,第一个Python 程序
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果你发现特殊情况太多,那你肯定是用错方法了. -- Carig Zerouni 当你在自己的电脑上 ...
- Python 简明教程 --- 1,搭建Python 环境
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 人生苦短,我用Python. -- 龟叔T恤 Python 是一门解释型语言,所以要想运行Pytho ...
- Python 简明教程 --- 18,Python 面向对象
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 代码能借用就借用. -- Tom Duff 目录 编程可分为面向过程编程和面向对象编程,它们是两种不 ...
- Python 简明教程 --- 13,Python 集合
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果代码和注释不一致,那很可能两者都错了. -- Norm Schryer 目录 前几节我们已经介绍 ...
- Python 简明教程 --- 14,Python 数据结构进阶
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果你发现特殊情况太多,那很可能是用错算法了. -- Carig Zerouni 目录 前几节我们介 ...
随机推荐
- ArrayList扩容
jdk1.5 public ArrayList(int initialCapacity) { super(); if (initialCapacity < 0) throw new Illega ...
- 【web】支持jsp+mvc访问
直接使用SpringMVC时配置访问jsp页面时很容易的事,但是由于spring Boot使用内嵌的servlet容器,所以对jsp的支持不是很好,而且也不建议使用jsp,但是为了满足这种返回jsp页 ...
- js的原型继承
<script> //动物(Animal),有头这个属性,eat方法 //名字这个属性 //猫有名字属性,继承Animal,抓老鼠方法 function Animal(name){ thi ...
- Python学习札记(三十一) 面向对象编程 Object Oriented Program 2
参考:类和实例 注意理解第七点. NOTE: 1.类是抽象的模板,比如Student类,实例是根据类创建出来的一个个具体的"对象",每个对象都拥有相同的方法,但各自的数据可能不同. ...
- OpenDayLight Helium实验三 OpenDaylight二层转发机制实验
本文基于OpenDaylight二层转发机制实验 而成 在SDN网络中,处于末端的主机并不知道其连接的网络是SDN,某台主机要发送数据包到另一台主机,仍然需要进行IP到MAC地址的ARP解析.SDN网 ...
- C# .NET 开发心得
1. 工作路径问题 1. 多项目构成的解决方案,Web APP作为启动项目时的工作路径 //当前执行的exe文件名 //C:\\Program Files\\IIS Express\\iisexpre ...
- 使用IDEA创建基于Gradle构建的JavaWeb项目
环境配置 jdk: 1.8 Gradle: 4.4.1 Tomcat: 9.0.0 One Step! 创建项目,初始化项目结构. 打开我们的IDEA,进入创建项目的界面,勾选Java,Web两个选项 ...
- Idea使用(摘抄至java后端技术公众号-孤独烟)
1. idea自动编译需要手动开启: 2. 手动去掉idea自动提示时候不区分字母大小写 3. idea自动导入包 4. 悬浮开关提示:鼠标放上去就给出提示 5. 打开的所有类tabs换行显示,不单行 ...
- JavaScript--变量和运算符
JavaScript--变量和运算符 一.心得 JavaScript语法:变量声明 var弱类型 var中可以是任何类型在JavaScript里面,单&单|是位运算符.变量没有值使用的话就是u ...
- 转-Linux启动过程详解(inittab、rc.sysinit、rcX.d、rc.local)
http://blog.chinaunix.net/space.php?uid=10167808&do=blog&id=26042 1)BIOS自检2)启动Grub/Lilo3)加 ...