Python中数据类型:
一.整数
python可以处理任意大小的整数,当然包括负整数,在python程序中,整数的表示方法和数学的写法一模一样。、
二.浮点数
浮点数也是小数,之所以称浮点数是因为按照科学计数法表示时,一个浮点数的小数点位置是可变的,例如1.23x10^9和12.3x10^8是相等的。
整数和浮点数在计算机内部存储的方式不同的,整数运算永远精确的,浮点数运算则可能会被四舍五入。
三.字符串
字符串是以‘ ’或 “ ”括起来的任意文本。
四.布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有True,False两种值(注意大写)。
布尔值可以用and,or,not运算
五.空值
空值是python里一个特殊的值,用None表示,None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
python输出语句:print
python的注释语:以#开头,直到行尾结束。
Python中的变量:
在Python中,变量使用一个变量名表示,变量名必须是大小写英文,数字和下划线的组合,且不能用数字开头。
在Python中 等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。这种不固定类型的赋值称之为动态语句,反之,静态语句中定义变量必须指定变量类型,如果赋值类型不匹配,就会报错。
如何理解变量在计算机中的表示:
a = 'ABC' b = a a = 'XYZ' print b
Python解释器
第一步在内存创建了一个‘ABC’的字符串,然后在内存中创建了一个名为a的变量,并把它指向'ABC'。
第二步是把变量b指向变量a所指向的数据。
第三步是给变量a重新赋值为'XYZ'。
第四步输出b为'ABC',b的指向并没有发生改变。
Python中定义字符串
在上文提到,字符串可以用‘ ’和“ ”表示
如果在字符串中包含‘ ’和“ ” 该如何表示呢
这时候,我们需要对字符串的某些特殊字符进行转义,Python字符串用 进行转义 。
表示换行
表示一个制表符
\表示 字符本身
Python中raw字符串和多行字符串
如果一个字符串包含很多需要转义的字符,对每一个字符串都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加一个前缀 r ,表示这是一个 raw 字符串,里面的字符就不需要转义了。
如果需要表示多行字符串,可以用'''...'''表示:
第一种: 'Line 1 Line 2 Line 3' 第二种: '''Line 1 Line 2 Line 3''' 两种表示方法是一样的
Python中整数与浮点数
python支持对整数和浮点数直接进行四则混合运算,运算规则和数学上的四则运算规则完全一致。
与数学运算不同的是:Python的整数运算结果仍然是整数,浮点数运算仍然是浮点数,整数和浮点数混合运算的结果就变成了浮点数。
注意:在Python的整数除法时,除不尽的数仍然是整数,余数会被直接扔掉。不过,python提供了一个求余的运算% 可以计算余数。
Python按照索引访问list
list是一个有序集合,可以通过索引的方式来获取list中的指定元素。(索引从0开始)
list的倒序访问和正序访问相反。
L = [95.5, 85, 59] print L[-1] //59 print L[-2] //85 print L[-3] //95.5 print L[0] //95.5 print L[1] //85 print L[2] //59
Python之添加新元素
第一种方式:用list的append()方法追加到list的末尾。
第二种方式: 用list的insert()方法,它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素。
L=['A','B','C'] L.append('D') print L //['A','B','C','D'] L.insert(0,'D‘) print L //['D','A','B','C'] 注意:print前在python语法中不能有空格
Python从list删除元素
第一种方式:用list的pop()方法删除,pop()方法总是删掉list的最后一个元素,并且它返回这个元素。
第二种方式:使用pop(索引值)方法删除。
L=['A','B','C'] L.pop() //'D' print L //['A','B'] L.pop(2) //'C' print L //['A','B']
Python中替换元素
第一种方式:先将替换元素删除,再添加新元素。
第二种方式:直接根据索引替换对应的元素。
Python之创建tuple
tuple是另一种有序的列表,中文翻译为“元祖”。tuple和list非常类似,但是tuple一旦创建完毕,就不能修改了。
创建tuple和创建list唯一不同之处是用( )
替代了[ ]
。
Python之创建单元素tuple
tuple和list一样,可以包含0个,1个和人任意多个元素。包含0个元素的tuple,也就是空tuple。直接用()表示。
>>> t = (1) >>> print t 1 由于()既可以表示tuple,又可以作为括号表示运算时的优先级,结果(1)被Python解释器计算结果1,导致我们得到的不是tuple,而是数字1. 正因为用()定义的tuple有歧义,所以在python规定,单元素tuple要多加一个逗号“ ,”来避免歧义。 >>> t = (1,) >>> print t (1,)
Python之“可变”的tuple
>>> t = ('a', 'b', ['A', 'B']) >>> L = t[2] >>> L[0] = 'X' >>> L[1] = 'Y' >>> print t ('a', 'b', ['X', 'Y'])
表面上看,tuple的元素确实变了,但其实变得不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向“a”,就不能改成指向“b”,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的。
Python之if语句
Python代码的缩进规则。具有相同缩进的代码被视为代码块,缩进按照严格的Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。
Python之if-else语句
利用if....else...语句,可以根据条件表达式打的值为True或者False,分别执行if代码或者else代码块。else有个“:”
Python之if-elif-else语句
在处理逻辑关系时,会出现多层嵌套的结构,而在python已经给出了很好地处理语法,引入了if.....多个elif...else....的结构,一次可以写完所有规则。
Python之for循环
list或tuple可以表示一个有序集合,对访问每一个元素可以使用 for 循环依次吧list或tuple的每一个元素迭代出来。
例如:
L = ['Adam', 'Lisa', 'Bart'] for name in L: print name
Python之while循环
和for不同的是while循环,while循环不会迭代list或tuple的元素,而是根据表达式判断循环是否结束。
while循环每次首先判断x<N:,如果为True,则执行循环体的代码块,否则退出循环。(避免死循环的出现)
Python之break退出循环
用 for 循环或者 while 循环时,如果要在循环体内直接退出循环,可以使用 break 语句。
Python之continue继续循环
在循环过程中,可以用break退出当前循环,还可以用continue跳过后续循环代码,继续下一次循环。
例如:
当 x 是偶数时,就通过continue语句提前进入下一次循环。 continue判断的位置非常重要。 sum = 0 x = 0 while True: x = x + 1 if x > 100: break if x % 2 == 0: continue sum= sum + x print sum
Python之多重循环:
对100以内的两位数,请使用一个两重循环打印出所有十位数数字比个位数数字小的数,例如,23(2 < 3)。 for x in [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]: for y in [ 1, 2, 3, 4, 5, 6, 7, 8, 9]: if x < y: print x*10 + y
Python之dict
在Python中,dict中存在形如key-value可以快速查找所需要的的信息。使用{}符号表示
dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。
由于dict是按 key 查找,所以,在一个dict中,key不能重复。
dict的第二个特点就是存储的key-value序对是没有顺序的!这和list不一样。所以打印的顺序不一定是我们创建的,而且,不同机器打印的顺序可能会不同,不能用dict存储有序的集合。
dict的第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。
Python更新dict
dict是可变的,我们可以随时往dict中添加新的key-value。
如果key值不存在,可以赋值语句添加。
如果key值存在,则会更新value值。
Python之遍历dict
由于dict也是一个集合,所以,遍历dict和遍历list类似,都可以通过 for 循环实现。
Python中的set
dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了。
set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。
创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:(set不能包含重复的元素,会自动去掉重复元素)
>>> s = set(['A', 'B', 'C']) >>> print s set(['A', 'C', 'B']) 请注意,上述打印的形式类似 list, 但它不是 list,仔细看还可以发现,打印的顺序和原始 list 的顺序有可能是不同的,
因为set内部存储的元素是无序的。
由于set存储是无序集合,所以没有办法通过索引来访问。然而访问set中的某一个元素就是判断一个元素是否存在set中。使用in操作符判断。
set的特点:
set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。
set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。
最后,set存储的元素也是没有顺序的。
set的实例:
months = set(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']) x1 = 'Feb' x2 = 'Sun' if x1 in months: print 'x1: ok' else: print 'x1: error' if x2 in months: print 'x2: ok' else: print 'x2: error' 输出: x1: ok x2: error
更新set
由于set存储的是一组不重复的无序元素,因此,更新set主要做两件事:
一是把新的元素添加到set中,
二是把已有元素从set中删除。
添加元素时,用set的add()方法:
>>> s = set([1, 2, 3]) >>> s.add(4) >>> print s set([1, 2, 3, 4])
如果添加的元素已经存在,add()不会报错,但也不会加进去。
删除set中的元素时,用set的remove()方法:
>>> s = set([1, 2, 3, 4]) >>> s.remove(4) >>> print s set([1, 2, 3])
如果删除的元素不存在,remove()会报错。
Python之函数
内置函数:https://docs.python.org/2/library/functions.html#
编写函数:
在Python中,定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。
例子:
def my_abs(x): if x >= 0: return x else: return -x
请注意,函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑。如果没有return语句,函数执行完毕后也会返回结果,只是结果为 None。