Python初学笔记01---数据类型

  Python3六种标准的数据类型:Number(数字),String(字符串),List(列表),Tuple(元组),Sets(集合),Dictionary(字典)

1 数字

1.1:整型(int

  Python3没有限制整型大小,可以当Python2的long使用

  整数除法中,除法(/)计算结果是浮点数,即使可以整除也是如此,如果想要得到整数结果,丢弃小数部分,可以使用地板除(//)

1.2浮点型(float)

  浮点型有整数部分和小数部分组成,亦可以使用科学计数法

1.3复数(complex)

  复数由实部和虚部组成,可以用a+bj或complex(a,b)表示

1.4数据类型转换

  int(x),把x转换成整数

  float(x),把x转换成浮点数

  complex(x),把x转换成一个复数,实部x,虚部0

  complex(x,y),把x和y转换成一个复数,实部x,虚部y

1.5常量

  PI:数学常量π

  E:数学常量e

1.6变量

  Python中变量没有明显的变量声明,类型不是固定的,随值而变:

  

1.7 语句和表达式

  语句是Python解释器可以运行的一个代码单元,可以理解为可以执行的一个命令

  表达式是值、变量和操作符的组合

  语句会造成一些改变,如赋值语句会改变变量的值,表达式最终会变为一个值,不会造成某些改变

1.8运算符和操作对象

  Python 7种操作符:算术操作符、比较运算符、赋值运算符、逻辑运算符、位运算符、成员操作符、身份运算符

  1)算术操作符:

    +,-,*,/,%

    **:幂运算10**3输出1000

    //:取整除16//3输出5

  2)比较运算符:==、!=、>、<、>=、<=

  3)赋值运算符:=,+=,-=,*=,/=,%=,**=,//=

  4)位运算符:

    &,|,

    ^抑或:相同位相同为0,相反为1,

    ~取反,<<,>>

  5)逻辑运算符

  and,布尔与,如果x为False,x and y就返回False,否则返回y的计算值

  

  or,布尔或,如果x非0,x or y就返回x的值,否则返回y的值

  

  not,布尔非,如果x为True,not x返回False,如果x为False,返回True

  

  6)成员运算符

  in 如果在指定序列中找到值,返回True,否则返回false;not in 与in相反

  

  7)身份运算符

  is判断两个标识符是否引用自同一个对象,是返回True,不是返回False

  

2 列表和元组

  Python6种基本数据结构:列表、元组、字符串、Unicode字符串、buffer对象、xrange对象

2.1 通用序列操作

  Python种所有序列可以进行一些特定的操作:索引(indexing),分片(slicing),序列相加(adding),乘法(multiplying)、成员资格、长度、最小值、最大值

2.1.1索引

  Python序列索引自左向右为正由0起,自右向左为负由-1起:

  

  为什么自左向右不是-0起,原因在于数学上-0 = 0

2.1.2分片

  Python可以使用分片从序列中获取指定部分片段:

  语法:arr[a:b:c],表示去取索引x满足a <= x < b范围内的元素,步幅为c,abc均可以省略

  

2.1.3序列相加

  序列可以使用+链接起来,但是要类型一致(不是元素类型哦),加法生成新的序列,不改变原序列自身

  

2.1.4乘法

  乘法可以把序列复制n遍生成新的序列

  

2.1.5成员资格

  Python用in来检测元素是否在序列中出现,出现过返回True,否则返回False

  

2.1.6长度、最大值、最小值

  

2.2列表

2.2.1更新列表

  1)添加元素:arr.append(obj)

  2)删除元素:del arr[index]  

  

  3)分片赋值

  分片赋值可以将列表的某一判断直接替换成另一个列表,不要求被替换掉的片段长度等于新加进来的列表的长度

  

2.2.2列表方法

  1)arr.append(obj)将obj作为一个元素追加到arr队尾

  2)arr.count(obj)查询obj在arr中出现的次数

  3)arr.extend(seq)将列表seq追加到arr队尾,亦可以是seq的某一片段(如seq[:3])

  4)arr.index(obj)找出值obj在arr中第一次出现的索引

  5)arr.insert(index,obj)将obj插入到arr的index索引处

  6)arr.pop()移除并返回arr的最后一个元素,arr.pop(index)移除arr的index处的元素,两种移除会是arr长度减小的,不是空出位置哦

  7)arr.remove(obj)移除arr中第一个obj

  8)arr.reverse(),反转arr里面元素的顺序,是对arr的反转,不是返回一个新的列表

  9)arr.sort(),对arr进行默认排序

     arr.sort(func),按照指定函数给arr排序

     arr.sort(key=len,reverse=False),按照key对arr排序,reverse为是否反转

  10)arr.clear(),移除arr所有的元素

  11)arr.copy()复制arr并返回新的arr

    

2.3元组

  Python的元组与列表相似,但元组的元素不可以修改

  创建元组的方法:

  

       

2.3.1tuple函数

  tuple函数可以将列表转换为元组,也可以将字符串转换为元组,或返回传入的元组

  

2.3.2tuple基本操作

  1)访问元组

  元组内的元素可以用index访问,元组可以进行分片操作

  

  2)修改元组

  元组内元素不可以修改,但是可以将两个元组进行连接操作

  

  元组不可以修改,但元组内元素的属性可以修改,故元组的不可变指的是元组内每一个元素的指向不可变

  

  3)删除元组

  元组内元素不可以删除,但是可以删除整个元组

  

2.3.3元组内置函数

  1)len(tuple)获取元组长度

  2)max(tuple)、min(tuple)获取最大值最小值

  3)tuple(seq)将列表转换为元组

3字符串

3.1字符串格式化

3.1.1使用占位符格式化字符串

  在字符串内预先设好占位符,在使用时替换

    

  语法解释:%左边是待格式化的字符串,右边是参数,参数可以直接是值,亦可以使用元组或字典,占位符替换时有类型检测

  常用占位符:

  %s:字符串

  %d:整数

  %f:浮点数

  有些时候%要特殊处理输出%:

   

  格式化浮点数占位符中可以添加字符串宽度和小数位数,格式%a.bf,a为宽度,b为小数位,如果a大于真实宽度,左边以空格补上,用精度b时左边‘.’必须要有,a和b可以用*代替然后在元组中读取

  

  符合、对齐和填充:

  

  如上,输出结果中数字前多了一堆0,称之为标表。在这段宽度之前放置一个标表,可以是0、加号、减号、空格

  0表示用0填充,减号(-)表示左对齐,空格表示数值前用空格填充,加号(+)表示无论正数还是负数都展示出符号:

  

 3.2字符串方法

  1)str.find(sbustr,beg,end),从字符串str的beg到end索引位置查找子串sbustr,有就返回第一个索引位置,没有返回-1,

  

  2)mark.join(sequence),使用mark链接字符串序列sequence,生成一个字符串

  

  2)upper()所有小写变大写,lower()所有大写变小写,swapcase()大小写互换,均返回新字符串不改变原字符串

  

  3)str.replace(old,new,time),将str中的old子串替换成new子串,最多替换time处,time可以省略,返回新字符串,不改变原字符串

  

  4)str.split(sbstr,num),将字符串str以sbstr进行分割成列表,最多分num次(生成num+1长度列表),sbstr可以没有,默认为空格,num可以不带

  

  5)translate(table)方法,根据table替换字符,table中有两个长度对应的字符串

  

  替换逻辑如下: 

 

 4字典

   字典是Python唯一内建的映射类型,字典指定值没有特定的顺序,都存在键key里,键可以是数字、字符串、或元组

  创建字典:d = {key1:value1,key2:value2...}

  字典中键是唯一的,值不必唯一,键必须是不可变的,如字符串、数字、元组

  dict函数可以将其他映射或键值序列创建为字典:

  

  修改字典:dic[key] = value;

  删除字典某个key与对应值: del dic[key]

  删除整个字典: del dic

  获取字典长度:len(dic)

  dict和list的区别:

  dict:1)插入和查找速度极快,不会因为key的增多而变慢;2)需要占用大量内存,内存浪费多

  list:1)查找和插入随元素的增多而变慢;2)浪费内存很少

4.1字典方法

  1)dict.clear()清除所有元素

  2)dict.copy()浅复制

  3)dict.fromkeys(seq[,value),以序列seq作为键创建一个新的序列,value作为所有键的初始值

  4)dict.get(key[,default]),根据键获取值,没有返回default值

  5)key in dict,查找dict是否有键key,有返回true

  6)dict.items()返回(键,值)元组数组

  7)dict.keys()返回所有键

  8)dict.setdefault(key,default)返回key对应的值,如果没有,则将default设置为key的值

  9)dict1.update(dict2)将dict2中的键值对更新到dict1中

  10)dict.values()以列表的形式返回所有的值

   

  

  

  

 

  

  

  

  

  

  

原文地址:https://www.cnblogs.com/ShouWangYiXin/p/10504820.html