一、数据类型和变量
定义和使用方法与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的字符数,如果换成bytes,len()函数就计算字节数:
>>> 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教程