数据进阶二
制作方形乘法表和三角形乘法表
#方形乘法表
for i in range(1,10):
for j in range(1,10):
print(j,"*",i,"=",i*j,end="\t")
print()
#三角形乘法表
for i in range(1,10):
for j in range(1,i+1):
print(j,"*",i,"=",i*j,end="\t")
print()
1 * 1 = 1 2 * 1 = 2 3 * 1 = 3 4 * 1 = 4 5 * 1 = 5 6 * 1 = 6 7 * 1 = 7 8 * 1 = 8 9 * 1 = 9
1 * 2 = 2 2 * 2 = 4 3 * 2 = 6 4 * 2 = 8 5 * 2 = 10 6 * 2 = 12 7 * 2 = 14 8 * 2 = 16 9 * 2 = 18
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 4 * 3 = 12 5 * 3 = 15 6 * 3 = 18 7 * 3 = 21 8 * 3 = 24 9 * 3 = 27
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16 5 * 4 = 20 6 * 4 = 24 7 * 4 = 28 8 * 4 = 32 9 * 4 = 36
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25 6 * 5 = 30 7 * 5 = 35 8 * 5 = 40 9 * 5 = 45
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36 7 * 6 = 42 8 * 6 = 48 9 * 6 = 54
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49 8 * 7 = 56 9 * 7 = 63
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 9 * 8 = 72
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
Process finished with exit code 0
2列表list[]
列表是一个有序且可变的容器,可以存放多个不同类型的元素;存储同一个类别数据,方便操作
·字符串:不可变;即:创建好之后内部无法修改[内置功能是新创建一份数据]
·列 表:可变;即:创建好之后内部元素可以修改[独有功能基本上都是直接操作列表内部,不会创建新的一份数据]
增
2.1.1 append()
添加新的元素到旧的列表中
list=["车子","房子","院子"]
print(list)
list.append("家人")
print(list)
['车子', '房子', '院子']
['车子', '房子', '院子', '家人']
Process finished with exit code 0
2.1.2 insert()
添加一个数据,添加到指定的位置
语法:列表名.insert(下标的位置,内容)
list=["车子","房子","院子"]
print(list)
list.append("家人")
print(list)
list.insert(1,"李花花")
print(list)
['车子', '房子', '院子']
['车子', '房子', '院子', '家人']
['车子', '李花花', '房子', '院子', '家人']
Process finished with exit code 0
2.1.3 extend()
添加一个序列类型,最后一位,并且把序列类型拆分
语法:列表名.extend(序列类型)
list=["车子","房子","院子"]
print(list)
list.append("家人")
print(list)
list.insert(1,"李花花")
print(list)
list.extend("旺财")
print(list)
['车子', '房子', '院子']
['车子', '房子', '院子', '家人']
['车子', '李花花', '房子', '院子', '家人']
['车子', '李花花', '房子', '院子', '家人', '旺', '财']
Process finished with exit code 0
删除
2.2.1 pop
删除一个值,默认从最后一个开始删除列表中的元素
语法:列表名.pop(下标)
list=["车子","房子","院子"]
print(list)
list.append("家人")
print(list)
list.insert(1,"李花花")
print(list)
list.extend("旺财")
print(list)
list.pop(-2)
print(list)
['车子', '房子', '院子']
['车子', '房子', '院子', '家人']
['车子', '李花花', '房子', '院子', '家人']
['车子', '李花花', '房子', '院子', '家人', '旺', '财']
['车子', '李花花', '房子', '院子', '家人', '财']
Process finished with exit code 0
2.2.2 remove
删除一个指定的值,如果有多个,就从第一个开始删除
语法:列表名.remove(删除对象)
list=['车子', '李花花', '房子', '院子', '家人', '旺财']
list.remove("旺财")
print(list)
['车子', '李花花', '房子', '院子', '家人']
Process finished with exit code 0
2.2.3 clear
清空列表的所有数据
语法:列表名.clear()
list=['车子', '李花花', '房子', '院子', '家人', '旺财']
list.clear()
print(list)
[]
Process finished with exit code 0
2.2.4 del
全局删除,可以删除一个变量
语法:del 列表名[下标]
list=['车子', '李花花', '房子', '院子', '家人', '旺财']
del list[3]
print(list)
['车子', '李花花', '房子', '家人', '旺财']
Process finished with exit code 0
改
2.3.1
1、单个修改:直接通过下标进行修改
语法:列表名[下标]=内容
list=['车子', '李花花', '房子', '院子', '家人', '旺财']
list[1]="江花花"
print(list)
['车子', '江花花', '房子', '院子', '家人', '旺财']
Process finished with exit code 0
2、多个修改:通过切片的方式进行
语法:列表名[起点名:终点名]=数据1,数据2
list=['车子', '李花花', '房子', '院子', '家人', '旺财']
list[1]="江花花"
print(list)
list[1:2]="徐花花","蓝胖子"
print(list)
['车子', '江花花', '房子', '院子', '家人', '旺财']
['车子', '徐花花', '蓝胖子', '房子', '院子', '家人', '旺财']
Process finished with exit code 0
查
2.4.1 index
根据内容获取数据的下标
语法:列表名.index(要找的内容)
列表名.index(要找的内容,起点值)
list=['车子', '李花花', "徐花花","蓝胖子",'房子', '院子', '家人', '旺财']
print(list.index("蓝胖子"))
3
Process finished with exit code 0
2.4.2 count
统计数据出现的次数
list=['车子', '李花花', "徐花花","蓝胖子",'房子', '院子','李花花','李花花','李花花', '家人',"徐花花","徐花花", '旺财']
print(list.count("李花花"))
4
Process finished with exit code 0
其它
排序(全是 int 的列表才可以排序)
sort:让列表的内容按照降序/升序的方式来排序
语法:列表名.sort()——》升序
列表名sort(reverse=True)——》降序
list=[10,9,20,30,15,6,8,5,7,5,3,2,1,9]
list.sort()
print(list)
[1, 2, 3, 5, 5, 6, 7, 8, 9, 9, 10, 15, 20, 30]
Process finished with exit code 0
列表生成式
第一种:
list=[1,2,3,4,5,6,7,8,9]
print(list)
第二种:
print(list(range(1,10)))
第三种:列表生成式
普通的列表生成式
list=[]
for i in range(1,20):
list.append(i)
print(list)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
Process finished with exit code 0
或者
print([i for i in range(1,20)])
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
Process finished with exit code 0
带if的列表生成式
#普通写法
list=[]
for i in range(1,11):
if i%2==0:
list.append(i)
print(list)
[2, 4, 6, 8, 10]
Process finished with exit code 0
#列表生成式
print([i for i in range(0,11,2)])
print([i for i in range(1,11) if i%2==0])
[0, 2, 4, 6, 8, 10]
[2, 4, 6, 8, 10]
Process finished with exit code 0
两层循环,生成一切组合的可能
print([i+j for i in "abc" for j in "123"])
['a1', 'a2', 'a3', 'b1', 'b2', 'b3', 'c1', 'c2', 'c3']
Process finished with exit code 0
3元组(tuple)
不可变,只有查询的方法
1、元组和列表都可以存储一系列的变量,由于列表会预留内存空间,所以可以增加元素
2、元组会按需分配内存,所以如果变量数量固定,建议使用元组,因为占用的空间小
使用一对小括号将所有的元素包围起来,但是小括号不是必须的,只要将各个元素用逗号隔开,Python都将其视为元组
t="xiaochaun","python"
print(type(t))
print(t)
<class 'tuple'>
('xiaochaun', 'python')
Process finished with exit code 0
查
3.1.1 count
t=(123456,"google","taobao","jingdong")
print(t.count("jingdong"))
1
Process finished with exit code 0
3.1.2 index()
从某个指定的下标开始检索某个元素的下标值
t=(123456,"google","taobao","jingdong")
print(t.count("jingdong"))
print(t.index("jingdong"))
1
3
Process finished with exit code 0
3.1.3功能
1、相加,两个列表相加生成一个新的元组
data=("张三","李四")+("王五","马六")
print(data)
('张三', '李四', '王五', '马六')
Process finished with exit code 0
2、相乘,元组*整数
data=("张三","李四")*10
print(data)
('张三', '李四', '张三', '李四', '张三', '李四', '张三', '李四', '张三', '李四', '张三', '李四', '张三', '李四', '张三', '李四', '张三', '李四', '张三', '李四')
Process finished with exit code 0
3、获取长度
data=("张三","李四")*10
print(len(data))
20
Process finished with exit code 0
4、索引
data=("张三","李四","王五","马六")
print(data[0])
print(data[1])
张三
李四
Process finished with exit code 0
5、切片
data=("张三","李四","王五","马六")
print(data[0:3])
('张三', '李四', '王五')
Process finished with exit code 0
6、步长
data=("张三","李四","王五","马六","七期","八鸽")
print(data[0:5:2])
('张三', '王五', '七期')
Process finished with exit code 0
7、for循环
data=("张三","李四","王五","马六","七期","八鸽")
for item in data:
print(item)
张三
李四
王五
马六
七期
八鸽
Process finished with exit code 0
data=("张三","李四","王五","马六","七期","八鸽")
for item in data:
if item=="马六":
continue
print(item)
张三
李四
王五
七期
八鸽
Process finished with exit code 0
元组本身不可变,如果元组中还包含其它的可变元素,这些可变元素就可以改变
data=[99,88,77,[66,"花花"],33,22]
data[3][0]="蓝胖子"
print(data)
[99, 88, 77, ['蓝胖子', '花花'], 33, 22]
Process finished with exit code 0
4格式化输出
一般输出:
name="蓝胖子"
age=8
print("大家好,我是"+name+",我今年"+str(age)+"岁")
大家好,我是蓝胖子,我今年8岁
Process finished with exit code 0
而格式化输出就是可以让你更舒服的输出带有变量的字符串
三种格式化输出
4.1.1 %方法(占位符)
常用的占位符
%s=字符串——》占了一个位置,只能放字符串
%d=整数——》只能放整数,如果有小数点,就会被切掉
%f=小数——》默认保留6位小数点
%.1f——》保留一位小数
%.2f——》保留两位小数
name="蓝胖子"
age=8
print("大家好,我是%s,我今年%d岁"%(name,age))
大家好,我是蓝胖子,我今年8岁
Process finished with exit code 0
4.1.2 format方法
语法:
“{}{}{}”.format(数据1,数据2,数据3)
name="蓝胖子"
age=8
height=180.0
print("你好,我叫{},今年{}岁了,身高{}".format(name,age,height))
你好,我叫蓝胖子,今年8岁了,身高180.0
Process finished with exit code 0
4.1.3 f-format方法
相较于前两种方法,是响应速度最快的,应用较多的
语法:在字符串前面加上一个f/F,把要输出的变量用大括号{}进行包裹
name="蓝胖子"
age=8
height=180.0
print(f"你好,我叫{name},今年{age}岁了,身高{height}")
你好,我叫蓝胖子,今年8岁了,身高180.0
Process finished with exit code 0