第一节 pyhton基础

一 、pyhton2与python3的区别

  在pyhton2中,其中编码默认使用的是ascii编码,输出格式为print"xxx",输入为raw_input(“请输入”),在整型中有int和long两种,计算除法的时候只能保留整数,还有range生成列表和xrange生成迭代器两种,在创建模块的包时需要在包中创建一个__init__.py文件,字符串在电脑中的编码分为Unicode和str,深度优先。

  在python3中,其中编码默认使用的是utf-8编码,输出格式为print("xxx"),输入为input("请输入"),在整型中只有int型,除法会保留全部结果,并且只有一种range生成的为迭代器,在电脑里编码为str和byte,在创建模块的包时可以只用,广度优先。

二、数据类型

  1. int整型

    整数称为整型,并且可以利用int()将可以变为整型的其他类型变为整型。

  2.str 字符串不可变类型

    2.1 表示方法

      可以用单引号''双引号""表示

      ‘’和""表示空字符串

    2.2 字符串方法

      变大写:字符串.upper()

      变小写:字符串.lower()

      将字符串居中两边用*代替每边有6个:字符串.center(6,'*')

      判断是否可转换成数字:字符串.isdecimal()

      去除空格、换行符(\n)、Tab(\t):字符串.strip()

      把字符串的z替换成x:字符串.replace('z','x')

      把字符串根据x切割成列表(其中不包含x):字符串.spilt('x')

      判断是否已x开头或者结尾(返回布尔值):字符串.startswith/endwith(x)

      字符串格式化:%s为字符串、%d为数字  例:'%s在教室‘(name,)

      循环每个元素并在每个元素之间加入指定的连接符:连接符.join(字符串)

  3 bool 布尔值

    布尔值只有True和False两种

    对于bool类型来说:整数0为Flase,其余为True

    字符串空‘’为Flase,其余为True

    列表[]为Flase,其余为True

    元组空()为False,其余为True。

  4 list 列表

    4.1 概念和表示方法

      当想要表示多个事物的时候可以用列表,用[]表示,每个元素用逗号隔开

    4.2 列表的方法

      在列表后追加元素:列表.append(元素)

      在指定索引位置进行插入元素:列表.insert(1,'xxx')

      删除从左到右的第一个匹配元素:列表.remove('xxx')

      删除匹配到的索引位置的元素(默认删除最后一个):列表.pop(2)

      清空列表:列表.clear()

      在原有的列表中加入另外一个列表:列表1.extend(列表2)

      列表的排序从小到大:列表.sort(reverse=False)

      列表的排序从大到小:列表.sort(reverse=True)

    4.3 强制转换

      字符串强制转换成列表:v1 = list("dskjfd")
      元祖强制转换成列表:v2 = list((11,22,33,44))

    4.4 嵌套

      列表中可以互相嵌套:[1,[11,22],2]

  5 元组

    5.1 元组的书写规范和概念

      书写规范:user=(11,22,33,'如果')

      元组没有方法,且元组中的数据不可改变

    5.2 嵌套

      元组嵌套元组:(11,22,(1,2))  #数据不可改

      元组嵌套列表:(11,22,[1,2])  #列表中的数据可以改,但是不能改元组的元素包括列表

      列表嵌套元组:[1,2,(11,22)]  #列表中的数据可以改包括元组,但是不能改元组的元素

    5.3 强制转换

      列表转成元组:v1 = tuple([1,2,3])

  6 dict 字典

    6.1 字典的书写规范

      dict = {'键':'值','键’,‘值’},冒号前后称为一个键值对

      例:dict1 = {'name':'如果','age':'20'}

    6.2 字典的方法

      获取字典中所有的键:info.keys()  #不可用可变类型当做字典的键

      获取字典中所有的值:info.values()

      获取字典中所有的键值对:info.items()

      查找字典中是否有指定的键:字典.get('键') #不存在返回None

      给字典添加键值对:字典['键']=‘值’

      更新字典的值,存在则更新,不存在则添加:字典.update({'键‘:'值'})

  7 set 集合

     7.1 集合的书写规范

      书写规范:v = {1,2,3,4}

      空集合:v = set()

      注:集合中的元素不能存在重复,且集合元素无序

     7.2 集合的方法

      集合添加元素:集合.add(元素)  #集合中若存在则不添加

      集合删除元素:集合.disable(元素)  #无序不重复,不能用索引

      集合的更新:集合.update(元素)  #批量添加

      集合的交集:new_set = set1.intersection(set2)  #在set1和set2的交集

      集合的并集:new_set = set1.union(set2)

      集合的差集:new_set = set1.difference(set2)

  8 数据类型公共方法

    索引:获取第一个位置的元素(从0开始):x[0](排除:int/bool/set)  #x[-1] 复数从后向前

    切片:获取一部分元素(取前不取后)(排除:int/bool/set)

         例题:v = '现实没有如果'

            v1 = v[2:4] 获取到位置为2到3的字符串  #没有

          v2 = v[3:] 获取到位置为3到最后的字符串  #有如果

          v3 = v[:-1] 获取从开始到-2位置的字符串 #现实没有如

    步长:获取其中某字符(排除:int/bool/set)

       例题:name = ’alexalex‘

          val = name[1:-1:2]  获取从1到-1每间隔为2的所有字符 #lxl
          val = name[1::2]  获取从1到最后每间隔为2的所有字符 #lxlx
          val = name[::2] 获取从开始到最后每间隔为2的所有字符 #aeae
          val = name[-1:0:-2]  获取从-1到0每间隔为-2的所有字符 #xlxl
          val =name [::-1]  将字符串反转 #xelaxela

    删除(排除:str/int/bool/set)

    for循环(排除:int/bool)

    len:计算长度,判断有多少元素(排除:int/bool)

  9 条件判断

    9.1  if 条件:
         内容

    9.2   if 条件:

         内容

        else:

         内容

    9.3  if 条件:

         内容

         elif 条件:

         内容

        else:

         内容

  10 循环

    10.1 while 循环

      基本条件:while + 条件  例:while True:(永久成立)

      关键字:break   例:while True:

                    break   #终止循环

      关键字:continue    while num <10:

                    continue #循环如果遇到continue则直接执行下一次循环,不执行下面

      关键字:else  #不满足while后的条件时触发

    10.2 for 循环

      基本条件:for 变量 in 被循环数据:  例:for i in 'alex':

      关键字:break   例:for i in 'alex':

                    break   #终止循环

      关键字:continue    for i in 'alex':

                    continue #循环如果遇到continue则直接执行下一次循环,不执行下面

      关键字:else  #不满足for后的条件时触发

  11 运算符

    11.1 普通运算符

      加:+  减:-  乘:*  除:/  取余数:%  次方:**  取商的整数://

    11.2 比较运算

      等于:==  不等于:!=  大于:>  小于:<  大于等于:>=  小于等于:<=

    11.3 赋值运算

      c=a+b:将a+b的结果赋值给c

      c+=a,等效于c=c+a

      c-=a,等效于c=c-a

      c*=a,等效于c=ca

      c/=a,等效于c=c/a

      c%=a,等效于c=c%a #取余数

      c**=a,等效于c=c**a

      c//=a,等效于c=c//a #取整数

    11.4 逻辑运算

      与:and  例:x and y 如果X为False,取X否则取Y

      或:or   例:x or y 如果x为False,取y否则取x

      非:not  例:如果x为Flase,则取True,否则为Flase

    11.5 成员运算符

      判断某字符串中是否含有某字符:in

      判断某字符串中是否不含有某字符:not in

    11.6 运算符优先级

      

  11.7 内存相关

    查看内存地址:print(id(v1))

    python常用地址:-5~256

    ==和is的区别:==只是比较值是否相等,is比较内存地址是否一致

    例一  v1 = [1,2,3]  v2 = [1,2,3]  #数据一致但是存储磁盘内位置不一致

    例二  v1 = [1,2,3]  v2 =v1  v1.append(666)  print(v2)#[1,2,3,666] #v2把自己指向v1数据的地址,当v1添加时,v2也存在

    例三  v1 = [1,2,3]  v2 =v1  v1 = [11,22,33]  print(v2)#[1,2,3]  #v1被重新赋值,v2指向原内存地址,v1已开辟新内存地址

    例四  v1 = [1,2,3]  v2 = [11,v1]

          v1.append(9)  print(v2)#[11,[1,2,3,9]

          v2[1].append(999)  print(v1)#[1,2,3,999]

          v1 = 999  print(v2)#[11,22,[1,2,3]]

          v2[1] = 999  print(v1)#[1,2,3]

 

猜你喜欢

转载自www.cnblogs.com/parallel-Y/p/10902444.html