补上之前学习的笔记,这次学习时间2018年10月28日
01-运算符
"""
数学运算符:+, -, *, /, %(取余), //(整除), **(幂运算)
比较运算符:>, <, ==, !=, <=, >=
逻辑运算符:and, or, not
赋值运算符:=, +=, -=, /=, *=, %=, //=, **=
位运算符: &, |, ~, ^, >>, <<
"""
# 1.数学运算符:+, -, *, /, %(取余), //(整除), **(幂运算)
# a. +, -, *, / 和数学中的加、减、乘、除对应的运算符的功能一样
print(10 + 20)
print(10 - 20)
print(2 * 3)
print(5 / 2) # 2.5
# 2. %(取余)
print(3 % 2)
print(10 % 3)
# 判断一个数是否是偶数: num % 2
# 3. //(整除) -- 求商,只取商的整数部分
print(5 // 2) # 2
print(6.3 // 4.1) # 2
# 4. **
"""
x ** y ---> 求x的y次方
"""
print(3**3)
print(10**0.5)
print(9**0.5)
print(8**(1/3))
# 2.比较运算符:>, <, ==, !=, <=, >=
"""
python中所有的比较运算符的结构都是布尔值
"""
# num1 > num2 --> 是否大于
print(100 > 100)
# num1 < num2 --> 是否小于
num1 = 10
print(100 < num1)
# num1 == num2 --> 是否相等
print(100 == 10)
print(num1 == 10)
# num1 != num2 --> 是否不相等
print(100 != 10)
print(num1 != 10)
# num1 <= num2 --> 是否小于或者等于
print(100 <= 100)
# num2 > num2 --> 是否大于或者等于
print(num1 >= 10)
# 3.逻辑运算符:and, or, not
"""
所有的逻辑运算符返回值都是布尔值,运算对象也是布尔值
"""
# a.and(逻辑与)
"""
格式:
布尔1 and 布尔2
规则:
两个布尔值都是True,结果才是True。只要有一个是False结果就是False
True and True ---> True
False and True ---> False
True and False ---> False
False and False ---> False
"""
print(True and True)
print(True and False) # False
print(False and True)
print(False and False)
# 什么时候用and: 希望多个条件同时满足就可以用and。-- 并且
"""
补充:
数据类型转换:类型名(数据) ---> 将指定的数据转换成指定的功能
"""
age = int(input('年龄:'))
score = int(input('成绩:'))
# 要求:1.年龄大于18岁 2.成绩大于90分。 3.年龄不能是20. 三个要求同时满足才能参加比赛
print(age > 18 and score > 90 and age != 20)
# b. or(逻辑或)
"""
格式:
布尔1 or 布尔2
规则:两个布尔都是False结果才是False,只要有一个是True结果就是True
True or True ---> True
True or False --> True
False or True --> True
False or False --> False
"""
# 什么时候使用or: 要求多个条件中只要有一个条件满足就可以。-- 或者
# 要求:1.年龄大于18岁 2.成绩大于90分。 二个要求有一个满足就能参加比赛
print(age > 18 or score > 90)
# 3.not(逻辑非)
"""
格式:
not 布尔
规则:
布尔值取反。
True --> False
False --> True
"""
# 年龄不大于18岁
print('条件1:', age <= 18)
print('条件2:', not age > 18)
# 4.赋值运算符:=, +=, -=, /=, *=, %=, //=, **=
"""
赋值运算符功能都是将赋值符号右边的值赋给左边的变量
注意:a.赋值符号的左边必须是变量。
b.除了=以外其他的赋值运算符要求左边的变量必须有值
"""
# a. =
"""
变量 = 值
"""
name = '余婷'
# b. +=
"""
变量 += 值 <--> 变量 = 变量 + 值
变量 *= 值 <--> 变量 = 变量 * 值
...
"""
number = 10
number += 100 # number = number + 100 = 10 + 100
print(number)
number = 3
number *= 2
print(number)
# 5.位运算符: &, |, ~, ^, >>, <<
"""
位运算是针对二进制数的每一位进行的操作
"""
# a.&(按位与)
"""
数字1 & 数字2 --> 都为1结果是1, 有0就是0
1 & 1 --> 1
1 & 0 --> 0
0 & 1 --> 0
0 & 0 --> 0
110 & 001 --> 000
"""
"""
2 -> 00000010
3 -> 00000011
2&3 -> 00000010 -> 2
2|3 -> 00000011 -> 3
11111101(补码) --> 111111100(反码) --> 10000011(原码)
"""
print(2 & 3)
# b. |(按位或)
"""
数字1 | 数字2: 都是0结果是0,有1结果就是1
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
"""
print(2 | 3)
# c. ^(异或)
"""
数字1 ^ 数字2 :相同为0,不同为1
1 ^ 1 = 0
0 ^ 0 = 0
1 ^ 0 = 1
0 ^ 1 = 1
2 -> 00000010
3 -> 00000011
2 ^ 3 = 00000001 -> 1
"""
print(2 ^ 3)
# d. <<(左移)
"""
数字 << 位数 -> 符号位不变,将数字的二进制的每一位向左移动指定的位数,右边用0补齐
2 << 1
2:00000010
2 << 1:00000100 = 4
-2: 10000010 -> 11111101(反) -> 11111110(补)
-2 << 1 -> 11111100(补) -> 11111011(反) -> 10000100 = -4
"""
print(2 << 1)
print(-2<<1)
# e. >> (右移)
"""
数字 >> 位数 -> 将数字的二进制的每一位向右移动指定的位数,左边用0(正数)或者1(负数)补齐
"""
print(9 >> 1)
print(-8 >> 1)
# 位运算的应用:
"""
1.乘除2的幂次方
左移:数<<1 == 数*2 ; 数<<2 == 数 * (2^2); 数< number * 2 --> number << 1 右移:数>>1 == 数//2; 数>>n==数//(2^n) 2.判断一个整数的奇偶性 所有的偶数的最低位都是0,所有的奇数的最低位都是1 数字 & 1 == 1 ---> 奇数 数字 & 1 == 0 ---> 偶数 2:10 3:11 4:100 5:101 10:1010 11:1011 """ print(10 & 1 == 0) print(11 & 1 == 0) # 6.复合运算 """ 优先级:(优先级高先运算,优先级相同就从左往右按顺序) 数学运算 > 比较运算 > 逻辑运算 > 赋值运算 数学运算符:** > *,/, //, % > +,- 如果有括号,先算括号里面的 """ num = 128 + (23 > 78) and 89 < 90 """ 1.什么时候用 python中的分之结构只有if语句,没有switch 如果某段代码需要在满足某个条件的时候才去执行,可以考虑使用if 2.怎么用? """ # 1.if """ 语法: if 条件语句: 代码段 说明: if -> 关键字(如果-判断) 条件语句 -> 结果是布尔的表达式 : -> 固定写法 代码段:一条或者多条语句。这儿的代码段必须和if保持一个缩进(tab) 执行过程: 先判断条件语句的结果是否是True,如果是True就执行代码段 """ number = int(input('请输入一个数字:')) if number % 2 == 0: print('偶数') print('=======') # if - else # if-elif - else 2.表达式0x13 & 0x17的值是(19 ) 3.若x=4,y=3则x & y的结果是(0) 4.表达式 -4 | -3的运算结果是(-3) [if !vml] [endif] 5.在位运算中,操作数每右移一位,其结果相当于(B) A.操作数乘以2 B.操作数除以2 C.操作数除以4 D.操作数乘以4 6.设x 是一个整数(16位).若要通过x|y使x低度8位置1,高8位不变,则y的二进制数是(00000000 11111111 ) X:0000000000000000 Y:0000000011111111 7. 10 << 2的结果是(40); -10<<2的结果是(-40)。 [if !vml] [endif]02-分支结构
Practice