一、什么是数据类型

  数据类型是一组具有相似属性的一类数据的集合,数据类型决定了其存储到计算机中的方式。将数据进行类型划分,是为了更方便的处理数据。比如:你想让计算机进行数值运算,你就传数字给它,你想让它处理文字,就传字符串给它。python中的基本数据类型包括:数字类型、字符串类型、列表类型、元组类型、字典类型、集合类型、布尔类型,一共七种。

二、数字类型(number)

(1)int(整型)

  在64位系统中,整数的位数位64位,取值范围-263 ~ 263 -1。

(2)long(长整型)

  跟C语言不同,python的长整型没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于及其内存有限,我们使用的长整型数值不可能无限大。

  - 注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整型,所以如今在长整数数据后边不加字母L也不会导致严重后果。在python3里不再有long类型了,全都是int

a = 2**65 print(type(a)) b = 2**60 print(type(b))
  在phthon3环境中,得到的结果均为<class 'int'>。

(3)float(浮点型)

  即小数,如1.111,2.333等

三、字符串(string)

  在python 中,加了引号(" ",' ',''' ''')的字符都被认为是字符串。

age = "22" # 只要加引号就是字符串 age = 22 # 不加引号为int msg = ''' My name is alex, Iam 22 years old ''' # 三个引号也可以 hometown = 'Shandong' # 单引号也行
  单引号、双引号、多引号有什么区别呢?

  单引号和双引号没有任何区别,只有在特殊情况下,需要配合使用,比如:

msg = "My name is alex, I'm 22 years old!"

  多引号的区别在于,多引号可以容纳多行字符串,比如:

复制代码 msg = ''' 床前明月光, 疑是地上霜, 举头望明月, 低头思故乡。 ''' 复制代码

四、布尔类型

  布尔类型很简单,就两个值,一个真True,一个假False,主要用于逻辑判断。比如:

复制代码 a = 3 b = 5 print(a>b) 结果:False print(a<b) 结果:True 复制代码

  计算机为什么需要描述这种条件呢?因为可以通过这种条件结果来进行不同的操作!比如:

if a >b: print(a is bigger than b) else: print(a is smaller than b)

五、列表类型

  列表(List)是一种数据项构成的有限序列,即按照一定的线性序列,排列而成的数据项的集合。在python中,用中括号[ ]来表示列表。列表中的每一个数据叫做元素,元素和元素之间用逗号","隔开,每一个元素都有自己的下标,下标从0开始,每添加一个元素,就会自动+1。比如:

name = ['alex', 'jack', 'rain', 'rachel', 'mack']

  它在计算机中的存储形式可以形象的表示为:

元素名 alex jack rain rachel mack 下标(索引) 0 1 2 3 4
  想要获到列表中某个元素的值,只需要通过下标或索引就能拿到,比如:

: name[0] 'alex' :name[4] 'mack'

六、元组

  元组(Tuple)和列表一样,也是一些列数据的有序集合,但和列表不同的是,元组 不能被修改,又被称为只读列表。在python中用()来表示元组。

  元组的特点:

    1、可以存放多个值

    2、不可变

    3、按照从左到右的顺序定义元组元素,从下标0开始。

  元组的创建:

ages = (11, 22, 33, 44, 55) 或 ages = tuple((11, 22, 33, 44, 55))
常用操作:

复制代码

索引

ages = (11, 22, 33, 44, 55) ages[0] 11 ages[-1] 55

循环

for age in ages: print(age) 11 22 33 44 55 复制代码

  • 注意:元组本身不可变,如果元组中含有其他可变元素,则这些可变元素可以改变,比如:

data = (99, 88, ['alex', 'jack'], 33) data[2][0] = '金角大王' data (99, 88, ['金角大王', 'jack'], 33]
为啥呢?因为元组只是存每个元素的内存地址,上面['alex', 'jack'] 这个列表的内存地址存在元组里确实不可变,但是列表中的元素存储的内存地址在另外一块地址空间,是可变的。

七、字典

  字典(Dict)是一系列键(key)-值(vlaue)对组成的无序集合,键和值之间用冒号(:)隔开,而键值对之间用逗号隔开。定义的语法如下:

  {key1:value1, key2:value2}

  示例:

info = { name:"张三", age:18, sex:"male", height:180 }

  字典的特性:

  1、是key-value结构

  2、key必须为不可变数据类型、必须唯一。比如:字符串、元组、数字等

  3、可以存放多个value、value可以被修改,可以不唯一;

  4、无序

  5、查询速度快,而且不受dict 大小影响。

小练习取music

info = {
'username':'tony',
'addr':{
'国家':'中国',
'info':[666, 999, {'编号':466722, 'hobby':['read', 'study', 'music']}]
}
}

1.music在大字典里的位置
d1 = info['addr'] # {'国家': '中国', 'info': [666, 999, {'编号': 466722, 'hobby': ['read', 'study', 'music']}]}

  1. music在小字典里的位置
    d2 = d1['info'] # [666, 999, {'编号': 466722, 'hobby': ['read', 'study', 'music']}]

  2. music在列表里的位置
    d3 = d2[2] #

  3. music在小字典里的位置
    d4 = d3['hobby'] # ['read', 'study', 'music']

  4. music在列表里的位置
    d5 = d4[2] # music
    print(d5)

整合

d6 = info['addr']['info'][2]['hobby'][2]
print(d6)

八、集合

  集合(Set)是一个无序的不重复元素的组合。python中用{ }来表示集合!
用{}表示,但是不能使用键值对表示,如果使用的话就变成字典了
  示例: 

a = {1, 2, 4, "alex", "rain", (1,2)}
  集合的特点:

  1、集合里面的元素不可变,代表你不能存储一个列表或者字典在集合里,只能存储数字、字符串和元组等不可变类型的数据;

  2、集合天生去重,在集合里无法存重复的数据;

  3、无序,不像列表、元组那样可以通过索引来标记在列表中的位置,集合中的元素是无序的,没有先后之分,比如:{1,2,3}和{3,2,1}是同一个集合。

  基于上面的特性,集合可以做两件事,去重及关系运算。

九、与用户进行交互

1.什么是用户交互

  • 用户交互就是人与计算机交流
  • 人往计算机里输入数据(input)
  • 计算机打印输出结果(print)

2.为什么要用交互

  • 为了让计算机像人一样与用户沟通
  • 过去银行行长控制柜台人员让其与客户沟通
  • 现在是控制 ATM 这个机器来与用户交流

3.如何使用用户交互

接收用户输入 input
????"input"会将用户输入的内容都转化成字符串类型
name = input("请输入你的名字>>") #输入"shawn"
print(name) #shawn
passwd = input("请输入密码>>") #"123"
print(type(passwd)) #<class 'str'>
Python2与Python3---input比较(了解)
????python2中"input"有两种

  1. "raw_input",等同于Python3中的"input"
  2. "input",需要用户输入一个明确的数据类型,输入的什么类型就存成什么类型
    2.输出
    x = 1
    y = 2
    z = 3
    print(x) #1
    print(2) #2
    print(x,y,z) #1,2,3
    ????"print"默认自带"\n"
    可以使用'end=""'来取消

十、格式化输出使用

1.打印字符串

print "I'm %s" % ("jihite") I'm jihite

2.打印整数

print "I'm %d years old" % (17) I'm 17 years old

3.打印浮点数

print "π=%f" % (3.1415926) π=3.141593

4.打印浮点数(指定保留小数点位数)

print "π=%.3f" % (3.1415926) π=3.142

5.指定占位符宽度

print "NAME:%8s AGE:%8d WEIGHT:%8.2f" % ("jihite", 17, 62.2) NAME: jihite AGE: 17 WEIGHT: 62.20

6.指定占位符宽度(左对齐)

print "NAME:%-8s AGE:%-8d WEIGHT:%-8.2f" % ("jihite", 17, 62.2) NAME:jihite AGE:17 WEIGHT:62.20

7.指定占位符(只能用0当占位符)

print "NAME:%-8s AGE:%08d WEIGHT:%08.2f" % ("jihite", 17, 62.2) NAME:jihite AGE:00000017 WEIGHT:00062.20
python基础-数据类型-小白菜博客
image

今日作业:

练习2:用户输入姓名、年龄、工作、爱好 ,然后打印成以下格式
'''
------------ info of Tony -----------
Name : Tony
Age : 22
Sex : male
Job : Teacher
------------- end -----------------
'''

答案:
a = input('Name : ')
a1 = input('Age : ')
b1 = input('Sex : ')
c1 = input('Job : ')
print(
'-' * 12, 'info of %s' % (a), '-' * 11,
'\nName : %s'
'\nAge : %s'
'\nSex : %s'
'\nJob : %s'
% (a, a1, b1, c1),
'\n', '-' * 13, "end", '-' * 17
)