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
  • 相关阅读:
    time 模块学习
    day 14 自定义模块,常用模块 time .datetime ,time 模块
    day 13 课后作业
    day 12 课后作业
    day 11课后作业
    树状数组最值
    hdu 1059 Dividing bitset 多重背包
    XVII Open Cup named after E.V. Pankratiev. XXI Ural Championship
    最长公共子序列板/滚动 N^2
    Uva 10635
  • 原文地址:https://www.cnblogs.com/binHome/p/11765234.html
Copyright © 2011-2022 走看看