Python入门学习笔记

时间:2023-12-27 12:35:31

了解 一下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编码读取源代码。

 # -*- coding: utf-8 -*-

 x = 100
L = [100, 50, 1, 3, 391, 43]
for i in L:
print i, i + 1, "num" """
转为中文
100 101 num
50 51 num
1 2 num
3 4 num
391 392 num
43 44 num
"""

Python的条件判断和循环

 # -*- coding: utf-8 -*-

 L = [100, 50, 1, 3, 391, 43]
for i in L: #用i来遍历L
if i < 50:
print "0 - 49"
elif i < 100: #else if
print "50 - 99"
else:
print "100 - INF" """
100 - INF
50 - 99
0 - 49
0 - 49
100 - INF
0 - 49
Python中有很严格的缩进标准,用缩进来表示一个块
要注意条件和循环后面有一个冒号
"""

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

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

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

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

 # -*- coding: utf-8 -*-
#访问,插入,删除操作
L = [95.5,85,59]
print L[0]
print L[1]
print L[2]
print L[-1]
print L[-2]
print L[-3]
# 按索引访问元素,可以倒序访问
"""
95.5
85
59
59
85
95.5
""" L = ['Adam', 'Lisa', 'Bart']
L.append('shadow') #实现把新的元素添加到list的尾部
L.insert(2, 'Paul') #实现把新的元素'Paul'插入到索引2 (从0开始计算索引)
print L
"""
['Adam', 'Lisa', 'Paul', 'Bart', 'shadow']
""" L.pop()
L.pop(0)
#实现删除操作,默认删除尾部元素,或者删除指定的索引
print L
"""
['Lisa', 'Paul', 'Bart']
"""

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

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

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。

 # -*- coding: utf-8 -*-

 d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
for key in d:
print key,':', d[key]
"""
遍历
Lisa : 85
Adam : 95
Bart : 59
""" d = {
95: 'Adam',
85: 'Lisa',
59: 'Bart'
}
d[72]='Paul'
print d
"""
添加
{72: 'Paul', 59: 'Bart', 85: 'Lisa', 95: 'Adam'} 注意是无序的
"""

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

 # -*- coding: utf-8 -*-
s = set(['adam', 'bart'])
print 'adam' in s
print 'bart' in s
print 'shadow' in s
"""
True
True
False
可以询问该元素是否在s中
""" s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
for x in s:
print x[0], ':', x[1]
"""
Lisa : 85
Adam : 95
Bart : 59
遍历s中的元素
""" s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for i in L:
if i in s: s.remove(i)
else: s.add(i)
print s
"""
set(['Bart'])
删除L中在s中出现过的元素
添加L中在s中未出现过的元素
"""