条件判断
方法一:if...else语句
1 | if <条件1>: |
方法二:if ...elif...else语句
1 | if <条件1>: |
input条件输出
input()返回值的数据类型是str,str不能直接与整数比较,若要与整数比较,要先把str转换为整数类型,如下代码所示:
1 | s = input('birth: ') |
若输入值不为数字时,如输入abc,则条件语句可写成:
1 | s=input('birth:') |
练习题
小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
- 低于18.5:过轻
- 18.5-25:正常
- 25-28:过重
- 28-32:肥胖
- 高于32:严重肥胖
用if-elif
判断并打印结果:
代码如下:
1 | # -*- coding: utf-8 -*- |
循环
方法一:for...in循环
例如计算1-100的整数之和: 1
2
3
4t=0
for i in range(101):
t=t+i
print(t)
方法二:while 循环
例如计算100以内所有奇数之和:
1 | t=0 |
练习题
请利用循环依次对list中的每个名字打印出Hello, xxx!
:
1 | # -*- coding: utf-8 -*- |
break与continue
break语句可提前退出循环,continue语句可跳过当前这次循环,直接开始下一次循环。
字典dict
字典使用键-值存储,具有极快的查找速度。dict内部存放的顺序与key的放入顺序无关。为保证哈希的正确性,dict的key必须是不可变对象,如list是可变的,不能作为key,dict的key不能重复。
与list相比,dict的特点为:
- 查找和插入的速度极快,不会随key的增加而变慢
- 需要占用大量内存
形式如下:
1 | d={'Zhangsan':92,'Lisi':80,'Wangwu':56} |
通过key将数据放入dict
如把key为Lisi、value为68的数据放入dict:d['Lisi']=68
注意:多次对一个key放入value,后面的值会把前面的值冲掉,如此时Lisi的value值由80变成了68。
删除一个key
如要删除Lisi,其对应的value也会从dict中删除:d.pop('Lisi')
避免key不存在的错误
方法一:
通过in
判断key是否存在:'Jack' in d
方法二:
通过get()
方法判断key是否存在,若key不存在,默认返回Nome
:d.get('Jack')
通过get()
方法判断key是否存在,若key不存在,返回指定的value:d.get('Jack',-1)
集合set
set与dict类似,也是一组key的集合,但不存储value。与dict相同,key不能重复,故在set中没有重复的key,也同样不能放入可变对象。此外,set也可看成数学意义上无序和无重复元素的集合。
创建一个set,需要提供一个list作为输入集合,其形式如下:
1 | s=set([1,2,3]) |
注意:传入的参数是一个list,而显示的{1,2,3}
只是说明set内部有1,2,3这3个元素,显示的顺序也不代表set就是有序的。
重复元素在set中自动被过滤
如下面所示:
1 | s=set([1,1,2,2,3,3]) |
通过add(key)
方法将元素添加到set中
如在set中先后两次添加元素4:
1 | s=set([1,2,3]) |
可以看到,元素可以重复添加,但会被set自动过滤掉重复的元素。
通过remove(key)
方法删除元素
如删除元素4:
1 | s=set([1,2,3,4]) |
两个set可以做交集、并集等操作
1 | s=set([1,2,3,4]) |
小结
list、tuple是有序可重复的
dict、set是无序不可重复的
四者形式上的区别:
1 | list=[value,value] |