实验环境:anaconda4.6.11

三、操作列表

1.遍历整个列表

在上一节中我们通过print(bicycles)输出整个列表,现在我们采用另一种方法,也就是for循环遍历整个列表。先通过magician 获取列表中的每一个元素,然后对这个元素执行输出操作,当循环结束时,整个列表都被输出了。

magicians = ['alice','david','carolina']
for magician in magicians:
    print(magician)

python re如何把人的姓名抽取出来_元组

2.避免缩进错误

Python通过缩进来判断当前代码行与前一个代码行的关系,如果当前代码行缩进了,代表它属于上一代码行。比如在遍历整个列表时print(magician)相对于for语句缩进了,所以输出语句是属于for循环的。缺少缩进和不必要的缩进都会导致程序运行结果不符合要求甚至报错。另外注意不要遗漏了for循环后的冒号。

3.创建数字列表

1)使用range()函数

Python中的range()函数可以轻松生成一系列的数字。

for value in range(5):
    print(value,end='\t')
print()
for value in range(1,5):
    print(value,end='\t')
print()    
for value in range(2,11,2):
    print(value,end='\t')
print()

python re如何把人的姓名抽取出来_缩进_02


range(5)表示生成0-5的数字,不包含5,默认从0开始生成;range(1,5)表示生成1-5的数字;range(2,11,2)表示生成2-11之间步长为2 的数字。

使用range()函数结合list()函数就可以生成数字列表。

nums = list(range(1,6))
for num in nums:
print(num)

python re如何把人的姓名抽取出来_if语句_03


下面演示如何将前10个整数的平方加入一个列表中:

squares = []
for value in range(1,11):
    squares.append(value**2)
print(squares)

python re如何把人的姓名抽取出来_元组_04


这里先创建了一个空列表,然后用到了添加列表元素的append()方法,两个*表示乘方运算。

下面展示几个专门用于处理数字列表的函数,min()求最小值,max()求最大值,sum()求和。

digits = [1,2,3,4,5,6,7,8,9,0]
print(min(digits))
print(max(digits))
print(sum(digits))

python re如何把人的姓名抽取出来_if语句_05

2)列表解析

前面介绍生成列表的方式需要三四行代码,而列表解析可以帮助你仅通过一行代码就生成想要的列表,列表解析将for循环和创建新元素的代码合并成一行。比如说生成前面生成的前10的平方列表:

squares = [value**2 for value in range(1,11)]
print(squares)

python re如何把人的姓名抽取出来_元组_06

3)切片

Python中列表的部分元素称为切片。创建切片要指定使用的第一个元素的索引和最后一个元素的索引加1;如果你没有指定第一个索引,切片从列表开始提取;如果没有指定第二个索引,切片提起从起始元素到列表末尾的元素;这里索引可以使用负数,用法和前面讲的一致。

players = ['charles','martina','michael','florence','eli']
print(players[0:3])
print(players[1:4])
print(players[:4])
print(players[2:])
print(players[-3:])

python re如何把人的姓名抽取出来_缩进_07

4)元组

元组看起来和列表差不多,但是和列表中的元素可以改变不同,元组中的元素是不能改动的;此外,创建元组时使用圆括号而不是方括号来括起元素,但是在访问元组元素时仍使用方括号。看一个例子:

dimensions = (200,50)
print(dimensions[0])
print(dimensions[1])

python re如何把人的姓名抽取出来_if语句_08


前面说到元组的元素是不能修改的,那么要修改元组中的值应该怎么办呢?这个时候,只能重新给元组赋值。

dimensions = (200,50)
print("Original dimensions:")
for dimension in dimensions:
    print(dimension)
dimensions = (400,100)
print("Modified dimensions:")
for dimension in dimensions:
    print(dimension)

python re如何把人的姓名抽取出来_缩进_09

四、if语句

1.一个简单的例子

cars = ['audi','bmw','subaru','toyota']
for car in cars:
    if car == 'bmw':
        print(car.upper())
    else:
        print(car.title())

python re如何把人的姓名抽取出来_python_10


可以看到bmw为全大写输出,其余的都为首字母大写输出;也就是说当car的值为bmw时,匹配if中的判断条件,执行if中的语句,全转换为大写;当car的值不为bmw时,不匹配if中的判断条件,转而执行else中的语句,转换为首字母大写。

2.条件测试

每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。

1)判断符号

如前面所示,判断是否相等我们用两个等于号(==),那么判断不等呢?我们用一个感叹号和一个等于号连接(!=)表示不等。对于数字来说,我们还可以判断是否大于(>)、小于(<)、大于等于(>=)、小于等于(<=)。判断的结果如果满足条件就是True,不满足条件就是False。

car = 'bmw'
print(car == 'bmw')
car = 'Audi'
print(car == 'audi')
car = 'Audi'
print(car != 'audi')
print()
age = 18
print(age < 21)
print(age <= 21)
print(age > 21)
print(age >= 21)

python re如何把人的姓名抽取出来_缩进_11

2)判断多个条件

除了判断一个条件之外,我们还可以判断多个条件,这个时候我们就需要使用关键字and和or来连接多个判断条件。and表示只有两个条件都为True时整个表达式为True,有一个为False整个表达式就为False;or表示至少有一个条件满足时为True,两个条件都为False时整个表达式才为False。

age_0 = 22
age_1 = 18
print(age_0 >= 21 and age_1 >=21)

age_1 = 22
print(age_0 >= 21 and age_1 >=21)

python re如何把人的姓名抽取出来_if语句_12

age_0 = 22
age_1 = 18
print(age_0 >= 21 or age_1 >=21)

age_0 = 18
print(age_0 >= 21 and age_1 >=21)

python re如何把人的姓名抽取出来_python_13

3)判断特定值是否包含在列表中

要判断特定的值是否包含在列表中,可以使用关键字in。首先我们创建一个奇数列表,然后判断3是否是奇数,再判断4是否是非奇数(偶数)。

odds = [1,3,5,7,9,11,13,15,17,19]
print(3 in odds)
print(4 not in odds)

python re如何把人的姓名抽取出来_元组_14

5)布尔表达式

布尔表达式的结果要么为True,要么为False,通常用于记录条件,比如说游戏是否正在运行:game_active = True,或者网站内容是否可以编辑:can_edit = False。

3.if语句

1)简单的if语句

简单的if语句只有一个测试和一个操作:

if 测试条件:
	执行操作

在if语句中,缩进的作用与for循环相同,如果条件测试通过,将执行if语句后面缩进的所有代码行,否则将忽略它们。

age = 19
if age >= 18:
    print("你到可以投票的年龄了!")
    print("你注册投票系统了吗")

python re如何把人的姓名抽取出来_python_15

2)if-else语句

经常需要在条件测试通过了时执行一个操作,在没有通过时执行另一个操作,这种情况下就可以使用if-else语句。

age = 17
if age >= 18:
    print("你到可以投票的年龄了!")
    print("你注册投票系统了吗?")
else:
    print("对不起,你还没有到投票的年龄")
print("请在18岁以后再注册投票系统!")

python re如何把人的姓名抽取出来_python_16

3)if-elif-else结构

经常出现需要判断条件超过两个的情况,这个时候可以使用if-elif-else结构。比如说老师给学生的成绩评等级:

  • 低于60分:不及格
  • 60-70分:及格
  • 70-80分:中
  • 80-90:良
  • 90-100:优
grade = 85
if grade < 60:
    print("不及格")
elif grade < 70:
    print("及格")
elif grade < 80:
    print("中")
elif grade < 90:
    print("良")
else:
print("优")

python re如何把人的姓名抽取出来_缩进_17

4)省略else代码块

Python并不要求if-elif结构后面必须有else代码块。

age = 12
if age < 4:
    price = 0
elif age < 18:
    price = 5
elif age < 65:
    price = 10
elif age >= 65:
    price = 5
print("你的门票价格是:" + str(price) + "。")

python re如何把人的姓名抽取出来_python_18

4.使用if语句处理列表

1)检查特殊元素

假设我们在一个比萨店里制作比萨,制作过程中会添加很多配料,但是有些配料会用完,这个时候我们需要输出一条提示显示这种配料已经用完。

requested_toppings = ['蘑菇','青椒','奶酪']
for requested_topping in requested_toppings:
    if requested_topping == '青椒':
        print("抱歉,青椒已经用完了")
    else:
        print("添加" + requested_topping + "。")
print("比萨制作完成")

python re如何把人的姓名抽取出来_缩进_19

2)确定列表不是空的
requested_toppings = []
if requested_toppings:
    for requested_topping in requested_toppings:
        print("添加" + requested_topping + "。")
    print("比萨制作完成")
else:
print("你想要一份招牌比萨吗?")

python re如何把人的姓名抽取出来_元组_20