Python--核心编程特性

1.模块导入问题

  如何导入模块:

    import sys

  如何查看该模块路径:

    prinnt(sys.path)

2.== 与 is 的比较  返回Ture Flase

  "=="用来比较两个值是否相等

  "is"用来表示两个变量是否是同一个,比较的是内存地址(针对引用类型(list,tuper,dict)

 1 a = [1,2,3]
 2 b = [1,2,3]
 3 a == b 
 4is b 
 5 基本数据验证
 6 a=256 
 7 b=256 
 8is b 
 9 a == b 
10 [-5 257]范围内的数字为同一个值

  特殊:在基本类型中,有一个小整数,在[-5,max]之间是Ture

value1 = -6
value2 = -6
print(value1 == value2)  Ture
print(value1 is value2)    Flase
    

 

3.深浅复制问题

  1.深浅copy概念

      快捷方式

      副本

    嵌套列表复制时,如果是深copy,会递归复制列表

    浅copy只复制当前列表

  使用copy复制时,要先导import copy模块

a = [1,2,3]
b = a
print(id(a))
print(id(b))
import copy
c = copy.copy(a)
d = copy.deepcopy(a)
print(id(c))
print(id(d))

  2.嵌套列表深copy

import copy
list1 = [1,2,3]
list2 = [4,5,6]
list3 = [list1,list2]
list4 = copy.copy(list3)
list5 = copy.deepcopy(list3)
list1.append(10)
print(list4)
print(list5)
print(id(list4))
print(id(list5))

输出:[[1, 2, 3, 10], [4, 5, 6]]
   [[1, 2, 3], [4, 5, 6]]
   
2357803911112
   2357803911048

4.进制问题

进制问题:
十进制:
0 ~ 9
1、二进制
0 1
0b
2、八进制
0-7
0o
3、十六进制
0-9 A-F
0x
十进制转换二进制
除以2 取余数(倒着)
10 --> 1010
十进制转2,8,16进制
1、函数实现
2:
bin()
8:
oct()
16:
hex()
2、手动推算
2:
除以2 倒取余数
8:
除以8 倒取余数
16:
除以16 倒取余数
如果余数为10,应该是A
其他进制转换为十进制
1、函数实现
2->10
int('0b1010',2)
8->10
int('0o144',8)
16->10
int('0x3c',16)
2、方法推算
例如:
二进制数字1010
0 * 2^0 + 1 * 2^1 + 0 * 2^2 + 1 * 2^3
a = 10
resutl = bin(a)
print(type(resutl))
print(resutl)

result2 = int('0b1010',2)
print(result2)

b = 1000
# 打印八进制的字符串
print(oct(b))
# 打印十六进制的字符串
print(hex(b))

c = '0x3e8'
print(int(c,16))

5.原码,反码,补码

原码、反码、补码

1 - 1
1 + -1

正数1的二进制形式
0000 0001
0000 0001
0000 0001
负数1的二进制形式(原码、反码、补码=反码+1)
1000 0001   原码
1111 1110   反码
1111 1111   补码

1000 0010  -2

0000 0001
1111 1111
0000 0000

6.位运算

  节约内存,效率高

  直接基于二进制操作   

  2  ->  8
  2 + 6
  2 * 4
  左移:
  <<
  2 * 2^n

  右移:
  >>
  8 / 2^n
print(2 << 2)
print(8 >> 2)
print(4 << 3)
print(64 >> 3)

# 按位与  &   都为1的时候结果1
print(3 & 5)
# 按位或 丨   有一个为1结果为1
print(3 | 5)
# 按位异或    相同为0,不同为1   对同一个数字异或两次,得到源数据
result = 3 ^ 5
print(result)
print(result^ 5)
# 按位取反 " ~ "
print('-'*50)
# 按位取反,得到原码->取反码->取补码
print(~5)

 

posted @ 2018-04-11 19:05  TiAmo_yu  阅读(222)  评论(0编辑  收藏  举报