1.list与tuple:
1).list--列表:
- list是一种有序的集合,可以随时添加和删除其中的元素;list里面的元素的数据类型也可以不同,也可以是另一个list:看成是一个二维数组
- 用
len()
函数可以获得list元素的个数, - 用索引来访问list中每一个位置的元素,记得索引是从
0
开始的,
记得最后一个元素的索引是len(classmates) - 1,
如果要取最后一个元素,除了计算索引位置外,还可以用-1
做索引,直接获取最后一个元素,以此类推,倒数第二个为-2...
- list.append():表示为原有list添加元素至末尾,
- list.insert(位置,‘元素’):表示插入至指定位置
- list.pop():表示删除末尾元素;list.pop(位置):表示删除指定位置元素
- 如果是将指定位置替换为别的元素,也可以直接赋值:list[i]='A'
- 如果一个list中一个元素也没有,就是一个空的list,它的长度为0。
2).tuple--有序列表--元组:
- tuple不可变,所以代码更安全--如果可能,能用tuple代替list就尽量用tuple。
- tuple和list非常类似,但是tuple一旦初始化就不能修改
- 没有append(),insert()这样的方法,但获取元素的方法是一样的,只是不能赋值成另外的元素
- tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来
- 如果要定义一个空的tuple,可以写成
();
只有1个元素的tuple定义时必须加一个逗号 可变的tuple:
tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a'
,就不能改成指向'b'
,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
小结:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
L=[['Apple', 'Google', 'Microsoft'],
['Java', 'Python', 'Ruby', 'PHP'],
['Adam', 'Bart', 'Lisa']]
# 打印Apple:
print(L[0][0])
# 打印Python:
print(L[1][1])
# 打印Lisa:
print(L[2][2])
2.条件判断:
- if、if...else、if...elif...(elif...)else
if
语句执行有个特点,它是从上往下判断,如果在某个判断上是True
,把该判断对应的语句执行后,就忽略掉剩下的elif
和else
小结:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
height = 1.75
weight = 80.5
bmi=weight/(height*height)
if bmi<=18.5:
print('过轻')
elif bmi<=25:
print('正常')
elif bmi<=28:
print('过重')
elif bmi<=32:
print('肥胖')
else:
print('严重肥胖')
3.循环:
- Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来;第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。
- 如果要计算1-100的整数之和,从1写到100有点困难,幸好Python提供一个
range()
函数,可以生成一个整数序列,再通过list()
函数可以转换为list。比如range(5)
生成的序列是从0开始小于5的整数。 - 在循环中,
break
语句可以提前退出循环;在循环过程中,也可以通过continue
语句,跳过当前的这次循环,直接开始下一次循环。
要特别注意,不要滥用break
和continue
语句。break
和continue
会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到break
和continue
语句,上面的两个例子,都可以通过改写循环条件或者修改循环逻辑,去掉break
和continue
语句。
有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时可以用Ctrl+C
退出程序,或者强制结束Python进程。
小结: