关于列表元素的切片、添加,列表融合,字符串的格式化及购物小程序

225 阅读3分钟
一.列表的切片:

之前我在上一篇文章里面说过字符串的切片,字符串的切片与它的索引机制有关。因此不难猜出列表也有索引机制,而且和字符串的一模一样.同样的下标,同样有两套索引机制吗,同样的格式。

举个例子给大家看看:

a = 'abcd'
b = a[0]
c = a[0:4]
print(a\n, b\n, c\n)    # 它的输出结果是字符串
a = ['a', 'b', 'c', 'd']
b = a.
b = a[0]
c = a[0:4]
print(a\n, b\n, c\n)   #它的输出结果是列表
二.列表元素的添加:

列表可以将某个元素截取或切片,那有什么可以添加元素的方法呢?这里介绍两种,有一种在字符串上也可以用。

第一种:用关键字append()

格式:

列表.append(添加的元素)  # 如果添加元素是字符串,要添加引号

依然要举个例子:

list1 = []
list1.append('火腿肠')
print(list1)

顺便提一下,括号里面不仅可以写字符串和数字,还可以加入一个列表,就像这个样子[[···],[···],[···],····]

第二种:直接用加号,这种方法在字符串的连接亦可以使用

a = ['a']
b = 'b'
a += b
print(a)

['a', 'b']  # 这是打印结果
三.列表的融合:

如果我有两个列表,我突然想把它们变成一个列表,难道我要一个一个把这个列表的元素添加到另一个列表里面去吗?这肯定是不行的,所以我们要使用关键字extend()。列表的融合也有两种方法。

格式:

列表1.extend(列表2)   #这就相当于是在列表1里面加入列表2的元素

例子:

a = ['a','b', 'c']
b = ['d', 'e', 'f']
a.extend(b)

也可以直接相加,来实现融合

a = ['a','b', 'c']
b = ['d', 'e', 'f']
a += b
print(a)


四.字符串的格式化:

字符串格式化也有两种方法:

1. '%d %s %f' %(   )    %d代表整型,%s代表字符串, %f代表浮点数
   
2.  '··{}···{}···{}'.format(  )  
    

我们来看看它们两个的具体区别:

第一种只能填入与占位符相同数据类型的变量,如果占位符都是%s,就可以不在意变量的数据类型。它自动转成字符串类型。 、 第二种与第一个不同的是,使用时不用区分数据类型,而且可以一个变量填入多个占位符,但是要给每个{}写入编号,还分为数字字段名,变量字段名。

数字字段名:其实format()里面也有个索引机制,所以可以按0123456这样一次填写{}中,来使一个变量多用

例子:

name = '赵丽颖'
age = 18
result = '美女{0}今年{1}岁,我也{1}岁'.format(name, age) 

# 这里系统默认給name的下标为0,age的下标为1

print(result)

变量字段名:要在format()内写入变量,并在{}里面写入变量名。

例子:

result = '美女{name}今年{age}岁,我也{age}岁'.format(name='赵丽颖', age=18)
print(result)
五.今天写的购物小程序:
lag = True
c = 0  # 总金额
d = ''  # 设置一张账单
e = []   # 这是另一种账单
while flag:
    b = [input('商品名称:'), input('价格:'), input('数量:')]  # 每次的商品的信息
    c += int(b[1]) * int(b[2])  # 计算该商品金额
    e.append(b)
    d += b[0] + b[2] + '件' + '\n'  # 显示账单
    print('当前购物车的金额为{}'.format(c))
    while flag:
        a = input('是否继续添加(按q或Q键退出):')
        if a.lower() == 'q':
            flag = False
        else:
            break
print('您购买了\n{}总金额为{}元'.format(d, c))  # 显示账单

print('--' * 20)
for f in e:
    print(f)