python函数做菜单_学不会的Python函数——函数小案例(名片管理器)

名片管理器是一款生活实用类软件,用来协助管理手机中的所有名片。为了帮助大家在实际应用中学会选择使用四种类型的函数,接下来我们开发一个名片管理器。这个案例要求使用函数完成各种功能,并且根据键盘的输入来选择对应的函数完成这些功能。

函数的四种类型函数无参数,无返回值。

函数无参数,有返回值。

函数有参数,无返回值。

函数有参数,有返回值。

下面是名片管理器的菜单系统效果图

名片管理器菜单中共有五种功能,通过接收键盘输入的序号,相应用户选择的功能。一旦用户输入了"5",就会退出系统。

具体实现步骤如下:

1.输出名片管理器的菜单

定义输出菜单功能的函数。考虑到该函数只用来输出信息,并且输出的内容是固定不变的,所以定义一个无参数无返回值的函数cardMenu。

def cardMenu():

# 名片管理器菜单

print("-" * 30)

print(" 名片管理系统")

print("1.添加名片")

print("2.删除名片")

print("3.修改名片")

print("4.获取所有名片信息")

print("5.退出系统")

print("-" * 30)

使用cardMenu()调用函数,控制台便输出了菜单信息。

2.获取用户输入的信息

菜单显示以后,用户根据提示输入要执行的序号。通过input()函数从键盘接收用户的选择,并把选择的序号进行返回,所以定义一个无参数有返回值的函数getChoice()。

#获取用户输入的信息

def getChoice():

keyboardInput = input("请输入选择的序号")

keyboardInput = int(keyboardInput)

return(keyboardInput)

注意:input函数获取的数据,即使是数字,也是以字符串的方式进行保存的,所以在第4行里我们要转换成int类型。

打印菜单之后,调用getChoice()函数来获取用户输入的信息。

#等待用户选择

key = getChoice()

执行效果:

3.通过获取序号,执行不同的功能

获取序号以后,根据序号执行相应的操作。使用if语句根据用户选择的序号完成相应的功能。

if key == 1:

pass

elif key == 2:

pass

elif key == 3:

pass

elif key == 4:

pass

elif key == 5:

pass

else:

print("输入有误,请重新输入。")

接下来,在每个条件下来处理该序号对应的功能。

3.1添加名片

想要保存所有名片的信息,需要用到列表。先定义一个名片列表,nameCard = ["喜小乐","石敢当","大头鹅","扬州蟹"]。用户选择了序号1,此时应该提示用户输入姓名,然后添加到上述列表中,因此我们定义一个无参数无返回值的函数。

#添加名片

def addCard():

newCard = input("请输入姓名:")

nameCard.append(newCard)

接着在用户选择序号1的时候,调用上述方法实现添加名片的功能。

if key == 1:

addCard()

elif key == 2:

...省略...

运行结果:

3.2删除名片

用户选择了序号2,此时应该提示用户输入姓名,然后删除列表中相对应的内容,因此我们定义一个无参数无返回值的函数。

#删除名片

def removeCard():

delCard = input("请输入姓名:")

nameCard.remove(delCard)

接着在用户选择序号2的时候,调用上述方法实现删除名片的功能。

elif key == 2:

removeCard()

运行结果:

3.3修改名片

用户选择了序号3,此时应该提示用户输入原名和修改后的姓名,然后上述列表中相对应的内容,因此我们定义一个无参数无返回值的函数。

#修改名片

def recomposeCard():

name = input("请输入原名:")

indexVariable = nameCard.index(name)

newName = input("请输入修改后的名字:")

nameCard[indexVariable] = newName

接着在用户选择序号3的时候,调用上述方法实现修改名片的功能。

elif key == 3:

recomposeCard()

运行结果:

3.4获取所有名片信息

用户选择了序号4,此时应该从列表中获取所有的姓名信息,按照固定的格式进行打印,因此我们定义一个有参数无返回值的函数。

#查看所有名片的信息

def printCard(List):

print("=" * 30)

for card in List:

print(card)

print("=" * 30)

接着在用户选择序号3的时候,调用上述方法实现查看所有名片的功能。

elif key == 4:

printCard(nameCard)

运行结果:

3.5退出系统

#退出系统

print("感谢您的使用,再见。")

exit()

运行结果:

4.全部代码

def cardMenu():

#名片管理器菜单

print("-" * 30)

print(" 名片管理系统")

print("1.添加名片")

print("2.删除名片")

print("3.修改名片")

print("4.获取所有名片信息")

print("5.退出系统")

print("-" * 30)

def getChoice():

#获取用户输入的信息

keyboardInput = input("请输入选择的序号")

keyboardInput = int(keyboardInput)

return(keyboardInput)

def addCard():

#添加名片

newCard = input("请输入姓名:")

nameCard.append(newCard)

def removeCard():

#删除名片

delCard = input("请输入姓名:")

nameCard.remove(delCard)

def recomposeCard():

#修改名片

name = input("请输入原名:")

indexVariable = nameCard.index(name)

newName = input("请输入修改后的名字:")

nameCard[indexVariable] = newName

def printCard(List):

#查看所有名片信息

print("=" * 30)

for card in List:

print(card)

print("=" * 30)

#新建一个保存名片信息的列表

nameCard = ["喜小乐","石敢当","大头鹅","扬州蟹"]

cardMenu()

#等待用户选择

time = 1

while time < 2:

key = getChoice()

if key == 1:

addCard()

elif key == 2:

removeCard()

elif key == 3:

recomposeCard()

elif key == 4:

printCard(nameCard)

elif key == 5:

print("感谢您的使用,再见。")

#退出程序

exit()

else:

print("输入有误,请重新输入。")

Python其实没有那么难。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值