python简单数据类型

前言

        python中的变量相当于是C++中的对象,里面有各种方法,可供程序员使用。

        python中还有各种内置函数比如str(),sort()等函数,可供程序员来操作不同对象。

        python的注释是使用"#"

        window中如果没有安装python可以到python官网下载安装。

        一般在linux中会自动安装python解释器。

         可以编写python文件,注意需要以.py结尾(实际linux文件属性不以文件后缀时决定,而是创建时决定,如何创建的)。使用python解释器来执行。

         也可以使用python终端来编写python代码,执行。python终端使用exit()或者Ctrl+d退出。

        Python之禅:

一.变量

       1.1 变量命名

        python变量命名和C语言的变量命名类似。

  • 只能包含字母,数字,下划线。变量名可以字母或下划线大头,不能以数字大头。
  • 变量名不能包含空格,可以使用下划线分隔其中单词。
  • 不要将python关键字和函数名用作变量名。即不要使用python保留用于特殊用途的单词。

        2.1 变量定义

        python变量定义不需要指定类型,直接定义即可。

        2.2 多变量赋值

a=b=c=1
a,b,c=1,2,'tom'

二.类型

        2.1 字符串

        2.1.1 定义

        在python中用引号括起来的都是字符串,其中引号可以是单引号,也可以是双引号。并且支持转义符号。

        这种灵活性可以让你能够在字符串中包含双引号和单引号。

    python中的字符串是不可变的,这意味着一旦创建一个字符串无法直接修改其中的字符。只能通过新建字符串来修改来间接修改其中的内容。

        2.1.2 操作

  • 以首字母大写的方式显示每一个单词。 title()方法。

  •  全部转为大写upper(),全部转为小写lower()

  •  拼接字符串,'+'或'+='

  •  删除空格。strip()删除两端空格,rstrip()删除右边空格,lstrip()删除左边空格。

  • 拆分字符串。利用字符串split()方法实现将字符串按照指定字符拆分成字符串列表。

  • 拼接字符串。使用join()函数,将字符串列表,按照指定字符连接起来。 

        2.1.3 字符串比较

  • ==和!=:

        ==比较的时两个字符串值是否相同,!=和==相反。两比较方式区分大小写。

  •  >, <, >=和<=:

        字符串比较大小是按照字符的字典顺序进行比较的,区分大小写。

  • is:

        用来比较两字符串是否完全相同。不仅仅是值,还有地址。

  • 区分大小写比较字符串 

       将需要比较的字符串全部转化为大写或者小写再进行比较。

        或者使用str.casefold()方法,也是将字符大写转化为小写,但是lower只局限于存在ascll中的字符,casefold不局限于存在ascll中的。

        2.1.4 python2中的print语句

        在python2中无需将要打印的内容加在括号内。从技术上来说,python3的print是一个噶不是故意没所以括号必不可少。但是有些python2的print语句有的也包含括号,而行为与python3稍有不同。 

         2.2 整数

        2.2.1 运算

        在python中,可对整数进行加(+)减(-)乘(*)除(/),乘方(**),取余(%)运算。

         使用括号修改运算次序。

         2.2.2 浮点数

        python将大小数点的称为的浮点数。也支持运算。但是运算结果的小数位数是不确定的,所有的语言在表示浮点数时都存在这个问题,原因是鉴于计算机内部表示数字的方式。

        2.2.3 str()函数

        str()函数可以将非字符串值表示为字符串。

         2.3 列表

        列表由一系列按照特定顺序排列的元素组成。里面可以包含字符串,数字,列表等,列表中可以包含任何没有关系的元素。

        在python中使用方括号([])来表示列表。并用逗号来分隔元素:

        使用print打印列表,会将列表中所有的元素打印,包括方括号。

         2.3.1 访问和使用列表元素

        可以使用索引来访问元素。和C语言一样,列表的索引也是从0开始的。这与列表操作的底层实现相关。

C语言数组索引为什么从0开始?

        C语言的数组以内存地址的偏移量来表示。比如arr[0] <=> arr + 0,arr为数组的起始地址,加0为第一个元素。arr[1] <=> arr+1,起始地址加1,实际为arr起始地址加元素类型的大小,访问到第二个元素。

         在python中还提供了一种特殊语法。通过将索引指定为-1,可以返回列表的最后一个元素,这种约定也适用于其他负数索引,比如:索引-2返回倒数第二个列表元素,以此类推。

         使用列表元素,也可以通过索引来访问,并赋值修改。

         2.3.2 在列表中添加元素

  • 在列表末尾添加一个元素,使用列表的append方法。

  • 在列表末尾添加多个元素,使用extend()方法或者使用'+='或'+'。

  •  在列表中插入元素,使用insert(),可以在列表中任何位置添加新元素。你需要为此指定新元素索引和元素。

         2.3.3 从列表中删除元素

        元素被删除了,就不能使用了。

  • 使用del删除元素,需要知道元素在列表中的位置(索引)。

比如要删除"redline"元素,它的索引为2。

  •  使用列表方法pop(),来删除元素,并且可以使用变量来获取该元素。

        pop()不传参时,表示最后一个元素,传参表示对应删除元素的索引。

  •  根据值来删除元素。使用remove()方法。

 注意:方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要

使用循环来判断是否删除了所有这样的值。

        2.3.4 组织列表

  • 使用列表的sort()方法对列表进行永久性排序

         向sort()方法传递参数reverse=True可以实现按照首字母字典序相反的顺序永久性排序。

         由于排序需要进行比较,所以列表的sort()方法需要列表元素相同。

        当列表一个元素也包含多个元素时,可以自定义函数来获取比较的元素。

  •  使用sorted()函数对列表进行临时排序,不会修改原来的列表

  •  反转列表,使用列表的reverse()方法。

  •  获取列表长度。使用len()函数

  • 使用for循环,遍历整个列表

         2.3.5 创建数值列表

  • 使用range()函数可以生成一系列数字。

        range()第一个参数是一些列数字的最小值,第二个参数是最大值(不包含),第三个参数是步长。

        range()函数还可以设置第三个参数来指定步长。默认步长是1。

 

  •  使用range()函数创建数字列表。

        使用list()函数,或者使用列表append()方法。

  •  对数字列表进行简单的统计计算。求最大值,最小值和总和。

         2.3.6 列表解析

        列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。

        要使用这种语法,首先需要指定一个描述性的列表名,然后在方括号中定义表达式,用于生成你要存储到列表的值。

        表达式可以这样理解,元素值 + 元素集合 + 条件

         python中还有其他类型的解析:

  • 如果使用的是中括号,表示列表解析
  • 如果使用的是大括号,表示集合解析
  • 如果使用的是大括号,且里面的元素是key:value模式,表示字典解析

        2.3.7 复制列表

        我们可以使用切片来进行列表的复制,对于列表中不带有可变长的类型元素时,我们可以得到一个新的列表。如果带有可变长的类型元素,由于切片复制时浅拷贝,新得到的列表该元素拷贝的时原来列表该元素的引用,两元素执行同一个列表。

         不使用切片来复制列表,使用直接赋值的方式,并不能得到一个新的列表,而是获取到列表的引用,两个列表实际共用一个空间。

        2.3.8 列表函数和方法

  • 函数 
  1.  cmp(list1,list2):比较两列表元素
  2. len(list):列表元素个数
  3. max(list):返回列表元素最大值
  4. min(list):返回列表元素最小值
  5. list(seq):将元组转化为列表
  • 列表方法
  1. list.append():在列表末尾添加一个新对象
  2. list.count(obj):统计某个元素在列表中出现次数
  3. list.extend(seq):在列表末尾一次性追加另一个序列中的多个值
  4. list.index(obj):在列表中找到某个值第一个匹配项的索引值
  5. list.pop(index=-1):移除列表中的一个元素,默认最后一个元素,并返回该元素的值
  6. list.remove(obj):移除列表中某个值的第一个匹配项
  7. list.reverse():反转列表元素
  8. list.sort(cmp=None,key=None,reverse=False):对原列表进行排序,会修改原列表
  9. list.sorted(cmp=None,key=None,reverse=False):对列表进行临时排序,返回排序后的列表,不会修改原列表

        2.4 元组

        使用圆括号括起来的元素定义的对象被称为元组。你可以使用索引来访问元素,但是元组中的元素是不可以修改的。

        2.4.1 修改元组

         虽然说元组中的元素不能修改的,但是元组变量是可以修改的。

        当元组中包含可变长类型元素时,可以对可变长元素进行修改:

        元组连接组合

        元组复制

        2.4.2 遍历元组

        2.4.3 删除元组

        元组中的元素是不能被删除的,但是我们可以使用del语句来删除整个元组

 

        2.4.4 元组比较

        python中的元组可以进行比较,比较方式为:

  1. 如果是同类型的,则依次比较对应值,返回结果
  2. 如果不是同类型的,则检查它们是否是数字
    1. 如果是数字,执行必要的数字强制类型转化,然后比较
    2. 如果有一方是数字,则另一方的元素"大",数字是最小的
    3. 否则通过类型名字的字母顺序进行比较

如果有一个元素先到达末尾,则另一个长的元组大

        2.4.5 python内置函数

  1. cmp(tup1,tup2):比较两元组元素
  2. len(tup):计算元组元素个数
  3. max(tup):返回元组中元素最大值
  4. min(tup):返回元组中元素最小值
  5. tuple(seq):将列表转化为元组

        2.5 字典

        在python中,字典是一系列键值对,每一个键都与一个值相关联,你可以通过键来访问与之相关联的值。键的类型可以是python中的数字,字符串,元组,不可以是列表和字典,是可比较的数据类型,与键相关联的值可以是数字,字符串,列表乃至字典等任何数据类型。

        注意:python中字典的键是不可变的,值是可变的。

        在python中,字典放在花括号{}中的一系列键值对,键与值之间使用冒号分隔,键值对之间使用逗号分隔。

         2.5.1 访问字典中的值

        可以通过中括号的方式,通过键值来访问字典中的值。如果访问一个字典中没有的键值,会报错。

         2.5.2 修改字典

         2.5.3 遍历字典

  • 顺序遍历字典

  • 遍历字典中的所有的键和值

         2.5.4 字典内置函数和方法

  • 函数
  1. cmp(dict1,dict2):比较两字典元素
  2. len(dict):计算字典键的个数
  3. str(dict):输出字典可打印字符串表示

  4.  type(dict):返回输入对象的类型
  • 方法
  1. dict.clear():删除字典中的所有元素
  2. dict.copy():返回一个字典的浅复制
  3. dict.fromkeys(seq,val):创建一个新字典,以序列seq中的元素做键,val为字典所有键对应的初始值

  4. dict.get(key, default=None):返回指定键得的值,如果不存在返回default的值
  5. dict.has_key(key):如果key在字典中返回True,否则返回false。
  6. dict.items():以列表返回一个可遍历的元组数组
  7. dict.keys():以列表返回一个字典所有的键
  8. dict.values():以列表返回字典中的所有值
  9. dict.setdefault(key, default=None):和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
  10. dict.update(dict2):把字典dict2的键/值对更新到dict里
  11. dict.pop(key, default):删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

  12.  popitem():返回并删除字典中的最后一对键和值,返回元素类型为元组。

        2.6 集合set

        集合是一个无序不重复元素集,基本功能包括关系测试和消除重复元素。集合对象还支持联合,交,差对称差集等数学运算。

        2.6.1 创建集合

        集合中的元素也是用"{}"来括起来的,但是创建空集合需要使用set(),使用{}会创建一个空字典。

        set集合类需要的参数必须是迭代器类型,如:序列,字典等。然后转化成无序不重复的元素。由于集合是不重复的,所有可以对字符串,列表,元组进行去重操作。

  • 创建空集合
#创建空集合
s=set()
#创建列表类型集合
s1=set([])
#创建元组类型集合
s2=set(())
#创建字典类型集合
s3=set({})
  • 创建非空集合

         2.6.2 集合操作

  • 添加元素

添加元素有两种方式,分别是add()和update()。

add():方法是将传入元素作为一个整体加到列表中:

update():将传入元素拆分成单个字符,保存到集合中,去掉重复元素。可以一次添加多个值

  • 删除元素
remove(element) element :表示要查找并删除的元素 在集合setVar中查找element元素,如果存在则删除;如果没找到,则报错。
discard(element) element :表示要查找并删除的元素 在集合setVar中查找element元素,如果存在则删除;如果没找到,则什么也不做。
pop() 删除并返回set类型的s中的一个不确定的元素,如果为空引发KeyError错误。
clear() 清空s集合中的所有元素

remove():

 discard():

 pop()和clear()

         2.6.3 遍历集合

        注意:集合不可以通过索引访问。使用enumerate()函数的索引是enumerate()函数自己建立的。

        2.6.4 集合的交叉并补

        既然是集合,那就会遵循集合的一些操作方式。如求交集,并集和差集等。

交集 & 取两集合公共的元素 >>> set1 & set2
并集 | 取两集合全部的元素 >>> set1
差集 - 取一个集合中另一集合没有的元素 >>> set1 - set2
{1,2}
>>> set2 - set1
对称差集 ^ 取集合 A 和 B 中不属于 A&B 的元素 >>> set1 ^ set2
  • 交集

        python中求集合的交集使用的符号是'&',返回两个集合共同的元素。

  •  并集

        python中求集合的并集使用的符号是'|',返回两个集合合并,并去重后的元素。

  •  差集

        python中求集合的差集使用的符号是'-',取一个集合中另一集合没有的元素。

        差集符号'-'等价于集合方法difference。

  •  对称差集

        python中求集合的并集使用的符号是'^',取两个集合不存在于两个集合交集中的元素。

        对称差集符号'^'等价于集合方法symmetric_difference

         2.6.5 集合的范围判断

        集合可以使用>,<,>=,<=,==,!=,来判断某个集合是否完全包含于另一个集合,也可使用子父集判断函数。

        这些符号并不是比较集合元素大小,而是用来判断两集合之间的关系。

         2.6.6 不可变集合frozenset

        frozenset是不可变集合,不像set可以增加删除集合中的元素,该集合中的内容是不可变的。类似字符串和元组。其他功能和set一样。

        frozenset不可变集合中根本就没有集合操作函数,add()update()和remove(),discard()和pop()clear()方法。

猜你喜欢

转载自blog.csdn.net/weixin_57023347/article/details/131373813