资源描述
Python 变量类型
变量赋值
Python 中的变量赋值不需要类型声明。
每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:
counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串
print (counter)
print (miles)
print (name)
多个变量赋值
Python允许你同时为多个变量赋值。例如:
a = b = c = 1
以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。
您也可以为多个对象指定多个变量。例如:
a, b, c = 1, 2, "john"
以上实例,两个整型对象1和2的分配给变量 a 和 b,字符串对象 "john" 分配给变量 c。
标准数据类型
在内存中存储的数据可以有多种类型。
例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。
Python 定义了一些标准类型,用于存储各种类型的数据。
Python有五个标准的数据类型:
· Numbers(数字)
· String(字符串)
· List(列表)
· Tuple(元组)
· Dictionary(字典)
Python数字
数字数据类型用于存储数值。
他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。
当你指定一个值时,Number对象就会被创建:
var1 = 1
var2 = 10
您也可以使用del语句删除一些对象的引用。
del语句的语法是:
del var1[,var2[,var3[....,varN]]]]
您可以通过使用del语句删除单个或多个对象的引用。例如:
del var
del var_a, var_b
Python支持四种不同的数字类型:
· int(有符号整型)
· long(长整型[也可以代表八进制和十六进制])
· float(浮点型)
· complex(复数)
Python字符串
·
str = 'Hello World!'
print(str) # 输出完整字符串
print(str[0] )# 输出字符串中的第一个字符
print(str[2:5])# 输出字符串中第三个至第五个之间的字符串
print(str[2:]) # 输出从第三个字符开始的字符串
print(str * 2) # 输出字符串两次
print(str + "TEST")# 输出连接的字符串
Python列表
List(列表) 是 Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。
列表用 [ ] 标识,是 python 最通用的复合数据类型。
列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。
加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:
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)# 打印组合的列表
更新列表
你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示:
实例(Python 2.0+)
#!/usr/bin/python # -*- coding: UTF-8 -*- list = [] ## 空列表 list.append('Google') ## 使用 append() 添加元素 list.append('Runoob') print list
删除列表元素
可以使用 del 语句来删除列表的元素,如下实例:
实例(Python 2.0+)
#!/usr/bin/python list1 = ['physics', 'chemistry', 1997, 2000] print list1 del list1[2] print "After deleting value at index 2 : " print list1
Python列表脚本操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
如下所示:
Python 表达式
结果
描述
len([1, 2, 3])
3
长度
[1, 2, 3] + [4, 5, 6]
[1, 2, 3, 4, 5, 6]
组合
['Hi!'] * 4
['Hi!', 'Hi!', 'Hi!', 'Hi!']
重复
3 in [1, 2, 3]
True
元素是否存在于列表中
for x in [1, 2, 3]: print x,
1 2 3
迭代
Python列表函数&方法
Python包含以下函数:
序号
函数
1
cmp(list1, list2)比较两个列表的元素
2
len(list)列表元素个数
3
max(list)返回列表元素最大值
4
min(list)返回列表元素最小值
5
list(seq)将元组转换为列表
Python包含以下方法:
序号
方法
1
list.append(obj)在列表末尾添加新的对象
2
list.count(obj)统计某个元素在列表中出现的次数
3
list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4
list.index(obj)从列表中找出某个值第一个匹配项的索引位置
5
list.insert(index, obj)将对象插入列表
6
list.pop(obj=list[-1])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7
list.remove(obj)移除列表中某个值的第一个匹配项
8
list.reverse()反向列表中元素
9
list.sort([func])对原列表进行排序
Python元组
元组是另一个数据类型,类似于List(列表)。
元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表
修改元组
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:
#!/usr/bin/python# -*- coding: UTF-8 -*-
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');
# 以下修改元组元素操作是非法的。# tup1[0] = 100;
# 创建一个新的元组
tup3 = tup1 + tup2;print tup3;
删除元组
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:
#!/usr/bin/python
tup = ('physics', 'chemistry', 1997, 2000);
print tup;del tup;print "After deleting tup : "print tup;
元组运算符
与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
Python 表达式
结果
描述
len((1, 2, 3))
3
计算元素个数
(1, 2, 3) + (4, 5, 6)
(1, 2, 3, 4, 5, 6)
连接
('Hi!',) * 4
('Hi!', 'Hi!', 'Hi!', 'Hi!')
复制
3 in (1, 2, 3)
True
元素是否存在
for x in (1, 2, 3): print x,
1 2 3
迭代
元组索引,截取
因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:
元组:
L = ('spam', 'Spam', 'SPAM!')
Python 表达式
结果
描述
L[2]
'SPAM!'
读取第三个元素
L[-2]
'Spam'
反向读取;读取倒数第二个元素
L[1:]
('Spam', 'SPAM!')
截取元素
无关闭分隔符
任意无符号的对象,以逗号隔开,默认为元组,如下实例:
#!/usr/bin/python
print 'abc', -4.24e93, 18+6.6j, 'xyz';
x, y = 1, 2;print "Value of x , y : ", x,y;
元组内置函数
Python元组包含了以下内置函数
序号
方法及描述
1
cmp(tuple1, tuple2)
比较两个元组元素。
2
len(tuple)
计算元组元素个数。
3
max(tuple)
返回元组中元素最大值。
4
min(tuple)
返回元组中元素最小值。
5
tuple(seq)
将列表转换为元组。
Python 字典
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john', 'code': 6734, 'dept': 'sales'}
print(dict['one']) # 输出键为'one' 的值
print(dict[2] )# 输出键为 2 的值
print(tinydict)# 输出完整的字典
print(tinydict.keys()) # 输出所有键
print(tinydict.values()) # 输出所有值
修改字典
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:
实例
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; dict['Age'] = 8; # update existing entry dict['School'] = "DPS School"; # Add new entry print "dict['Age']: ", dict['Age']; print "dict['School']: ", dict['School'];
删除字典元素
能删单一的元素也能清空字典,清空只需一项操作。
显示删除一个字典用del命令,如下实例:
实例
#!/usr/bin/python # -*- coding: UTF-8 -*- dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; del dict['Name']; # 删除键是'Name'的条目 dict.clear(); # 清空词典所有条目 del dict ; # 删除词典 print "dict['Age']: ", dict['Age']; print "dict['School']: ", dict['School'];
字典键的特性
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
实例
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}; print "dict['Name']: ", dict['Name'];
字典内置函数&方法
Python字典包含了以下内置函数:
序号
函数及描述
1
cmp(dict1, dict2)
比较两个字典元素。
2
len(dict)
计算字典元素个数,即键的总数。
3
str(dict)
输出字典可打印的字符串表示。
4
type(variable)
返回输入的变量类型,如果变量是字典就返回字典类型。
Python字典包含了以下内置方法:
序号
函数及描述
1
dict.clear()
删除字典内所有元素
2
dict.copy()
返回一个字典的浅复制
3
dict.fromkeys(seq[, val])
创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
4
dict.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值
5
dict.has_key(key)
如果键在字典dict里返回true,否则返回false
6
dict.items()
以列表返回可遍历的(键, 值) 元组数组
7
dict.keys()
以列表返回一个字典所有的键
8
dict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9
dict.update(dict2)
把字典dict2的键/值对更新到dict里
10
dict.values()
以列表返回字典中的所有值
11
pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
12
popitem()
随机返回并删除字典中的一对键和值。
Python数据类型转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
函数
描述
int(x [,base])
将x转换为一个整数
long(x [,base] )
将x转换为一个长整数
float(x)
将x转换到一个浮点数
complex(real [,imag])
创建一个复数
str(x)
将对象 x 转换为字符串
repr(x)
将对象 x 转换为表达式字符串
eval(str)
用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)
将序列 s 转换为一个元组
list(s)
将序列 s 转换为一个列表
set(s)
转换为可变集合
dict(d)
创建一个字典。d 必须是一个序列 (key,value)元组。
frozenset(s)
转换为不可变集合
chr(x)
将一个整数转换为一个字符
unichr(x)
将一个整数转换为Unicode字符
ord(x)
将一个字符转换为它的整数值
hex(x)
将一个整数转换为一个十六进制字符串
oct(x)
将一个整数转换为一个八进制字符串
Python运算
Python算术运算符
以下假设变量: a=10,b=20:
运算符
描述
实例
+
加 - 两个对象相加
a + b 输出结果 30
-
减 - 得到负数或是一个数减去另一个数
a - b 输出结果 -10
*
乘 - 两个数相乘或是返回一个被重复若干次的字符串
a * b 输出结果 200
/
除 - x除以y
b / a 输出结果 2
%
取模 - 返回除法的余数
b % a 输出结果 0
**
幂 - 返回x的y次幂
a**b 为10的20次方, 输出结果 100000000000000000000
//
取整除 - 返回商的整数部分
9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
Python比较运算符
以下假设变量a为10,变量b为20:
运算符
描述
实例
==
等于 - 比较对象是否相等
(a == b) 返回 False。
!=
不等于 - 比较两个对象是否不相等
(a != b) 返回 true.
<>
不等于 - 比较两个对象是否不相等
(a <> b) 返回 true。这个运算符类似 != 。
>
大于 - 返回x是否大于y
(a > b) 返回 False。
<
小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。
(a < b) 返回 true。
>=
大于等于 - 返回x是否大于等于y。
(a >= b) 返回 False。
<=
小于等于 - 返回x是否小于等于y。
(a <= b) 返回 true。
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符
描述
**
指数 (最高优先级)
~ + -
按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % //
乘,除,取模和取整除
+ -
加法减法
>> <<
右移,左移运算符
&
位 'AND'
^ |
位运算符
<= < > >=
比较运算符
<> == !=
等于运算符
= %= /= //= -= += *= **=
赋值运算符
is is not
身份运算符
in not in
成员运算符
not or and
逻辑运算符
Python 条件语句
if 判断条件:
执行语句……else:
执行语句……
if 判断条件1:
执行语句1……elif 判断条件2:
执行语句2……elif 判断条件3:
执行语句3……else:
执行语句4……
Python 循环语句
Python提供了for循环和while循环(在Python中没有do..while循环):
循环类型
描述
while 循环
在给定的判断条件为 true 时执行循环体,否则退出循环体。
for 循环
重复执行语句
嵌套循环
你可以在while循环体中嵌套for循环
while 循环
while 判断条件:
执行语句……
while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立,具体用法如下:
# continue 和 break 用法
i = 1
while i < 10: i += 1 i
f i%2 > 0: # 非双数时跳过输出
continue
print i # 输出双数2、4、6、8、10
i = 1
while 1: # 循环条件为1必定成立
print i # 输出1~10
i += 1
if i > 10: # 当i大于10时跳出循环
break
循环使用 else 语句
在 python 中,while … else 在循环条件为 false 时执行 else 语句块:
for iterating_var in sequence:
statements(s)
For 循环
循环使用 else 语句
在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
Python for 循环嵌套语法:
for iterating_var in sequence: for iterating_var in sequence: statements(s) statements(s)
Python while 循环嵌套语法:
while expression: while expression: statement(s) statement(s)
你可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环, 反之,你可以在for循环中嵌入while循环。
循环控制语句
循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:
控制语句
描述
break 语句
在语句块执行过程中终止循环,并且跳出整个循环
continue 语句
在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
pass 语句
pass是空语句,是为了保持程序结构的完整性。
Python break 语句
Python break语句,就像在C语言中,打破了最小封闭for或while循环。
break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
break语句用在while和for循环中。
如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。
Python continue 语句
Python continue 语句跳出本次循环,而break跳出整个循环。
continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
continue语句用在while和for循环中。
Python pass 语句
Python pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句。
Python 语言 pass 语句语法格式如下:
Python 日期和时间
Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能。
Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。
时间间隔是以秒为单位的浮点小数。
每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。
Python 的 time 模块下有很多函数可以转换常见日期格式。如函数time.time()用于获取当前时间戳, 如下实例:
import time; # 引入time模块
ticks = time.time()print "当前时间戳为:", ticks
上述也就是struct_time元组。这种结构具有如下属性:
序号
属性
值
0
tm_year
2008
1
tm_mon
1 到 12
2
tm_mday
1 到 31
3
tm_hour
0 到 23
4
tm_min
0 到 59
5
tm_sec
0 到 61 (60或61 是闰秒)
6
tm_wday
0到6 (0是周一)
7
tm_yday
1 到 366(儒略历)
8
tm_isdst
-1, 0, 1, -1是决定是否为夏令时的旗帜
获取当前时间
从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。
#!/usr/bin/python# -*- coding: UTF-8 -*-
import time
localtime = time.localtime(time.time())
print ("本地时间为 :", localtime)
格式化日期
我们可以使用 time 模块的 strftime 方法来格式化日期,:
time.strftime(format[, t])
#!/usr/bin/python# -*- coding: UTF-8 -*-
import time
# 格式化成2016-03-20 11:45:39形式print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# 格式化成Sat Mar 28 22:24:24 2016形式print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())
# 将格式字符串转换为时间戳
a = "Sat Mar 28 22:24:24 2016"print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))
python中时间日期格式化符号:
· %y 两位数的年份表示(00-99)
· %Y 四位数的年份表示(000-9999)
· %m 月份(01-12)
· %d 月内中的一天(0-31)
· %H 24小时制小时数(0-23)
· %I 12小时制小时数(01-12)
· %M 分钟数(00=59)
· %S 秒(00-59)
· %a 本地简化星期名称
· %A 本地完整星期名称
· %b 本地简化的月份名称
· %B 本地完整的月份名称
· %c 本地相应的日期表示和时间表示
· %j 年内的一天(001-366)
· %p 本地A.M.或P.M.的等价符
· %U 一年中的星期数(00-53)星期天为星期的开始
· %w 星期(0-6),星期天为星期的开始
· %W 一年中的星期数(00-53)星期一为星期的开始
· %x 本地相应的日期表示
· %X 本地相应的时间表示
· %Z 当前时区的名称
· %% %号本身
获取某月日历
Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:
#!/usr/bin/python# -*- coding: UTF-8 -*-
import calendar
cal = calendar.month(2016, 1)print "以下输出2016年1月份的日历:"print cal;
Time 模块
Time 模块包含了以下内置函数,既有时间处理的,也有转换时间格式的:
序号
函数及描述
1
time.altzone
返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。
2
time.asctime([tupletime])
接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
3
time.clock( )
用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。
4
time.ctime([secs])
作用相当于asctime(localtime(secs)),未给参数相当于asctime()
5
time.gmtime([secs])
接收时间戳(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:t.tm_isdst始终为0
6
time.localtime([secs])
接收时间戳(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)。
7
time.mktime(tupletime)
接受时间元组并返回时间戳(1970纪元后经过的浮点秒数)。
8
time.sleep(secs)
推迟调用线程的运行,secs指秒数。
9
time.strftime(fmt[,tupletime])
接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。
10
time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
根据fmt的格式把一个时间字符串解析为时间元组。
11
time.time( )
返回当前时间的时间戳(1970纪元后经过的浮点秒数)。
12
time.tzset()
根据环境变量TZ重新初始化时间相关设置。
Time模块包含了以下2个非常重要的属性:
序号
属性及描述
1
time.timezone
属性time.timezone是当地时区(未启动夏令时)距离格林威治的偏移秒数(>0,美洲;<=0大部分欧洲,亚洲,非洲)。
2
time.tzname
属性time.tzname包含一对根据情况的不同而不同的字符串,分别是带夏令时的本地时区名称,和不带的。
日历(Calendar)模块
此模块的函数都是日历相关的,例如打印某月的字符月历。
星期一是默认的每周第一天,星期天是默认的最后一天。更改设置需调用calendar.setfirstweekday()函数。模块包含了以下内置函数:
序号
函数及描述
1
calendar.calendar(year,w=2,l=1,c=6)
返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。
2
calendar.firstweekday( )
返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。
3
calendar.isleap(year)
是闰年返回True,否则为false。
4
calendar.leapdays(y1,y2)
返回在Y1,Y2两年之间的闰年总数。
5
calendar.month(year,month,w=2,l=1)
返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。
6
calendar.monthcalendar(year,month)
返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。
7
calendar.monthrange(year,month)
返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。
8
calendar.prcal(year,w=2,l=1,c=6)
相当于 print calendar.calendar(year,w,l,c).
9
calendar.prmonth(year,month,w=2,l=1)
相当于 print calendar.calendar(year,w,l,c)。
10
calendar.setfirstweekday(weekday)
设置每周的起始日期码。0(星期一)到6(星期日)。
11
calendar.timegm(tupletime)
和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间戳(1970纪元后经过的浮点秒数)。
12
calendar.weekday(year,month,day)
返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。
Python 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
定义一个函数
你可以定义一个由自己想要功能的函数,以下是简单的规则:
· 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
· 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
· 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
· 函数内容以冒号起始,并且缩进。
· return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
语法
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]
参数传递
在 python 中,类型属于对象,变量是没有类型的:
可更改(mutable)与不可更改(immutable)对象
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。
可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。
python 函数的参数传递:
不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响
Python 模块
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
模块让你能够有逻辑地组织你的 Python 代码段。
把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
模块能定义函数,类和变量,模块里也能包含可执行的代码。
import 语句
模块的引入
模块定义好后,我们可以使用 import 语句来引入模块,语法如下:
例子
下例是个简单的模块 support.py:
support.py 模块:
def print_func( par ): print "Hello : ", par return
import module1[, module2[,... moduleN]
比如要引用模块 math,就可以在文件最开始的地方用 import math 来引入。在调用 math 模块中的函数时,必须这样引用:
模块名.函数名
from…import 语句
Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中。语法如
展开阅读全文