美文网首页
我的Python学习之路0

我的Python学习之路0

作者: 观语小白 | 来源:发表于2020-03-04 00:52 被阅读0次

    几个概念

    • 表达式
    • 语句
    • 程序(program)
    • 函数(function)
    1. 表达式
      表达式就是一个类似于数学公式的东西
      比如:10 + 5 8 - 4
      表达式一般仅仅用了计算一些结果,不会对程序产生实质性的影响
      如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出

    2. 语句
      在程序中语句一般需要完成某种功能,比如打印信息、获取信息、为变量赋值。。。
      比如:
      print()
      input()
      a = 10
      语句的执行一般会对程序产生一定的影响
      在交互模式中不一定会输出语句的执行结果

    3. 程序(program)
      程序就是由一条一条的语句和一条一条的表达式构成的。

    4. 函数(function)
      函数就是一种语句,函数专门用来完成特定的功能
      函数长的形如:xxx()

      • 函数的分类:

        • 内置函数
          • 由Python解释器提供的函数,可以在Python中直接使用
            自定义函数
          • 由程序员自主的创建的函数
      • 当我们需要完成某个功能时,就可以去调用内置函数,或者自定义函数
        函数的两个要素:

        • 参数
          - ()中的内容就是函数的参数
          - 函数中可以没有参数,也可以有多个参数,多个参数之间使用,隔开
        • 返回值
          - 返回值是函数的返回结果,不是所有的函数都有返回值

    变量

    print(type(1))
    print(type(1.5))
    print(type(True))
    print(type('hello'))
    print(type(None))
    
    类型检查结果.png

    对象(object)

    • Python是一门面向对象的语言
    • 一切皆对象!
    • 程序运行当中,所有的数据都是存储到内存当中然后再运行的
    • 对象就是对象就是内存当做专门用来存储指定数据的一块区域
    • 对象实际上就是一个容器,专门用来存储数据
    • 像上面的数值、字符串、布尔值、None都是对象

    对象的结构

    每个对象中都要保存三种数据

    • id(标识)

      用来标识对象的唯一性
      id() 函数 返回对象的唯一标识符,标识符是一个整数
      id是由解析器生成的,在CPython中,id就是对象的内存地址
      对象一旦创建,id永远不能改变

    • type(类型)

      类型用来标识当前对象所属的类型
      比如:int str float bool ...
      类型决定了对象有那些功能
      Pyhon是一门强类型的语言,对象一旦创建类型便不能改变

    • value(值)

      值就是对象中存储的具体的数据
      对于有些对象值是可以改变的
      对象分成两大类,可变对象,不可变对象

    print函数详解

    print(value,..., sep=' ', end='\n')

    • sep 表示变量之间间隔 默认为一个空格
    • end 表示输出流结尾 默认为换行符
    name = "小白"
    age = 15
    gender = "boy"
    print(name,age,gender)
    print(name,age,gender,sep='-')
    print("AAA")
    print("BBB")
    print("CCC")
    print("AAA",end="")
    print("BBB",end="")
    print("CCC",end="")
    
    print输出样例.png

    三引号的用法

    1. python中三引号可以将复杂的字符串进行复制:
    • python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
    • 三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。
    chat = """How are you?
    I'm fine,thank you,and you?
        Me too!"""
     
    print(chat)
    
    输出结果样例.png
    1. 多行注释:
    • Python中的注释是用# ,但是#通常是单行注释,在注释有多行时,每一行多要写一个# ,而用""""""却可以一次性解决
    '''
    我是个成熟的注释
    已经学会了自己注释多行
    '''
    

    字符串函数

    message = "Hello Python Crash Course world!"
    print(message.title())
    print(message.upper())
    print(message.lower())
    

    title()首字母大写
    upper()全部大写
    lower()全部小写


    效果图

    字符串格式化输出

    1. 使用占位符 %d %s %f

    str(18) <==> 18--->'18'
    str(int)强制类型转换(int->str)
    %d digit 数字
    int(18.5) <==> 18.5--->18
    %f
    %.1f 保留到十分位,四舍五入

    movie = "唐人街探案3"
    ticket = 49.9
    count = 28
    total = ticket * count
    
    message='''
    电影:%s
    人数:%d
    单价:%.1f
    总票价:%.1f
    ''' % (movie, count, ticket, total)
    
    print(message)
    
    占位符样例.png

    2. format函数

    format是字符串中的一个函数" ".format() 此处的'.' 调用

    age = 15
    s = "已经上"
    money = 3.14
    message = "乔治说:我今年{}岁了,{}幼儿园了,有零花钱:{}".format(age, s, money)
    #message = f"乔治说:我今年{age}岁了,{s}幼儿园了,有零花钱:{money}"
    #效果一样
    print(message)
    
    format样例.png

    input的使用

    name = input("请输入名字:") 阻塞式
    input(prompt=None) --->标准的输入流(键盘输入的都是字符串
    input() #阻塞
    admin+回车 --->name ‘容器’ 接收流中的信息

    运算符

    1. 赋值运算符

    name = 'name' 将'admin'的值赋给 变量name
    = += -= *= /=
    拓展的运算符:

    • ** : 幂运算 3**4<==>3*3*3
    • // : 整除运算 9//2=4 (向下取整)
    • % : 取余运算 9%2=1

    2. 关系运算符

    在python中定义变量会有:id,type,value
    因此,对于相同value的变量,它的type相同,但是它的id值可能不一样。对于相同id的变量,它的type和value值肯定是一样。

    • == 比较的是value
    • !=
    • is 比较的是id
    • ><
    python 变量之小整数池跟大整数池
    • 在交互式模式下
      1. Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。Python 对小整数的定义是 [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收。在一个 Python 的程序中,无论这个整数处于LEGB中的哪个位置,所有位于这个范围内的整数使用的都是同一个对象。同理,单个字母也是这样的。
      2. intern机制处理空格一个单词的复用机会大,所以创建一次,有空格创建多次,但是字符串长度大于20,就不是创建一次了。
      3. 终端是每次执行一次,所以每次的大整数都重新创建
    • 在pycharm中,
      每次运行是所有代码都加载都内存中,属于一个整体,所以这个时候会有一个大整数对象池,即处于一个代码块的大整数是同一个对象。我们只需要记住这是一种优化机制,至于范围到底多大,无需细究。

    3. 逻辑运算符 \color{#00008B}{(注意短路情况)}

    and:逻辑与
    or:逻辑或
    not:逻辑非
    运算结果返回TrueFalse
    当我们对非布尔值进行运算时,Python会将其当做布尔值运算,最终会返回原值

    优先级:() > not > and > or

    混合例子与解析:
    print(1 > 2 and 3 or 4 and 3 < 2 or not 4 > 5)
    按照从左向由,优先级高的先执行优先级高的规则,首先因为比较运算符优先级高于逻辑运算符,很简单,如果运算符低于了逻辑运算符优先级那还如何运算呢。and 优先级大于 or,not优先级大于and和or
    not 4 > 5 为True
    1 > 2 为 False
    3 < 2 为 False
    Flase and 3,因为False为假所以and不在运算直接返回False
    4 and False,因为4为真所以and运算符会继续运算后面的,以False为主,所以返回False。
    False or False,为False
    False or True,因为False为假,所以or运算符会继续运算后面的,以True为主,所以返回后面的True值。

    逻辑运算符补充
    1<2<3相当于1 < 2 and 2<3
    同理10 < 20 >15则返回True

    位运算符

    1. 进制

    bin()函数

    a=3
    print(bin(a))        #输出结果0b11
    b=0b10111            #0b 二进制
                         #0o  八进制
                         #0x  十六进制
    print(int(b))        #输出结果13
    

    0b 二进制
    0o 八进制
    0x 十六进制 0-9 a-f


    字节byte 8个二进制位bit构成一个字节byte
    1kb = 1024byte
    5 的二进制表示0000 0101
    -5的二进制表示1111 1011
    求法:

    5          : 0 0 0 0 0 1 0 1
    取反(反码) : 1 1 1 1 1 0 1 0
    +1         : 1 1 1 1 1 0 1 1
    

    所以-5的二进制表示1111 1011

    2. 运算符(操作数值变量)

    & :与
    | :或
    ! :非
    ^ :异或 相同的是0 不同的是1
    <<:左移 m<<n <==> m*2的n次方
    >>:右移 m>>n <==> m整除2的n次方
    :取反 将十进制的数字对应的二进制进行取反操作

    三元运算符

    格式:语句1 if 表达式 else 语句2

    运算符的优先级

    排序:
    **
    ~
    + - (符号运算符)
    * / // %
    + -(加减)
    << >>
    &
    ^
    |
    == != > >= < <=
    = %= /= //= -= += *= **=
    is is not
    not
    and
    or

    相关文章

      网友评论

          本文标题:我的Python学习之路0

          本文链接:https://www.haomeiwen.com/subject/glydlhtx.html