Python初级002-数据类型详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python初级002-数据类型详解相关的知识,希望对你有一定的参考价值。
python数据类型详解
目录
1、字符串 (单引号,双引号,三重引号)
2、布尔类型 (True,Fales)
3、整数 (长整形,标准整形)
4、浮点数
5、数字 (整数,浮点数)
6、列表
7、元组
8、字典
9、日期
字符串
1.1、如何在Python中使用字符串
a、使用单引号(‘)
用单引号括起来表示字符串,例如:
>>> str = ‘change the word‘
>>> print str
change the word
//‘change the word‘就是字符串
b、使用双引号(")
双引号中的字符串与单引号中的字符串用法完全相同,例如:
str="this is string";
c、使用三引号(‘‘‘)
利用三引号,表示多行的字符串,可以在三引号中自由的使用单引号和双引号,用三重引号就可以换行输入了。例如:
>>> str = ‘‘‘
春眠不觉晓,
处处闻啼鸟,
夜来风雨声,
花落知多少。‘‘‘
2、布尔类型
bool=False;
print bool;
bool=True;
print bool;
3、整数
1)长整形 (L)
>>> q = 2**66
>>> q
73786976294838206464L
>>> type (q)
<type ‘long‘>
2)标准整形
>>> w =2**5
>>> w
32
>>> type (w)
<type ‘int‘>
4、浮点数
float=2.3;
print float;
5、数字
包括整数、浮点数。
5.1、删除数字对象引用。
>>> a = ‘1‘
>>> print a
1
>>> del a
>>> print a #删除a变量后,再调用a变量会报错
Traceback (most recent call last):
File "<pyshell#37>", line 1, in <module>
print a
NameError: name ‘a‘ is not defined
6、列表
6.1、初始化列表,例如:
>>> list = ‘1‘,‘2‘,‘3‘
>>> print list
(‘1‘, ‘2‘, ‘3‘)
>>> list = 1,2,3,4
>>> print list
(1, 2, 3, 4)
6.2、访问列表中的值,例如:
‘‘‘nums[0]: 1‘‘‘
print "nums[0]:", nums[0]‘‘‘nums[2:5]: [5, 7, 8] 从下标为2的元素切割到下标为5的元素,但不包含下标为5的元素‘‘‘
print "nums[2:5]:", nums[2:5]‘‘‘nums[1:]: [3, 5, 7, 8, 13, 20] 从下标为1切割到最后一个元素‘‘‘
print "nums[1:]:", nums[1:]‘‘‘nums[:-3]: [1, 3, 5, 7] 从最开始的元素一直切割到倒数第3个元素,但不包含倒数第三个元素‘‘‘
print "nums[:-3]:", nums[:-3]‘‘‘nums[:]: [1, 3, 5, 7, 8, 13, 20] 返回所有元素‘‘‘
print "nums[:]:", nums[:]
6.3、更新列表,例如:
nums[0]="ljq";
print nums[0];
6.4、删除列表元素
del nums[0];‘‘‘nums[:]: [3, 5, 7, 8, 13, 20]‘‘‘
print "nums[:]:", nums[:];
6.5、列表脚本操作符
列表对+和*的操作符与字符串相似。+号用于组合列表,*号用于重复列表,例如:
print len([1, 2, 3]); #3
print [1, 2, 3] + [4, 5, 6]; #[1, 2, 3, 4, 5, 6]
print [‘Hi!‘] * 4; #[‘Hi!‘, ‘Hi!‘, ‘Hi!‘, ‘Hi!‘]
print 3 in [1, 2, 3] #Truefor x in [1, 2, 3]: print x, #1 2 3
6.6、列表截取
L=[‘spam‘, ‘Spam‘, ‘SPAM!‘];
print L[2]; #‘SPAM!‘
print L[-2]; #‘Spam‘
print L[1:]; #[‘Spam‘, ‘SPAM!‘]
6.7、列表函数&方法
list.append(obj) 在列表末尾添加新的对象
list.count(obj) 统计某个元素在列表中出现的次数
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置,索引从0开始
list.insert(index, obj) 将对象插入列表
list.pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj) 移除列表中某个值的第一个匹配项
list.reverse() 反向列表中元素,倒转
list.sort([func]) 对原列表进行排序
7、元组(tuple)
Python的元组与列表类似,不同之处在于元组的元素不能修改;元组使用小括号(),列表使用方括号[];元组创建很简单,只需要在括号中添加元素,并使用逗号(,)隔开即可,例如:
tup1 = (‘physics‘, ‘chemistry‘, 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
创建空元组,例如:tup = ();
元组中只有一个元素时,需要在元素后面添加逗号,例如:tup1 = (50,);
元组与字符串类似,下标索引从0开始,可以进行截取,组合等。
7.1、访问元组
tup1 = (‘physics‘, ‘chemistry‘, 1997, 2000);
#tup1[0]: physics
print "tup1[0]: ", tup1[0]
#tup1[1:5]: (‘chemistry‘, 1997)
print "tup1[1:5]: ", tup1[1:3]
7.2、修改元组
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,例如:
tup1 = (12, 34.56);
tup2 = (‘abc‘, ‘xyz‘);
# 以下修改元组元素操作是非法的。
# tup1[0] = 100;
# 创建一个新的元组
tup3 = tup1 + tup2;
print tup3; #(12, 34.56, ‘abc‘, ‘xyz‘)
7.3、删除元组
元组中的元素值是不允许删除的,可以使用del语句来删除整个元组,例如:
tup = (‘physics‘, ‘chemistry‘, 1997, 2000);
print tup;
del tup;
7.4、元组运算符
与字符串一样,元组之间可以使用+号和*号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
7.5、元组索引&截取
L = (‘spam‘, ‘Spam‘, ‘SPAM!‘);
print L[2]; #‘SPAM!‘
print L[-2]; #‘Spam‘
print L[1:]; #[‘Spam‘, ‘SPAM!‘]
7.6、元组内置函数
cmp(tuple1, tuple2) 比较两个元组元素。
len(tuple) 计算元组元素个数。
max(tuple) 返回元组中元素最大值。
min(tuple) 返回元组中元素最小值。
tuple(seq) 将列表转换为元组。
8、字典
8.1、字典简介
字典(dictionary)是除列表之外python中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典由键和对应的值组成。字典也被称作关联数组或哈希表。基本语法如下:
dict = {‘Alice‘: ‘2341‘, ‘Beth‘: ‘9102‘, ‘Cecil‘: ‘3258‘};
也可如此创建字典:
dict1 = { ‘abc‘: 456 };
dict2 = { ‘abc‘: 123, 98.6: 37 };
每个键与值必须用冒号隔开(:),每对用逗号分割,整体放在花括号中({})。键必须独一无二,但值则不必;值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。
8.2、访问字典里的值
#!/usr/bin/python
dict = {‘name‘: ‘Zara‘, ‘age‘: 7, ‘class‘: ‘First‘};
print "dict[‘name‘]: ", dict[‘name‘];
print "dict[‘age‘]: ", dict[‘age‘];
8.3、修改字典
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:
#!/usr/bin/python
dict = {‘name‘: ‘Zara‘, ‘age‘: 7, ‘class‘: ‘First‘};
dict["age"]=27; #修改已有键的值
dict["school"]="wutong"; #增加新的键/值对
print "dict[‘age‘]: ", dict[‘age‘];
print "dict[‘school‘]: ", dict[‘school‘];
8.4、删除字典
del dict[‘name‘]; # 删除键是‘name‘的条目
dict.clear(); # 清空词典所有条目
del dict ; # 删除词典
例如:
#!/usr/bin/python
dict = {‘name‘: ‘Zara‘, ‘age‘: 7, ‘class‘: ‘First‘};
del dict[‘name‘];
#dict {‘age‘: 7, ‘class‘: ‘First‘}
print "dict", dict;
注意:字典不存在,del会引发一个异常
8.5、字典内置函数&方法
cmp(dict1, dict2) 比较两个字典元素。
len(dict) 计算字典元素个数,即键的总数。
str(dict) 输出字典可打印的字符串表示。
type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。
radiansdict.clear() 删除字典内所有元素
radiansdict.copy() 返回一个字典的浅复制
radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
radiansdict.has_key(key) 如果键在字典dict里返回true,否则返回false
radiansdict.items() 以列表返回可遍历的(键, 值) 元组数组
radiansdict.keys() 以列表返回一个字典所有的键
radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里
radiansdict.values() 以列表返回字典中的所有值
9、日期和时间
9.1、获取当前时间,例如:
import time, datetime;
localtime = time.localtime(time.time())
#Local current time : time.struct_time(tm_year=2014, tm_mon=3, tm_mday=21, tm_hour=15, tm_min=13, tm_sec=56, tm_wday=4, tm_yday=80, tm_isdst=0)
print "Local current time :", localtime
说明:time.struct_time(tm_year=2014, tm_mon=3, tm_mday=21, tm_hour=15, tm_min=13, tm_sec=56, tm_wday=4, tm_yday=80, tm_isdst=0)属于struct_time元组,struct_time元组具有如下属性:
9.2、获取格式化的时间
可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime():
2.1、日期转换为字符串
首选:print time.strftime(‘%Y-%m-%d %H:%M:%S‘);
其次:print datetime.datetime.strftime(datetime.datetime.now(), ‘%Y-%m-%d %H:%M:%S‘)
最后:print str(datetime.datetime.now())[:19]
2.2、字符串转换为日期
expire_time = "2013-05-21 09:50:35"
d = datetime.datetime.strptime(expire_time,"%Y-%m-%d %H:%M:%S")
print d;
9.3、获取日期差
oneday = datetime.timedelta(days=1)
#今天,2014-03-21
today = datetime.date.today()
#昨天,2014-03-20
yesterday = datetime.date.today() - oneday
#明天,2014-03-22
tomorrow = datetime.date.today() + oneday
#获取今天零点的时间,2014-03-21 00:00:00
today_zero_time = datetime.datetime.strftime(today, ‘%Y-%m-%d %H:%M:%S‘)
#0:00:00.001000
print datetime.timedelta(milliseconds=1), #1毫秒
#0:00:01
print datetime.timedelta(seconds=1), #1秒
#0:01:00
print datetime.timedelta(minutes=1), #1分钟
#1:00:00
print datetime.timedelta(hours=1), #1小时
#1 day, 0:00:00
print datetime.timedelta(days=1), #1天
#7 days, 0:00:00
print datetime.timedelta(weeks=1)
9.4、获取时间差
#1 day, 0:00:00
oneday = datetime.timedelta(days=1)
#今天,2014-03-21 16:07:23.943000
today_time = datetime.datetime.now()
#昨天,2014-03-20 16:07:23.943000
yesterday_time = datetime.datetime.now() - oneday
#明天,2014-03-22 16:07:23.943000
tomorrow_time = datetime.datetime.now() + oneday
注意时间是浮点数,带毫秒。
那么要获取当前时间,需要格式化一下:
print datetime.datetime.strftime(today_time, ‘%Y-%m-%d %H:%M:%S‘)
print datetime.datetime.strftime(yesterday_time, ‘%Y-%m-%d %H:%M:%S‘)
print datetime.datetime.strftime(tomorrow_time, ‘%Y-%m-%d %H:%M:%S‘)
9.5、获取上个月最后一天
last_month_last_day = datetime.date(datetime.date.today().year,datetime.date.today().month,1)-datetime.timedelta(1)
9.6、字符串日期格式化为秒数,返回浮点类型:
expire_time = "2013-05-21 09:50:35"
d = datetime.datetime.strptime(expire_time,"%Y-%m-%d %H:%M:%S")
time_sec_float = time.mktime(d.timetuple())
print time_sec_float
9.7、日期格式化为秒数,返回浮点类型:
d = datetime.date.today()
time_sec_float = time.mktime(d.timetuple())
print time_sec_float
9.8、秒数转字符串
time_sec = time.time()
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time_sec))
--------------------------------------------------------------------------------------------------------------------------------
Python的基本运算符
什么是操作符?
简单的回答可以使用表达式4 + 5等于9,在这里4和5被称为操作数,+被称为操符。 Python
语言支持操作者有以下几种类型。
1)算术运算符
2)比较(即关系)运算符
3)赋值运算符
4)逻辑运算符
5)位运算符
6)会员操作符
7)标识操作符
8)运算符
1)Python算数运算符
运算符 | 描述 |
+ | 加法 - 对操作符的两侧加值 |
- | 减法 - 从左侧操作数减去右侧操作数 |
* | 乘法- 相乘运算符两侧的值 |
/ | 除 - 由右侧操作数除以左侧操作数 |
% | 模 - 相除取余数 |
** | 指数- 执行对操作指数(幂)的计算 |
// | 地板除 - 操作数的除法,其中结果是将小数点后的位数被除去的商。 |
例子:%取余数
>>> a=10
>>> b=3
>>> print (a%b)
1
例子:// 取相除的结果整数
>>> 3//2
1
>>> 2//3
0
2) 比较(即关系)运算符
运算符 | 描述 |
== | 检查两个操作数的值是否相等,如果是则条件变为真。 |
!= | 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 |
<> | 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 |
< | 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 |
例子:== 相同为Ture,不同为False
>>> 3==3
True
>>> 3==4
False
例子:!= 相同为False,不同为Ture
>>> 3!=3
False
>>> 3!=4
True
例子:<> 相同为False,不同为Ture
>>> 3<>3
False
>>> 3<>4
True
3)赋值运算符
运算符 | 描述 | 例子 |
= | 简单的赋值运算符,赋值从右侧操作数左侧操作数 | >>> a = 3 >>> print a 3 |
+= | 加法AND赋值操作符,它增加了右操作数左操作数和结果赋给左操作数 | 例子:+= 加法 >>> a = 3 >>> a += 4 # a=3+4=7 >>> print a 7 |
-= | 减AND赋值操作符,它减去右边的操作数从左边操作数,并将结果赋给左操作数 | 例子:- = 减法 >>> b = 3 >>> b -= 4 #b=3-4=-1 >>> print b -1 |
*= | 乘法AND赋值操作符,它乘以右边的操作数与左操作数,并将结果赋给左操作数 | 例子:*= 乘法 >>> c = 3 >>> c *= 4 #c=3*4=12 >>> print c 12 |
/= | 除法AND赋值操作符,它把左操作数与正确的操作数,并将结果赋给左操作数 | 例子:/= 除法,取商整数 >>> d = 10 >>> d /= 3 #d=10/3=3..1 取商的整数 >>> print d 3 |
%= | 模量AND赋值操作符,它需要使用两个操作数的模量和分配结果左操作数 | 例子:%= 除法,取商余数 >>> e = 3 >>> e %= 2 #e=3/2=1..1 取商的余数 >>> print e 1 |
**= | 指数AND赋值运算符,执行指数(功率)计算操作符和赋值给左操作数 | 例子:**= 次方 >>> f = 3 >>> f **= 4 #f=3^4=9*9=81 >>> print f 81 |
//= | 地板除,并分配一个值,执行地板除对操作和赋值给左操作数 | 例子://= 除法,取商整数 >>> a = 10 >>> a //= 3 # a=10//3=3..1 取商整数 >>> print a 3 |
4)位运算符
按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:
下表中变量 a 为 60,b 为 13。
a与b的二进制格式如下:
a = 0011 1100 按位取反:11000011
b = 0000 1101 按位取反:11110010
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
运算符 | 描述 | 实例 |
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 | (a | b) 输出结果 61 ,二进制解释: 0011 1101 |
^ | 按位异或运算符:相应位不同为1,相同为0。加负号。加1 | (a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 | a << 2 输出结果 240 ,二进制解释: 1111 0000 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 | a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
5)逻辑运算符
Python语言支持逻辑运算符,以下假设变量
>>> a =10
>>> b = 20
>>> c = 10
>>> d = 20
运算符 | 逻辑表达式 | 描述 | 实例 |
and |
x and y |
布尔"与" - 左右位相同输出相同位 左右位不同输出右位
| >>> a and b 20 >>> a and c 10 >>> b and a 10 |
or |
x or y |
布尔"或" - 左右位相同输出相同位 左右位不同输出左位 | >>> a or c 10 >>> a or b 10 >>> b or a 20 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
6)会员操作符
7)标识操作符
8)运算符
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符 | 描述 |
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 [email protected] 和 [email protected]) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 ‘AND‘ |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
本文出自 “末班车” 博客,请务必保留此出处http://blxueyuan.blog.51cto.com/9673381/1879089
以上是关于Python初级002-数据类型详解的主要内容,如果未能解决你的问题,请参考以下文章