一、实验目的
1、掌握函数的概念,使用场景和使用步骤;
2、掌握递归函数的概念,使用场景和使用步骤;
3、掌握常见内置函数的使用场景和使用步骤;
二、实验环境
装有Python运行环境、Pycharm平台的PC电脑一台
三、实验内容
1、编写程序,用于实现十进制转二进制、八进制、十六进制。
2、编写一个程序,实现斐波那契数列。
3、请编写程序,用于生成指定日期的日历。
4、通过导入 datetime 模块来获取昨天的日期。
5、将书中P113页的“名片管理系统”实现出来,并运行查看结果;
"""5、将书中P113页的“名片管理系统”实现出来,并运行查看结果;"""# 1打印功能提示def show_menu():'''这是显示菜单界面'''print('=' * 20)print('---名片管理系统---')print('1:添加一个新的名片')print('2:删除一个名片')print('3:修改一个名片')print('4:查询一个名片')print('5:显示所有的名片')print('6:退出系统')print('=' * 20)# 用来存储名片card_infors = []while True:# 2获取用户选择show_menu()num = input('请输入操作序号:')if num.isdigit():num = int(num)if num == 1:new_name = input('请输入名字:')new_qq = input('请输入QQ:')new_weixin = input('请输入微信:')new_addr = input('请输入新的住址:')# 定义一个新的字典,用来存储一个新的名片new_infor = {}new_infor['name'] = new_namenew_infor['qq'] = new_qqnew_infor['weixin'] = new_weixinnew_infor['addr'] = new_addr# 将一个字典,添加到列表中card_infors.append(new_infor)#print(card_infors) # for testelif num == 2:del_name = input("请输入要删除的名字:")find_flag = Falsefor line in card_infors:if line['name'] == del_name:find_flag = Truecard_infors.remove(line)breakif find_flag:print("已删除!")else:print("输入的用户名不存在")# print(card_infors) for testelif num == 3:old_name = input('请输入要修改的姓名:')flag = 0for line in card_infors:if line['name'] == old_name:new_name = input('姓名:')# new_qq = input('年龄:')new_weixin = input('微信:')new_addr = input('住址:')line['name'] = new_nameline['qq'] = new_qqline['weixin'] = new_weixinline['addr'] = new_addrflag = Truebreakif flag:print("已修改!")else:print('输入的用户不存在!')elif num == 4:find_nmae = input("请输入要查找的姓名:")find_flag = 0 # 默认表示没有找到for temp in card_infors:if find_nmae == temp['name']:print("姓名\tQQ\t微信\t住址\t")print('%s\t%s\t%s\t%s' % (temp['name'], temp['qq'], temp['weixin'], temp['addr']))find_flag = 1 # 表示找到了break# 判断是否找到if find_flag == 0:print('没有找到')elif num == 5:print("姓名\tQQ\t微信\t住址\t")for temp in card_infors:print('%s\t%s\t%s\t%s\t' % (temp['name'], temp['qq'], temp['weixin'], temp['addr']))elif num == 6:breakelse:print('输入有误!请重新输入')continueprint('')else:print("输入错误,请重新输入!")

6、将书中P130页的“学生管理系统”实现出来,并运行查看结果;
"""5、将书中P113页的“名片管理系统”实现出来,并运行查看结果;"""student_info_lst = [] # 保存所有学生的信息'''[{'name':'zs',.......},{'name':'ls',.......},]'''def show_menu():'''这是显示菜单界面'''print('------------欢迎来到学生管理系统--------------')print('新增学员请按[1]')print('显示全部请按[2]')print('查询学员请按[3]')print('退出系统请按[0]')def add_student():'''这是新增学员功能'''print('-------------这是新增学员功能----------------')name = input('请输入姓名:')age = input('请输入年龄:')gender = input('请输入性别:')tel = input('请输入手机号码:')# print(name, age, gender, tel)# 将用户输入的信息保存到一个字典中dic = {}dic['name'] = namedic['age'] = agedic['gender'] = genderdic['tel'] = tel# print(dic)# 注意:将用户的信息保存到一个全局变量 student_info_lst 中# 列表中,让其他功能使用列表中的数据student_info_lst.append(dic)# print(lst)def alignment(s, space):'''动态获取长度'''s1 = s.encode('gbk')lenght = len(s1)space = space - lenghts = s + space * ' 'return sdef show_all_student():print('-----------显示所有的学员功能---------------')if not student_info_lst:print('还没有学员呢,请添加学员')return# 显示学员信息# print('name\tage\tgender\tel')# print('name', 16 * ' ', 'age', 17 * ' ', 'gender', 15 * ' ', 'tel')name = alignment('name', 15)age = alignment('age', 15)gender = alignment('gender', 15)tel = alignment('tel', 15)print(name, age, gender, tel)for dic in student_info_lst:name = dic['name']age = dic['age']gender = dic['gender']tel = dic['tel']# print('{}\t{}\t{}\t{}'.format(name, age, gender, tel))# print(name, (20 - len(name)) * ' ', age, (20 - len(name)) * ' ', gender, (20 - len(name)) * ' ', tel)name = alignment(dic['name'], 15)age = alignment(dic['age'], 15)gender = alignment(dic['gender'], 15)tel = alignment(dic['tel'], 15)print('{}\t{}\t{}\t{}'.format(name, age, gender, tel))def modify_student(old_value, msg):new_value = input(msg)if new_value.strip():'''msg有内容'''return new_valueelse:'''msg有内容'''return old_valuedef deal_student(dic):'''修改和删除学员信息'''action_str = input('【1】修改 【2】删除 【0】返回上一级菜单,请选择要执行的操作:')if action_str == '1':'''修改学员信息'''# name = input('请输入姓名:')# age = input('请输入年龄:')# gender = input('请输入性别:')# tel = input('请输入手机号码:')name = modify_student(dic['name'], '请输入姓名:')age = modify_student(dic['age'], '请输入年龄:')gender = modify_student(dic['gender'], '请输入性别:')tel = modify_student(dic['tel'], '请输入手机号码:')dic['name'] = namedic['age'] = agedic['gender'] = genderdic['tel'] = telelif action_str == '2':'''删除该学员'''student_info_lst.remove(dic)# del student_info_lst[dic]print('-------------删除成功了--------------')elif action_str == '0':'''返回上一级菜单'''passdef search_student_by_name():print('--------------欢迎来到查询学员功能----------------')if student_info_lst:name = input('请输入要查询的学生的姓名:')for dic in student_info_lst: # 获取所有学员if dic['name'] == name: # 比较学员姓名# print('name\tage\tgender\tel')# print('name', 16 * ' ', 'age', 17 * ' ', 'gender', 15 * ' ', 'tel')name = alignment('name', 15)age = alignment('age', 15)gender = alignment('gender', 15)tel = alignment('tel', 15)print(name, age, gender, tel)name = dic['name']age = dic['age']gender = dic['gender']tel = dic['tel']# print('{}\t{}\t{}\t{}'.format(dic['name'], dic['age'], dic['gender'], dic['tel']))# print(name, (20 - len(name)) * ' ', age, (20 - len(name)) * ' ', gender, (20 - len(name)) * ' ', tel)name = alignment(dic['name'], 15)age = alignment(dic['age'], 15)gender = alignment(dic['gender'], 15)tel = alignment(dic['tel'], 15)print('{}\t{}\t{}\t{}'.format(name, age, gender, tel))# 修改学员信息# 需要将学员的信息传递到函数deal_student(dic)breakelse:print('have not this stuent')# add_student()else:print('have not atudent,please add student')add_student()while True:show_menu()action_str = input('请输入您要选的数字:')lst = ['0', '1', '2', '3']if action_str in lst:if action_str == '1':'''添加新增学员'''add_student()elif action_str == '2':'''显示所有学员信息'''show_all_student()elif action_str == '3':'''查询学员'''search_student_by_name()elif action_str == '0':'''退出系统'''print('三位慢走,欢迎下次光临')breakelse:print('---------输错了,请重新输入------------')

7、有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
心得体会
学习了python函数的基本用法
