002.Python数据类型

一 python语言注释

就是对代码的解释, 方便大家阅读代码用的

1.1 注释的分类

(1)单行注释
# print 在python2.x print "1"
# print 在python3.x print("1")

(2) 多行注释 : ‘‘‘ ‘‘‘ """ """
‘‘‘
print("abc")
print("abcd")
print("abcde")
print("abcdef”)
‘‘‘
"""
print("abc")
print("abcd")
print("abcde")
print("abcdef”)
"""

1.2 嵌套注释

注释嵌套的时候,如果外面是三个三引号,里面用三个双引号如果外面是三个双引号,里面用三个单引号.

‘‘‘
print("abc")
print("abcd")
"""
print("edc")
"""
print("abcde")
print("abcdef”)
‘‘‘

注释的排错性

注释一部分代码,执行另外一部分,查看报错

二 python变量

2.1 变量的声明

[ python]# vi test.py

# 方法一
a = 1
b = 2
print(a)
print(b)

# 方法二
a,b = 3,4
print(a,b)

# 方法三
a = b = 5
print(a,b)

[ python]# python3 test.py

1
2
3 4
5 5

2.2 变量的命名规则

  • 变量名只能包含字母、数字和下划线。变量名可以字母或下划线开头,但不能以数字开头,例如,可将变量命名为message_1,但不能将其命名为1_message。
  • 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message会引发错误。
  • 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print。
  • 变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。
  • 慎用小写字母l和大写字母O,因给他们可能被人错看成数字1和0;

注意:应使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误,但避免使用大写字母是个不错的注意。

[ python]# vi test.py

# import 引入 keyword 模块名
import keyword
# 模块名.属性 kwlist 可以打印出所有的关键字
res = keyword.kwlist
print(res)

[ python]# python3 test.py

[‘False‘, ‘None‘, ‘True‘, ‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘nonlocal‘, ‘not‘, ‘or‘, ‘pass‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]

2.3 变量的交换

通用的交换写法

a = 11
b = 12
tmp = a
a = b
b = tmp
print(a,b)

python写法

[ python]# vi test.py 

a = 11
b = 12
a,b = b,a
print(a,b)

[ python]# python3 test.py

12 11

三 Python的六大数据类型

数值类型Number( int float bool complex)

(1) Number数字类型( int float boo1 compplex)

(2) string字符串类型

(3) List列表类型

(4)Tuple元组类型

(5)Set集合类型

(6)Dict

字典类型

->(1)Number数字类型分类

int: 整数类型(正整数【各种进制】负整数0)

folat:浮点数类型(1普通小数2科学计数法表示的小数例:a=3e-5  #3e-05)

bool:布尔值类型(真True和假 false)

compex:复数类型(声明复数的2种方法)(复数用作于科学计算中,表示高精度的数据,科学家会使用)

3.1 整型

[ python]#vim test.py

# int 整型  (正整型  0  负整型)
intvar = 133
print(intvar)

# type 获取一个变量的类型 type(值)
res = type(intvar)
print(res)

# id  获取该变量所指向值的地址 id(值)
res = id(intvar)
print(res)


# 打印二进制
intvar = 0b101
print(intvar)
print(type(intvar))
print(id(intvar))


# 打印八进制
intvar = 0o127
print(intvar)
print(type(intvar))
print(id(intvar))

# 打印十六进制
intvar = 0Xff
print(intvar)
print(type(intvar))
print(id(intvar))

[ python]# python3 test.py

133
<class ‘int‘>
140050073843520
5
<class ‘int‘>
140050073839424
87
<class ‘int‘>
140050073842048
255
<class ‘int‘>
140050073847424

3.2 浮点型float

# 表达一
floatvar  =  3.15
print(floatvar,type(floatvar))

# 表达二
floatvar = 5.35e-3
floatvar = 7.34e5
print(floatvar,type(floatvar)

[ python]# python3 test.py

3.15 <class ‘float‘>
734000.0 <class ‘float‘>

3.3 布尔型(True 真的 False 假的)

boolvar = True
boolvar = False  
print(boolvar,type(boolvar))

[ python]# python3 test.py

False <class ‘bool‘>

3.4 复数型

# 1.方式一
complexvar = 3+4j
print(complexvar,type(complexvar))

# 2.方式二 complex(实数,虚数)
complexvar = complex(-5,-2)
print(complexvar)

[ python]# python3 test.py

(3+4j) <class ‘complex‘>
(-5-2j)

四 容器类型数据

4.1  str 字符串类型

用引号引起来的数据就是字符串

# 转义字符: \
(1) 将有意义的字符变得无意义
(2) 将无意义的字符变得有意义 

\r\n,\n 代表换行
\t 代表缩进 (水平制表符)
\r 代表将后面的字符拉到当前行行首

可以用\把有意义的引号变得无意义
# (1) 单引号
strvar = ‘mylove‘
print(strvar,type(strvar))

# (2) 双引号 
strvar = "facebook,\ngoogle"
print(strvar,type(strvar))
strvar = "facebook,\tgoogl\r\ne"
print(strvar,type(strvar))
strvar = "facebook,\rgoogle"
print(strvar,type(strvar))
strvar = "face\"boo\"k"
print(strvar,type(strvar))

# (3) 三引号 (支持跨行 无需对单双引号重新转义)
strvar = """本来无一物,
何处惹尘埃"""
strvar = ‘‘‘本来"无"一‘物‘,
何处惹尘埃‘‘‘
print(strvar)

[ python]# python3 test.py

mylove <class ‘str‘>
facebook,
google <class ‘str‘>
facebook,    googl
e <class ‘str‘>
google <class ‘str‘>
face"boo"k <class ‘str‘>
本来"无"一‘物‘,
何处惹尘埃

4.2 元字符串

原型化输出字符串,让转义字符失效

strvar = r"床前明月光,\r疑是地上霜"    #取消\r的转义效果
print(strvar)
strvar = r"C:\Windows\System32\drivers\etc"
print(strvar)

[ python]# python3 test.py

床前明月光,\r疑是地上霜
C:\Windows\System32\drivers\etc

4.3 字符串的格式化

# %d 整型占位符
strvar = "我有%d支铅笔" % (10)
print(strvar)
# %2d 默认数字具右
strvar = "我有%2d支铅笔"  % (3)
print(strvar)
# %-2d 默认数字具左
strvar = "我有%-3d支铅笔"  % (3)
print(strvar)

[ python]# python3 test.py

我有10支铅笔
我有 3支铅笔
我有3  支铅笔

4.4 %f浮点型占位符

默认小数点后面保留6位

strvar = "一包烟的价格是%f元" % (9.99)
print(strvar)
# %.1f 存在四舍五入
strvar = "一包烟的价格是%.3f元" % (9.99)
print(strvar)
strvar = "一包烟的价格是%.1f元" % (9.99)
print(strvar)

[ python]# python3 test.py

一包烟的价格是9.990000元
一包烟的价格是9.990元
一包烟的价格是10.0元

4.5 %s 字符串占位符

strvar = "%s" % ("今天学习python")
print(strvar)

[ python]# python3 test.py

今天学习python

五 列表类型

可获取,可修改,有序

5.1 定义一个空列表

listvar = []
print(listvar,type(listvar))

[ python]# python3 test.py

[] <class ‘list‘>

5.2 正向索引

listvar = [13,3.14,True,6-2j,"好好学习"]
print(listvar,type(listvar))

[ python]# python3 test.py

[13, 3.14, True, (6-2j), ‘好好学习‘] <class ‘list‘>

5.3 正向取值和反向取值

listvar = [13,3.14,True,6-2j,"好好学习"]
res = listvar[4] 
print(res)
res = listvar[-1]
print(res)

[ python]# python3 test.py

好好学习
好好学习

5.4 通用用法

=> 想要获取列表最后一个元素值 需要通过len函数
len 用来获取容器类型数据的元素个数(长度)

listvar = [13,3.14,True,6-2j,"好好学习"]
res = listvar[4] 
print(res)
res = listvar[-1]
print(res)
# 通用 => 想要获取列表最后一个元素值 需要通过len函数
# len 用来获取容器类型数据的元素个数(长度)
# 5 - 1 => 4
res = len(listvar)-1

print(listvar[res])  
print(listvar[len(listvar)-1])

[ python]# python3 test.py

好好学习
好好学习
好好学习
好好学习

5.5 修改列表当中的值

listvar = [13,3.14,True,6-2j,"好好学习"]
res = listvar[4] 
print(res)
res = listvar[-1]
print(res)#修改列表当中的值
listvar[3] = "天天"
listvar[-4] = "向上"
print(listvar)

[ python]# python3 test.py

好好学习
好好学习
[13, ‘向上‘, True, ‘天天‘, ‘好好学习‘]

六 tuple类型

可获取,不可修改,有序

证明是一个元组的根本特征是逗号,声明一个空元组,可以直接使用(),(1) 表明一个整型

6.1  声明元组 

tuplevar = ()
print(tuplevar,type(tuplevar))
tuplevar = (1,2,3,4)
print(tuplevar,type(tuplevar))
tuplevar = (1)
print(tuplevar,type(tuplevar))
tuplevar = (1,)
print(tuplevar,type(tuplevar))
tuplevar = 1,2,3
print(tuplevar,type(tuplevar))

[ python]# python3 test.py

() <class ‘tuple‘>
(1, 2, 3, 4) <class ‘tuple‘>
1 <class ‘int‘>
(1,) <class ‘tuple‘>
(1, 2, 3) <class ‘tuple‘>

6.2 获取最后一个值

#正向索引    0  1   2
tuplevar = ("a","b",False)
#逆向索引    -3  -2  -1
res = tuplevar[-1]
#或者 res = tuplevar[len(tuplevar)-1]
print(res)

[ python]# python3 test.py

False

6.3 元组不可修改

尝试修改

tuplevar = ("a","b",False)
tuplevar[-1] = True 
res = tuplevar[-1]
print(res)

[ python]# python3 test.py

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    tuplevar[-1] = True 
TypeError: ‘tuple‘ object does not support item assignment

七 容器类型数据 set 和 dict

set 集合 (用来做交叉并补 集合操作的)

自动去重 无序

7.1 定义一个空集合

setvar = set()  #{} 不是集合 而是一个字典
print(setvar,type(setvar))

[ python]# python3 test.py

set() <class ‘set‘>

7.2 自动去重

无序

setvar = {"周杰伦","王宝强","李宇春"}
print(setvar)
setvar = {"刘德华","张学友","郭富城","王文","王文"}
print(setvar)

[ python]# python3 test.py

{‘周杰伦‘, ‘王宝强‘, ‘李宇春‘}
{‘刘德华‘, ‘王文‘, ‘张学友‘, ‘郭富城‘}

7.3 dict字典

在3.6版本之前,字典无序,
在3.6版本之后,字典有序(看起来有序,本质上无序)
哈希算法:
    将不可变的任意长度值计算成具有固定长度的唯一值,这个值可正可负,可大可小,通过计算出来的键,来获取值,形成一一映射的效果,管这个算法叫哈希算法,这个值叫哈希值
    字典进行存储的时候,并不一定按照字面顺序依次存在内存中,而是通过哈希算法,随机散列的把键所对应的值存储在内存里,所以字典无序(为了求效率,图快),可以通过哈希算出的键获取散列的值
    3.6的之后,记录了字典的字面顺序,在取出数据时,进行重新排序,所以看起来有序(但本质上无序,只要他使用了哈希)
    可哈希数据(不可变的数据) : Number(int float complex bool) str tuple
    不可哈希数据(可变数据)   : list  set  dict  (list dict 值可变 ; set 顺序可变)
    字典的键 集合的值 都需要可哈希数据,剩下的数据无所谓.
由键值对数据组成,有序

定义一个空字典

dictvar = {}
print(dictvar,type(dictvar))

[ python]# python3 test.py

{} <class ‘dict‘>

字典语法:

# 语法:
dictvar = {‘a‘:1}
# "键" : "值" 键和值之间用冒号隔开, 键值对之间用逗号隔开

定义一个字典

dictvar = {"top":"程咬金" , "middle":"妖姬" , "bottom":"崔丝塔娜" , "jungle":"七大大声" , "support":"德玛西亚"}
print(dictvar,type(dictvar))

[ python]# python3 test.py

{‘top‘: ‘程咬金‘, ‘middle‘: ‘妖姬‘, ‘bottom‘: ‘崔丝塔娜‘, ‘jungle‘: ‘七大大声‘, ‘support‘: ‘德玛亚‘} <class ‘dict‘>

获取字典当中的值 (通过键来获取值)

dictvar = {"top":"程咬金" , "middle":"妖姬" , "bottom":"崔丝塔娜" , "jungle":"七大大声" , "support":"德玛西亚"}
print(dictvar,type(dictvar))
res = dictvar[‘middle‘]
print(res)

[ python]# python3 test.py

{‘top‘: ‘程咬金‘, ‘middle‘: ‘妖姬‘, ‘bottom‘: ‘崔丝塔娜‘, ‘jungle‘: ‘七大大声‘, ‘support‘: ‘德玛亚‘} <class ‘dict‘>
妖姬

通过字典的键来修改值

dictvar = {"top":"程咬金" , "middle":"妖姬" , "bottom":"崔丝塔娜" , "jungle":"七大大声" , "support":"德玛西亚"}
print(dictvar,type(dictvar))
res = dictvar[‘middle‘]
print(res)
dictvar[‘top‘] = "赵信"
print(dictvar)

[ python]# python3 test.py

{‘top‘: ‘程咬金‘, ‘middle‘: ‘妖姬‘, ‘bottom‘: ‘崔丝塔娜‘, ‘jungle‘: ‘七大大声‘, ‘support‘: ‘德玛亚‘} <class ‘dict‘>
妖姬
{‘top‘: ‘赵信‘, ‘middle‘: ‘妖姬‘, ‘bottom‘: ‘崔丝塔娜‘, ‘jungle‘: ‘七大大声‘, ‘support‘: ‘德玛西‘}

可哈希数据 (字典)  不推荐如下使用键  一般就用变量命名的字符串形式去定义键

dictvar = {35:1,36:True,3.15:"111",False:"112233",3+2j:12,"你好":78,  (11,22,333):4  }
print(dictvar)
# 获取4
print(dictvar[(11,22,333)])
dictvar[False] = 67
print(dictvar)

[ python]# python3 test.py

{35: 1, 36: True, 3.15: ‘111‘, False: ‘112233‘, (3+2j): 12, ‘你好‘: 78, (11, 22, 333): 4}
4 
{35: 1, 36: True, 3.15: ‘111‘, False: 67, (3+2j): 12, ‘你好‘: 78, (11, 22, 333): 4}

字典的键唯一 如果两个键相同 后面的覆盖前面的
字典的键是唯一不可修改,字典的值随意

dictvar = {"a":1,‘a‘:2}
print(dictvar)

[ python]# python3 test.py

{‘a‘: 2}

相关推荐