目录
一、input
input()函数
- 作用:接受来自用户输入的值
- 返回值类型:str
- 值的存储:使用 = 对输入的值进行存储
present = input('Leo想做什么呢?')
print(present,type(present))
- present:变量
- =:赋值运算符,将输入函数的结果赋值给变量present
- input('Leo想做什么?'):是一个输入函数,需要输入回答响应
练习:从键盘输入两个整数,用代码去两个数的和
# 方法一:
one = input('请输入你的第一个数字:')
two = input('请输入你的第二个数字:')
x = int(one)
y = int(two)
z = x + y
print('这两个数字的和为:',z)
方法二:
one = int(input('请输入你的第一个数字:'))
two = int(input('请输入你的第二个数字:'))
print('这两个数字的和为:',one + two)
二、运算符
算数运算符
- 标准算数运算符
print(1 + 2) # 加法运算
print(1 - 2) # 减法运算
print(1 * 2) # 乘法运算
print(1 / 2) # 除法运算
- 整除运算符
print(11 // 2) # 整除运算:去掉余数
一正一负,向下取整
- 取余运算符
print(11 % 2) # 取余运算
一正一负看公式:余数 = 被除数 - 除数 * 商
print(9 % -4) # [9 - (-4) * (-3)] = -3 print(-9 % 4) # [(-9) - 4 * (-3)] = 3
- 幂运算符号
print(2 ** 2) # 幂运算 = 2²
赋值运算符
从右向左依次计算
- 链式赋值
a = b = c = 20
print(a,id(a))
print(b,id(b))
print(c,id(c))
只有一个引用对象,但是有多个指向
- 参数赋值
a = 20
a += 30 # +=:a = a+30
print(a) # 50
a -= 10 # -=:a = a-10
print(a) # 40
a *= 2 # *=:a = a*2
print(a) # 80
a /= 4 # /=:a= a/2
print(a) # 20
- 解包赋值
a,b,c = 20,30,40
- 等号左右两边的位置,变量与值一一对应
- 交换两个变量的值
a,b = 10,20 print('交换前:'a,b) a,b = b,c print('交换后:'a,b)
比较运算符
对变量或表达式的结果进行大小,真假等比较
a,b = 10,20
print(a > b)
print(a < b)
print(a == b)
print(a <= b)
print(a >= b)
print(a != b)
- 比较运算符的结果:True、False
- =:赋值运算符
- ==:比较运算符
- ==:比较的是两个对象的值(value)
- is:比较的是两个对象的标识(id)
a = 10 b = 10 print(a == b) # a与b的value相同 True print(a is b) # a与b的id相同 True print(a is not b) # a与b的id不相同 False lst1 = [11,22,33,44] lst2 = [11,22,33,44] print(lst1 == lst2) # lst1与lst2的value相同 True print(lst1 is lst2) # lst1与lst2的id相同 False print(lst1 is not lst2) # lst1与lst2的id不相同 True
布尔运算符
运算符 | 运算数 | 运算结果 | 备注 | |
and | True | True | True | 当两个运算数都为True时候,结果才为True (有假即假) |
True | False | False | ||
False | True | |||
False | False | |||
or | True | True | True | 只要有一个运算数为True时候,结果就为True (有真即真) |
True | False | |||
False | True | |||
False | False | False | ||
not | True | False | 运算数为True,结果为False | |
False | True | 运算数为False,结果为True | ||
in | True | True | 运算数为True,结果为True | |
not in | Flase | True | 运算数为Flase,结果为True |
x,y = 10,20
m,n = True,False
l = 'Leo'
print(x == 10 and y ==20)
print(x == 30 and y ==20)
print(x == 10 or y == 20)
print(x == 30 or y == 20)
print(not m)
print(not n)
print('e' in l)
print('w' in l)
print('e' not in l)
print('w' not in l)
位运算符
将数据先转化为二进制,然后再进行计算
- &(按位或):对应数位同为1时,结果为1
二进制 | 十进制 | 结果 | |||||||||
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 4 | 4 & 8 = 0 | ||
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 8 | |||
👇 | |||||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
print(4 & 8)
- |(按位或):对应数位同为0时,结果为0
二进制 | 十进制 | 结果 | |||||||||
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 4 | 4 | 8 = 12 | ||
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 8 | |||
👇 | |||||||||||
0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 12 |
print(4 | 8)
- <<(左移位):高位溢出舍弃,低位自动补0
二进制 | 十进制 | 结果 | ||||||||
0 | 0 | 0 | 0 | 1 | 0 | 0 | 4 | 4 向左移动一位 == n*8 | ||
👇 | ||||||||||
高位溢出 | 低位补0 | |||||||||
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 8 |
print(4<<1) # 左移一位
- >>(右移位):低位溢出截断,高位自动补0
二进制 | 十进制 | 结果 | ||||||||
0 | 0 | 0 | 0 | 1 | 0 | 0 | 4 | 4 >> == /2 向右移动一位 == n/2 | ||
👇 | ||||||||||
高位补0 | 低位截断 | |||||||||
0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 |
print(4>>1) # 右移一位