最近在学习廖老师的 python 教程,python 教程原址:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

在学习过程中总结如下,如果有什么地方不正确的还请大家指正:

2015.6.15~2015.6.21

1. 输入输出

name=input('Please input your name: ')
print('hello,',name)
length=float(input('请输入正方形边长:'))
mj=length*length
print('正方形面积为:',mj)

2. 转义字符使用

print('I\'m \"OK\" !')

转义字符\可以转义很多字符,比如\n 表示换行,\t 表示制表符,字符\本身也要转义,所以\表示的字符就是\

print('I \'m learning\nPython.')
print('\\\n\\')

如果字符串内部有很多行,用\n 写在一行里不好阅读,为了简化,Python 允许用'''...'''的格式表示多行内容:

print('''line1
line2
line3''')

如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python 还允许用 r''表示''内部的字符串默认不转义:

print('\\\t\\')
print(r'\\\t\\')

2015.6.22~2015.6.28

1. 字符相关

最新的 python3 中,字符串以 Unicode 编码,支持多语言

1. 单个字符的编码,python 可以用 ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符

print(ord('b'))
print(ord('B'))
print(ord('中'))
print(chr(66))
print(chr(25991))

2. Python 直接输出字符的整数编码,以十六进制表示如下:

print(‘\u4e2d\u6587’)

3.Python 对 bytes 类型的数据自带 b 前缀表示,bytes 的每个字符都只占用一个字节

x=b’ABC’

4.以 Unicode 表示的 str 通过 encode()和 decode()进行编码和解码操作

print('ABC'.encode('ascii'))
print('中文'.encode('utf-8'))
print('中文'.encode('gb2312'))
print(b'ABC'.decode('ascii'))
print(b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8'))

注:

5.获取 str 多少字符函数:len()。(注:如果换成 bytes,则计算字节数)

中文字经过 utf-8 编码后变为 3 个字节
例如:

print(len('中文'))    >>>2
print(len('中文'.encode('utf-8')))    >>>6

2.格式化

1. Python 中采用的格式化方式和 c 语言是一致的,用% 实现

print('Hello,%s' % 'world')
print('Hi, %s, you have $%d.' % ('lily',100))

当只有一个参数时,括号可以省略

2.格式化整数和浮点数还可以指定是否补 0 和整数与小数的位数:

print('%2d-%02d'%(3,1))
print('%.2f'%3.1415)

3.字符串中有% 号时使用 “%%” 来表示

练习

S1=72
S2=85
R=(S2/S1-1)*100
print(R)
print('%.1f %%'%R)

3.List 和 tuple

1.List 中可以使用-1 来取最后一个元素

    Classmate=[‘m’,’n’,’b’]
    print(Classmate[-1])
print(Classmate[-2])

2.直接删除 list 末尾的元素,用 pop()方法

>>>classmates.pop()   -->’b’
>>>classmates   -->[‘m’,’n’]

删除指定位置的元素直接用 pop(i)方法

>>>classmates.pop(1)  --->’n’
>>>classmates    -->[‘m’]

替换 list 中的值时,直接给对应的索引值进行赋值就可以了

>>>classmates[0]=’s’
>>>classmates  -->[‘s’]

Tuple(元组)

1.Tuple 和 list 非常相似,但是 tuple 中的值不可以改变,也没有 append(),insert()这样的方法,也无法赋值为另外的值。

注:要定义只有 1 个元素的 tuple 时,要加一个逗号,以便与数学公式中的小括号有所区别,消除歧义
例如:

>>>t=(1,)   -->(1,)
>>>t=(1)   -->1

4.循环

练习:

L=['a','b','c']
  for循环
for x in L:
    print('hello,%s' % x)
  while循环   
lt=len(L)
n=0
while n<lt:
    print('hello,%s' % L[n])
    n = n + 1
print(n)

5. dict 和 set

1. Python 内置了字典:dict 的支持,dict 全程 dictionary,在其他语言中也称为 map,使用键 - 值(key-value)存储,具有极快的查找速度。

例如:

>>>d ={‘Michael’:95,’Bob’:75,’Tracy’:85}
>>>d[‘Michael’]
95

####2. 还可以对 key 进行替换赋值操作,代码如下:

>>>d[‘Michael’]=90
>>>d[‘Michael’]
90

3.还可以对 key 进行添加操作,代码如下:

>>>d[‘Jack’]=88
>>>d[‘Jack’]
88

4. 为了避免 key 不存在的错误,有两种方法,一是通过 in 判断 key 是否存在

>>> ’Had’ in d
 False

二是通过 dict 提供的 get 方法,如果 key 不存在可以返回 none,或者自己指定的 value:

 >>>d.get(‘Thomas’)
>>> d.get(‘Thomas’,-1)
 -1

注意:返回 None 的时候 Python 的交互式命令行不显示结果

5.删除一个 key,使用 pop(key) 方法

>>>  d.pop(‘Bob’)
  75
 >>> d
  {‘Michael’:95,’Tracy’:85}

请务必注意,dict 内部存放的顺序和 key 放入的顺序是没有关系的。
-和 list 比较,dict 有以下几个特点:

6.Set 和 dict 类似,也是一组 key 的集合,但是不存储 value。由于 key 不能重复,所以 set 中没有重复的 key。

创建 set:

>>>s=set([1,2,3])
>>>s
{1,2,3}

也可以直接初始化赋值

s={1,2,3}

注意:传入的参数 [1,2,3] 是一个 list,而显示的{1,2,3}只是告诉我们这个 set 内部有 1,2,3 这 3 个元素,显示的顺序也不表示 set 是有序的。

7.Set 通过 add(key)方法添加元素

>>>s.add(4)
>>>s
{1,2,3,4}

8. 通过 remove(key)方法可以删除元素:

>>>s.remove(4)
>>>s
{1,2,3}

9.Set 会自动过滤重复的元素

10.Set 可以看成数学意义上的无序和无重复元素的集合,因此,两个 set 可以做数学意义上的交集、并集等操作:

>>>s1=set([1,2,3])
>>>s2=set([2,3,4])
>>>s1&s2
{2,3}
>>>s1|s2
{1,2,3,4}

11.不含 list 的 tuple 可以做 key 或者 value

学习的有点慢,距离我 7 月底初步掌握 python 还有点距离,不过我会继续努力的,给自己打打气加油加油,哈哈


↙↙↙阅读原文可查看相关链接,并与作者交流