美文网首页
day3-python变量和运算符总结

day3-python变量和运算符总结

作者: 2333_11f6 | 来源:发表于2018-11-07 18:00 被阅读0次

    1.变量

    1.1声明变量(定义变量)

    • 变量就是在程序中用来保存数据的容器

    • 在python中是个假的声明,
      语法:
      变量名 = 值

    • 说明:
      变量名 -- 要求:标识符,不能是关键字
      规范:
      a.遵守PEP8命名规范(变量名名字的所有字母都小写,如果由多个单词组成,单词之间用_隔开),如:student_name
      b.见名知义(看到名字就知道变量中存的是什么数据)
      “=” -- 赋值符号,将=右边的值放入左边的变量中
      -- 可以是任何有结果的表达式,如:190 , 变量 , 调用函数表达式等

    age = 18
    name = '小王'
    number = 666
    print(age,name,number,sep='----->')   #使用变量,就是使用变量中保存的值
    
    #变量必须先声明(赋值)再使用
    #同时给多个变量赋同一个值
    num1 = num2 = num3 = 66
    print(num1,num2,num3)
    
    #同时给多个变量赋不同的值。(注意:变量的个数和值的个数要保持一致)
    n1,n2,n3 = 1,2,3
    print(n1,n2,n3)
    
    num4 = 100
    num4 = 200
    print(num4)  #给同一个变量赋值,后附的值会覆盖掉先附的值
    num4 = 'abc'
    print(num4)  #同一个变量可以存储不同类型的值!!!
    num4 = [1,2,3]
    print(num4)
    num4 = {'a':100,'b':200}
    print(num4)
    

    1.2python中声明变量和给变量赋值的本质

    C中声明变量:
    int num = 10;

    Python中声明变量:
    num = 10
    num = '321ewqfwfdfwgtre'

    结论:

    • python中所有的变量,存的都是数据在内存中的地址(即C中的指针)。内存地址的大小一样,修改变量也只是改变num对应的地址。
    • 用一个变量给另一个变量赋值,实质是将新变量地址赋给旧的变量。
      使用变量的时候,是使用的变量中地址对应的值。

    1.3变量的三要素:值、地址和类型

    值:变量中存的地址对应的值
    地址:变量中存储的地址(id)
    类型:变量中存的地址对应的类型

    name1 = '小明'
    name2 = name1
    
    print(name1)               #使用变量拿到变量中地址对应的值
    print(id(name1))           #id(变量) -- 获取变量中存储的地址
    print(id(name2))           #两者地址相同,获取的是同一个地址。
    print(type(name1))         #查看变量中地址对应的类型
    

    2.运算符

    • python中的运算符:数学运算符,比较运算符,逻辑运算符,赋值运算符,位运算符。

    2.1数学运算符:+ - * / % // **

    +:加法运算
    -:减法运算
    *:乘法运算
    /:除法运算
    %:求余运算
    //:整除
    **:幂运算

    2.1.1 % 应用:

    1.获取一个整数的最低位的一位或几位的值 num % (10^n)
    2。判断一个数是否能被另一个数整除 num1 % num2

    print(10 % 3)     # % -- 取余
    #获取一个数的个位数
    num = 23232432
    print(num % 10)    #3
    print(num % 100)   #23
    #与2取余可判断奇偶性
    

    2.1.2 // -- 求商,获取商的整数部分

    print(5//2)     #2
    print(3.9//3)   #1.0
    
    num = 289
    print(num // 100)    #取一个3位数百位上的值
    

    2.1.3 ** -- 幂运算

    #x**y --  求x的y次方
    print(2**10)     #2的10次方
    print(9**0.5)    #9开平方,结果为浮点数
    print(8**(1/3))  #8开3次方,结果为浮点数
    

    2.2比较运算符: > < == != >= <=

    #所有的比较运算符的结果都是布尔值。
    print(100 > 10)     #True
    print(10 > 100)     #False
    

    2.3逻辑运算符: and or not

    逻辑运算符的运算对象及结果都是布尔值。

    2.3.1 and -- 逻辑‘与’运算

    • 值1 and 值2:判断是否为真,
      如果两者都为True,则结果为True;
      果两者有一个为False,则结果为False。
    • 逻辑与运算相当于生活中的‘并且’;当需要多个条件同时满足,就使用and将多个条件连接在一起
    grade = 99
    score = 80
    print('是否获取奖学金:',grade > 90 and score>95)       #False
    #例子:要求成绩大于90,且表现分大于95,才能获得奖学金
    

    2.3.2 or -- 逻辑‘或’运算

    • 值1 or 值2:
      如果值1 和 值2 有一个True就为真,两个都为False才为False
    • 逻辑或运算,相当于生活中的‘或者’。当需要多个条件中至少有一个条件满足,就用or连接。
    grade = 99
    score = 80
    print('是否获取奖学金:',grade > 90 or score>95)       #False
    #例子:要求成绩大于90,且表现分大于95,才能获得奖学金
    

    2.3.3 not -- 逻辑‘非’运算

    • not 值 : 如果值是True,结果就是False;如果值是False,结果就是True。
    age = 21
    print('是否能进入网吧:',not age < 18 )         #True
    #not用来对某个条件进行否定。
    print('是否能进入网吧:',age > 18 )             #True
    

    3.赋值运算和位运算

    3.1赋值运算符:= += -= /= *= %= //= **=

    所有赋值符的左边必须是变量;组合的赋值运算符的左边的变量必须已经赋值;
    所有赋值运算符最终都会进行赋值操作

    3.1.1 = -- 直接将右边结果赋给左边的变量

    num = 100
    

    3.1.2 += -= *= /= %= //= **=

    变量 += 值 --> 相当于 变量 = 变量 + 值
    变量 -= 值 --> 相当于 变量 = 变量 - 值
    变量 *= 值 --> 相当于 变量 = 变量 * 值
    变量 /= 值 --> 相当于 变量 = 变量 / 值
    变量 %= 值 --> 相当于 变量 = 变量 % 值
    变量 //= 值 --> 相当于 变量 = 变量 // 值
    变量 **= 值 --> 相当于 变量 = 变量 ** 值

    num1 = 1
    num1 += 10
    print(num1)
    
    num1 *= 3
    print(num1)
    
    num1 %= 2
    print(num1)
    
    num1 -= -100
    num1 //= 2
    print(num1)
    

    3.2运算符的优先级

    • 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
      优先级高的先算。如果有括号,先算括号里面的。
    num = 10 + 20 > 25 and True <2
    #num = 30 > 25 and True <2
    #num = True and True
    #num = True
    print(num)
    
    num = 10 + (20 > 25 and True <2)
    #num = 10 + (False and True < 2)
    #num = 10 + False
    #num = 10
    
    num = 10 + 2*3**2         #  28 ** > *
    

    3.3位运算

    • 符号: &(按位与) |(按位或) ^(按位异或) ~(按位取反) <<(左移) >>(右移)
    • 位运算是针对二进制中每一位进行的相关操作

    3.3.1 &

    数字1 & 数字2 ---> 对二进制数的每一位进行‘与’运算,运算时如果都为1结果就是1,否则为0。
    1 & 1 = 1
    1 & 0 = 0
    0 & 1 = 0
    0 & 0 = 0
    与的特点: 一位上的数如果和1与,就会保留这一位上的数。如果和0与,就会将这一位,置0。
    11010 & 00111 = 00010
    3(原) = 0011 = 3(补)
    2(原)= 0010 = 2(补)
    -2(补)= 1110 0010
    0010

    与运算的应用:判断一个数是否是偶数(最优算法)
    二进制数末尾为1则为奇数 1101 & 1 ---> 1 奇数
    二进制数末尾为0则为偶数 1100 & 1 ---> 0 偶数
    将数字和1与,如果结果为0,则为偶数。
    将数字和1与,如果结果为1,则为奇数。

    print(3 & 2)
    print(3 & -2)
    
    print(88 & 1)    # 0
    print(99 & 1)    # 1
    

    3.3.2 |

    数字1 | 数字2 ---> 对二进制数的每一位进行‘或’运算,运算时如果都为0结果就是0;如果有一个为1,则为1。
    1 | 1 = 1
    1 | 0 = 1
    0 | 1 = 1
    0 | 0 = 0
    1101 | 1010 = 1111

    3 | 2
    011 | 010 ---> 011
    3 | 20
    000011 | 010100 ---> 010111 补码
    -3 | 20
    111101 补码
    010100 ---> 111101补码 111100反码-->100011原码-->-3

    print(3 | 1)
    print(3 | 0)
    

    3.3.3 按位取反

    ~ 数字 :将每一位取反(0-->1,1-->0),对补码取反
    ~2 010 101补码 100反码 111原码

    print(~2)
    

    3.3.4 按位异或

    数字1 ^ 数字2 -- 每一位相同为0,不同为1。
    1 ^ 1 = 0
    1 ^ 0 = 1
    0 ^ 1 = 1
    0 ^ 0 = 0

    11 ^ 2
    0 1011 ^ 0 0010 = 0 1001(补码)
    可用于判断两个值是否相等,相同为0,不同不为0。
    print(11 ^ 2) # 9

    3.3.4 左移

    数字1 << n(位数) - 将数字1的二进制数的每一位向左移n位,移出多少位后面加多少个0。即在数字后面加n个0。
    10 << 1
    0000 1010(补码) ---> 0001 0100(补码)
    0001 0100

    结论:数字1 << n = 数字1 * 2^n

    print(10 << 1)         # 20
    print(10 << 2)        # 40
    print(10 << 3)        # 80
    print(-10 << 1)       # -20
    print(-10 << 2)       # -40
    print(-10 << 3)       # -80
    

    3.3.5 右移

    • 数字1 >> n(位数) - 将数字1的二进制数的每一位向右移n位,移出多少位将低位删除指定的位数。
    10 >> 1
    0000 1010(补码) ---> 0 101(补码) 
    5    
    

    结论:数字1 >> n = 数字1 // 2^n

    print(10 >> 1)      #5
    print(10 >> 2)      #2
    print(10 >> 3)      #1
    print(-10 >> 1)
    print(-10 >> 2)     # ??
    print(-10 >> 3)
    

    4.字符串

    4.1 什么是字符串

    • 字符串是python中一种常用的 有序 但是 不可变的 容器类的数据类型,可以同时存储多个字符。属于序列
    • 字面量:使用单引号或者双引号将任意字符括起来,就是字符串常量。
      str1 = '都会死恢复到萨格fdsfdsfurui22'
    • 字符:指的是字符串中的每一个单元。注意,python中只有字符的概念,没有字符类型

    4.2 字符串中的内容

    a.普通字符:包含数字字符、字母、普通符号:+ - () % # @ 中文 等

    ‘123 ’ ‘味位’

    b.转义字符:通过反斜杠将一些字符转换成有特殊功能或特殊意义的字符

    \n -- 换行
    \t --制表符
    \ --
    ' --'
    " --"

    注意:一个转义字符代表一个字符

    c.阻止转义:在字符串最前面加r 或 R,可以阻止转义字符转义

    print('\t abc\n123')                 #    abc
                                              123
    print('abc\'123')                      #abc'123
    print(r'abc\'123')                    #abc\'123
    print(R'\t abc\n123')              #\t abc\n123
    

    相关文章

      网友评论

          本文标题:day3-python变量和运算符总结

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