目录
Python数据类型&运算符
数据类型
计算机顾明思议就是可以做数学运算的机器,因此计算机理所当然的可以处理各种数据,但是计算机能处理的远远不止数值,还有文本,图形,音频,视频网页等各种数据, 不同数据需要定义不同的数据类型
Python的数据类型:
int, float, complex : 数值类型
str: 字符串
bool: 布尔类型, 只有2个值: True, False
None: 空值类型, 只有1个值: None
list: 列表/数组
tuple: 元组/不可变数组
dict: 字典
set: 集合(了解)
bytes: 字节/二进制
int
a = 100
print(a, type(a)) # 100 <class 'int'>
float
b = 10.3
print(b, type(b)) # 10.3 <class 'float'>
str
c = "蔡徐坤"
print(c, type(c)) # '蔡徐坤' <class 'str'>
bool
d = True
print(d, type(d)) # True <class 'bool'>
print(int(True), int(False)) # 1 0
None类型
e = None
print(e, type(e)) # None <class 'NoneType'>
list
f = [1, 2, 3]
print(f, type(f)) # [1, 2, 3] <class 'list'>
tuple
g = (1, 2, 3)
print(g, type(g)) # (1, 2, 3) <class 'tuple'>
dict
h = {"name": "杨超越", "age": 23}
print(h, type(h)) # {'name': '杨超越', 'age': 23} <class 'dict'>
set(了解)
i = {1, 2, 3}
print(i, type(i)) # {1, 2, 3} <class 'set'>
bytes
j = b'hello'
print(j, type(j)) # b'hello' <class 'bytes'>
算术运算符和关系运算符
算术运算符
+, -, *, /, %(求余,取模), **(次方,幂), //(取整)
print(10 + 4) # 14
print(10 - 4) # 6
print(10 * 4) # 40
print(10 / 4) # 2.5
print(10 % 4) # 2
print(10 ** 4) # 10000
print(10 // 4) # 2
关系运算符
作用:比较大小,得到结果为布尔值【如果表达式成立,则返回True,如果不成立,则返回False】
使用场景:if语句,循环
>, >=, <, <=, ==, !=
print(10 > 4) # True
print(10 >= 4) # True
print(10 < 4) # False
print(10 <= 4) # False
print(10 == 4) # False
print(10 != 4) # True
字符串比较
ASCII码:
A~Z : 65~90
a~z : 97~122
0~9 : 48~57
print(8 == '8') # False
print('a' > 'b') # False
print('abc' < 'acb') # True
print('ad' > 'adc') # False
逻辑运算符
and : 与, 并且
or: 或, 或者
not:非, 取反
and
两边都为真则为真, 只要有一个为假则为假
print(True and True) # True
print(True and False) # False
print(False and True) # False
print(False and False) # False
print(10%2==0 and 3>4) # False
or
两边都为假则为假, 只要有一个为真则为真
print(True or True) # True
print(True or False) # True
print(False or True) # True
print(False or False) # False
print(10%2==0 or 3>4) # True
not
一定会得到一个bool值
print(not True) # False
print(not False) # True
print("-" * 100)
print(not 0) # True
print(not "") # True
print(not " ") # False
print(not None) # True
print(not []) # True
print(not {}) # True
bool (牢记)
数值类型: 0是假的,其他都为真
字符串: ""空字符串是假的, 其他都为真
None类型: None是假的
list类型: []空列表为假,其他为真
dict类型: {}空字典为假,其他为真
短路操作
and : 两边都为真则为真, 只要有一个为假则为假
x = 10 and 0 and 4
x = 10 and print(2)
print(x)
or : 两边都为假则为假, 只要有一个为真则为真
x = 0 or 3 or 4
x = 0 or 3 or print(2)
print(x)
成员运算符和身份运算符
成员运算符
in, not in
print(1 in [1,2,3]) # True
print('abc' not in "abcdefg") # False
判断某个月是否是31天
m = 1
s = m==1 or m==3 or m==5 or m==7 or m==8 or m==10 or m==12
s = m in [1,3,5,7,8,10,12]
print(s) # True
身份运算符
is, is not
id(): 查看内存地址
判断内存地址是否相同
a = 100
b = 100
print(id(a)) # 140731785928832
print(id(b)) # 140731785928832
print(a is b) # True
print(a is not b) # False
赋值运算符和位运算符
赋值运算符
简单赋值运算符:= 给一个变量进行赋值
复合赋值运算符:+= -= %= /= … 给一个变量进行赋值,同时给变量进行相应的运算
=, +=, -=, *=, /=, //=, %=, **=
a = 10
# a = a + 4 # 将自身a的值+4
a += 4 # 等价于上面的写法
a -= 4
a *= 4
a /= 4
a //= 4
a %= 4
a **= 4
print(a)
位运算符[扩展]: 了解
前提:将数字转换为二进制使用
&【按位与】 |【按位或】 ^【按位异或】 ~【按位取反】 << 【左移】 >>【右移】
print(12 & 5) # 位与
# 1100 => 12
# 0101 => 5
#-------------
# 0100 => 4
print(12 | 5) # 位或
# 1100 => 12
# 0101 => 5
#-------------
# 1101 => 13
print(12 ^ 5) # 位异或
# 1100 => 12
# 0101 => 5
#-------------
# 1001 => 9
print(12 >> 2) # 右移2位
# 1100 => 12
# 11 => 3
print(12 << 2) # 左移2位
# 1100 => 12
# 110000 => 48
print(~6) # 按位取反, -7
# 00000000 00000000 00000000 00000110 => 6
# 11111111 11111111 11111111 11111001 ~6 补码
# 11111111 11111111 11111111 11111000 反码 = 补码-1
# 10000000 00000000 00000000 00000111 原码 = 反码第一位(符号位)不变,其他的取反
IF分支
if条件会自动转换成bool进行判断,如果为真则进入if,否则不进入
单分支
sex = input("请输入性别:")
age = 50
if sex == "女":
age = 18
print(age)
if -1:
print("hello")
IF双分支
n = int(input("请输入一个整数:"))
if n%2 == 0:
print(n, "是偶数")
else:
print(n, "是奇数")
IF多分支
# 5,成绩判定
# 大于85 优秀
# 大于等于75小于等于85 良好
# 大于等于60小于75 及格
# 小于60 不及格
score = int(input("请输入一个成绩:"))
if score > 85:
print("优秀")
elif score >= 75:
print('良好')
elif score >= 60:
print("及格")
else:
print("不及格")
if嵌套
if score >= 60:
if score > 85:
print("优秀")
elif score >= 75:
print("良好")
else:
print("及格")
else:
print("不及格")
if-else
# 求2个数的较大数
a = 2
b = 3
# 方式一
if a > b:
print(a)
else:
print(b)
# 方式二
# c语言中: ? : 三目运算符, Python中没有
s = a if a>b else b
print(s)