读书笔记-DAY 1

一、数据类型和变量

定义和使用方法与C语言类似,以下仅简单罗列或介绍。

1、整数

2、浮点数

3、字符串
使用单引号'或双引号"括起来的任意文本。

若文本中既有'又有",可使用转义字符\来标识,例如:

'I\'m \"OK\"!'

表示的字符串内容是:

I'm "OK"!

也可以使用r使\不转义,如:

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

此外,同C语言类似\n表示换行,\t表示制表符。

4、布尔值
True、False

5、空值
None

6、变量

7、常量

8、字符串和编码

ASCII码:127个字符,包括大小写英文字母、数字和一些符号,每个字符需要1个字节

GB2312编码:包括中文,汉字需要两个字节

其他编码:日本的Shift_JIS,韩国的Euc-kr等等…

Unicode编码:把所有语言统一到一套编码,就不会有乱码的问题了,但是处理英文的时候,Unicode比ASCII编码需要多一倍的存储空间

UTF-8编码:根据字符不同编码成1-6个字节,即“可变长编码”,这样,英文字母被编码成1个字节,憨子通常是3个字节,从而达到了节省空间的目的。

在计算机内存中统一使用Unicode编码,编辑的时候为Unicode字符,保存和传输的时候为UTF-8字符

9、Python中的字符串

相关转换函数再次不再复述,下面介绍几种关于字符串的常见用法:

1) 求字符串长度len函数

>>> len('ABC')
3
>>> len('中文')
2
len()函数计算的是str的字符数,如果换成byteslen()函数就计算字节数:
>>> len(b'ABC')
3
>>> len(b'\xe4\xb8\xad\xe6\x96\x87')
6
>>> len('中文'.encode('utf-8'))
6

2) 源代码指定编码方法

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

3) 格式化字符串

>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'

二、条件和循环

1、条件判断
一个简单例子:

age = 3
if age >= 18:
   print('adult')
elif age >= 6:
   print('teenager')
else:
   print('kid')

2、for…in循环
生成0-100的整数序列:

sum = 0
for x in range(101):
    sum = sum + x
print(sum)

3、while循环

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)

4、break、continue
与C类似,在次不再复述。

三、list和tuple

1、list
列表,类似C中数组,比如,列出班里所有同学的名字,就可以用一个list表示:

>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']

用法:
1) 求长度

>>> len(classmates)
3

如果一个list中一个元素也没有,就是一个空的list,它的长度为0:

>>> L = []
>>> len(L)
0

2) 访问元素

>>> classmates[0]
'Michael'
>>> classmates[1]
'Bob'
>>> classmates[2]
'Tracy'
>>> classmates[3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>IndexError: list index out of range

也可以这样从后面往前访问,下例为访问最后一个元素,当然索引也存在边界:

>>> classmates[-1]
'Tracy'

3) 追加元素:

>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']

4) 插入元素:

>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']

5) 删除元素:
删除末尾的元素:

>>> classmates.pop()'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']

要删除指定位置的元素,用pop(i)方法,其中i是索引位置:

>>> classmates.pop(1)'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']

6) 替换元素:

>>> classmates[1] = 'Sarah'
>>> classmates
['Michael', 'Sarah', 'Tracy']

7) list里面的元素的数据类型也可以不同,比如:

>>> L = ['Apple', 123, True]

list元素也可以是另一个list,比如:

>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4

要注意s只有4个元素,其中s[2]又是一个list。

2、tuple
tuple:元祖、数组的意思,tuple与list用法类似,但tuple一旦初始化就不能修改,如:

>>> classmates = ('Michael', 'Bob', 'Tracy')

定义一个只有1个元素的tuple:

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

可变的”tuple:

>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

这个tuple定义的时候有3个元素,分别是’a’,’b’和一个list,list中内容是可变的。

四、dict和set

1、dict
类似C++中map用法,使用键-值(key-value)存储数据,可以根据key快速查找到相应的value。

举个例子,假设要根据同学的名字查找对应的成绩:

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

用法:
1) 把数据放至dict末尾

>>> d['Adam'] = 67
>>> d['Adam']
67

但是如果key不存在,dict就会报错。

2) 判断key是否存在有两种办法,一是通过in判断:

>>> 'Thomas' in d
False

二是通过get()方法,如果key不存在,可以返回None,或者自己指定的value:

>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1

注意:返回None的时候Python的交互环境不显示结果。

3) 要删除一个key,用pop(key)方法,对应的value也会从dict中删除:

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

所以,dict是用空间来换取时间的一种方法。
这个通过key计算位置的算法称为哈希算法(Hash)。

2、set
如下例所示,一个set需要一个list作为输入,而且其中的元素不可以重复。

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

用法:
1) 通过add(key)方法添加元素到set中,可重复添加,但不会有效果:

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

2) 通过remove(key)方法删除元素:

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

3) 两个set可以做数学意义上的交集、并集等操作:

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

阅读链接:Python教程

猜你喜欢

转载自blog.csdn.net/music022/article/details/80594428