002.Python数据类型

Posted 战五渣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 变量的声明

[root@node10 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)

[root@node10 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变量名。在变量名中使用大写字母虽然不会导致错误,但避免使用大写字母是个不错的注意。

[root@node10 python]# vi test.py

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

[root@node10 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写法

[root@node10 python]# vi test.py 

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

[root@node10 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 整型

[root@node10 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))

[root@node10 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)

[root@node10 python]# python3 test.py

3.15 <class float>
734000.0 <class float>

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

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

[root@node10 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)

[root@node10 python]# python3 test.py

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

四 容器类型数据

4.1  str 字符串类型

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

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


,
 代表换行
	 代表缩进 (水平制表符)

 代表将后面的字符拉到当前行行首

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

# (2) 双引号 
strvar = "facebook,
google"
print(strvar,type(strvar))
strvar = "facebook,	googl
e"
print(strvar,type(strvar))
strvar = "facebook,
google"
print(strvar,type(strvar))
strvar = "face"boo"k"
print(strvar,type(strvar))

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

[root@node10 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"床前明月光,
疑是地上霜"    #取消
的转义效果
print(strvar)
strvar = r"C:WindowsSystem32driversetc"
print(strvar)

[root@node10 python]# python3 test.py

床前明月光,
疑是地上霜
C:WindowsSystem32driversetc

4.3 字符串的格式化

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

[root@node10 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)

[root@node10 python]# python3 test.py

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

4.5 %s 字符串占位符

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

[root@node10 python]# python3 test.py

今天学习python

五 列表类型

可获取,可修改,有序

5.1 定义一个空列表

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

[root@node10 python]# python3 test.py

[] <class list>

5.2 正向索引

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

[root@node10 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)

[root@node10 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])

[root@node10 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)

[root@node10 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))

[root@node10 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)

[root@node10 python]# python3 test.py

False

6.3 元组不可修改

尝试修改

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

[root@node10 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))

[root@node10 python]# python3 test.py

set() <class set>

7.2 自动去重

无序

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

[root@node10 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))

[root@node10 python]# python3 test.py

{} <class dict>

字典语法:

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

定义一个字典

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

[root@node10 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)

[root@node10 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)

[root@node10 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)

[root@node10 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)

[root@node10 python]# python3 test.py

{a: 2}

以上是关于002.Python数据类型的主要内容,如果未能解决你的问题,请参考以下文章

Python 2.7.8 学习笔记(002)python manuals/the python tutorial -- 1. Whetting Your Appetite

002:python用flask框架开发第一个demo接口

在代码片段中包含类型转换

对这个带有 & 不带 = 的代码片段返回类型感到非常困惑

对“xxx”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。 错误解决一例。(代码片段

002-Python安装