7.1_python_lx_day2

一.Number (int float bool complex)

(1)int 整型

①正整数 0  负整数

例:intvar = 123   print(intvar)

>type获取值的类型<  

例:print( type(intvar) )

>id获取一个值的地址<

例:print( id(intvar) )

②二进制整型

例:intvar = 0b1111
print(intvar)
print( type(intvar) )
print( id(intvar) )

③八进制整型

intvar = 0o125
print(intvar)
print( type(intvar) )
print( id(intvar) )

④十六进制整型

intvar = 0x1010
var1 = 4112
print(intvar)
print(id(intvar), id(var1))
print( type(intvar) )

(2)float 浮点型 小数

①表达方法一

例:floatvar = 4.88

print(floatvar)
print( type(floatvar) )

②表达方法二  科学技术法

floatvar = 6.7e4
print(floatvar)
print( type(floatvar) )

(3)bool 布尔型 True 真的 False 假的 只有两个值

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

(4)complex 复数

complex  实数 + 虚数

例:3+4j

3: 实数
4j: 虚数
j: 如果有一个数,他的平方等于-1,那么这个数就是j,表达的是高精度的类型;(科学家认为有)

①表达方式一
complexvar = 56-3j
complexvar = -3j   # 可以没有实数部分
print( complexvar )
print( type(complexvar) )

②表达方式二
语法 : complex(实数,虚数)
complexvar = complex(56,-3)
print( complexvar )
print( type(complexvar) )

二.容器类型数据 ( str list tuple set dict)

转义字符 : + 某个字符
☆将有意义的字符变得无意义
☆将无意义的字符变得有意义
, : 换行
: tab缩进(水平制表符)[一般来说,一个锁进是4个空格的距离
: 将后面的字符直接拉到当前行行首

(1)str 字符串

""" 用引号引起来的就是字符串 """

①特点:可获取,不可修改,有序

②单引号引起来的字符串     strvar = 'aaaaa'

③双引号引起来的字符串     strvar = "bbbbb"

④三引号引起来的字符串 '''  """(支持跨行的效果)

例:strvar = """aaaaa,

bbbbbbbbbb

"""

⑤元字符串 r"字符串" 不转义字符,原型化输出字符串

strvar = r"E: ython31 ay2"
print(strvar)

⑥格式化字符串

语法 : "字符串" % (值1,值2,值3)
%d 整型占位符
%f 浮点型占位符  (存在四舍五入的情况)
%s 字符串占位符

<1>%d 整型占位符

strvar = "刘子豪便秘,买了%d个开塞露,舒服多了" % (5)
print(strvar)

*** %2d 占两位 原字符串默认居右

     %-2d 占两位 原字符串默认居左

strvar = "刘子豪今天%2d岁" % (3)
print(strvar)

<2>%f 浮点型占位符

strvar = "刘子豪给了我%f块钱" % (9.987)
print(strvar)

*** %.2f 小数点保留2位
strvar = "刘子豪给了我%.2f块钱" % (9.987)
print(strvar)

<3> %s 字符串占位符

strvar = "%s" % ("人生如逆旅,我亦是行人")
print(strvar)

&综合案例

strvar = "%s看好了一辆车,特斯拉model x,买了%d辆,花了%.1f元" % ("了刘子豪",10,9.9)

print(strvar)

<4>可以全部使用%s占位符进行取代

strvar = "%s看好了一辆车,特斯拉model x,买了%s辆,花了%s元" % ("刘子豪",10,9.912345)
print(strvar)

(2)list 列表

①特点:可获取,可修改,有序

②定义一个空列表 listvar = []   print(listvar ,  type(listvar) )

③定义一个普通列表  

&正向下标索引    0     1             2     3         4
listvar =             [100,19.123,True,1+12j,"刘子豪"]
&逆向下标索引   -5    -4           -3     -2       -1
print(listvar)

<1>获取列表当中的值 res = listvar[2]  res = listvar[-3]  print(res) 

<2>获取列表当中最后一个元素

***python 特有          print(listvar[-1])

***通用写法

len 获取容器类型数据的长度(元素的总个数)

res = len(listvar)     print(res) 

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

***简写  print(listvar[len(listvar) - 1])

<3>修改列表里面的元素    listvar[-3] = False    print(listvar)

(3)tuple 元组

①特点:可获取,不可修改,有序

②定义一个空列表  tuplevar = ()  print(tuplevar , type(tuplevar))

③定义一个普通列表

tuplevar =     ("范小花","胡歌","靳东","刘亦菲")

<1>获取元组当中的元素res = tuplevar[1]   res = tuplevar[-1]     print(res)

<2>不可以修改元组当中的值  tuplevar[0] = "一条大路分两旁" error

<3>判定元组的类型=>逗号才是区分是否是元组的标识符    tuplevar = (123,)     tuplevar = 123,    print(tuplevar , type(tuplevar))

(4)set 集合 (作用:集合之间的交差并补)

①特点:无序,自动去重

②定义一个空集合  setvar = set()      print(setvar  , type(setvar))

③定义一个集合

setvar = {"aaa","bbb","ccc","ddd"}

<1>不可以获取集合中的元素 res = setvar[3] error (集合无序)

      不可以修改集合中的元素 setvar[0] = "123" error (集合无序)

<2>自动去重  setvar = {"aaa","bbb","ccc","ddd","ddd","ddd","ddd","ddd"}   print(setvar)

(5)字典 dict

①特点:键值对存储的数据,表面上有序,实际上无序

②语法: { 键1:值1 , 键2:值2 ..... }

③定义一个空字典  dictvar = {}    print(dictvar , type(dictvar))

④定义一个字典  dictvar = {"智多星":"吴用","花和尚":"鲁智深","浪里白条":"张顺","母夜叉":"孙二娘","回手掏":"大司马"}

⑤获取字典的值    res = dictvar["回手掏"]    print(res)

⑥修改字典的值  dictvar["回手掏"] = "范小花儿"  print(dictvar)

字典的键 和 集合中的值 对数据类型有要求

字典的键 和 集合中的值 数据类型的要求必须是如下几种:
如下类型可以: 不可变数据(可哈希的数据类型)
Number(int , float , bool ,complex) , str , tuple

不允许的类型: 可变数据(不可哈希的数据类型)
list , set , dict

但凡提到哈希算法(hash),都是典型的无序特征
目的: 为了更加均匀的把数据分配到内存里,底层用的算法类似于取模.

python3.6版本之后,对字典做了优化,存储数据的时候用哈希算法
但是在拿出数据的时候,重新按照定义字典时的顺序进行重新排序
所以看起来有序,实际上无序

原文地址:https://www.cnblogs.com/Magicianlx/p/13221839.html