Python初级002-数据类型详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python初级002-数据类型详解相关的知识,希望对你有一定的参考价值。

python数据类型详解

目录
1、字符串 (单引号,双引号,三重引号)
2、布尔类型 TrueFales
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,在这里45被称为操作数,+被称为操符。 Python

 

语言支持操作者有以下几种类型。

1算术运算符

2比较(即关系)运算符

3赋值运算符

4逻辑运算符

5位运算符

6会员操作符

7标识操作符

8)运算符

 

1Python算数运算符

运算符

描述

+

加法 - 对操作符的两侧加值

-

减法 - 从左侧操作数减去右侧操作数

*

乘法- 相乘运算符两侧的值

/

- 由右侧操作数除以左侧操作数

%

- 相除取余数

**

指数- 执行对操作指数()的计算

//

地板除 - 操作数的除法,其中结果是将小数点后的位数被除去的商。

 

 

例子:%取余数

>>> 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 60b 13

ab的二进制格式如下:

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-数据类型详解的主要内容,如果未能解决你的问题,请参考以下文章

Python笔记002——变量与数据类型(转换)

python初级 1 数据类型和变量

Python3 tkinter初级

Python数据类型详解

python基础教程-数据类型详解

002-小白学python-运算符/判断/循环