Python数据类型二

数据进阶二

制作方形乘法表和三角形乘法表

#方形乘法表
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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值