zoukankan      html  css  js  c++  java
  • Python基础知识

    Python2与Python3的区别:  (这里只列举自己总结的几点)

    Python2:

      源码不标准

      混乱

      重复代码过多

      默认使用的编码方式是ASCII码 # 解决对应编码问题 在首行增加 #-*-encoding:utf-8-*-

      继承顺序: 深度优先 #mro方法只在新势类中存在;super只在Python3中存在

      print可以不用加括号

      有range(),也有xrange();(xrange:生成器)

      raw_input() python2中的input。

     

    Python3:

      统一标准,去除重复代码

      继承顺序:广度优先 Python2.7新式类和经典类共存 新式类要继承object

      print必须加括号

      只有range()

      input()


    编码

    ascii:包括:字母,数字,特殊字符(一个字节 8 位)。

    Unicode:万国码 (两个字节 16 位)  升级为 (四个字节 32位)。

    UTF-8: Unicode升级版 最少使用(一个字节 8位) 字母,数字,特殊符号 一个字节, 欧洲 使用(两个字节 16位) 中文 使用(三个字节 24 位)。

    gbk:中文使用两个字节,英文使用一个字节。

    ascii
    A : 00000010 8位 一个字节

     

    unicode
    A : 00000000 00000001 00000010 00000100 32位 四个字节
    中:00000000 00000001 00000010 00000110 32位 四个字节

     


    utf-8
    A : 00100000 8位 一个字节
    中 : 00000001 00000010 00000110 24位 三个字节

     


    gbk
    A : 00000110 8位 一个字节
    中 : 00000010 00000110 16位 两个字节
    1.各个编码之间的二进制,是不能互相识别的,会产生乱码
    2.文件的储存、传输,不能为unicode(只能是utf-8,utf-16,gbk,gb2312,ascii等)
    python3中 str 在内存(不是存储在硬盘上)中是用unicode编码的。

    bytes类型:

    对于英文:
      str: 表现形式例如 s='alex'
      编码方式 01010101 unicode
      bytes: 表现形式例如 s=b'alex'
      编码方式: 000101010 utf-8 gbk...

    对于中文:
      str: 表现形式例如 s='中国'
      编码方式 01010101 unicode
      bytes: 表现形式例如 s=b'xe91e91e01e21e31e32'
      编码方式: 000101010 utf-8 gbk...

     

    str>>>bytes***
    str.encode();# encode编码 str.encode('设置编码方式utf-8;utf-16;gbk...')
    bytes>>>str***
    bytes.decode()#decode编码 bytes.decode('设置编码方式utf-8;utf-16;gbk...')


    Python中命名规范

      变量:变量就是将一些运算的中间结果暂存到内存中,以便于后续代码调用

      要求:

        1.必须由数字,字符,下划线任意组合,且不能以数字开头

        2.不能是Python中的关键字

        Python中的关键字:

        ["and","as","assert","break","class","continue","def","del","elif","else",

        "except","exec","finally","for","from","global","if","import","in","is",

        "lambda","not","or","pass","print","raise","return","try","while","with","yield"]

        3.变量具有可描述性

        4.不能是中文

      注释:方便自己方便他人理解代码的注释,程序不运行

        单行注释: #

        多行注释:  '''被注释内容''' 或者 """被注释内容"""


     

    基础数据类型初始

      type() # 用来检测数据类型

      int(数字型):例如1,2,3,4,5.....

        数字型可以进行数字运算 例如: "+","-","*","/",**(乘方),%(取余).....

        str >>> int: int(str) str必须是数字组合而成的

        int >>> str: str(int)

      str(字符串): Python中凡是用引号引起来的都是字符串

        字符串的操作:

          str + str: 字符串的拼接

          str * int: 相乘重复输出

     

      bool(布尔值): bool型只有True或者False

        bool>>>int: Ture=1 False=0

        int>>>bool: 除0,None,"",以外都为True

     

    用户交互: input()

      

    #定义一个变量 i
    i = input("提示输入")
    #1.等待输入
    #2.将你输入的内容赋值给了前面的变量
    #3.input出来的数据类型全部都是str(str是字符串)

    if判断语句

    if<条件判断1>:
        <执行1>
    elif<条件判断2>:
        <执行2>
    elif<条件判断3>:
        <执行3>
    else:
        <执行4>

    for循环

    for i in x:#循环就是把每个元素代入变量x,然后执行缩进块的语句
        print(i)

    补充

    索引序列:
      enumerate('内容',start='第一个开始的序号') 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。


     while循环

    while 条件:  # 只要条件满足就不断循环,如果条件不满足则跳出循环;
    if 条件: break  # 满足if条件执行break跳出循环;
    if 条件: continue  #  满足if条件则跳过本次循环进入下一轮循环;
    while 条件: else  #break跳出循环则不执行else 否则不满足while条件则执行else内容

     格式化输出  

    "%"的妙用

    %; # 格式化字符串
    %d;  # 格式化整数
    %f;  # 格式化浮点数,可以指定小数点后的精度
    %s;  # 格式化字符串 
    %x;  # 格式化无符号十六进制数
    %X;  # 格式化无符号十六进制数(大写)
    %c;  # 格式化字符及其ASCII码
    %u;  # 格式化无符号整形
    %o;  # 格式化无符号八进制数
    %e;  # 用科学计数法格式化浮点数
    %E;  # 作用同%e,用科学计数法格式化浮点数
    %g;  # %f和%e的简写
    %G;  # %f和%E的简写
    %p;  # 用十六进制数格式化变量的地址
    
    Demo:
        i = "帅哥"
       print("我是一个%s"%i)
     输出:
        "我是一个帅哥"

    "format"的妙用

    str.format()
    # 1.按照顺序 {}{}{}  str.format("1","2","3")
    # 2.按照索引 {0}{1}{2}{0} str.format("0","1","2")
    # 3.按照变量 {s1}{s2}{s3}{s1} str.format(s1=变量1,s2=变量2,s3=变量3)

    Ps: Python2.6新加入的format语法支持;Python新版本推荐使用format

    ***"%"与"format"的区别

      %有局限性 例如传一个元祖就会报TypeError 像此类格式化的需求我们需要写成'%s'%(type,)

      format新特性 Python3.6加入f-strings 更方便 例如:

        f'Str{变量}Str{变量}' 可直接替换完成


     

    转义符

      Python转义字符:

        r"" ;  字符串内容全部真实含义(转义)

        (在行尾);续行符

        ; 转义符

        a; 响铃

        ;退格

        e;转义

        00; 空

         ; 换行

        v; 纵向制表符

         ; 横向制表符

         ; 回车

        f; 换页

        oyy; 八进制数,yy代表的字符,例如: o12代表换行

        xyy; 十六进制数,yy代表的字符,例如: x0a代表换行

        other; 其他的字符以普通格式输出


    运算符

    算数运算:

    运算符   描述                       实例

    +     加-两个对象相加                  a + b

    -     减-得到复数或是一个数减去另一个数         a -  b

    *     乘-两个数相乘或是返回一个被重复若干次的字符串   a *  b

    /     除-x除以y                     b / a

    %    取模-返回除法的余数               b %  a         

    **    幂-返回x的y次幂                   a ** b 

    //    取整除-返回商的整数部分              a // b

     

    比较运算:

    运算符           描述

    ==             等于-比较对象是否相等

    !=              不等于-比较两个对象是否不相等

    <>             不等于-比较两个对象是否不相等 

    >               大于-返回x是否大于y

    <               小于-返回x是否小于y

    >=             大于等于-返回x是否大于等于y 

    <=             小于等于-返回x是否小于等于y

     

    赋值运算:

    运算符     描述             实例

    =       简单的赋值运算符       c=a+b

    +=      加法赋值运算符 c+=a     等效 c=c+a 

    -=      减法赋值运算符 c-=a       等效c=c -a 

    *=      乘法赋值运算符 c*=a      等效 c=c *a  

    /=      除法赋值运算符 c/=a       等效 c=c/ a

    %=      取模赋值运算符 c%=a     等效 c=c%a 

    **=      幂赋值运算符 c**=a       等效 c=c**a

    //=        取整赋值运算符 c//=a       等效 c=c//a

     

    逻辑运算:

    运算符       描述

    and       布尔"与"-如果x为True, x and y 返回y

    or        布尔"或"-如果x为True, x or y 返回x值 

    not        布尔"非"-如果x为true,返还x为False

    in         #成员运算符-如果字符串中包含给定字符返回True

    not in       #成员运算符-如果字符串中不包含给定的字符返回 True

    逻辑运算优先级

    ()>>>not>>>and>>>or

     

     

     

    补充: 位运算

    "&" 与运算

      demo: 5&2 = 0

      0101 

      & 0010 

      =  0000

     

    "|" 或运算

      demo:5|2 = 7

      0101

      |   0010

      = 0111

     

    "~" 非运算取反

     

    "<<" 左移运算符  x << 1

      # 相当于x*2

     

    ">>" 右移运算符 x >> 1

      # 相当于x//2

     

    "^" 异或运算符

      11>0 00>0 01>1 10>1  

      demo:5^3 = 6

      0101

      ^  0011

      =  0110

     

    补充: 

      # =(赋值) 用的是同一个地址 如果改变一个另一个也改变
      # == (比较值是否相等)。
      # is (比较,比较的是内存的地址)。
      # id (内容,打印出内存地址)。

    Songzhibin
  • 相关阅读:
    20172306 2018-2019-2 《Java程序设计与数据结构》第七周学习总结
    20172306 2018-2019-2 《Java程序设计与数据结构》第六周学习总结
    网页图片
    20172302 2018-2019-1《程序设计与数据结构》课程总结
    Do-Now—团队Scrum 冲刺博客五
    Do-Now—团队Scrum 冲刺博客二
    哈夫曼编码测试
    20172302 《Java软件结构与数据结构》实验三:查找与排序实验报告
    团队作业第一周
    20172302 《Java软件结构与数据结构》第九周学习总结
  • 原文地址:https://www.cnblogs.com/binHome/p/11765234.html
Copyright © 2011-2022 走看看