2019-07-24总结

变量(与js相差不大)

1.变量是在程序开辟空间存储数据用的;
2.命名:采用PEP8命名规范(即所有字母必须小写,单词之间用下划线),见名知意;
3.与js不同的是可同时声明多个变量赋相同的值,例如:

aa = n = a = 100

可同时声明多个变量赋不同的值 (变量个数需和值个数保持一致),例如:

name, age , ge = 22, 33, 44

原理:
先在内存中开辟空间存储数据(内存空间的大小由数据的大小动态分配内存),然后再将保存数据的内存空间的地址赋给变量;
把一个变量赋值给另一变量时,实质是将变量地址赋值给另一变量;

逻辑运算符(与js相差不大)

1.逻辑运算符 and(逻辑与) or(逻辑或) not(逻辑非);

js:逻辑与:&& 逻辑或:|| 逻辑非:!

2.短路操作
逻辑与运算的短路操作:当and第一个表达式的值为False时,不会再执行and第二个表达式
逻辑或运算的短路操作:当or第一个表达式的值为True时,不会再执行or第二个表达式

赋值运算符(与js相差不大)

1.分类

:= += -+ *= /= %= //= **=
规则:赋值运算符左边是变量,右边是值
先将赋值符号左边的变量进行指定的运算后,将运算结果重新赋值给变量
注意:变量需要有初始值

位运算

1.概念:位运算操作的是数字的补码的每一位,位运算是直接操作计算机存储空间的每一位,因此执行效率比一般的运算高;
2.分类:&(按位与运算) |(按位或运算) ^(按位异或) ~(按位取反) <<(左移) >>(右移)
3.详细:

(1)按位与: 数字1 & 数字2 : 两个数字补码上相同位置上的数如果都是1,结果是1.如果其中一个是0,结果为0
111 & 001:001
(2)按位或: 数字1 | 数字2 : 两个数字补码上相同位置上的数如果都是0,结果是0.只要其中一个是1,结果为1
111 | 101 :111
(3)按位取反:~数字:将数字补码上每一位的值取反,即由0变1或由1变0
~110: 001
(4)按位异或:数字1^数字2: 两个数补码上相同位置上的值,如果相同结果是0,不同结果是1
110^101:011
一个数异或同一个数两次,结果是这个数本身
(5)左移:数字1<<位数(n) 让数字的补码整体向左移n位,去掉左边n位,在右边添加n个0 规律:数字*(2**n)
(6)右移:数字1>>位数(n) 让数字的补码整体向左移n位,判断正负,去掉右边n位,在左边添加n个0,最高位具体看正负添加0或1
右移规律:数字//(2**n)

4.应用
1.乘2的次方或整除以2的次方会用到左右移
2.判断奇偶性:偶数的二进制最低位是0,奇数的是1
将数字&1 结果是0便是偶数,是1便是奇数

5.优先级

数学>比较>逻辑>赋值
*>,/,//,%>+,-

作业

1.写出判断一个数是否能同时被3和7整除的条件语句

if num % 21 == 0:
    print('整除')
if num % 3 == 0 and num % 7 == 0  :
    print('整除')

2.写出判断一个数是否能够被3或者7整除,但是不能同时被3或者7整除

if (num % 3 == 0 or num % 7 == 0) and (num % 21 != 0):
    print('整除')

3.输入年,写代码判断输入的年是否是闰年,如果是输出'True',否则输出'False'

num = input('请输入年份:')
if (int(num) % 4 == 0) and (num % 100 ! = 0):
    print('True')
else:
    print('False')

4.今天上课讲了15000秒的课,编程计算今天上课时间是多少小时,多少分钟,多少秒;以‘XX时XX分XX秒’的方式表示。
例如: 时间67秒 —> 0时1分7秒

num = 15000
if num % 3600 == 0:
    print('今天上课时间是', num/3600, '小时0分0秒')
else:
    print('上课时间是', num//3600, '小时', int((num / 60) % 60), '分钟', num%60,'秒')

5.定义两个变量保存一个人的身高和体重,编程实现判断这个人的身材是否正常!
公式: 体重(kg)/身高(m)的平方值在18.5 ~ 24.9之间属于正常。

height = 22
weight = 34
if 18.5 <= (weight / height ** 2) <= 24.9:
    print('正常')
else:
    print('不正常')

6.位运算练习题

1)表达式0x13 & 0x17的值(0x13)

2)表达式0x13 | 0x17的值(0x17)

3)表达式0x13 ^ 0x17的值(0x4)

  1. 若x=12,y=13则x&y的结果是(12)

7.在位运算中,操作数每右移一位,其结果相当于(B )

A.操作数乘以2 B.操作数除以2

C.操作数除以4 D.操作数乘以4

8.设x 是一个整数(16bit).若要通过x|y使x低8位置1,高8位不变,则y的二进制数是( 0000000011111111)

你可能感兴趣的:(2019-07-24总结)