Python
头文件:#!/usr/bin/python
解释:这条语句指定了python解释器的路径(在windows下只要在当前路径下使用则可有可无)
输出语句:print(“想要输出的部分”);可以同一行显示多条语句,用“;“隔开
print(“1”);print(“2”);
1
2
python中文编码问题,python默认ASCII编码,需要加上:# -*- coding: UTF-8 -*-
或者加上:#coding=UTF-8
交互式编程
windows在终端中输入python即可
python标识符
标识符由字母、数字、下划线组成。但不能以数字开头,且区分大小写。其中以下划线开头的标识符有特殊意义,_foo代表不能直接访问的类属性(需要通过接口来访问)不能用from xxx import * 而导入。
以__foo开头代表类的私有成员,以下划线开头和结尾的__foo__代表python里特殊方法专用标识,如__init__()代表类的构造函数。
Python关键字只包含小写字母
行和缩进
学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。python 最具特色的就是用缩进来写模块。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。
IndentationError: unindent does not match any outer indentation level错误表明,你使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可。建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 , 切记不能混用
Python语句中一般以新行作为结束的标志,但可以用斜杠(\)将一行分为多行显示例子:
t=a+\
b+\
c
相当于语句 t=a+b+c
若语句中包含[]、{}、()就不需要使用多行连接符。
Days=[‘m’,’t’,’w’,
‘t1’,’f’]
相当于语句Days=[‘m’,’t’,’w’,‘t1’,’f’]
python引号
Python 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串,引号的开始与结束必须是相同类型的。
其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。例子如下:
Par=”””这是一个段落,
包含了对个句子”””
python注释
单行注释 #开头
多行注释三个单引号或者三个双引号
‘’’
多行注释
多行注释
多行注释
‘’’
“””
多行注释
多行注释
多行注释
“””
python空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。
等待用户输入
raw_input(“户按下 enter(回车) 键退出,其它键显示。\n”)
以上代码中 \n 实现换行。一旦用户按下 enter(回车) 键退出,其它键显示。
Print()语句默认是换行的,如果要实现不换行需要在变量末尾加上逗号 。
x="a"
y="b"
print x
print y
上述为换行输出
以下为不换行输出的两种方式
1.print x,
print y,
2.print x,y
多个语句构成代码组
缩进相同的一组语句构成一个代码块,我们称之代码组。
像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。
我们将首行及后面的代码组称为一个子句(clause)。
if expression :
suite
elif expression :
suite
else :
suite
python变量类型
变量赋值
Python 中的变量赋值不需要类型声明。
每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。
多个变量赋值
python允许你同时为多个变量赋值
a=b=c=1
此语句执行:a=1,b=1,c=1
a,b,c,=1,2,3
此语句执行:a=1,b=2,c=3
标准数据类型
在内存中存储的数据可以有多种类型。
例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。
Python 定义了一些标准类型,用于存储各种类型的数据。
Python有五个标准的数据类型:
Numbers(数字)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
Python数字
数字数据类型用于存储数值。
他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。
当你指定一个值时,Number对象就会被创建:
var1 = 1
var2 = 10
您也可以使用del语句删除一些对象的引用。
del语句的语法是:
del var1[,var2[,var3[....,varN]]]]
您可以通过使用del语句删除单个或多个对象的引用。例如:
del var
del var_a, var_b
Python支持四种不同的数字类型:
int(有符号整型)
long(长整型[也可以代表八进制和十六进制])
float(浮点型)
complex(复数)
长整型也可以使用小写 l,但是还是建议您使用大写 L,避免与数字 1 混淆。Python使用 L 来显示长整型。
Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
Python字符串
字符串或串是由数字、字母、下划线组成的一串字符。
一般记为:
s=”ala2…an”(n>0)
它是编程语言中表示文本的数据类型。
python的字串列表有2种取值顺序:
从左到右索引默认0开始的,最大范围是字符串长度少1
从右到左索引默认-1开始的,最大范围是字符串开头
如果你要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。
[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。
头下表不输入时输出前(尾下标)的字符串
尾下标不输入时输出从(头下标)到结尾的字符串
比如:
s = 'abcdef'
print s[1:5]
此语句输出 bcde
注意:
当使用以冒号分隔的字符串,python 返回一个新的对象,结果包含了以这对偏移标识的连续的内容,左边的开始是包含了下边界。上面的结果包含了 s[1] 的值 b,而取到的最大范围不包括尾下标,就是 s[5] 的值 f。
加号(+)是字符串连接运算符,星号(*)是重复操作
str = 'Hello World!'
print str # 输出完整字符串
print str[0] # 输出字符串中的第一个字符
print str[2:5] # 输出字符串中第三个至第六个之间的字符串
print str[2:] # 输出从第三个字符开始的字符串
print str * 2 # 输出字符串两次
print str + "TEST" # 输出连接的字符串执行结果:Hello World!TEST
python列表
列表可以完成大多数集合类的数据结构实现。它支持字符、数字、字符串甚至可以包含列表(嵌套)。
列表用[]标识,是python最通用的复合类型数据类型。
列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。
加号(+)是字符串连接运算符,星号(*)是重复操作
列表输出时两端由[ ]隔开
python列表截取可以接受第三个参数,此参数作用是截取的步长(步长是隔多少个数输出一个)。例子如下
list=[0,1,2,3,4]
print list[0:4:2]
输出结果:[0,2]
python 元组
元组是另一个数据类型,类似于 List(列表)。
元组用 ( ) 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
列表可以更新,元组无法更新
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000 # 元组中是非法应用
list[2] = 1000 # 列表中是合法应用
python字典
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
{key1:value1,key2:value2….}
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print dict['one'] # 输出键为'one' 的值
print dict[2] # 输出键为 2 的值
print tinydict # 输出完整的字典
print tinydict.keys() # 输出所有键
print tinydict.values() # 输出所有值
This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name'] #从后向前输出
['sales', 6734, 'john'] #从后向前输出
小结:
字符串:” ”标识
列表:列表用[ ]标识
元组:元组用 ( ) 标识
字典:字典用{ }标识
三者均可使用
加号(+)是字符串连接运算符,星号(*)是重复操作
python数据类型转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
以下几个内置的函数可以执行数据类型之间的转换。
函数 描述
int(x [,base]) 将x转换为一个整数
long(x [,base] ) 将x转换为一个长整数
float(x) 将x转换到一个浮点数
complex(real [,imag]) 创建一个复数
str(x) 将对象 x 转换为字符串
repr(x) 将对象 x 转换为表达式字符串
eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s) 将序列 s 转换为一个元组
list(s) 将序列 s 转换为一个列表
set(s) 转换为可变集合
dict(d) 创建一个字典。d 必须是一个序列 (key,value)元组。
frozenset(s) 转换为不可变集合
chr(x) 将一个整数转换为一个字符
unichr(x) 将一个整数转换为Unicode字符
ord(x) 将一个字符转换为它的整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串
python运算符
python算术运算
+,-,*,/,四则基本运算
% 取模 即取余
** 幂 即a的b次方
// 取整除(向下取整) 9//2 得4 -9//2 得 -5
注意:Python2.x 里,整数除整数,只能得出整数。如果要得到小数部分,把其中一个数改成浮点数即可。如
1/2
0
1.0/2
0.5
1/float(2)
0.5
python比较运算符
==,!=,>=,<=,>,<基本运算同c/c++语言
python2.X中存在 <> 类似于!=
返回值是false 或者 true
python赋值运算符
=,+=,-=,*=,/=,%=,**=,//=
均是a=a运算符b如
a%=b 相当于a=a%b
a**=b 相当于 a=a**b 即a=a的b次方
a//=b 想当于 a=a//b 即a=a对b取整除(向下取整)
python位于运算符(二进制运算下)
& 按位与 两者有一个为0就为0,否则为1
| 按位或 两者有一个为1就为1,否则为0
^ 按位异或 两者不同时为1否则为0
~ 按位取反 把每一位取反即可
<< 左移运算 相当于10进制*2
>> 右移运算 相当于10进制/2
python逻辑运算符
Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:
and 布尔与 x为false,x and y 返回 false,否则它返回y的计算值
or 布尔或 x为非0,它返回x的值,否则返回y的计算值
not 布尔非 x为true,返回false。否则相反
(a and b)返回20
(a or b)返回 10
not(a and b) 返回 False
python成员运算符
除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
in 如果在指定的序列中找到值返回 True,否则返回 False,如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False,如果 x 不在 y 序列中返回 True。
Python身份运算符
身份运算符用于比较两个对象的存储单元
is是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False。
is not是判断两个标识符是不是引用自不同对象 x is not y,类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。
注意:id() 函数用于获取对象内存地址。
is与==的区别
is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。
示例
a=[1,2,3]
b=a
此时b与a是同一个地址
b=a[:]
此时b是新的地址,b与a不是同一个地址只是数值相等
python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 'AND'
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符
python条件语句
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
条件语句基本形式:
if 判断条件:
执行语句
else:
执行语句
其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。
else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句。
当判断条件为多个值时,可以使用以下形式:
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
python不支持switch语句
num = 9
if num >= 0 and num <= 10: # 判断值是否在0~10之间
print 'hello'
# 输出结果: hello
num = 10
if num < 0 or num > 10: # 判断值是否在小于0或大于10
print 'hello'
else:
print 'undefine'
# 输出结果: undefine
num = 8
# 判断值是否在0~5或者10~15之间
if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):
print 'hello'
else:
print 'undefine'
# 输出结果: undefine
当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。
Python循环语句
三种循环类型:while循环,for循环,嵌套循环。
三种循环控制语句:break,continue,pass
python while循环语句
形式:
while 判断条件(condition):
执行语句(statements)…
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假 false 时,循环结束。
while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立,具体用法如下:
i = 1
while i < 10:
i += 1
if i%2 > 0: # 非双数时跳过输出
continue (跳出当前小循环)
print i # 输出双数2、4、6、8、10
i = 1
while 1: # 循环条件为1必定成立
print i # 输出1~10
i += 1
if i > 10: # 当i大于10时跳出循环
break (跳出大循环)
循环使用else语句
在 python 中,while … else 在循环条件为 false 时执行 else 语句块:
count=0;
while count < 5:
print count, " is less than 5"
count = count + 1
else:
print count, " is not less than 5"
python for循环语句
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
格式:
for iterating_var in sequence:
statements(s)
示例
# -*- coding: UTF-8 -*-
for letter in 'Python': # 第一个实例
print '当前字母 :', letter
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # 第二个实例
print '当前水果 :', fruit
print "Good bye!"
通过序列索引迭代
# -*- coding: UTF-8 -*-
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print '当前水果 :', fruits[index]
print "Good bye!"
以上实例我们使用了内置函数 len() 和 range(),函数 len() 返回列表的长度,即元素的个数。 range返回一个序列的数。
循环使用else语句
在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。示例
# -*- coding: UTF-8 -*-
for num in range(10,20): # 迭代 10 到 20 之间的数字
for i in range(2,num): # 根据因子迭代
if num%i == 0: # 确定第一个因子
j=num/i # 计算第二个因子
print '%d 等于 %d * %d' % (num,i,j)
break # 跳出当前循环
else: # 循环的 else 部分
print num, '是一个质数'
python嵌套循环
python for循环嵌套语法
for iterating_var in sequence:
for iterating_var in sequence:
statements(s)
statements(s)
python while循环嵌套
while expression:
while expression:
statement(s)
statement(s)
你可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环, 反之,你可以在for循环中嵌入while循环。
Python break语句
打破最小的for while 循环
python continue语句
continue跳出本次循环,break跳出整个循环
python pass语句
pass是空语句,为了保持程序结构的完整性
pass不作任何作用,一般用作占位语句
python number(数字)
存在一个del语句,此语句可以删除数字
python math模块、cmath模块
cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是数学运算。
要使用 math 或 cmath 函数必须先导入:
import math
python数学函数
函数 返回值 ( 描述 )
abs(x) 返回数字的绝对值,如abs(-10) 返回 10
ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5
cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,...) 返回给定参数的最大值,参数可以为序列。
min(x1, x2,...) 返回给定参数的最小值,参数可以为序列。
modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y) x**y 运算后的值。
round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
sqrt(x) 返回数字x的平方根
python随机数函数
函数 描述
choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1
random() 随机生成下一个实数,它在[0,1]范围内。
seed([x]) 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
shuffle(lst) 将序列的所有元素随机排序
uniform(x, y) 随机生成下一个实数,它在[x,y]范围内。
Python三角函数
函数 描述
acos(x) 返回x的反余弦弧度值。
asin(x) 返回x的反正弦弧度值。
atan(x) 返回x的反正切弧度值。
atan2(y, x) 返回给定的 X 及 Y 坐标值的反正切值。
cos(x) 返回x的弧度的余弦值。
hypot(x, y) 返回欧几里德范数 sqrt(x*x + y*y)。
sin(x) 返回的x弧度的正弦值。
tan(x) 返回x弧度的正切值。
degrees(x) 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
radians(x) 将角度转换为弧度
python字符串
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
Python转义字符
\(在行尾时) 续行符
\\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000 空
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy代表的字符,例如:\o12代表换行
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出
python字符串运算
r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
print r’\n’ 结果是 \n
print R’\n’ 结果是 \n
字符串格式化
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数
%g %f和%e的简写
%G %F 和 %E 的简写
%p 用十六进制数格式化变量的地址
python列表