一. Python的环境配置.
1. 双击安装程序, next, next 就可以了. 安装完后, 打开Python在上面就可以输入命令了.
2. 运行程序文件*.py: 在cmd下 输入python xxx.py 就可以运行了.
Python代码文件: 就是这么简单.
#!/usr/bin/python
# Filename : helloworld.py
print('Hello World')
二. Python语法
2.1 运算符
+ 加 两个对象相加(3 + 5得到8。'a' + 'b'得到'ab')
- 减 得到负数或是一个数减去另一个数(-5.2得到一个负数。50 - 24得到26)
* 乘 两个数相乘或是返回一个被重复若干次的字符串(2 * 3得到6。'la' * 3得到'lalala')
** 幂 返回x的y次幂(3 ** 4得到81(即3 * 3 * 3 * 3))
/ 除 x除以y(4/3得到1(整数的除法得到整数结果)。4.0/3或4/3.0得到1.3333333333333333 )
// 取整除 返回商的整数部分(4 // 3.0得到1.0)
% 取模 返回除法的余数(8%3得到2。-25.5%2.25得到1.5)
<< 左移 把一个数的比特向左移一定数目(每个数在内存中都表示为比特或二进制数字,即0和1)(2 << 2得到8)。
>> 右移 把一个数的比特向右移一定数目 (11 >> 1得到5)
& 按位与 数的按位与 5 & 3得到1。
| 按位或 数的按位或 5 | 3得到7。
^ 按位异或 数的按位异或 5 ^ 3得到6
~ 按位翻转 x的按位翻转是-(x+1) ~5得到6。
< 小于 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。
这分别与特殊的变量True和False等价。注意,这些变量名的大写。
5 < 3返回0(即False)而3 < 5返回1(即True)。
比较可以被任意连接:3 < 5 < 7返回True。
> 大于 返回x是否大于y 5 > 3返回True。如果两个操作数都是数字,它们首先被转换为一个共同的类型。
否则,它总是返回False。
<= 小于等于 返回x是否小于等于y x = 3; y = 6; x <= y返回True。
>= 大于等于 返回x是否大于等于y x = 4; y = 3; x >= y返回True。
== 等于 比较对象是否相等 x = 2; y = 2; x == y返回True。
x = 'str'; y = 'stR'; x == y返回False。x = 'str'; y = 'str'; x == y返回True。
!= 不等于 比较两个对象是否不相等 x = 2; y = 3; x != y返回True。
not 布尔“非” 如果x为True,返回False。如果x为False,它返回True。 x = True; not y返回False。
and 布尔“与” 如果x为False,x and y返回False,否则它返回y的计算值。
x = False; y = True; x and y,由于x是False,返回False。在这里,Python不会计算y,
因为它知道这个表达式的值肯定是False(因为x是False)。这个现象称为短路计算。
or 布尔“或” 如果x是True,它返回True,否则它返回y的计算值。
x = True; y = False; x or y返回True。短路计算在这里也适用。
表5.2 运算符优先级
运算符 描述
lambda Lambda表达式
or 布尔“或”
and 布尔“与”
not x 布尔“非”
in,not in 成员测试
is,is not 同一性测试
<,<=,>,>=,!=,== 比较
| 按位或
^ 按位异或
& 按位与
<<,>> 移位
+,- 加法与减法
*,/,% 乘法、除法与取余
+x,-x 正负号
~x 按位翻转
** 指数
x.attribute 属性参考
x[index] 下标
x[index:index] 寻址段
f(arguments...) 函数调用
(experession,...) 绑定或元组显示
[expression,...] 列表显示
{key:datum,...} 字典显示
'expression,...' 字符串转换
2.2 if语句格式
#!/usr/bin/python
# Filename: if.py
number = 23
guess = int(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 here
elif 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
2.3 while语句
#!/usr/bin/python
# Filename: while.py
number = 23
running = True
guess = 0
while guess != number:
guess = int(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')
2.4 for循环
#!/usr/bin/python
# Filename: for.py
for i in range(1, 5):
print(i)
else:
print('The for loop is over')
2.5 break 与continue
与C++一样.
2.6 函数的定义
2.6.1 简单例子
#!/usr/bin/python
# Filename: function1.py
def sayHello():
print('Hello World!') # block belonging to the function
sayHello() # call the function
2.6.2 函数参数
#!/usr/bin/python
# Filename: func_param.py
def printMax(a, b):
if a > b:
print(a, 'is maximum')
else:
print(b, 'is maximum')
printMax(3, 4) # directly give literal values
x = 5
y = 7
printMax(x, y) # give variables as arguments
printMax('a', 'k') # give variables as arguments
2.6.3 局部变量与全局变量
局部变量:
在函数中, 没有用global来声明的变量就是局部变量了.
全局变量
使用 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 = 50
func()
print('Value of x is', x)
2.6.4 函数参数的默认值
这个和C++一样
#!/usr/bin/python
# Filename: func_default.py
def say(message, times = 1):
print(message * times)
say('Hello')
say('World', 5)
Python 还有多一个功能 叫关键参数
其作用就是可以不需要按照函数参数的声明顺序来传递参数给函数.
#!/usr/bin/python
# Filename: func_key.py
def func(a, b=5, c=10):
print('a is', a, 'and b is', b, 'and c is', c)
func(3, 7)
func(25, c=24) # 看这个调用, 跳过了b
func(c=50, a=100) #
2.6.5 函数的返回值
使用return返回, 如果没有return 默认返回None
#!/usr/bin/python
# Filename: func_return.py
def maximum(x, y):
if x > y:
return x
else:
return y
print(maximum(2, 3))
2.6.6 函数的DocStrings
说白了就是Python提供给函数的一个默认变量(叫常量也算)__doc__, 你只要按照Python的要求格式填入就可以了, 然后就可以使用__doc__了.
#!/usr/bin/python
# Filename: func_doc.py
def printMax(x, y):
'''Prints the maximum of two numbers.
The two values must be integers.''' # 这里填入__doc__
x = int(x) # convert to integers, if possible
y = int(y)
if x > y:
print(x, 'is maximum')
else:
print(y, 'is maximum')
printMax(3, 5)
print(printMax.__doc__) # 这里使用, 通过函数名来引用
它如何工作
在函数的第一个逻辑行的字符串是这个函数的 文档字符串 。注意,DocStrings也适用于模块和类,我们会在后面相应的章节学习它们。
文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。 强烈建议 你在你的函数中使用文档字符串时遵循这个惯例。
你可以使用__doc__(注意双下划线)调用printMax函数的文档字符串属性(属于函数的名称)。请记住Python把 每一样东西 都作为对象,包括这个函数。
尝试一下输入 help(printMax) 它就会显示__doc__了.
自动化工具也可以以同样的方式从你的程序中提取文档。因此,我 强烈建议 你对你所写的任何正式函数编写文档字符串。随你的Python发行版附带的pydoc命令,与help()类似地使用DocStrings。