展开全部

要求提的不是很明确,按照最简单的功能来做了。

只记录姓名和电话号码62616964757a686964616fe78988e69d8331333337626138,没有做号码检验。也没有做保存功能。

用的python2.7. 有额外需求请私聊。#!/usr/bin/env python

import sys

last_id = 0

class Person:

def __init__(self, name, phone):

self.name = name

self.phone = phone

global last_id

last_id += 1

self.id = last_id

def match(self, filter):

return filter in self.name or filter in self.phone

class AddressBook:

def __init__(self):

self.people = []

def new_person(self, name, phone=''):

self.people.append(Person(name, phone))

def find_person(self, id):

for person in self.people:

if str(id) == str(person.id):

return person

return None

def modify_person(self, id, name, phone):

person = self.find_person(id)

if person:

person.name = name

person.phone = phone

else:

print "person:", id, " not found"

def delete_person(self, id):

person = self.find_person(id)

if person:

self.people.remove(person)

def search(self, filter):

return [person for person in self.people if person.match(filter)]

class Menu:

def __init__(self):

self.address_book = AddressBook()

self.choices = {

"1": self.show_people,

"2": self.add_person,

"3": self.remove_person,

"4": self.modify_person,

"5": self.search_person,

"6": self.quit

}

def display_menu(self):

print("""

Address Book Menu

1. Show all People

2. Add Person

3. Remove Person

4. Modify Person

5. Search Person

6. Quit

""")

def run(self):

while True:

self.display_menu()

choice = raw_input("Enter an option: ")

action = self.choices.get(choice)

if action:

action()

else:

print("{0} is not a valid choice".format(choice))

def show_people(self, people=None):

if not people:

people = self.address_book.people

for person in people:

print("{0}: {1} {2}".format(person.id, person.name, person.phone))

def search_person(self):

filter = raw_input("search for: ")

people = self.address_book.search(filter)

self.show_people(people)

def add_person(self):

name = raw_input("Enter a name: ")

phone = raw_input("Enter his/her phone number: ")

self.address_book.new_person(name, phone)

print("{0} has been added.".format(name))

def remove_person(self):

id = raw_input("Enter his/her id: ")

if id:

self.address_book.delete_person(id)

def modify_person(self):

id = raw_input("Enter a person id: ")

name = raw_input("Enter his/her name: ")

phone = raw_input("Enter his/her phone: ")

self.address_book.modify_person(id, name, phone)

def quit(self):

print("Thank you for using your address book today.")

sys.exit(0)

Menu().run()

编写python程序 兀 3_帮忙写一个简单的python程序π_π 要求就是图上的那样 其实挺简单的但我就是写不出来。拜托了,...相关推荐

  1. 用python编写一个点餐程序_Python写一个自动点餐程序

    原博文 2019-08-09 10:45 − # Python写一个自动点餐程序 ## 为什么要写这个 公司现在用meican作为点餐渠道,每天规定的时间是早7:00-9:40点餐,有时候我经常容易忘 ...

  2. python kivy显示图片_python基于Kivy写一个图形桌面时钟程序代码示例

    本篇文章小编给大家分享一下python基于Kivy写一个图形桌面时钟程序代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Kivy 是一个开源的 ...

  3. python时钟程序的设计总结_python基于Kivy写一个图形桌面时钟程序

    kivy 是一个开源的 python 第三方库,可以用来快速开发应用程序. 它有如下三个特点: 跨平台 kivy 编写的程序可在 linux,windows,os x,android,ios 和 ra ...

  4. python文件分发_python 写一个文件分发小程序

    一.概述 该小程序实现从源端到目标端的文件一键拷贝,源端和目标段都在一台电脑上面,只是目录不同而已 二.参数文件说明 1. settings.txt的说明 a. 通过配置settings.txt,填源 ...

  5. python测试抽奖脚本_使用 Python 写一个简易的抽奖程序

    不知道有多少人是被这个头图骗进来的:) 事情的起因是这样的,上周有同学问小编,看着小编的示例代码敲代码,感觉自己也会写了,如果不看的话,七七八八可能也写的出来,但是一旦自己独立写一段程序,感觉到无从下 ...

  6. python实现一个整数加法计算器_如何使用python编程写一个加法计算器-Python教程...

    一.关上idle.点击file,而后点击new file.这是创立一个新的文件. 新建一个文件之后,咱们输出第一行代码,应用print函数,正在屏幕上打印一句话,此中字符串要应用双引号,输出法要应用英 ...

  7. python代码大全o-Python实现的一个自动售饮料程序代码分享

    写这个程序的时候,我已学习Python将近有一百个小时,在CSDN上看到有人求助使用Python如何写一个自动售饮料的程序,我一想,试试写一个实用的售货程序.当然,只是实现基本功能,欢迎高手指点,新手 ...

  8. 用Windows自带的工具写一个一键关机小程序

    如何用Windows自带的工具写一个一键关机小程序 工具/原料(打勾勾的可用可不用) 装有Windows系统的电脑 在机子上装个格式工厂(版本随意,最好更新到最新的) 制作环境 windows自带命令 ...

  9. python饮料购买_Python实现的一个自动售饮料程序代码分享

    写这个程序的时候,我已学习Python将近有一百个小时,在CSDN上看到有人求助使用Python如何写一个自动售饮料的程序,我一想,试试写一个实用的售货程序.当然,只是实现基本功能,欢迎高手指点,新手 ...

最新文章

  1. 《OpenCV3编程入门》学习笔记2 启程前的认知准备
  2. MarkdownPad 2 常用快捷键
  3. WPF无边框拖动、全屏、缩放
  4. 双十一还没来,快递公司已经宣布涨价
  5. Lync Server 2013视频会议新功能及配置
  6. 如何构建数据指标体系?
  7. Android ConnectivityManager详解
  8. html写自动关机的代码,让电脑自动关机代码是什么
  9. Unity3D:HTTP请求模块
  10. 无线系列-无线通信系统组成
  11. 斐波那契堆 - 解析与实现
  12. B端产品经理基本介绍
  13. 测试用例设计方法-思维导图
  14. 大数据和云计算的区别
  15. Mac 运行 JNLP 文件
  16. config.py参数解释
  17. CSS3属性详解:动画详解
  18. 腾讯云8核 16G 18M配置服务器评测
  19. 大数据与云计算网课答案
  20. xstream 对象 -》xml

热门文章

  1. How to extend unallocated space to an existing partition on linux? | 如何在 linux 上扩展已有分区至未分配空间?
  2. leetcode 617. Merge Two Binary Trees | 617. 合并二叉树(Java)
  3. 左神算法:猫狗队列(通过给不同实例盖时间戳的方法实现)
  4. leetcode 111. 二叉树的最小深度
  5. 【PAT甲级 一个字符数组是否被另一个包含】1092 To Buy or Not to Buy (20 分) C++
  6. 使用IBM Blockchain Platform extension开发你的第一个fabric智能合约
  7. 怎么将swagger API导出为HTML或者PDF
  8. 深入理解LSM-Tree
  9. DevC++怎么更改背景颜色
  10. 【两种解法】Quadtrees UVA - 297(隐式建树+显式建树)