编写python程序 兀 3_帮忙写一个简单的python程序π_π 要求就是图上的那样 其实挺简单的但我就是写不出来。拜托了,...
展开全部
要求提的不是很明确,按照最简单的功能来做了。
只记录姓名和电话号码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程序π_π 要求就是图上的那样 其实挺简单的但我就是写不出来。拜托了,...相关推荐
- 用python编写一个点餐程序_Python写一个自动点餐程序
原博文 2019-08-09 10:45 − # Python写一个自动点餐程序 ## 为什么要写这个 公司现在用meican作为点餐渠道,每天规定的时间是早7:00-9:40点餐,有时候我经常容易忘 ...
- python kivy显示图片_python基于Kivy写一个图形桌面时钟程序代码示例
本篇文章小编给大家分享一下python基于Kivy写一个图形桌面时钟程序代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Kivy 是一个开源的 ...
- python时钟程序的设计总结_python基于Kivy写一个图形桌面时钟程序
kivy 是一个开源的 python 第三方库,可以用来快速开发应用程序. 它有如下三个特点: 跨平台 kivy 编写的程序可在 linux,windows,os x,android,ios 和 ra ...
- python文件分发_python 写一个文件分发小程序
一.概述 该小程序实现从源端到目标端的文件一键拷贝,源端和目标段都在一台电脑上面,只是目录不同而已 二.参数文件说明 1. settings.txt的说明 a. 通过配置settings.txt,填源 ...
- python测试抽奖脚本_使用 Python 写一个简易的抽奖程序
不知道有多少人是被这个头图骗进来的:) 事情的起因是这样的,上周有同学问小编,看着小编的示例代码敲代码,感觉自己也会写了,如果不看的话,七七八八可能也写的出来,但是一旦自己独立写一段程序,感觉到无从下 ...
- python实现一个整数加法计算器_如何使用python编程写一个加法计算器-Python教程...
一.关上idle.点击file,而后点击new file.这是创立一个新的文件. 新建一个文件之后,咱们输出第一行代码,应用print函数,正在屏幕上打印一句话,此中字符串要应用双引号,输出法要应用英 ...
- python代码大全o-Python实现的一个自动售饮料程序代码分享
写这个程序的时候,我已学习Python将近有一百个小时,在CSDN上看到有人求助使用Python如何写一个自动售饮料的程序,我一想,试试写一个实用的售货程序.当然,只是实现基本功能,欢迎高手指点,新手 ...
- 用Windows自带的工具写一个一键关机小程序
如何用Windows自带的工具写一个一键关机小程序 工具/原料(打勾勾的可用可不用) 装有Windows系统的电脑 在机子上装个格式工厂(版本随意,最好更新到最新的) 制作环境 windows自带命令 ...
- python饮料购买_Python实现的一个自动售饮料程序代码分享
写这个程序的时候,我已学习Python将近有一百个小时,在CSDN上看到有人求助使用Python如何写一个自动售饮料的程序,我一想,试试写一个实用的售货程序.当然,只是实现基本功能,欢迎高手指点,新手 ...
最新文章
- 《OpenCV3编程入门》学习笔记2 启程前的认知准备
- MarkdownPad 2 常用快捷键
- WPF无边框拖动、全屏、缩放
- 双十一还没来,快递公司已经宣布涨价
- Lync Server 2013视频会议新功能及配置
- 如何构建数据指标体系?
- Android ConnectivityManager详解
- html写自动关机的代码,让电脑自动关机代码是什么
- Unity3D:HTTP请求模块
- 无线系列-无线通信系统组成
- 斐波那契堆 - 解析与实现
- B端产品经理基本介绍
- 测试用例设计方法-思维导图
- 大数据和云计算的区别
- Mac 运行 JNLP 文件
- config.py参数解释
- CSS3属性详解:动画详解
- 腾讯云8核 16G 18M配置服务器评测
- 大数据与云计算网课答案
- xstream 对象 -》xml
热门文章
- How to extend unallocated space to an existing partition on linux? | 如何在 linux 上扩展已有分区至未分配空间?
- leetcode 617. Merge Two Binary Trees | 617. 合并二叉树(Java)
- 左神算法:猫狗队列(通过给不同实例盖时间戳的方法实现)
- leetcode 111. 二叉树的最小深度
- 【PAT甲级 一个字符数组是否被另一个包含】1092 To Buy or Not to Buy (20 分) C++
- 使用IBM Blockchain Platform extension开发你的第一个fabric智能合约
- 怎么将swagger API导出为HTML或者PDF
- 深入理解LSM-Tree
- DevC++怎么更改背景颜色
- 【两种解法】Quadtrees UVA - 297(隐式建树+显式建树)