写在前面:作为一个电子信息专业的大三学生,觉得所学知识甚少,于是决定自学Python。以前都是看别人的博客,第一次用博客写学习笔记,希望能作为一个学习过程的和总结自己学习知识的一个记录,希望能坚持才行呀~
在决定学习Python的时候,其实考虑了几种自学方法,刚开始是在课程网站上看视频课程,但是觉得这样学习太慢了。在搜索的时候发现了廖雪峰的官方网站,觉得用来自学挺适合的,于是就以它为参考开始学习。昨天看了一个下午看了三章,知识点都很容易,都是基本语法,代码写的多了自然就记得,然而在刚开始学习的时期还是决定写一些简单记录,以便查找与复习。
一、字符串表示
1. 字符串用“”或‘ ’括起来表示。当字符串含‘ 时,用“”括起来。表示“ 时也可以使用转义符\
如:‘I\'m \"OK"!' 输出为 I'm "OK"!
2. 如果很多字符需要转义,可以使用 r ' '
如: print(r'\\\t\\') 输出为\\\t\\
3. 字符串很多换行时:可以使用''' ''' 表示
如:print('''line1(按下回车)line2(按下回车)line3''') 输出为:
line1
line2
line3
二、字符串编码
在最新的Python 3版本中,字符串是以Unicode编码的.
python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:
>>> ord('A') 65 >>> ord('中') 20013 >>> chr(66) 'B' >>> chr(25991) '文'
因为字符串要在网络上传输或者保存到磁盘上需要把str转为以字节为单位的bytes,所以要了解以下函数:
A. encode()
以Unicode表示的str通过encode()方法可以编码为指定的bytes,例如:
>>> 'ABC'.encode('ascii') b'ABC' >>> '中文'.encode('utf-8') b'\xe4\xb8\xad\xe6\x96\x87'
B. decode()
当在网络或者磁盘上读取了字节流,就要把bytes型转为str,可以用该函数。如:
>>>b'ABC'.decode('ascii') 'ABC' >>>b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') '中文'
C. 其它相关函数
len() 计算str包含多少个字符或者计算bytes包含多少个字节数,取决于括号内字符串类型。
>>> len(b'ABC') 3 >>> len(b'\xe4\xb8\xad\xe6\x96\x87') 6 >>> len('中文'.encode('utf-8')) #转为bytes 6
注意事项:
1. 建议使用utf-8对str与bytes进行转换
2. 当源代码中包含中文的时候,务必指定为utf-8编码。通常在文件开头写上:
#!/usr/bin/env python3 # -*- coding: utf-8 -*-第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码
同时也要注意文本编辑器也使用utf-8without BOM编码。
三、数据类型
list 列表 类似数组。
可以用索引方式访问元素。最后一个元素索引是len(classments)-1。可用负数索引下标表示最后倒数元素
>>> classmates = ['Michael', 'Bob', 'Tracy'] >>> classmates ['Michael', 'Bob', 'Tracy'] >>> len(classmates) 3 >>> classmates[-1] 'Tracy'
相关函数:xx.append() 添加元素到末尾、 xx.insert() 插入、 xx.pop删除末尾元素,xx.pop(i)删除对应元素
>>> classmates.append('Adam') >>> classmates ['Michael', 'Bob', 'Tracy', 'Adam'] >> classmates.insert(1, 'Jack') >>> classmates ['Michael', 'Jack', 'Bob', 'Tracy', 'Adam'] >>> classmates.pop() 'Adam' >>> classmates ['Michael', 'Jack', 'Bob', 'Tracy'] >>> classmates.pop(1) 'Jack' >>> classmates ['Michael', 'Bob', 'Tracy']
tuple元组
一经初始化就不能再修改,因为不可变 所以更安全。
但是list可以作为元组元素,使其看起来好像可变
>>> t = ('a', 'b', ['A', 'B']) >>> t[2][0] = 'X' >>> t[2][1] = 'Y' >>> t ('a', 'b', ['X', 'Y'])
特性:切片
取一个list或tuple的部分元素可以采用切片操作。与matlab相似,只不过matlab是从1开始,python从0开始。且python不包括最后一个数。且不是括号取,是用 【】
例如: L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
取前三个可以用 L[0:3] 这相当于 [ L[0],L[1],L[2] ],即索引为0-N-1;当第一个数为0时,可以省略,即L[:3] = [ L[0],L[1],L[2] ]
由于取倒数第一个元素可以用L[-1],相似的,切片也可以取倒数。如:
L[-2 : -1]取的是倒数第二个,L[ -2 : ]取的是倒数两个。即
>>> L[-2:] ['Bob', 'Jack'] >>> L[-2:-1] ['Bob']
还可以间隔取数,即在后面再补一个数: L[ :10:2 ] 表示为前十个数,每两个取一个。
创建一个列表。
>>> L = list(range(100)) >>> L [0, 1, 2, 3, ..., 99]
>>> L[:10:2] [0, 2, 4, 6, 8]上面为前十个,每两个取一个。 下面为所有数,每五个取一个
>>> L[::5] [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]若取全部可以用 L[ : ]
tuple的操作同上,字符串‘xxx’也可以作切片操作,每个元素为一个字符。
dict 字典
在其它语言中称为map,使用键-值方式储存(key-value)。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} >>> d['Michael'] 95
把数据放入的方法:
>>> d['Bob'] = 67 >>> d['Bob'] 67
判断key在不在字典里
>>> 'Thomas' in d #通过in判断 False >>> d.get('Thomas') #通过get()判断,不存在返回None >>> d.get('Thomas', -1)#不存在返回-1. -1
删除使用 xx.pop(key)
set 与dict类似,但是没有value。且 在set中没有重复的key。
添加元素: xx . add(key)
删除元素: xx . remove(key)
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作
四、逻辑
条件判断
python不用大括号区分段或者用end,而是直接用缩进表示。例:
age = 3 if age >= 18: print('your age is', age) print('adult') #如果没有缩进,就相当于不在if内了。 elif age>=6: print('teenager') else: print('your age is', age) print('teenager')注意不要少些冒号,一般编辑器可以自动补全。
循环
Python的循环有两种,一种是for...in...循环,依次把list或tuple中的每个元素迭代出来。第二种循环是while循环。
names = ['Michael', 'Bob', 'Tracy'] for name in names: print(name)
如果要计算1-100的整数之和,Python提供一个range()函数,可以生成一个整数序列,再通过list()函数可以转换为list。比如range(5)生成的序列是从0开始小于5的整数:
>>> list(range(5)) [0, 1, 2, 3, 4]
用while表示循环:
sum = 0 n = 99 while n > 0: sum = sum + n n = n - 2 print(sum)
循环中的break与continue同c语言。
五、 输入输出
A. 输出
print() 输出,括号内可以是数据也可以是字符串,可以加上逗号输出多个字符串或数据,每个逗号会输出一个空格
>>> print('The quick brown fox', 'jumps over', 'the lazy dog') The quick brown fox jumps over the lazy dog
B. 输入
input() 可以接收输入,返回值为str类型,且括号内可以输入提示语。
name = input('please enter your name: ') print('hello,', name)
输出为:
please enter your name: Michael hello, Michael
注意:
input()返回的数据类型是str,str不能直接和整数比较,如果输入是数据,必须先把str转换成整数。Python提供了int()函数来完成这件事情:
s = input('birth: ') birth = int(s) if birth < 2000: print('00前') else: print('00后')C. 格式化。
与c语言相似 只是将,换成%,当变量多于一个时,要加括号。如:
>>> 'Hello, %s' % 'world' 'Hello, world' >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000) 'Hi, Michael, you have $1000000.'
六、计算
除法: / 表示浮点数除法计算。返回浮点数。如: >>>9/3 输出 3.0
//也称地板除,返回整数。 10//3 为3.
取余 %
以上为第一次笔记的简单记录了~还有关于list与tuple的一些高级特性没写进去,下次与函数一起写吧。本学习笔记很多例子引用于廖雪峰的网站。