一、数据类型
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:
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
关系运算符
print(10 > 4) # True
print(10 >= 4) # True
print(10 < 4) # False
print(10 <= 4) # False
print(10 == 4) # False
print(10 != 4) # True
逻辑运算符
- and 并且, 与
- or 或者, 或
- not 不, 取反
and 并且, 与: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 不, 取反:
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)
在使用and逻辑运算符时遇到假时立刻停止,程序不会继续向下执行,称之为短路操作
原理:or : 两边都为假则为假, 只要有一个为真则为真
x = 0 or 3 or 4
x = 0 or 3 or print(2)
print(x)
在使用or逻辑运算符时遇到真时立刻停止,程序不会继续向下执行,称之为短路操作
成员运算符
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 判断内存地址是否相同
a = 100
b = 100
print(id(a)) # 140731785928832
print(id(b)) # 140731785928832
# id(): 查看内存地址
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单分支
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, "是奇数")
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("不及格")