Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。在命令行窗口输入”python” 命令来查看本地是否已经安装Python以及Python的安装版本
Python下载
Python官网: http://www.python.org/
Python文档下载地址: www.python.org/doc/
Python 缩进与空行
Python中不使用大括号,而是使用缩进来组织代码块,缩进的空格数没有严格要求,但是同一个代码块语句必须有相同的缩进,这个必须严格执行,缩进相同的语句被认为是处于同一个代码块中。
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
在Python中,一般来说一条语句占用一行,语句结束一般不需要使用分号“;”,若要将多条语句写在一行,则需用“;”将语句分开。
当一行语句很长时,可以用 “\” 符号折行显示代码。如下所示:
total = num1 + \
num2 +\
num3
另外,语句中包含[], {} 或 () 括号就不需要使用多行连接符。如下实例:
days = [‘Monday’,’Tuesday’, ‘Wednesday’,
‘Thursday’,’Friday’]
Python 中文编码
代码中如果包含中文,且在Python 文件中未指定编码,就有可能会碰到中文编码问题,在执行过程会出现报错:
File “C:\Users\wyb\workspace\PythonExercise\src\exercise1.py”, line 2
SyntaxError: Non-UTF-8 code starting with ‘\xc5’ in file C:\Users\wyb\workspace\PythonExercise\src\exercise1.py on line 2, but no encoding declared; see
http://python.org/dev/peps/pep-0263/ for details
解决方法为只要在文件开头加入 #-*- coding: UTF-8 -*- 或者# coding=utf-8 就行了。
Python 注释
注释 以”#”号开头的内容为单行注释,python解释器会忽略该行的内容。
多行注释 用一对三个引号(”’…”’)进行注释。
Python 标识符
1、 python命名规则与Java基本一样,标识符由字母、数字、下划线组成,但不能以数字开头,区分大小写。
2、 python中以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用‘from xxx import *’而导入;以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如__init__()代表类的构造函数。因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,所以一般避免用下划线作为变量名的开始。
Python 保留字
and
exec
not
assert
finally
or
break
for
pass
class
from
continue
global
raise
def
if
return
del
import
try
elif
in
while
else
is
with
except
lambda
yield
Python 数据类型
Python 程序中 “一切数据是对象,一切命名是引用”,包括自定义对象和基本数据类型。 Python在使用变量之前无须定义它的类型,但是必须声明以及初始化该变量。
1、 数值类型(Numbers)
Python拥有四种数值类型:整型(int),长整型(long),浮点类型(float)以及复数类型(complex)。
num1 = 20 #int型
num2 = 11213L #long型
num3 = 15.20 #float型
num4 = 70.2-E12 #float型
num5 = 3.14j #complex型
复数由实数部分和虚数部分构成,Python可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型
2、 字符串类型(String)
Python拥有两种字符串类型:标准字符串(str)是单字节字符序列,Unicode字符串(unicode)是双字节字符序列。在Python中定义一个标准字符串(str)可以使用单引号、双引号甚至三引号(多行)。在Python中定义一个Unicode字符串,需要在引号前面加上一个字符u。另外,Python没有字符(char)类型,再短的文本也是字符串。
str1 = ‘Hello”\n’
str2 = “Hello’\r”
str3 = “””
Hello,
I love Python
“””
str4 = u’你好,Python’
python的字串列表有2种取值顺序:
从左到右索引默认0开始的,最大范围是字符串长度少1
从右到左索引默认-1开始的,最大范围是字符串开头
可以用到变量[头下标:尾下标],来截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。比如:
s = ‘I love study’
s[2:6]的结果是love。(包括下边界,不包括上边界)
加号’+‘是字符串的连接运算符,星号’*‘表示重复操作
str1 = ‘I Love “Python”‘
print (str1 * 3)
print (str1[2:6])
print (str1 + “aaa”)
输出:
I Love “Python”I Love “Python”I Love “Python”
Love
I Love “Python”aaa
3、列表(List)
列表用[ ]标识,支持数字,字符串甚至可以包含列表,是python最通用的复合数据类型。
list = [ ‘aa’, ‘bb’, 11 ]
列表中也可用变量[头下标:尾下标]来截取相应的列表,从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。
加号’+‘是列表连接运算符,星号’*‘是重复操作。
print ( list[1:2] ) #输出第二个元素
print ( list[1] ) #输出第二个元素
print ( list[1: ] ) #输出第二个开始至末尾的元素
print ( list *2 ) #输出列表两次
print ( list 1+ list2 ) #输出组合的列表
4、元祖(Tuple)
元组是另一个数据类型,类似于List(列表)。元组用”()”标识。内部元素用逗号隔开。但是元素不能二次赋值,相当于只读列表。
list = [ ‘aa’, 10, ‘python’ ]
tuple = [ ‘aa’, 10, ‘python’ ]
list[1] = 20 #合法,list中元素允许更新
tuple[1] = 20 #不合法,tuple中元素不允许更新
5、字典(Dictionary)
字典与列表不同。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用”{ }”标识,由索引(key)和它对应的值(value)组成。
dict = { ‘num1′:0123,’num2′: 2345,’num3’: 4567 }
print (dict[‘num1’])
print (dict)
print (dict.values())
print (dict.keys())
输出结果为:
0123
{‘num3’: 4567, ‘num2’: 2345, ‘num1’: 0123}
dict_values([4567, 2345, 0123])
dict_keys([‘num3’, ‘num2’, ‘num1’])
Python 运算符
算术运算符:+、-、*、/、%、**(幂)、//(整除)
2 ** 4 为2的4次方,16
9 // 2得整除值4 9.0 // 2.0 得4.0
比较运算符:==、!=、<>(同!=)、>、<、<=、>=
赋值运算符:=、+=、-=、*=、/=、%=、**=、//=
Python允许同时为多个变量赋值,如:a = b = c = 0 此实例创建了一个整型对象,值为0,三个变量指向相同的内存空间
a, b, c = 0,1, 2 此实例创建了3个整型对象
位运算符: &按位与运算符
|按位或运算符
^按位异或运算符
~按位取反运算符
<<左移动运算符
>>右移动运算符
逻辑运算符:and布尔”与” – 如果x为False,x and y返回False,否则它返回y的计算值。
or布尔”或” – 如果x是True,它返回True,否则它返回y的计算值。
not布尔”非” – 如果x为True,返回False。如果x为False,它返回True。
成员运算符:in 如果在指定的序列中找到值返回True,否则返回False。
not in如果在指定的序列中没有找到值返回True,否则返回False。
身份运算符:is是判断两个标识符是不是引用自一个对象x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not是判断两个标识符是不是引用自不同对象x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1
Python 运算符优先级
以下表格中运算符优先级由高到低:
运算符 描述
** 指数 (最高优先级)
~ + – 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ – 加法减法
>> << 右移,左移运算符
& 位 ‘AND’
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符
Python 条件语句
if语句 :
if 判断条件1:
执行语句……
elif 判断条件2:
执行语句…….
else:
执行语句……
注意:
1、Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
2、执行语句可以多行,以缩进来区分表示同一范围
3、if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
4、由于 python 并不支持 switch 语句,所以多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。
Python 循环语句
循环语句允许我们执行一个语句或语句组多次,Python提供了for循环和while循环(在Python中没有do..while循环)。
while语句即在某个条件下,循环执行某段程序,以处理需要重复处理的相同任务,形式为:
while 判断条件:
执行语句……
判断条件可以是任意表达式,任何非零非空的值均为true。当判断条件为false时,循环结束。
控制语句 描述:
break 语句 在语句块执行过程中终止循环,并且跳出整个循环
continue 语句 在语句块执行过程中终止当前循环,跳出该次循环,即不再执行当前循环的 剩余语句,执行下一次循环。
pass语句是空语句,是为了保持程序结构的完整性。
实例:
1、
i = 30
while i>0:
if i%10!=0:
i-=1
continue #i不是10的倍数,则继续下一次循环,不输出
print (i)
i-=1
输出:
30
20
10
2、
j = 10
while j>5:
if j==7:
break #j等于7时跳出整个循环
print (j)
j-=1
输出:
10
9
8
当循环条件永远为true时,循环将无限循环下去。可以使用 CTRL+C 来中断循环。
for循环语句可以遍历任何序列的项目,如一个列表或者一个字符串,语法格式如下:
for iterating_var in sequence:
statements(s)
实例:
1、
fruits = [‘banana’, ‘apple’, ‘mango’]
for fruit in fruits:
print (fruit)
输出:
banana
mango
apple
2、
for index in range(len(fruits)):
print ( fruits[index]) #通过索引遍历,输出同实例1
循环中的else语句
在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
实例:判断10到15中,每个数字是否为质数
for num in range(10,15):
for i in range(2,int(sqrt(num))):
if num%i == 0: #能整除说明不是质数
j=num/i
print (‘%d equals %d * %d’ % (num,i,j)) #打印出可分解的因子
break #跳出2层循环,开始计算下个数字 #在不是质数的情况下,不执行else部分
else: # for 不是通过 break 跳出而中断的情况下执行
print (num, ‘is a prime number’ )
输出:
10 equals 2 * 5
11 is a prime number
12 equals 2 * 6
13 is a prime number
14 equals 2 * 7