本期的Python教程为大家整理了一些Python学习笔记类!刚入门的伙伴可以看过来了!
第一章 Python变量和数据类型
1-1 Python中的数据类型
一、整数
Python可以处理任意大小的整数,当然包括负整数。
①普通整数:写法一样,例如:1,100,-8080,0。
②十六进制:用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。
![bbe3d0492a1710813bc68ed73b25a036.png](https://i-blog.csdnimg.cn/blog_migrate/8a521ba51a72829aab9379a0041d4a2d.jpeg)
二、浮点数
①普通浮点数:直接用数学写法,如1.23,3.14,-9.01,等等。
②科学计数法:把10用e替代,即:1.23x10^9记为1.23e9或12.3e8,0.000012可以写成1.2e-5
注:整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。
三、字符串
①字符串是以''或""括起来的任意文本。
比如'abc',"xyz"等等。字符串'abc'只有a,b,c这3个字符。
四、布尔值
①在Python中,可以直接用True、False表示布尔值(请注意大小写)
②通过布尔运算计算出来。
③布尔值可以用and、or和not运算。
and运算是与运算,只有所有都为 True,and运算结果才是 True。
or运算是或运算,只要其中有一个为 True,or 运算结果就是 True。
not运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True。
五、空值
空值是Python里一个特殊的值,用None表示。
None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
1-2:print输出
①print语句可以向屏幕上输出指定的文字。比如输出'hello, world'
②print语句也可以跟上多个字符串,用逗号“,”隔开,遇到逗号“,”会输出一个空格,这样就可以连成一串输出:
③print也可以打印整数,或者计算结果
1-3 变量
①变量不仅可以是数字,还可以是任意数据类型。
②变量名必须是大小写英文、数字和下划线(_)的组合,且不能用数字开头
③在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量(动态语言)。
1-4 字符串
如果字符串包含",我们就可以用' '括起来表示
对字符串的某些特殊字符进行“转义”,Python字符串用进行转义:
’表示‘”表示 ” 表示换行 表示一个制表符 表示 字符本身
1-5 输出字符串
①若一个字符串包含很多需要转义的字符,在字符串前面加个前缀 r ,表示这是一个 raw 字符串,里面的字符就不需要转义了
②表示多行字符串,可以用'''...'''表示
③用r'''...'''把多行字符串变成raw字符串
④输出中文:在第一行添加注释:# -*- coding: utf-8 -*-,然后输出时用u'...',其余同上
1-6 整数与浮点数的运算
整数运算结果仍然是整数,浮点数运算结果仍然是浮点数,但是整数和浮点数混合运算的结果就变成浮点数了。
1-7 布尔运算
and 和 or 运算的一条重要法则:短路计算。
① 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
②在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
第二章 List、tuple、dict、set
dict查找速度快,但占用内存大;list随着元素的增多查找速度逐渐下降,但占用内存小
List:有序,可变
Tuple:有序,不可变
Dict:无序,key不能重复、不可变(所以list就不能作为key)
Set:无序,元素不重复、不可修改但可以增加和删除
2-1 List
list是一种有序的集合,元素顺序排列,可以随时添加和删除其中的元素。list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据。
创建L = ['Michael', 100, True]。
查:正序访问例:L[0]、L[1]...由于list是一个有序集合,所以按照索引来访问list中的指定元素。使用索引时,千万注意不要越界。
倒序访问例:L[-1]、L[-2]...倒数第一用 -1 表示,倒数第二用 -2 表示...使用倒序索引时,也要注意不要越界。
增:①L.append(元素) 方法,把新同学追加到 list 的末尾
②L.insert(n,元素)方法,它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素。原来索引为 n 的元素,以及后面的所有元素,都自动向后移动一位。
删:①L.pop()方法总是删掉list的最后一个元素,并且它还返回这个元素
②L.pop(n)方法删掉list的索引为n的元素,并且它还返回这个元素
改:对list中的某一个索引赋值,就可以直接用新的元素替换掉原来的元素,list包含的元素个数保持不变。
2-2 Tuple
tuple是另一种有序的列表,tuple 和 list 非常类似,但是,tuple创建完毕就不能修改了。创建tuple和创建list唯一不同之处是用( )替代了[ ]。
创建: t = ('Adam', 'Lisa', 'Bart');
查: t[0],t[-1]索引方式访问元素;
不能增、删、改。
可变的tuple:
t = ('a', 'b', ['A', 'B'])L = t[2 L[0] = 'X'L[1] = 'Y'输出t:('a', 'b', ['X', 'Y'])
2-3 dict
花括号 {} 表示这是一个dict,然后按照 key: value, 加上逗号写出来即可。最后一个 key: value 的逗号可以省略。
dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。
在一个dict中,key不能重复;key-value序对是没有顺序的,作为 key 的元素必须不可变
创建:{key: value,}
d={ '123': [1, 2, 3], # key 是 str,value是list 123: '123', # key 是 int,value 是 str ('a', 'b'): True # key 是 tuple,并且tuple的每个元素都是不可变对象,value是 boolean}
查:①dict就是通过 d[key]来查找 value。但是要先判断 key 是否存在,用if 'Paul' in d:
②使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None,用print d.get('Paul')
None
③dict 对象有一个 values() 方法,这个方法把dict转换成一个包含所有value的list,这样,我们迭代的就是 dict的每一个 value:d.values()
④dict除了values()方法外,还有一个 itervalues() 方法,用 itervalues() 方法替代 values() 方法,迭代效果完全一样,但是itervalues() 方法不会把dict转换成一个包含所有value的list,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。
⑤同时迭代key和value:
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }print d.items()输出的是:[('Lisa', 85), ('Adam', 95), ('Bart', 59)]
可以看到,items() 方法把dict对象转换成了包含tuple的list,我们对这个list进行迭代,就可以同时获得key和value。和 values() 有一个 itervalues() 类似, items() 也有一个对应的 iteritems(),iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存。因此我们就可以:
for k, v in d.iteritems(): print k,':',v
输出的是:
Lisa : 85Adam : 95Bart : 59增:d[key]=value遍历:for key in d: print key,d[key]
2-4 set
set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,且不能修改。这点和 dict 的 key很像。当我们传入包含重复元素的 list ,他会自动去掉重复的元素。
创建:调用 set() 并传入一个 list,list的元素将作为set的元素;
例:s = set(['A', 'B', 'C'])
查:由于set存储的是无序集合,所以我们没法通过索引来访问。访问 set中的某个元素实际上就是判断一个元素是否在set中。例:print 'A' in s 输出:True
遍历:for name in s: print name
增:s.add(元素),若元素已在set中不会报错
删:s.remove(元素),若元素不在set中会报错,所以需要先判断if 元素 in s:
更多的Python学习教程会在下期教程继续为大家更新!