python判断正数_Python基础入门:从变量到异常处理--阿里云天池

6d87d13a01217b679d3a51b11b333636.png

学习内容包括以下:

1.变量、运算符与数据类型

· 运算符

· 变量和赋值

· 数据类型与转换

· print()函数

2.位运算

· 原码、反码和补码

· 按位非操作~

· 按位与操作&

· 按位或操作|

· 按位异或操作^

· 按位左移操作<<

· 按位右移操作>>

· 利用位运算实现快速计算

· 利用位运算实现整数集合

3.条件语句

· if语句

· if-else语句

· if-elif-else语句

· assert关键词

· 循环语句

· while循环

· while-else循环

· for循环

· for-else循环

· range()函数

· enumerate()函数

· break语句

· continue语句

· pass语句

· 推导式

4.异常处理

· Python标准异常总结

· Python标准警告总结

· try-except语句

· try-except-finally语句

· try-except-else语句

· raise语句

学习问题和解决方法记录

本次学习遇见最大的困难就是位运算这块,通过百度谷歌以及在群里面与各位学员互动来解决我学习上的问题。

学习难点总结

在位运算符上

1. 原码、反码和补码

二进制有三种不同的表示形式:原码、反码和补码,<u>计算机内部使用补码来表示</u>。

**原码**:就是其二进制表示(注意,有一位符号位)。

**反码**:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反)。

**补码**:正数的补码就是原码,负数的补码是反码+1。

**符号位**:最高位为符号位,0表示正数,1表示负数。在位运算中符号位也参与运算。

2. 按位运算

A.按位左移操作 <<

`num << i` 将`num`的二进制表示向左移动`i`位所得的值。

```python

00 00 10 11 -> 11

11 << 3

---

01 01 10 00 -> 88

```

B. 按位右移操作 >>

`num >> i` 将`num`的二进制表示向右移动`i`位所得的值。

```python

00 00 10 11 -> 11

11 >> 2

---

00 00 00 10 -> 2

```

3. 利用位运算实现快速计算

通过 `<<`,`>>` 快速计算2的倍数问题。

```python

n << 1 -> 计算 n*2

n >> 1 -> 计算 n/2,负奇数的运算不可用

n << m -> 计算 n*(2^m),即乘以 2 的 m 次方

n >> m -> 计算 n/(2^m),即除以 2 的 m 次方

1 << n -> 2^n

```

4. 利用位运算实现整数集合

一个数的二进制表示可以看作是一个集合(0 表示不在集合中,1 表示在集合中)。

比如集合 `{1, 3, 4, 8}`,可以表示成 `01 00 01 10 10` 而对应的位运算也就可以看作是对集合进行的操作。

元素与集合的操作:

```python

a | (1<<i) -> 把 i 插入到集合中

a & ~(1<<i) -> 把 i 从集合中删除

a & (1<<i) -> 判断 i 是否属于该集合(零不属于,非零属于)

```

集合之间的操作:

```python

a 补 -> ~a

a 交 b -> a & b

a 并 b -> a | b

a 差 b -> a & (~b)

```

注意:整数在内存中是以补码的形式存在的,输出自然也是按照补码输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值