九、条件
本章内容运行环境:
Jupyter Notebook
本单元视频链接:https://v.youku.com/v_show/id_XNDYzMDc0NzYwMA==.html
9.1 布尔值
布尔值,Python中有专门的数据类型:bool
布尔值有两个:True
和 False
(首字母须大写),也被称作布尔变量
9.2 运算符
==
和!=
,分别表示“相等”和“不等”
name = "yangyang" # 这是赋值
name == "yangyang" # 这是判断:是否相等
# 如果相等,返回True
# 如果不相等,返回False
18 == 19 # 返回False
18 != 19 # 返回True
> 、< 、 >= 、<=
分别对应:大于、小于、大于等于和小于等于四种比较关系
9.3 逻辑符号
-
and
:将两个条件判断联结起来,只有当前后两个条件都为 True时,整个 and 联结条件才判断为 True,否则为 False -
or
:前后至少有一个 True,则 or 联结的整个判断条件为 True。如果 or 前后都是 False,则 or 联结的整个判断条件也为 False -
not
:当 not 放在 True 或者 False 之前,得到相反的逻辑值结果
a>18 and a<20 # and
a<18 or a>20 # or
not(a<18) # not
9.4 if 语句
条件语句遵循以下基本逻辑:如果……,那么……
-
if
等同于 “如果”, : 等同于 “那么”。另外,在if 语句下方的代码,需要缩进 -
else
一般在条件判断的结尾,判断那些没有满足 if 条件的状况 -
elif
是 else if 的缩写,当elif
之前的条件不被满足时,计算机会验证elif
中的判断条件是否为True
a = 3
if a > 2:
print("a大于2")
elif a > 1:
print("a大于1")
# 输出:
# a大于2
9.5 实践
【小练习】
-
用代码打印出一个菱形
image 鸡兔同笼,头35,脚94。问鸡和兔各有几只?
打印出所有的水仙花数,水仙花数的要求是一个三位数(比如153),满足这个规律:153=1^3+5^3+3^3
有一个单词和一个字符串,判断字符串是否可以扩展成这个单词
参考答案:Python:小练习
【实践】
在昨天清洗扇贝打卡的基础上,进阶一下
- 获取10个人的打卡数据
- 计算他们最近7天的打卡情况(单词部分)
- 如果他们7天内,总学习时间超过1小时,判定为“学习认真”
- 如果没有超过1小时,判定为“需要继续努力呀”
IDs = ['49793185','60782137','210260232','40793353','41273824','64839964','66470683','37166209',
'58575787','2492821'] # 扇贝ID
# 输出:
# 最近一周,Lily Cao背单词125个,用时55.0分钟,需要继续努力呀
# 最近一周,o蟲o背单词300个,用时87.0分钟,学习认真
# 最近一周,莲背单词420个,用时81.0分钟,学习认真
# 最近一周,罱背单词140个,用时95.0分钟,学习认真
# 最近一周,Abbey?背单词700个,用时375.0分钟,学习认真
# 最近一周,Melody背单词700个,用时64.0分钟,学习认真
# 最近一周,一棵甜橙树背单词200个,用时53.0分钟,需要继续努力呀
# 最近一周,lj背单词239个,用时57.0分钟,需要继续努力呀
# 最近一周,i think i背单词300个,用时57.0分钟,需要继续努力呀
# 最近一周,珊瑚背单词350个,用时106.0分钟,学习认真
参考代码
import requests # 导入requests模块
IDs = ['49793185','60782137','210260232','40793353','41273824','64839964','66470683','37166209',
'58575787','2492821'] # 扇贝ID
for ID in IDs:
web = "https://www.shanbay.com/api/v1/checkin/user/"+str(ID)+"/" # 网址:打卡记录
res = requests.get(web) # requests发起请求,静态网页用get
LearningData = res.json() # LearningData就是字典格式
NickName = LearningData['data'][0]['user']['nickname'] # 获取昵称
bdc_num = 0
bdc_used_time = 0
for day in range(7):
LearningDataDaily = LearningData['data'][day]
checkin_date = LearningDataDaily['checkin_date']
try:
bdc_num += LearningDataDaily['stats']['bdc']['num_today']
bdc_used_time += LearningDataDaily['stats']['bdc']['used_time']
except:
bdc_num += 0
bdc_used_time += 0.0
if bdc_num > 60:
print("最近一周,{}背单词{}个,用时{}分钟,学习认真".format(NickName,bdc_num,bdc_used_time))
else:
print("最近一周,{}背单词{}个,用时{}分钟,需要继续努力呀".format(NickName,bdc_num,bdc_used_time))
请在作业的最后一行输出:
昵称:第7节课作业