今日学习内容:
数据类型(data type)
类型转换
常见的运算符
作业1:判断一个数,是否是2的指数
2的指数
0000 0010 0000 0001
0000 0100 0000 0011
0000 1000 0000 0111
0001 0000 0000 1111
我们可以发现规律所有2的指数:n&(n - 1) == 0
故可以这样写:
n=int(input('请输入一个值:'))
if n & (n - 1) ==0 :
print(f"{n}是2的指数")
else :
print(f'{n}不是2的指数')
输入3的结果为
输入2的结果为
作业2:给定成绩,判断用户成绩的档次
100:提示满分
90~100:优秀
80~100:良好
70~80:还可以,多多努力
60~70:合格
0~60:不合格
0:鸡蛋
可以通过多分支结构完成
例如:
score = int(input('请输入您的成绩:'))
if score > 100 or score < 0:
print("error")
elif score == 100 :
print('满分')
elif score < 100 and score >= 90:
print('优秀')
elif score < 90 and score >= 80:
print('良好')
elif score < 80 and score >= 70:
print('还可以,多多努力')
elif score < 70 and score >= 60:
print('合格')
elif score < 60 and score >= 0:
print('不合格')
elif score == 0:
print('鸡蛋')
作业3:下列哪一项是“4是奇数或-9为正数”的否定(C )
A、4是偶数或-9不是负数
B、4是奇数或-9不是负数
C、4是偶数和-9是负数
D、4是奇数和-9不是负数
a|b的否定是 非a&非b,故选c。
作业4:如果A是“10110110”,B是“11100000”,C是“10100000”,下面成立的是(D )
A、 C=A|B
B、 C=~A
C、 C=~B
D、 C=A&B
这里复习一下位运算:
& 两者都为真,则为真
| 只要一者为真,则为真
^ 相反为真,否则为假
~ 所有位都取反
>> 右移运算符
<< 左移运算符
那么A|B=11110110,~A=01001001,~B=00011111,A&B=10100000因此选D
作业5:判断一个整数是奇数还是偶数,至少有两种方式实现
常规方法:
num = int(input('请输入一个数:'))
if num == 0:
print (f"{num}是非奇非偶")
elif num % 2 == 0 :
print (f"{num}是偶数")
else:
print(f"{num}是奇数")
用位运算解决,我们可以发现偶数化成二进制数末尾最后一个数是0奇数则是1,所以我们可以让这个数与1进行“与运算”
num = int(input('请输入一个数:'))
if num == 0:
print (f"{num}是非奇非偶")
elif num & 1 == 0 :
print (f"{num}是偶数")
else:
print(f"{num}是奇数")
作业6:求矩形的面积和周长
矩形的面积公式:长 * 宽
周长公式:2 *(长+宽)
a,b = int(input('请输入矩形的长:')), int(input('请输入矩形的宽:'))
print(f"area ={a}*{b}={a*b}")
print(f"cir =2*({a}+{b})={2*(a+b)}")