Python入门学习笔记

时间:2022-04-07 06:15:38

了解 一下Python中的基本语法,发现挺不适应的,例如变量经常想去指定类型或者if加个括号之类的。这是在MOOC中学习到的知识中一点简单的笔记。

Python的变量和数据类型:

   1、Python这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如C/C++是静态语言,所以Python的变量是不用声明的,可以直接把任意类型赋予变量,总共有整数、浮点数、字符串、布尔值这四种数据类型。其中字符串的表示可以用'xxx'或者"xxx"即''或者""括起来的文本。 int x = 100(C/C++)。而 x = 100(Python)。

   2、C/C++中的逻辑运算符,在Python中用简单易懂的英文来表示。例如 a || b(C/C++), a or b(Python)。

   3、关于print语句:在Python2中,使用的是print x这种语法,在Python3中,使用的是print(x)这种语法。

   4、关于注释:Python的注释以 # 开头,后面的文字直到行尾都算注释。譬如:# 相当于//。也可以使用"""和"""实现/*和*/的成块注释。

   5、如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串'ABC'在Python内部都是ASCII编码的。Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示。可以在第一行添加注释:# -*- coding: utf-8 -*-   目的是告诉Python解释器,用UTF-8编码读取源代码。

 1 # -*- coding: utf-8 -*-
2
3 x = 100
4 L = [100, 50, 1, 3, 391, 43]
5 for i in L:
6 print i, i + 1, "num"
7
8 """
9 转为中文
10 100 101 num
11 50 51 num
12 1 2 num
13 3 4 num
14 391 392 num
15 43 44 num
16 """

 

Python的条件判断和循环

 1 # -*- coding: utf-8 -*-
2
3 L = [100, 50, 1, 3, 391, 43]
4 for i in L: #用i来遍历L
5 if i < 50:
6 print "0 - 49"
7 elif i < 100: #else if
8 print "50 - 99"
9 else:
10 print "100 - INF"
11
12 """
13 100 - INF
14 50 - 99
15 0 - 49
16 0 - 49
17 100 - INF
18 0 - 49
19 Python中有很严格的缩进标准,用缩进来表示一个块
20 要注意条件和循环后面有一个冒号
21 """

 

 Python的方法:list(列表)、turple(元组)、set(集合)、dict(字典)

1、list是一种有序的集合,可以随时添加和删除其中的元素。list是数学意义上的有序集合,也就是说,list中的元素是按照顺序排列的。直接用 [ ] 把list的所有元素都括起来,就是一个list对象。通常,会把list赋值给一个变量,这样,就可以通过变量来引用list:

1 L = [100, 50, 1, 'acm', False, True]
2 print L
3
4 # :[100, 50, 1, 'acm', False, True]

由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,完全可以在list中包含各种数据。

 1 # -*- coding: utf-8 -*-
2 #访问,插入,删除操作
3 L = [95.5,85,59]
4 print L[0]
5 print L[1]
6 print L[2]
7 print L[-1]
8 print L[-2]
9 print L[-3]
10 # 按索引访问元素,可以倒序访问
11 """
12 95.5
13 85
14 59
15 59
16 85
17 95.5
18 """
19
20 L = ['Adam', 'Lisa', 'Bart']
21 L.append('shadow') #实现把新的元素添加到list的尾部
22 L.insert(2, 'Paul') #实现把新的元素'Paul'插入到索引2 (从0开始计算索引)
23 print L
24 """
25 ['Adam', 'Lisa', 'Paul', 'Bart', 'shadow']
26 """
27
28 L.pop()
29 L.pop(0)
30 #实现删除操作,默认删除尾部元素,或者删除指定的索引
31 print L
32 """
33 ['Lisa', 'Paul', 'Bart']
34 """

 

 

2、tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。创建tuple和创建list唯一不同之处是用( )替代了[ ]。tuple没有 append()方法,也没有insert()和pop()方法。

 1 # -*- coding: utf-8 -*-
2 t = ('a', 'b', ['A', 'B'])
3 L = t[2]
4 L[0] = 'C'
5 L[1] = 'D'
6 print t
7
8 """
9 一种"修改"
10 表面上看,tuple的元素确实变了,但其实变的不是 tuple 的元素,而是list的元素。
11 tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
12 如果把list改成tuple('A', 'B'),就不可变了
13 """

 

 

3、把名字称为key,对应的成绩称为value,dict就是通过 key 来查找 value。花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。在我看来有点像map吧。

dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。由于dict是按 key 查找,所以,在一个dict中,key不能重复。dict的第二个特点就是存储的key-value序对是没有顺序的!打印的顺序不一定是我们创建时的顺序,而且,不同的机器打印的顺序都可能不同,这说明dict内部是无序的,不能用dict存储有序的集合。dict的第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。

 1 # -*- coding: utf-8 -*-
2
3 d = {
4 'Adam': 95,
5 'Lisa': 85,
6 'Bart': 59
7 }
8 for key in d:
9 print key,':', d[key]
10 """
11 遍历
12 Lisa : 85
13 Adam : 95
14 Bart : 59
15 """
16
17 d = {
18 95: 'Adam',
19 85: 'Lisa',
20 59: 'Bart'
21 }
22 d[72]='Paul'
23 print d
24 """
25 添加
26 {72: 'Paul', 59: 'Bart', 85: 'Lisa', 95: 'Adam'} 注意是无序的
27 """

 

4、dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了。set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。

 1 # -*- coding: utf-8 -*-
2 s = set(['adam', 'bart'])
3 print 'adam' in s
4 print 'bart' in s
5 print 'shadow' in s
6 """
7 True
8 True
9 False
10 可以询问该元素是否在s中
11 """
12
13 s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
14 for x in s:
15 print x[0], ':', x[1]
16 """
17 Lisa : 85
18 Adam : 95
19 Bart : 59
20 遍历s中的元素
21 """
22
23 s = set(['Adam', 'Lisa', 'Paul'])
24 L = ['Adam', 'Lisa', 'Bart', 'Paul']
25 for i in L:
26 if i in s: s.remove(i)
27 else: s.add(i)
28 print s
29 """
30 set(['Bart'])
31 删除L中在s中出现过的元素
32 添加L中在s中未出现过的元素
33 """