Python
·编程语言分:机器语言、汇编语言、高级语言
·高级语言分:解释型语言(如python、编译型语言(如c
·C:预处理、编译、连接、可执行文件
·Cpython、Jython、Ipython、Pypy
·一个广泛的标准库、可扩展、互动模式
·胶水语言、脚本语言、快捷语言、快捷开发、插件语言等
·动态语言
·用缩进代替{}
·变量类型:数字、字符串、列表、元素、字典
面向对象
·编程思想:面向对象和面向过程
·简介:类、类变量、实例化、对象
·三大特性:封装、继承、多态
·子类对象的指针可以赋值给父类对象的指针
·Python中一切皆为对象
Python
Python简介
Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言
Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构
·Python是一种解释型语言:开发过程中没有了编译这个环节。类似于PHP和Perl语言
·Python是交互式语言:可以在一个Python提示符>>>后直接执行代码
·Python是面向对象语言:这意味着Python支持面向对象的风格或代码封装在对象的编程技术
·Python是初学者的语言:Python对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到WWW浏览器再到游戏
·编写中文字符 如果在ide下用#coding=utf-8
Python标识符
·以下划线开头的标识符是有特殊意义的。以单下划线开头_foo的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用from xxx import *而导入
·Python可以同一行显示多条语句,方法是用分号;分开,如print(“Hello,”);print(“World!”)
Python基础语法
行和缩进
·学习Python与其他语言最大的区别就是,Python的代码块不使用大括号{}来控制类,函数以及其他逻辑判断。python最具特色的就是使用缩进来写模块。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。
实例
if True:
print("Hello,")
print("World!")
else:
print("dont give me hope")
if里面语句没对齐编译器会报错
多行语句
·Python语句中一般以新行作为语句的结束符
·但我们可以使用斜杠(\)将一行的语句分为多行显示 如下所示
a=1;b=2;c=3
h=a+\
b+\
c
print(h)
·语句中包含[],{}或()括号就不需要使用多行连接符。如下实例:
hope=["you give"
,"give up"]
print(hope[1])
Python引号
·Python可以使用引号(‘)、双引号(“)、三引号(‘’’或”””)来表示字符串,引号的开始与结束必须是相同类型的。其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。
#coding=utf-8
word='词'
sentence="这不是句子"
home="""就这点字也能叫句子
嘛"""
print(word);print(sentence);print(home);
Python注释
·python中单行注释采用#开头
#这不是注释
print(“不是”)#不是注释
·Python中多行注释使用三个单引号(‘’‘)或三个双引号(“”“)
#coding=utf-8
#这不是注释
print('不是')#这也不是注释
'''
这是
多行
注释
'''
Python空行
函数之间或类的方法之间用空行分割,表示一段新的代码开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
空行也是程序代码的一部分
#coding=utf-8
raw_input('按下enter结束,其他键继续显示\n')
同一行显示多条语句
·Python可以这同一行中使用多条语句,语句之间使用分号(;)
print输出
·print默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号,
a=1;b=2
print(a),
print(b)
多个语句构成代码组
·缩进相同的一组语句构成一个代码块,我们称之为代码组。
·像if、while、def和class这样的复合语句,首行以关键字开始,以冒号(:)结束,该行之后的一行或多行代码构成代码组。我们将首行及后面的代码组称为一个子句(clause)。
a=0
b=0
if a:
print(a)
elif b:
print(a)
else:
print"--"
Python变量类型
多个变量赋值
·Python允许你同时为多个变量赋值 例如:
a=b=c=1
·你也可以为多个对象指定多个变量。例如:
a,b,c=1,2,’hello’
标准数据类型
·在内存中存储的数据可以有多种类型。
·例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。
·Python定义了一些标准类型,用于存储各种类型的数据。
·Python有五个标准的数据类型:
·Numbers(数字)
·String(字符串)
·List(列表)
·Tuple(元组)
·Diction(字典)
Python数字
·数字数据类型用于存储数值。
·他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。
·当你指定一个值时,Number对象就会被创建:
a=1
b=2
·你也可以用del语句删除一些对象的引用。
·del语句的语法是:
del var1[,var2[,var3[....,varN]]]#我不理解
·你也可以通过用del语句删除单个或多个对象的引用。例如
del a
·Python支持四种不同的数字类型:
·int(有符号整型)
·long(长整型,也可以代表八进制和十六进制)
·float(浮点型)
·complex(复数)
int | long | float | complex |
10 | 51924361L | 0.0 | 3.14j |
100 | -0x19323L | 15.20 | 45.j |
-786 | 0122L | -21.9 | 9.322e-36j |
080 | 0xDEFABCECBDAECBFBAEl | 32.3e+18 | .876j |
-0490 | 535633629843L | -90. | -.6545+0J |
-0x260 | -052318172735L | -32.54e100 | 3e+26J |
0x69 | -4721885298529L | 70.2E-12 | 4.53e-7j |
Python字符串
·字符串或串(String)是由数字、字母、下划线组成的一串字符。
·一般记为:
s=“a1a2…an”
·它是编程语言中表示文本的数据类型。
·python的字串列表有2种取值顺序:
·从左到右索引默认0开始的,最大范围是字符串长度少1
·从右到左索引默认-1开始的,最大范围是字符串开头
·如果你要实现从字符串中获取一段字符串的话,可以使用[头下表:尾下表]来截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。
比如:
d='do not give me hope'
print d[0:19]#do not give me hope
print d[-19:-1]#do not give me hop
print d[0:]#do not give me hope
print d[-19:]#do not give me hope
·加号(+)是字符串连接运算符,星号(*)是重复操作。如下实例
d='do not give me hope'
print d+' please'
s=d+' '
print s*2
·Python列表截取可以接收第三个参数,参数作用是截取的步长,以下实例在索引1到索引4的位置并设置为步长为2(间隔一个位置)来截取字符串:
0 1. 2. 3. 4
d=['d','o','n','o','t']
> 2 <
print d[1:4:2]
Python列表
·List(列表)是Python中使用最频繁的数据类型。
·列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。
·列表用[]标识,是python最通用的复合数据类型。
·列表中值的切割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始,从右到左索引默认-1开始,下标可以为空表示取到头或尾。
d=['d','o','n','o','t']
print d[:]
·加号+是列表连接运算符,星号*是重复操作。如下实例:
d=['d','o','n','o','t']
g=['g','i','v','e']
print d*2
print d+g
Python元组
·元组是另一个数据类型,类似于List(列表)。
·元组用()标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
Python字典
·字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
·字典用”{}”标识。字典由索引(key)和它对应的值value组成
d={}
d['one']="do not give me hope"
print d.values()
print d.keys()
dictionary={'so':'see','called':'me?'}
print dictionary.values()
print dictionary.keys()
输出结果为:
['do not give me hope']
['one']
['see', 'me?']
['so', 'called']
Python数据类型转换
·有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
·以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值
函数 | 描述 |
int(x[,base]) | 将x转换为一个整数 |
float(x) | 将x转换到一个浮点数 |
Complex(real[,imag]) | 创建一个复数 |
Python运算符#a=10 b=20
运算符 | 描述 | 实例 |
** | 幂-返回x的y次幂 | a**b为10的20次方,输出结果100000000000000000000 |
// | 取整除-返回商的整数部分(想下取整) | 9//2=4。 -9//2=-5 |
·整数除整数,只能得出整数。如果想要得到小数部分,把其中一个数改成浮点数即可
1.0/2=0.5
1/float(2)=0.5
Python比较运算符
·和c语言差不多这里不再赘述
Python赋值运算符
·同上 加了**=和//=
Python位运算符#a=60 b=13
·按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:
运算符 | 描述 | 实例 |
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a&b)输出结果为12 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1 | (a|b)输出结果为61 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a^b)输出结果为49 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1.~x类似于-x-1 | (~a)输出结果为-61(不太理解,像是一个二进制数有俩符号位一样) |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由<<右边的数字指定了移动的位数,高位丢弃,低位补0。 | a<<2输出结果240(不太理解,可能符号位被顶走了?) |
>> | 右移动运算符:把>>左边的运算数的各二进位全部右移若干位,>>右边的数字指定了移动的位数 | a>>2输出结果15 |
Python逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
and | x and y | 布尔“与”-如果x为False,x and y返回False,否则它返回y的计算值。 | (a and b)返回20 |
or | x or y | 布尔“或”-如果x是非0,它返回x的计算值,否则它返回y的计算值 | (a or b)返回10 |
not | not x | 布尔“非”-如果x为True,返回False。如果x为False,它返回True | not(a and b)返回False |
Python成员运算符
·除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
运算符 | 描述 | 实例 |
in | 如果在指定的序列中找到值返回True,否则返回False | x在y序列中,如果x在y序列中返回True |
not in | 如果在指定的序列中没有找到值返回True,否则返回False | x不在y序列中,如果x不在y序列中返回True |
Python身份运算符
·身份运算符用于比较两个对象的存储单元
is | is是判断两个标识符是不是引用一个对象 | x is y,类似id(x)==id(y),如果引用的是同一个对象则返回True,否则返回False |
is not | is not是判断两个标识符是不是引用自不同对象 | x is not y,类似id(a)!=id(b)。如果引用的不是同一个对象则返回结果True,否则返回False |
·is与==区别
·is用于判断两个变量引用对象是否为同一个(同一块内存空间),==用于判断引用变量的值是否相等。
a=[1,2,3]
b=a[:]
if a==b:
print("YES")
if a is b:
print("Identical")
Python运算符优先级
运算符 | 描述 |
** | 指数(最高优先级) |
~+- | 按位翻转,一元加号和减号(最后两个的方法名为+@和-@) |
*/%// | 乘,除,取模和取整除 |
+= | 加法减法 |
>><< | 右移,左移运算符 |
& | 位‘AND’ |
^| | 位运算符 |
<= < > >= | 比较运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
Python条件语句
·和c差不多 除了符号 还有if while里不用加括号 这里就不赘述了
·有一个不同 elif
Python循环语句
·while可以有个else
·for循环不像c 可以用个list
语法格式如下:
for iterating_var in sequence:
statements(s)
for letter in ‘Python’:
print(“%s” %letter)
a=[‘do’,’not’,’give’]
for as in a:
print(‘%s’%as)