- 切片 指定索引值,不指定索引的开始或结束,Python将从列表开头开始提取或至末尾才结束,负数索引返回离列表末尾相应距离的元素
name = ['a','b','c','d','e']
print (name[1:3])
输出
['b','c']
print (name[-2:])
输出
['d','e']
- 复制列表
原理:即创建一个包含整个列表的切片,
注意:不能简单的直接赋值,例如"name_new=name"这种是不正确的,实际上这种没有复制,而是共用
name_new = name[:]
print (name_new)
输出
['a','b','c','d','e']
- 元组 与列表类似,值也是与列表一样的展示语法,元组里的 元素不能修改
修改元组必须重新定义元组(另外一种说法是给元组变量赋值)
dimensions = (200, 50)
for dimension in dimensions:
print(dimension)
dimensions = (400, 100)#重新定义元组,原来的元组值失效
for dimension in dimensions:
print(dimension)
输出
200,50
400,100
- if 语句
几个常见判断符号:
【 == 】是否等于
【!=】 是否不等于
foods = ['a','b','c','D','e']
for food in foods:
if food.lower() == 'd': #注意这里将变量food都转换为转换为小写,此时不论输入是不区分大小写
print ('this:'+food)
else:
print (food)
条件语句中可包含各种数学比较,如小于、小于等于、大于、大于等于
a=15
if a != 17:
print ('数值合适')
b=16
if b <= 17:
print ('数值合适')
- and 与 or 及in 与 not in
a=15
if a>7 and a<16: # or 用法与and差不多,多条件筛选
print ('T')
else:
print ('F')
car = 'subaru'
print(car == 'subaru')
输出
true#输出时判断,直接输出True 或者 False
- if - else 如果...否则...
a=17
if a>15:
print('A')
else :
print('B')
输出
A
- if - elif -else 如果...否则如果...否则
如果符合条件则执行“:”后语句,其他判断就不再执行
a=17
if a>17:#若此处还是a>15 ,则代码执行到此处时就符合条件,输出 A
print('您的等级是 A')
elif a==17:
print('您的等级是 C')
else :
print('您的等级是 B')
输出
您的等级是 C
elif 可以多个重复使用,直到符合条件
使用多重时,上面的代码也可优化如下
a=18
if a>18:
result='A'
elif a==17:
result='C'
elif a==18:
result='D'
else :
result='B'
print('您的等级是'+result)
输出
C
注意:
1、else 只要不满足任何if 或elif 中的条件测试,其中的代码就会执行,这可能会引入无效甚至恶意的数据。如果知道最终要测试的条件,应考虑使用一个elif 代码块来代替else ,这样就可以肯定,仅当满足相应的条件时,你的代码才会执行。
2、if -elif -else 当满足条件时后面的代码就不会执行,有时候需要执行多个条件或者需要多个同时满足的条件,我们可以用连续的 if 来执行,一个if 相当于一个独立的语句
- 字典
字典 是一系列 【键—值】对,每个键 都与一个值相关联,与键相关联的值可以是数字、字符串、列表乃至字典,字典存储的是一个对象各种信息。字典是一种动态结构,可随时在其中添加【键—值】对,修改只需重新定义某键的值。
例1:
foods ={}
foods['a'] = 'a1'
foods ['b'] = 'b2'
print (foods)
输出
{'a':'a1','b':'b2'}
例2:
foods ={}
foods['a'] = 2
foods ['b'] = 3
foods ['money']='H'
if foods['money'] == 'L':
a1=1
elif foods['money'] == 'Y':
a1=2
elif foods['money'] == 'H':
a1=3
foods['a']= foods['a'] + a1
print ('You have to pay '+str(foods['a'])+' yuan')
输出
You have to pay 5 yuan
删除【键—值】:del foods['a'] #删除操作是永久操作不可恢复
- 遍历字典
items() 方法以列表返回可遍历的(键, 值) 元组数组 如下例1
keys() 方法返回键 keys()可以省略,因为默认输出就是键,如下例2
values()方法返回值 如下例3
例1
foods ={
'a':'a1',
'b':'b1',
}
for k,v in foods.items():
print ('this k '+k+'this v '+v)
输出
this k a this v a1
this k b this v b1
例2、例3
foods ={
'a':'a1',
'b':'b1',
}
for k in foods.keys(): #例2,此处的keys()可以省略,输出的值一致
print ('this k '+k)
for v in sorted(foods.values()): #例3,sorted()函数,对结果进行排序
print ('this v '+v)
输出
this k a
this k b
this v a1
this v b1
遍历到某值时加以利用,如下
love = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
friends = ['phil', 'sarah']
for name in love .keys():
print(name.title())
if name in friends:
print(" Hi " + name.title() +
", I see your favorite language is " +
love [name].title() + "!")
输出
Jen
Sarah
Hi Sarah, I see your favorite language is C!
Edward
Phil
Hi Phil, I see your favorite language is Python!
set()使集合的值独一无二,可在输出集合的适合加上。
如下
love = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
for v in sorted(set(love.values())): #去重后排序
print (v.title())
输出
C
Python
Ruby
- 字典的嵌套
列表中嵌套字典,例如:
foods =[]
for food_number in range(5):
food_1={'食物':'蔬菜','烹饪':'清蒸','盐':'少',}
foods.append(food_1)
for food in foods[0:2]: #对前两个字典进行修改
if food['食物']=='蔬菜':
food['食物']='娃娃鱼'
food['烹饪']='红烧'
food['盐']='多'
for food in foods:
print (food)
print ("数量:"+str(len(foods))) #整型,统计
输出
{'食物': '娃娃鱼', '烹饪': '红烧', '盐': '多'}
{'食物': '娃娃鱼', '烹饪': '红烧', '盐': '多'}
{'食物': '蔬菜', '烹饪': '清蒸', '盐': '少'}
{'食物': '蔬菜', '烹饪': '清蒸', '盐': '少'}
{'食物': '蔬菜', '烹饪': '清蒸', '盐': '少'}
数量:5
字典中嵌套列表,例如:
Recipes={'食物名':'红烧鱼','配料':['辣椒','蒜','桂皮'],}
print("您点的食物为:"+"“"+Recipes['食物名']+"”"+"\n其的配料包括:")
for peiliao in Recipes['配料']:
print(peiliao)
输出
您点的食物为:“红烧鱼”
其的配料包括:
辣椒
蒜
桂皮
字典中嵌套字典,例如:
users = {'15255554444':{
'姓':'张','名':'三','评分':'75',
},
'18555556666':{
'姓':'李','名':'四','评分':'87',
},
'13211115874':{
'姓':'李','名':'四','评分':'95',
},
} #用手机号作为账号(键),后面跟账号的信息
for username,userinfo in users.items():
print ("\n"+userinfo['姓']+userinfo['名']+"("+username+")"+"您的评分为:"+userinfo['评分']+"。")
输出
张三(15255554444)您的评分为:75。
李四(18555556666)您的评分为:87。
李四(13211115874)您的评分为:95。