Day03-总结

1.常用快捷键

CTR + / - 添加取消注释
CTR + S - 保存
CTR + C/V - 复制/粘贴
CTR + A - 全选
CTR + X - 剪切
CTR + Z - 撤销
CTR + SHIFT + Z - 反撤销
按住SHIFT点鼠标 - 开始位置和结束位置选中
按住ALT点鼠标 - 出现多个光标
灰色波浪号格式问题可以点灯泡第一个自动修复

进制转化汇总

转十进制:累积求和
转其它进制:十进制转二进制: 辗转相除
二进制转八进制: 每三位看做整体,转八进制
二进制转十六进制:四位看做整体,转十六进制

2.变量

1.什么是变量

变量是在程序中开辟空间存储用的

2. 声明变量

1)语法:

变量名 = 值

2)说明:

变量名  -  程序员自己命名

(要求)是标识符,不能是关键字
(规范)遵守PEP8命名规范 - 所有字母必须小写,单词之间下划线隔开
见名知意 - 看见变量名大概知道变量中存储的什么数据
= - 赋值符号,将右边的值赋给左边的变量
值 - 任何有结果的表达式,可以是具体的数据,也可以是赋值过的变量,也可以是运算表达式

3)同时声明多个变量,赋相同的值(变量1=变量2=..........=值)

a = b = c = d = 100

4)同时声明多个变量,赋不同的值(变量1,变量2=值1,值2)

name, age, gender = '小明', 18, '女'

注意:变量个数和值保持一致

4)声明变量和给变量赋值的原理

先在内存中开辟空间存储数据(内存大小由数据的大小动态分配),然后再将保存数据的内存空间的地址赋给变量

num3 = 100
        print(type(num3))
        print(id(num3))         # 获取变量中数据在内存中地址

用一个变量给另一个变量赋值的时候,实质是将变量中的地址赋给新的变量

num = 100         # 将数字100存储到num中,使用num的时候就会使用num中存储的数据
num = 222         # 同一个变量可以存储不同的值
print(num)        # 使用时必须先声明/赋值

证明过程

num1 = 10
print(id(num1))
num1 = 100
print(id(num1))
num2 = 10
print(id(num2))

运算符:数学运算符、比较运算符、逻辑运算符、位运算、赋值运算符

3.逻辑运算符:and(逻辑与运算), or(逻辑或运算), not(逻辑非运算)

所有的逻辑运算符的运算对象是布尔,结果也是布尔

1) and

a.运算规则: 两个都为True结果才是True,只要一个是False结果就是False
True and True   ->  True
True and False  ->  False
False and True   ->  False
False and False   ->  False
b.什么时候用:当希望多个条件同时满足的时候,就用and将多个条件连接。

2) or

a.逻辑规则:两个都为False结果才是False,只要一个是True结果结果就是True
True or True   ->  True
True or False  ->  True
False or True   ->  True
False or False   ->  False
b.什么时候用:当希望多个条件只要有一个满足的时候,就用or将多个条件连接。

3) not

a.运算规则:True变False, False变True
not True   ->  False
not False  ->  True

b.什么时候使用:对某个条件进行否定

年龄不再12~18: not 12 < age < 18
4) 短路操作

逻辑与运算的短路操作:当and前面的表达式的值是False的时候,程序不会执行and后面的表达式
逻辑或运算的短路操作:当or前面的表达式的值是True的时候,程序不会执行or后面的表达式

print('是否能拿奖学金:', 35 > 30 and 90 > 80)
练习1:
1)判断一个数是否能够被2或者5整除
2)判断一个数是否能够同时被2或者5整除
3)判断一个数是否是3或者7倍数,并且末尾不是3
num = input('请输入一个人数:')
num = int(num)
print('1题结果:', num % 2 == 0 or num % 5 == 0)
print('2题结果:', num % 2 == 0 and num % 5 == 0)
print('3题结果:', num % 3 == 0 or num % 7 == 0 and num % 10 != 3)

4.赋值运算符:=,+=,-=,/=,%=,//=,**=

不管是什么样的赋值运算符,最终的操作都是给变量赋值;赋值符号左边必须是变量

1)=:将右边的值赋给左边的变量
2)符合运算符:先将赋值符号左边变量中的值取出来,然后进行指定的运算,最后将运算结果再赋值给左边
a += 1 -> a = a + 1 

注意:赋值运算左边必须是已经赋值过的变量

位运算操作的是数字的补码的每一位;位运算因为是直接操作计算机存储空间的每一位,所以执行效率要比一般的运算高很多

5.位运算:&(按位与运算),|(按位或运算),^(按位异或),~(按位取反),<<(左移),>>(右移)

1) 数字1 & 数字2 -> 两个数字补码上相同位置上的数,如果都是1结果就是1,有一个0就是0
print(10 & 20)   # 0
   10的原码:00001010
   20的原码:00010100
10 & 20 ->   00000000
2)数字1 | 数字2 -> 两个数字补码上相同位置上的数,如果有1结果就是1,全部是0才是0
print(-2 | -3)
   -2的原码:10000010 -> 反:11111101 -> 补:  11111110
   -3的原码:10000011 -> 反:11111100 -> 补:  11111111
 结果的补码:11111111 -> 反:11111110 -> 原码:10000001
3)~ 数字2 -> 将数字补码上每一位的值由0变成1,1变成0
print(~ 10)
4)数字1 ^ 数字2 -> 两个数字补码上相同位置的数,相同为1,不同为0

一个数异或同一个数两次,结果就是这个数本身

5) 数字1 << 位数N -> 让数字的补码整体左移N位,低位用0补充 ->乘2的N次方
数字2 >> 位数N -> 让数字的补码整体右移N位,正数高位用0补充,负数用1补充 ->整除2的N次方
print(~10)
10原反补:00001010 -> 结果补码:11110101 -> 反码:11110100 -> 原:10001011

应用:1.乘2次方或整除2的次方

2.判断数的奇偶数 偶数二进制最后一位是0,&1如果是0是奇数,是1是偶数

运算符的优先级
数学 > 比较 > 逻辑 > 赋值

你可能感兴趣的:(Day03-总结)