一、实验目的
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_name
new_infor['qq'] = new_qq
new_infor['weixin'] = new_weixin
new_infor['addr'] = new_addr
# 将一个字典,添加到列表中
card_infors.append(new_infor)
#print(card_infors) # for test
elif num == 2:
del_name = input("请输入要删除的名字:")
find_flag = False
for line in card_infors:
if line['name'] == del_name:
find_flag = True
card_infors.remove(line)
break
if find_flag:
print("已删除!")
else:
print("输入的用户名不存在")
# print(card_infors) for test
elif num == 3:
old_name = input('请输入要修改的姓名:')
flag = 0
for line in card_infors:
if line['name'] == old_name:
new_name = input('姓名:')
# new_qq = input('年龄:')
new_weixin = input('微信:')
new_addr = input('住址:')
line['name'] = new_name
line['qq'] = new_qq
line['weixin'] = new_weixin
line['addr'] = new_addr
flag = True
break
if 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:
break
else:
print('输入有误!请重新输入')
continue
print('')
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'] = name
dic['age'] = age
dic['gender'] = gender
dic['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 - lenght
s = s + space * ' '
return s
def 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_value
else:
'''msg有内容'''
return old_value
def 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'] = name
dic['age'] = age
dic['gender'] = gender
dic['tel'] = tel
elif action_str == '2':
'''删除该学员'''
student_info_lst.remove(dic)
# del student_info_lst[dic]
print('-------------删除成功了--------------')
elif action_str == '0':
'''返回上一级菜单'''
pass
def 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)
break
else:
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('三位慢走,欢迎下次光临')
break
else:
print('---------输错了,请重新输入------------')
7、有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
心得体会
学习了python函数的基本用法