变量赋值
- Python 中的变量赋值不需要类型声明。
- 每个变量在使用前必须赋值,变量赋值以后该变量才会被创建。
多个变量赋值
允许同时为多个变量赋值。
a = b = c = 1
# 三个变量被分配到相同的内存空间上。
a, b, c = 1, 2, "john"
# a = 1,b = 2,c = "join"
标准数据类型
Python有五个标准的数据类型:
- Numbers(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Dictionary(字典)
数字
不可改变的数据类型,(改变数字数据类型会分配一个新的对象)
创建
指定一个值时,Number对象就会被创建:
var1 = 1
var2 = 10
删除
使用 del 语句删除一些对象的引用。
del var1[,var2[,var3[....,varN]]]]
# 使用del语句删除单个或多个对象的引用。
del var
del var_a, var_b
数字类型:
- int(有符号整型)
- long(长整型[也可以代表八进制和十六进制])— Python使用 L 来显示长整型。
- float(浮点型)
- complex(复数) — 用
a + bj
,或者complex(a,b)
表示, 复数的实部 a 和虚部 b 都是浮点型。
注意:long 类型只存在于 Python2.X 版本中,在 2.2 以后的版本中,int 类型数据溢出后会自动转为long类型。在 Python3.X 版本中 long 类型被移除,使用 int 替代。
math 模块、cmath 模块
- math 模块提供了许多对浮点数的数学运算函数。
- cmath 模块包含了一些用于复数运算的函数。
- 要使用 math 或 cmath 函数必须先导入:
import math
字符串
可以使用引号('
或"
)来创建字符串。
取值顺序
有两种取值顺序:
- 从左到右索引默认0开始的,最大范围是字符串长度少1
- 从右到左索引默认-1开始的,最大范围是字符串开头
A B C D E F
0 1 2 3 4 5
-6 -5 -4 -3 -2 -1
访问字符串中的值:[头下标:尾下标]
截取
- 下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。
[头下标:尾下标]
获取的子字符串包含头下标的字符,但不包含尾下标的字符。- 加号(+)是字符串连接运算符,星号(*)是重复操作。
s = 'abcdef'
s[1:5] # = 'bcde'
str = 'Hello World!'
print str # 输出完整字符串
print str[0] # 输出字符串中的第一个字符
print str[2:5] # 输出字符串中第三个至第五个之间的字符串
print str[2:] # 输出从第三个字符开始的字符串
print str * 2 # 输出字符串两次
print str + "TEST" # 输出连接的字符串
# Hello World!
# H
# llo
# llo World!
# Hello World!Hello World!
# Hello World!TEST
运算符
下表实例变量 a 值为字符串 “Hello”,b 变量值为 “Python”:
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串连接 | a + b =‘HelloPython’ |
* | 重复输出字符串 | a * 2 =‘HelloHello’ |
[] | 通过索引获取字符串中字符 | a[1] =‘e’ |
[ : ] | 截取字符串中的一部分 | a[1:4] =‘ell’ |
in | 成员运算符 - 如果字符串中包含给定的字符返回 True | "H" in a =True |
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True | "M" not in a True |
r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 | print r'\n' =\n print R'\n' =\n |
% | 格式字符串 | 请看下一章节 |
格式化
用法:将一个值插入到一个有字符串格式符 %s
的字符串中。
print "My name is %s and weight is %d kg!" % ('Zara', 21)
# My name is Zara and weight is 21 kg!
字符串格式化符号:
符号 | 功能 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
格式化操作符辅助指令:
符号 | 功能 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号( + ) |
<sp> | 在正数前面显示空格 |
# | 在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’) |
0 | 显示的数字前面填充’0’而不是默认的空格 |
% | ‘%%‘输出一个单一的’%’ |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
内建函数
实现了string模块的大部分方法。
序列
- 序列是Python中最基本的数据结构。
- Python有6个序列的内置类型,最常见的是列表和元组。
- 序列都可以进行的操作包括索引,切片,加,乘,检查成员。
列表
- 列表用
[ ]
标识,是 python 最通用的复合数据类型。 - 列表的数据项不需要具有相同的类型。
访问列表中的值:[头下标:尾下标]
截取
同字符串截取。
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print list # 输出完整列表
print list[0] # 输出列表的第一个元素
print list[1:3] # 输出第二个至第三个元素
print list[2:] # 输出从第三个开始至列表末尾的所有元素
print tinylist * 2 # 输出列表两次
print list + tinylist # 打印组合的列表
# ['runoob', 786, 2.23, 'john', 70.2]
# runoob
# [786, 2.23]
# [2.23, 'john', 70.2]
# [123, 'john', 123, 'john']
# ['runoob', 786, 2.23, 'john', 70.2, 123, 'john']
更新列表
- 可以对列表的数据项进行修改或更新。
- 可以使用
append()
方法来添加列表项。
list = [] ## 空列表
list.append('Google') ## 使用 append() 添加元素
删除列表元素
使用 del
语句来删除列表的元素。
list1 = ['physics', 'chemistry', 1997, 2000]
print list1
del list1[2]
列表脚本操作符
符号 | 功能 | 示例 |
---|---|---|
len() | 返回列表长度 | len([1, 2, 3]) = 3 |
+ | 组合列表 | [1, 2, 3] + [4, 5, 6] = [1, 2, 3, 4, 5, 6] |
* | 重复列表 | ['Hi!'] * 4 = [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] |
in | 元素是否存在于列表中 | 3 in [1, 2, 3] = True |
for x in list | 迭代 | for x in [1, 2, 3]: print x, = 1 2 3 |
列表函数&方法
元组
- 元组用
()
标识。内部元素用逗号隔开。 - 创建空元组。
tup1 = ()
- 元组中只包含一个元素时,需要在元素后面添加逗号。
tup1 = (50,)
- 元组不能二次赋值,相当于只读列表。
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000 # 元组中是非法应用
list[2] = 1000 # 列表中是合法应用
访问元组中的值:[头下标:尾下标]
截取
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
print tuple # 输出完整元组
print tuple[0] # 输出元组的第一个元素
print tuple[1:3] # 输出第二个至第三个的元素
print tuple[2:] # 输出从第三个开始至列表末尾的所有元素
# ('runoob', 786, 2.23, 'john', 70.2)
# runoob
# (786, 2.23)
# (2.23, 'john', 70.2)
修改元组:连接组合
元组中的元素值是不允许修改的,但可以对元组进行连接组合。
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
# 创建一个新的元组
tup3 = tup1 + tup2
删除整个元组
元组中的元素值是不允许删除的,但可以使用del语句来删除整个元组。
tup = ('physics', 'chemistry', 1997, 2000)
del tup
元组运算符
符号 | 功能 | 示例 |
---|---|---|
len() | 计算元组元素个数 | len((1, 2, 3)) = 3 |
+ | 连接元组 | (1, 2, 3) + (4, 5, 6) = (1,2,3,4,5,6) |
* | 重复元组 | ('Hi!') * 4 = (‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’) |
in | 元素是否存在于元组中 | 3 in (1, 2, 3) = True |
for x in list | 迭代 | for x in (1, 2, 3): print x, = 1 2 3 |
无关闭分隔符
任意无符号的对象,以逗号隔开,默认为元组。
x, y = 1, 2
print "Value of x , y : ", x,y
元组内置函数
字典
- 列表是有序的对象集合,字典是无序的对象集合。
- 字典可存储任意类型对象。
- 字典当中的元素是通过键来存取。
- 字典用"{ }"标识。字典由索引 (key) 和它对应的值 value 组成。
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print tinydict # 输出完整的字典:{'dept': 'sales', 'code': 6734, 'name': 'john'}
print tinydict.keys() # 输出所有键:['dept', 'code', 'name']
print tinydict.values() # 输出所有值:['sales', 6734, 'john']
访问字典里的值
把相应的键放入方括弧中便可访问。
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
print dict['one'] # 输出键为'one' 的值:This is one
print dict[2] # 输出键为 2 的值:This is two
修改字典
增加新的键/值对。
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry
删除字典元素
删单一的元素: del dict['key']
清空字典的所有元素:dict.clear()
删除字典:del dict
用
del
删除字典后字典不再存在,所以再访问会报错
字典键的特性
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'};
print "dict['Name']: ", dict['Name']; #dict['Name']: Manni
2)键必须不可变,可以用数字,字符串或元组充当,但是不能用列表。
dict = {['Name']: 'Zara', 'Age': 7};
print "dict['Name']: ", dict['Name'];
# 以上代码会报错