操作列表
在python中有几个专门用来处理数字的python函数,用这些值可以方便我们对于复杂数据的处理
dights=[1,2,3,4,5,6,7,8,9,0]
min(dights)
0
max(dights)
9
sum(dights)
45
min代表了最小值输出就是0
max代表了最大值输出就是9
sum代表了和输出就是45
切片
当时我们在说del删除的时候说过一下切片,要创建切片,需要指定第一个元素和最后一个元素的索引,当然与函数range(),一样想要输出的索引一定是在数字后面的一位。
例如
classnumbers=['zhang','wang','su','meng','fan','chu']
print(classnumbers[0:3])
['zhang','wang','su']
从0索引开始也就是第一个开始到了第三个结束。当你输入[0:4]时将会输出从‘zhang’到‘meng’
当python没有第一个索引时将会自动从列表开头开始。
例如
classnumbers=['zhang','wang','su','meng','fan','chu']
print(classnumbers[:5])
['zhang','wang','su','meng','fan']
当你想让切片终止与列表的末尾时可以用类似的办法,加入说你想从列表中提取第三个元素,到最后一个元素。
classnumbers=['zhang','wang','su','meng','fan','chu']
print(classnumbers[2:])
['su','meng','fan','chu']
直接将列表输出到了末尾。
又或者只想要列表中的后三名,这时候我们需要输入
classnumbers=['zhang','wang','su','meng','fan','chu']
print(classnumbers[-3:])
['meng','fan','chu']
有的情况下我们需要将切片与其他结合使用在for循环中也是可以使用的。
classnumbers=['zhang','wang','su','meng','fan','chu']
for classnumber in classnumbers[:3]:
print(classnumber.title())
Zhang
Wang
Su
我们经常需要根据已有的列表来创建一个新的列表,这就需要用到列表复制,想要复制列表可以创建一个包含整个列表的切片,整个列表的切片就是省略了两个索引的切片[:],假如一个社团里有三个人另一个社团中还包括这三个人,这时我们就可以直接复制列表。
numbers=['zhang','wang','su']
a_numbers=number[:]
print(numbers)
prnit(a_numbers)
['zhang','wang','su']
['zhang','wang','su']
虽然有相同的三个人但是还可能会有不同的人,这时候可以使用append()进行添加。比如第一个社团里还有meng,a社团里还有fan。
numbers=['zhang','wang','su']
a_numbers=number[:]
numbers.append('meng')
a_numbers.append.('fan')
print(numbers)
print(a_numbers)
['zhang','wang','su','meng']
['zhang,'wang','su','fan']
在两个社团中,第一个社团里有’meng’在,第二个社团里有’fan’在,如果我们不使用切片复制的话直接赋值,这个meng和fan两个将会同时出现在两个列表中。
元组
在python中列表是可以修改的但是你会遇上一些不能更改的数据,这个时候就要用上元组了,元组是不可被修改的,不同于列表他是在()中,虽然不能修改但是还是可以像列表一样被索引访问的。
dimensions=(200,50)
print(dimensions[0])
print(dimensions[1])
200
50
我们首先设定了一个大小不改变的矩形,将其长度宽度都存储在一个元组中,然后访问索引0和1成功输出了元组中0和1的内容。
如果我们尝试修改元组中的元素。
dimensions=(200,50)
dimensions[0]=250
这时这种操作是被python禁止的,python会指出不能给元组的元素赋值。
我们可以使用for循环来遍历元组里面的所有值.
dimensions=(200,50)
for dimension in dimensions:
print(dimension)
200
50
虽然我们不能修改元组的元素,但是我们可以给储存元组的变量赋值,可以重新定义整个元组。
dimensions=[200,50]
for dimension in dimensions:
print(dimension)
dimensions=[400,100]
for dimension in dimensions:
print(dimension)
200
50
400
100
if语句
在许多情况下有的程序运行中是需要条件的,比如车的名字BMW就需要全部大写,而其他的汽车品牌可能只需要首字母大写。
cars=['audi','bmw','subaru','toyota']
for car in cars:
if car=='bmw':
print(car.upper())
else:
print(car.title())
Audi
BMW
Subaru
Toyota
这个循环中先检查了当前汽车名是否为bmw,如果为bmw就会以全大写的方式打印,否则就会以首字母大写的方式打印。
每条if语句的核心都是一个值为true获false的表达式,这种表达式成为条件测试。python根据条件测试的值来决定是否执行if后面的代码,如果条件为true就执行,如果为false就忽略。
将一个值与前面的变量相比较如果相等就是true不相等就是false。
car='bmw'
car=='bmw'
true
car='audi'
car=='bmw'
flase
使用==检查car的值是否与前面变量的值相等。
python在检查是否相等的时候会区分大小写的问题
car='audi'
car='Audi'
false
如果大小写在你的程序中很重要那么这将是一种优点,如果不用区分大小写,你可以将变量的值转换大小写进行比较。
car='Audi'
car.lower()=='audi'
ture
car
'Audi'
首先将首字母大写的字符串’Audi’赋给变量car,之后获取变量car的值将其转换为小写,与’audi’作比较,因为两个字符串相同,所以输出的是ture,从后面的car的输出可以知道lower.()没有影响到变量car的值。
想要判断两个值是否不等,可以使用!=,其中的感叹号表示’不‘
下面的一个代码用if语句演示如何使用不等运算符。
car='bmw'
if car !='toyota':
print("sorry")
sorry
我们现将car赋值为bmw然后使用if语句判断car是否等于toyota如果不等于将会输出sorry。由于car的赋值为bmw不是toyota所以将会执行函数print()。
我们想要比较数值,比如想看一个人是否18岁,我们可以使用符号进行比较。
age=18
age==18
ture
第一个是在给age附一个值18,第二个两个等号是在判断是否age的值为18,如果是18,那么结果就是ture。
当然也会有答案不正确的时候。
answer=17
if answer!=47
print(you is a loster)
you is a loster
这里我们先给answer付了一个值17,之后我们使用if语句判断这个值是否为47,!=表示不是的意思,如果不是47将会输出you is a loster。
在if语句中可以使用任何比较的符号。
当你想要检查多个条件的时候,可以使用and进行并列,如果与and并列的两个条件中两个条件都通过了,那么表达式答案就为ture,如果表达式中有一个没有通过那么答案就为false。
例如
age_0=22
age_1=18
age_0>=21 and age_1>=21
false
age_0=22
age_1=22
age_0>=21 and age_1>=21
ture
使用or也可以进行检查,但是对于or来说只要至少一个条件满足,就可以通过整个测试,只要当两个都没有通过是结果才会为false。
age_0=22
age_1=18
age_0>=21 and age_1>=21
ture
age_0=19
age_1=18
age_0>=21 and age_1>=21
false
我们有时需要检查特定值是否包含在列表中,要判断特定的值是否已包含在列表中,可以使用关键词in。
例如:
cars=['bmw','audio','toyota']
'bmw' in cars
ture
'hongqi' in cars
false
还有些时候,确定特定的值未包含在列表中很重要,我们可以使用not in。
例如:
banned_user=['andrew','carolina','david']
user='marie'
if user not in banned_user:
print(f"{user.title(),you can post a response if you wish.")
Marie,you can post a response if you wish.
布尔达表达式是你将会遇到的一个术语,其实他就是条件测试的别名,布尔表达式的结果要么是ture要么是false。