Python的听课笔记案例5--判别第几天4.0
原创本课是《审时度势》的第一课4本课重点介绍本例中词典类型的应用。
词典类型(dict)“键--Value“数据项组合,每个元素都是一个键-值对(任何类型都可以用作键)。
例如:ID号(密钥)--个人信息(价值)
字典类型数据通过映射查找数据项。
映射:通过任何键在集合中查找值的过程。
字典类型按键索引,一个键对应一个值。
字典类型数据顺序错误。
1.关于词典的运作情况:
1,初始化空词典:d = dict()
2,要添加一个值的字典:d[key] = value
3词典修改一个值:d[key] = new_value
4,字典删除一个值:del d[key]
5,访问词典中的项:d[key]
6,查看词典中的所有项目:d
7,查看某个项目是否在词典中:key in d 在词典中返回:true;不在词典中返回:false。
8,遍历词典。key:d.keys()
9,遍历词典。value:d.values()
10,遍历词典。所有项:d.items()
d = dict()
d
{}
print(d)
{}
d[egg] = 2.59
d
{egg: 2.59}
d[milk] = 3.51
d[cheese] = 4.9
d
{egg: 2.59, milk: 3.51, cheese: 4.9}
d[egg] = 10.99
d
{egg: 10.99, milk: 3.51, cheese: 4.9}
del d[cheese]
d
{egg: 10.99, milk: 3.51}
milk in d
True
yogurt in d
False
d.keys()
dict_keys([egg, milk])
d.values()
dict_values([10.99, 3.51])
d.items()
dict_items([(egg, 10.99), (milk, 3.51)])
2.使用字典类型来判断日期。
"""
作者:langxingbudui
版本:4.0
日期:2019-06-17
功能:输入某一年的某一天,判断这一天是一年中的哪一天?
2.0添加函数:使用列表而不是元组
3.0新增功能:分月后再进行运算
4.0新增功能:月份及其对应的天数由字典表示。
"""
from datetime import datetime
def is_leap_year(year):
"""
判断year今年是闰年吗?
是,返回True
否,返回False
"""
is_leap = False
if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
is_leap = True
return is_leap
def main():
"""
主函数
"""
input_date_str = input(请输入日期(yyyy/mm/dd):)
input_date = datetime.strptime(input_date_str, %Y/%m/%d)
# print(input_date)
year = input_date.year
month = input_date.month
day = input_date.day
# 月份_天数 字典
month_day_dict = {1: 31,
2: 28,
3: 31,
4: 30,
5: 31,
6: 30,
7: 31,
8: 31,
9: 30,
10: 31,
11: 30,
12: 31}
# 初始化值
days = 0
days += day
for i in range(1, month):
days += month_day_dict[i]
if is_leap_year(year) and month > 2:
days += 1
print(这是{}年的第{}天.format(year, days))
if __name__ == __main__:
main()
3.问题:字典中可以互换月和日吗?
day_month_dict = {30: {4, 6, 9, 11},
31: {1, 3, 5, 7, 8, 10, 12}}
这个想法是建立在收集的方法上的。如果你有更好的想法,请分享并虚心学习。
"""
作者:langxingbudui
版本:4.0
日期:2019-07-05
功能:输入某一年的某一天,判断这一天是一年中的哪一天?
2.0添加函数:使用列表而不是元组
3.0新增功能:分月后再进行运算
4.0新增功能:月份及其对应的天数由字典表示。
4.0思考问题:颠倒词典中月和日的顺序
"""
from datetime import datetime
def is_leap_year(year):
"""
判断year今年是闰年吗?
是,返回True
否,返回False
"""
is_leap = False
if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
is_leap = True
return is_leap
def main():
"""
主函数
"""
input_date_str = input(请输入日期(yyyy/mm/dd):)
input_date = datetime.strptime(input_date_str, %Y/%m/%d)
# print(input_date)
year = input_date.year
month = input_date.month
day = input_date.day
"""
# 月份_天数 字典
month_day_dict = {1: 31,
2: 28,
3: 31,
4: 30,
5: 31,
6: 30,
7: 31,
8: 31,
9: 30,
10: 31,
11: 30,
12: 31}
"""
# 天数_月份 字段 --思考题与上一组类似。
day_month_dict = {30: {4, 6, 9, 11},
31: {1, 3, 5, 7, 8, 10, 12}}
# 初始化值
days = 0
days += day
for i in range(1, month):
if i in day_month_dict[30]:
days += 30
elif i in day_month_dict[31]:
days += 31
else:
days += 28
if is_leap_year(year) and month > 2:
days += 1
print(这是{}年的第{}天.format(year, days))
if __name__ == __main__:
main()
下图是本例中使用的知识点的汇总:

版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123




