38人加入学习
(0人评价)
Python语言入门详解

力争做到全球最精准中文Python教学视频。这是Tim老师的“大本营”,课程由Tim老师亲自维护。

价格 $199美元
该课程属于 VIP精品微课 请加入后再学习

str:可以做加法运算,不能做减法运算

 

左移、右移操作符

  • 只适用于int类型(含bool类型--可视为整数型)
  • 左移:左侧溢出忽略;在最低位补0
  • 右移:右侧溢出忽略;左侧补原来最高位的数值
    • 左移,相当于✖️2
    • 右移,相当于➗2(修正: 底除2)

正整数:底除和整除效果一样

负数:底除和整除结果不同

-7>>2

 

补充:

整数二进制存储的最高位称为“符号位”。

  • 如果最高位是1,那就代表着这个整数是一个负数;
  • 如果最高位是0,那么这个整数就是非负数(0或正整数)。
[展开全文]

1. (取底除法)底除(floor division)://

  • 离给定值最近(比它小)的整数,如
    • math.floor(3.5)=3; math.floor(-3.5)=-4
  • 底除(floor)不是整除(trunc)

 

(1)主要考虑整数浮点数两类数据。

  • str和noneType无法进行该类运算
  • bool类型意义不大

 

(2)floor VS //

math.floor()的返回值类型总是int

//有可能得到float类型值

 

import math

result = math.floor(10/3)  ---- 3

result = 10//3  ---- 3

result = 10//3.0  ---- 3.0

 

(2) floor VS trunc

import math

result = math.floor(3.3)  ---- 3

result = math.trunc(3.3)  ---- 3

 

 

result = math.floor(-3.3)  ----  -4

result = math.trunc(-3.3)  ----  -3

 

2. 取余

  • 余数 == X%Y == X- (X//Y)*Y
  • x == (X//Y)*Y + (X%Y)

示例1:

result = 10%3             ---- 1

result = 10 - (10//3)*3 ---- 1

result = 10%-3               ---- -2

result = 10 - (10//-3)*-3 ---- -2

 

示例2:判定是否是偶数

x = 101

if x%2 == 0

    print('Yes')

else:

    print('No')

 

示例3: 走马灯程序

from time import sleep

x = -1

while True:

    x = x+1

    x = x%5

    print(x+1)  ---- 连续输出1~5

    sleep(0.5)

 

 

 

[展开全文]

除法:/

(1)不能进行除0(float 0.0也不行)操作

(2)得到的结果,不是float就是exception

  • int / int (非0) = float
  • 0/1 = 0.0
[展开全文]

 

 

 

取反(补):(二进制按位取反+1

0000-1010  -> 10

1111-0101  -> -11(按位取反)?

1111-0110  -> -10(按位取反+1)?

 

0000-1001  -> 9(按位取反)

0000-1010  -> 10(按位取反+1)

 

问题1: 计算机中,负数是怎么表达的?

为什么1111-0101 是 -11?

 

取反规律:

浮点型、字符串和NoneType:无法取反

整数类型和bool类型:取反得到整数型

~False = -1

~True = -2

 

[展开全文]

数据类型:

  • 整数
  • 浮点数(有整数部分和小数部分)
  • 字符:对应着ASCII或Unicode码表
  • 色彩(像素颜色RGB)、声音、视频
  • 内存地址(是无符号整数)

 

Unicode码表(字符与数字的对应关系)

num = ord('A')

print(num)     --- 65

char = chr(num)

print(char)       ---- A

 

num = ord('华')

print(num)     --- 21326

char = chr(num)

print(char)       ---- 华

 

for num in range[65, 91)

   print(chr(num)) ---- A~Z (26个英文字母)

 

内存地址

内存地址:内存中的每个字节,分配一个编号。

  • 内存地址是连续的
  • 且采用二进制来表达

CPU寻址:CPU通过编号,找到该字节,从而

  • 读取数据
  • 写入数据

 

数据类型

数据类型,主要对数据进行以下规定和约束:

  • 内存中存储的数字(值)是什么
  • 值在内存中如何存储:分散/连续
  • 值的取值范围
    • e.g. bool类型:真/假
  • 数据类型能进行哪些计算
    • result = 100 + 100
    • print(result)  - 200
  •  
    • result = ‘100’ + ‘100’
    • print(result) - 100100

 

 

 

[展开全文]

常用的进制

二进制: binary -> bin -> 0b/0B

八进制: octal -> oct -> 0o/00

十进制: decimal -> dec (默认情况,无需前缀)

十六进制: hexadecimal -> hex -> 0x/0X

 

十进制转八进制: “除8取余”(“除”,指的是“整除”)

18 对应二进制(由“余数”从下而上组成):22

2 2

0 2

八进制转十进制:乘方累加

比如:八进制16,对应十进制:8+6=14

八进制(n)

3

2

1

0

十进制(8^n)

512

64

8

1

 

 

 

 

 

八进制

 

 

1

6

十进制

 

 

8

6

 

十进制 VS 十六进制:同理。

 

二进制Bin VS 八进制Oct

规则:八进制1位,可拆分成二进制的3位

e.g. (八进制)0o77对应 (二进制)111 111

二进制Bin VS 十六进制Hex:

规则:十六进制1位,可拆分成二进制的4位(常用)

e.g. (十六进制)0xFF对应 (二进制)1111 1111;(十六进制)0xDD对应 (二进制)1101 1101;

 

python函数

 

十进制 -> 进制:

oct(16) = ‘0o20’

进制 -> 十进制:

int(‘0o20’, 8) = 16 int(‘0O20’, 8) = 16

 

十进制 -> 十六进制:

hex(255) = ‘0xff’

十六进制转 -> 十进制:

int(‘0XFF’, 16) = 255

 

100+1 = 101

0xff+0x1 = 256

0xff+0b0001 = 256

0o10*2 = 16

说明:直接运算时,无需添加单引号;使用int, oct, hex等进行进制转换时,需要对数值添加单引号

 

程序员们的“黑色幽默”

 

(1)呆萌的程序员们分不清万圣节(Oct 31)和圣诞节(Dec 25)

Oct 31 == dec 25

oct(25) = ‘0o31’;

 

(2)莎士比亚是“穿越”了的程序员?

To be or not to be

0x2b | ~0x2b = -1

[展开全文]

十进制转二进制:

“除2取余”(“除”,指的是“整除”)

11    对应二进制(由“余数”从下而上组成):1011

5 1

2 1

1 0

0 1 ⬆️

 

二进制转十进制(1字节=1 Byte = 1B= 8b) 

二进制(bit)

7

6

5

4

3

2

1

0

十进制(2^n)

128

64

32

16

8

4

2

1

 

十进制转二进制:

bin(10) = ‘0b1010’

bin(10)[2:].zfill(8) = ’00001010’ (补齐8个bits,前面填0)

二进制转十进制:

int(‘0b1010’, 2) = 10,  (第一个参数,需要添加‘’,表示字符串;第二个参数表示:2进制)

int(‘1010’, 2) = 10 

[展开全文]

二进制 -> 十进制

给定n个比特,

能够表示的(十进制)数的个数是:2^n

(1)十进制:无符号整数

  • 范围:[0, 2^n-1]
  • e.g. 给定4个比特,对应[0, 15]

(2)十进制:有符号整数

无符号数整体向左平移了一半,得到正负数各一半。

  • 范围:[-2^(n-1),2^(n-1)-1]
  • e.g. 给定4个比特,对应([0, 7],[-8, -1])

0 1 2 3 4 5 6 7 | 8 9 10 11 12 13 14 15

-8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7

[展开全文]

授课教师

Tim老师
Victor

课程特色

视频(20)