Python学习--day 05

学习视频链接python 900集(2019版)

024.练习英雄联盟

(这个标题是个噱头,实际上就是使用input和print打印几个字而已。可以理解为一节习题课+作业讲解课)

025.赋值运算符及内存分析

  • 运算符的种类:赋值运算符、算术运算符、关系运算符、逻辑运算符、位运算符
  • 赋值运算符:
    id()函数:返回内存地址
项目含义
=取出后面的内容赋值给前面
==表示相等,是关系运算符,注意区分
+=左加右赋给左
-+左减右赋给左
*=左乘右赋给左
/=左除右赋给左

字符串也可以使用+=,但不支持-=,例如:

 a = 'abc'
 a += 'ff'
 print(a)
 # 结果输出为:abcff 
  • 内存分析
    name = ‘admin’
    name1 = name
    name中存的是‘admin’字符串在内存中的地址,同时name1存的也是‘admin’的地址,id(name) = id(name1)
    用这种方式可以节约内存资源。

026.算术运算符

  • 基本的算术运算符
    数学上的“+、-、*、/”
  • 扩展的算术运算符
    **:代表指数
    //:代表除后取整数
    %:求余数
a = 8
b = 3
result = a**b # result是512=8*8*8
a = 9
b = 2
result = a//b # result是4

027.回顾

复习内容(可以跳过)
自己对format的记忆比较少,以前没用过
print('-' * 50)数字乘以字符串可以得到一连串的某字符串
凡是从键盘使用input的都是字符串类型

028.关系运算符

  • 符号及其含义
符号含义
==数字之间的比较
!=不相等
<小于
>大于
>=大于等于
<=小于等于
is对象地址的比较
is not对象地址的比较
  • 在sublime快速注释:Ctrl + ?
  • python基础(面试常用)
    在普通py文件中运行代码:
money = 20000
salary = 20000
print(id(money))
print(id(salary))
print(money is salary)
# 得到如下运行结果:
# 6399088
# 6399088 相同
# True

在交互式下运行代码

>>>money = 20000
>>>id(money)
33465456
>>>salary = 20000
>>>id(salary)
39742160 #与上面不同
>>>money is salary 
False
>>>age = 8
>>>age1 = 8
>>>id(age)
1571253488
>>>id(age1)
1571253488 #与上面相同
  • 为什么会出现相同或不同的结果?
    交互式:所见即所得。python为了优化速度,设立了小整数对象池,避免为整数频繁申请和销毁内存空间,这些整数对象是被提前建立好的,不会被垃圾回收,范围是-5~256),因此对于小整数来说,id是一样的,而交互式下声明的大整数,每次大整数都是重新创建,而在sublime和pycharm中,大整数都是统一创建的。
    文件式:将全部的文件内容传递给解释器,开辟的空间是整体式的,开辟的“20000”空间是一样的。

029.逻辑运算符

逻辑运算符:and、or、not
逻辑运算符的运算结果也是返回True或Falue
以及一些真值表

030.二进制+八进制+十进制

  • 二进制
    bin(obj)函数,将变量显示为二进制数,0b代表二进制
    老师还讲了二进制和十进制的转换规则,学过了不写了哈哈
  • 十进制
    int(dbj)函数,将变量显示为十进制数。
  • 8个二进制位构成一个字节byte
  • 负数转变为二进制的步骤(计算机组成原理学过但是太久了,以-8)
  • 先写正8:0000 1000
  • 取反:1111 0111
  • 最后位数加1:1111 1000
  • 八进制的标志:0o
    c = 0o6430
    print(int(c))
  • 二进制与八进制的特殊转换方式
    (逐个展开)
  • 十六进制(内存、HTML中常用)
    0x是十六进制的标志
    HTML中:FFFFFF(每两位代表红绿蓝三原色,F代表满,0代表无,此处代表黑色)
  • 取反
    print(~5)
    浪线~表示取反

031.位运算 + 032.位运算

该部分在以后的代码书写中很少遇到,就是在面试的时候很有用
位运算的基本符号:&、|、!、^、<<、>>

print(3 & 2)
# 0000 0011
# 0000 0010
#&---------(相当于和)
# 0000 0010
print(3 | 2)
# 0000 0011
# 0000 0010
#|---------(相当于或)
# 0000 0011
  • 异或^_相同的是0,不同的是1
    3 0000 0011
    5 0000 0101
    ——————
    0000 0110 == 6
  • 左移<<、右移>>
    print(2<<1) ===4
    print(2>>1) ===1
    左移可以理解为乘以2的几次方,右移可以理解为除以2的几次方
    这个地方我隐约记得还挺多细节的,比如负数的右移左移什么的,当初是学明白了,现在又忘了,再听一遍估计也是走马观花,老师后面也没有特别提及哈哈。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值