基本数据类型
基本数据类型之布尔值bool
-
用来判断事物的对错 是否可行 只要用于流程控制中
-
只有两种状态
true 对的 真的 可行的
false 错的 假的 不可行的
-
python中所有数据都自带布尔值
布尔值为false的数据有:0 Noe ‘ ‘ [ ] { }
布尔值为true的数据有:除了上面的都是true
-
存储布尔值的变量名一般推荐使用is开头
is_delete = false
is_alive = true
基本数据类型之元组tuple
-
也称为’不可变’的列表
元组内索引绑定的内存地址不能修改
-
小括号括起来 内部存放多个数据值 数据值与数据值之间逗号隔开 数据值可以是如何数据类型
-
索引
-
元组与列表的区别
相同点:序列的两个主要特点是=索引操作符和切片操作符 索引操作符让我们可以从序列中抓取一个特定项目。
切片操作符让我们能够获取序列的一个切片,即一部分序列。
不同点:当列表中只有一个元素时,不用加逗号
当元组中只有一个元素时,元素后面需要加逗号, 否则不会被判断为元组
基本数据类型之集合set
-
集合只能用与去重和关系运算
去重:把重复的去除掉
关系运算:判断两个群体之间是不是存在某些关联
2.大括号括起来 内部存放多个数据值 数据值与数据值之间逗号隔开 数据值不是k:v键值对
3.定义空集合与空字典
{ } 默认是字典
set() 定义空集合
与用户交互
1.获取用户输入
先执行input获取用户输入
将输入的数据绑定给变量名username
以后在程序中就可以使用变量名反调用户数据
2.输出内部信息
1.括号内既可以放数据值也可以放变量名 并且支持多个逗号隔开即可
2.print自带换行符
换行符:\r\n\n(斜杠与字母组合到一起可能会产生特殊的含义)
3.print也可以切换结束符
print(数据,end=’默认是\n’)
格式化输出
提前定义号一些内容 将来需要使用的时候可以局部修改
第一种,利用%(称之为:占位符)格式化输出
第二种,f-string格式化(第二种输出)
第三种,利用format格式化输出format格式化(第三种格式化输出)
基本运算符
1.数学运算符
算术运算符:+ - * / % // **
加法运算符
“+”称为加法运算符,用于加法运算,作用是使其两侧的值相加
减法运算符
“-”称为减法运算符,用于减法运算,作用是使其左侧的数减去右侧的数
乘法运算符
符号“*”表示乘法
除法运算符
“/”表示除法。“/”左侧的值是被除数,右侧的值是除数。整数的除法和浮点数除法不同,浮点数的除法结果是浮点数,而整数的除法结果是整数。问题是整数没有小数部分,如果整数的除法运算出现除不尽的情况,结果中的小数部分会被舍弃
常用赋值符
1.链式赋值
1.链式赋值
# name = 'jason'
# name1 = name
# name2 = name
# 链式赋值
name = name1 = name2 = 'jason'
2.交叉赋值
m = 100
n = """奇葩式写法"""
# m = n
# n = m
# print(m, n) # 999 999
'''方式1:采用中间变量'''
# temp = m
# m = n
# n = temp
# print(m, n) # 999 100
'''方式2:交叉赋值语法'''
m, n = n, m
print(m, n) # 999 100
3.解压赋值
name_list = ['jason', 'kevin', 'tony', 'oscar']
'''low的写法'''
# name1 = name_list[0]
# name2 = name_list[1]
# name3 = name_list[2]
# name4 = name_list[3]
'''解压赋值语法'''
# name1, name2, name3, name4 = name_list
'''解压赋值在使用的时候 正常情况下需要保证左边的变量名与右边的数据值个数一致'''
# a, b = name_list # 变量名少了不行
# a, b, c, d, e = name_list # 变量名多了也不行
'''当需要解压的数据个数特别多 并且我们只需要使用其中的几个 那么可以打破上述的规则'''
# a, *b = name_list # *会自动接收多余的数据 组织成列表赋值给后面的变量名
# print(a) # jason
# print(b) # ['kevin', 'tony', 'oscar']
# a, c, *b = name_list
# print(a)
# print(c)
# print(b) # ['tony', 'oscar']
# a, *b, c = name_list
# print(a) # jason
# print(b) # ['kevin', 'tony']
# print(c) # oscar
'''当数据值不准备使用的时候 可以使用下划线作为变量名绑定'''
a, *_, c = name_list999
'''让m和n互相转换绑定的值'''
"""奇葩式写法"""
# m = n
# n = m
# print(m, n) # 999 999
'''方式1:采用中间变量'''
# temp = m
# m = n
# n = temp
# print(m, n) # 999 100
'''方式2:交叉赋值语法'''
m, n = n, m
print(m, n) # 999 100
3.解压赋值
name_list = ['jason', 'kevin', 'tony', 'oscar']
'''low的写法'''
# name1 = name_list[0]
# name2 = name_list[1]
# name3 = name_list[2]
# name4 = name_list[3]
'''解压赋值语法'''
# name1, name2, name3, name4 = name_list
'''解压赋值在使用的时候 正常情况下需要保证左边的变量名与右边的数据值个数一致'''
# a, b = name_list # 变量名少了不行
# a, b, c, d, e = name_list # 变量名多了也不行
'''当需要解压的数据个数特别多 并且我们只需要使用其中的几个 那么可以打破上述的规则'''
# a, *b = name_list # *会自动接收多余的数据 组织成列表赋值给后面的变量名
# print(a) # jason
# print(b) # ['kevin', 'tony', 'oscar']
# a, c, *b = name_list
# print(a)
# print(c)
# print(b) # ['tony', 'oscar']
# a, *b, c = name_list
# print(a) # jason
# print(b) # ['kevin', 'tony']
# print(c) # oscar
'''当数据值不准备使用的时候 可以使用下划线作为变量名绑定'''
a, *_, c = name_list
逻辑运算符
and 翻译:与 ;和
如果条件中有一个不成立结果就不成立
or翻译:或者
条件中有一个成立就全部成立
not 非
类似于说反话
成员运算符
- 判断元素是否在一组元素里
- 成员运算符: in判断是否在组元素里
not in判断不在组元素
身份运算符
id() 返回一串数字 该数字可以看成是内存地址
is 判断内存地址是否相同
== 判断数据值是否相同
小整数池
i1 = 11
i2 = 11
print(i1 is i2)
s1 = ‘jason jason jason’
s2 = ‘jason jason jason’
print(s1 is s2)
不同的环境下可能优化的程度不一样