2019年4月26日 星期二
只要愿意学习,就一定能够学会。 —— 列宁
第九周学习笔记:
(1)练习作业:
①输入5个同学的name,weight,height.请根据BMI公式(体重除以身高的平方)分别求出他们的BMI指数,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
正确答案
对比自己的练习
[差距:①逻辑思维还需缜密一些②注意缩进符号Tab键:如果全篇(就是python代码)没有缩进“tab”,那说明没有for while if
else eilf 等条件(流程)控制语句和循环控制语句]
②猜数字:
编写一个猜数字的小游戏,随机生成一个1-10(包括1和10)之间的数字作为基准数,玩家每次通过键盘输入一个数字,如果输入的数字和基准数相同,则成功过关,否则重新输入,如果玩家输入-1,则表示退出游戏。效果图如下:
提示:
import random # 导入随机数模块
random = random.randint(1, 10) # 生成1到10之间的随机数
效果图如图所示
正确答案
对比自己的练习
[差距:逻辑思维还需缜密一些,比如及时触类旁通,运用新的知识]
③
正确答案
对比自己的练习
(2)基本数据类型:字符串,整数,浮点数,布尔值,空值
集合:list(列表),tuple(元祖)
数据类型:dict(全称dictionary)字典
列表(list):相当于一种数据类型的一个有序的集合:条件判断,循环
①四种方法:可以任意随时添加和删除其中的元素:用[]表示。
添加元素:append() : 在列表最后插入元素 (一个参数)
insert():在指定索引处,插入元素。(两个参数)
删除元素:pop():删除列表当中最后一个元素
pop(index): 删除指定索引的元素
②语法以及定义方式:定义变量名classmates= [] : []------方括号表示集合;
判断长度:list索引,list列表当中最后一个元素索引的求法。
元祖(tuple):相当于一种数据类型的一个有序的集合,不能添加或删除元素。即:tuple一但初始化就不能修改,没有list的添加删除方法(没有append(),insert(),pop()等方法)。
①定义:L=() ,其他和list相同,eg:索引表示,计算tuple长度:len()。
②tuple的意义优点:代码更安全,如果可能用tuple代替list就尽量用tuple。
③list = [[]] : 二维列表(touple插入list,如果tuple里面有list,那么可以改变list的元素。)
tuple = ([1,2,3],[4,5,6],[7,8,9]),可以这样添加元素print(tuple[0].append(122))。
如果touple里面有list,那么可以改变list元素。
④tuple 的缺点:当你定义一个tuple时,在定义的时候,tuple 的元素就必须被确定下来。
eg:>>>(进入python交互界面) t = (1,2)>>> t (1,2)
好处:一行一行代码的输入
定义一个空tuple: tuple = (),定义只有一个元素的tuple:tuple = (1,)
字典(dict):使用键-值对(key-value)存储方式。
①优点:具有极速的查找速度。
②和list相比,dict的优缺点
查找和插入的速度快,不会随着key的增加而增加
需要占用大量内存,内存浪费
③list 优缺点
查找和插入的时间,随着元素的增加而增加,占用空间小,浪费内存小。
dict的注意事项
字典当中的key是不可变对象,唯一,不能重复
通过key计算位置的算法(字典),我们称为: 哈希算法
a = {1:“asd”,1:“qwe”}
print(a)
Eg:
列表:username=[“lisi””wangwu”]
Score=[3,4]
字典:用大括号表示
D={‘lisi’:3,”wangwu”:4}
dic1 = {“zhangsan”:[180,87,98]}
如何取87
l = dic1[“zhangsan”]
l[1]
print(dic1[“zhangsan”][1])
dic2 = {‘lisi’:{“爱好”:[1,2,3],“score”:98}}
如何取3
a = dic2[‘lisi’][“爱好”][2]
print(a)
(3)循环控制语句:也运用了if-else语句,比如用户输入(input)自己的名字、体重、身高,程序运行一次后结束。
定义userName(驼峰命名法)
userName = [‘zhangsan’, ‘lisi’, ‘wangwu’, ‘xiaoming’, ‘小红’]如何打印输出userName里面的每一个元素?通过索引获取
如果列表list里面有100这样的元素怎么办?
list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
Python 的循环有两种,一种是 for…in 循环,依次把 list 或 tuple 中的每个元素迭代出来
①for循环语法:
for 迭代变量(随意取) in 对象(序列:列表,元祖,字符串):
(这有一个Tab键)循环体
流程图:
项:元素
userName = [‘zhangsan’, ‘lisi’, ‘wangwu’, ‘xiaoming’, ‘小红’]
for name in userName:
print(name)
for name in userName: 循环就是把userName 的每个元素代入变量name,然后执行缩进块的语句
注意:
1.name变量的名字是我们随便取的(人为定义),但是一般情况下要遵循驼峰命名法。也就是你自己要清楚你取的名字的意思。(输出)
2.userName —一般情况下是可以迭代的元素,如list,tuple和字符串。
3.低层运行流程:
首先,判断userName里面是否有第一个元素,如果有,将userName 的第一个元素的值赋值给 name。如果没有,则结束循环。然后,判断userName里面是否有下一个元素,如果有,将userName 的下一个元素的值赋值给name。如果没有,则结束循环。
4.注意一定要有冒号
练习:函数range(N)—生成0-N个元素组成的列表,[0,N)左闭右开;range(m,n)----生成m-n个元素组成的列表range(0,100,2)—在[0-99)中,以step=2的间隔生成元素,组成列表。
other = range(100)
print(other)生成的变量用other去装它
计算 1-10的整数之和:
解释:
sum = 0+1 -----> sum=1
sum = 1+2 ------> sum = 3
sum = 3+3 -----> sum =6
…
sum = sum+10 -----> sum=55
计算机当中: sum= sum+i
一般写成 sum+=i
计算1-100的整数之和:
计算1-100的偶数之和:
计算1-100的奇数之和:
②**while 循环语法:**满足条件就执行:布尔值
while 条件表达式:
循环体
流程图:
第二种循环是 while 循环,只要条件满足,就不断循环,条件不满足时退出循环。
计算 100 以内所有奇数之和:
在循环内部变量 n 不断自减,直到变为-1 时,不再满足 while 条件,循环退出。
continue语句会立即跳到循环的顶端,即跳过本次循环,执行下一次循环
break 语句会立即离开循环
(4)条件控制语句:If如果、else那么
根据python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了。
如果if语句判断是False,就不执行。(否则什么都不做)