README:
1. 员工信息表程序,实现增删改查操作:
1).可进行模糊查询,语法至少支持下面3种:
select name,age from staff_table where age > 22
select * from staff_table where dept = "IT"
select * from staff_table where enroll_date like "2013"
最后显示有查到的条数
2).可创建新员工纪录,以phone做唯一键,staff_id需自增
3).可删除指定员工信息纪录,输入员工id,即可删除
4).可修改员工信息,语法如下:
UPDATE staff_table SET dept="Market" WHERE dept = "IT"
流程图:
代码:
# coding:utf8import sysimport redef select(staff, field): cmd = input("cmd>").strip() cmd = cmd.replace('FROM', 'from') cmd = cmd.replace('WHERE', 'where')if '*' in cmd:for i in field.keys(): sys.stdout.write(str(i) + ' ')print('')for line in staff: info_list = re.split(r',+', line.strip('\n')) cmd_list = re.split(r'[ ,;]+', cmd) f_index = cmd_list.index('from') search_field = cmd_list[1:f_index] from_field = cmd_list[f_index + 1]if from_field != 'staff_table':print('\033[31;1mplease select `staff_table`...\033[0m')breakif 'where' not in cmd_list:# 不存在where条件,显示所有view_list = []for i in range(len(search_field)):if search_field[i] == '*': view_list = info_list[:]else: view_list.append(info_list[field.get(search_field[i])])else:print(','.join(view_list))else:# 存在where条件w_index = cmd_list.index('where') where_str = ''.join(cmd_list[w_index + 1:])if re.search(r'like', where_str): sizeof = 'like'where_list = re.split(r'like', where_str)else: sizeof = re.search(r'[=>, ': v = info_list[field.get(where_field)]if float(v) > value: view_list = []for i in range(len(search_field)):if search_field[i] == '*': view_list = info_list[:]else: view_list.append(info_list[field.get(search_field[i])])else:print(','.join(view_list))elif sizeof == '").strip() up_list = [] cmd = cmd.replace('SET', 'set') cmd = cmd.replace('WHERE', 'where')for line in staff: info_list = re.split(r',+', line.strip('\n')) cmd_list = re.split(r'[ ,;]+', cmd)if cmd_list[1] != 'staff_table':print('\033[31;1mplease update `staff_table`...\033[0m')breakset_index = cmd_list.index('set') where_index = cmd_list.index('where') set_list = re.split(r'=', ''.join(cmd_list[set_index + 1:where_index])) set_field = set_list[0] set_value = set_list[1]if re.search(r'[\'\"]+', set_value): set_value = set_value.replace('\'', '') set_value = set_value.replace('\"', '') where_list = re.split(r'=', ''.join(cmd_list[where_index + 1:])) where_field = where_list[0] where_value = where_list[1]if re.search(r'[\'\"]+', where_value): where_value = where_value.replace('\'', '') where_value = where_value.replace('\"', '')if info_list[field.get(where_field)] == where_value: info_list[field.get(set_field)] = set_valueprint(','.join(info_list)) up_list.append(','.join(info_list))else:return up_listdef delete(staff): del_id = input("delete id:").strip()for i in range(len(staff)):if re.split(r',', staff[i])[0] == del_id: staff.pop(i)print("id:%s delete success." % del_id)return staffelse:return Falsedef main(): staff_table = 'staff_table.txt'field = {'staff_id': 0,'name': 1,'age': 2,'phone': 3,'dept': 4,'enroll_date': 5} menu = '''\033[33;1m-- staff_table --\033[0m\033[29;1m S. 查询 h. 帮助 A. 新增 q. 退出 E. 修改 D. 删除\033[0m'''print(menu)while True:try: with open(staff_table, 'r') as f: staff = f.readlines() choice = input(">>").strip().lower()if choice == 'h': # helpprint(menu)elif choice == 'q':breakelif choice == 's': # search select(staff, field)elif choice == 'a': # addresult = add(staff)if not result:print('\033[31;1madd failed...\033[0m')continueelse: with open(staff_table, 'w') as f: f.writelines(result)elif choice == 'e': # updateresult = update(staff, field)if not result:print('\033[31;1mupdate failed...\033[0m')continueelse: with open(staff_table, 'w') as f:for line in result: f.write(line + '\n')elif choice == 'd': # deleteresult = delete(staff)if not result:print('\033[31;1mdelete failed...\033[0m')continueelse: with open(staff_table, 'w') as f: f.writelines(result)else:continueexcept:print("\033[31;1minput error...\033[0m")continueif __name__ == '__main__': main()
View Code
위 내용은 직원 정보 테이블 표시 기능 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

제한된 시간에 Python 학습 효율을 극대화하려면 Python의 DateTime, Time 및 Schedule 모듈을 사용할 수 있습니다. 1. DateTime 모듈은 학습 시간을 기록하고 계획하는 데 사용됩니다. 2. 시간 모듈은 학습과 휴식 시간을 설정하는 데 도움이됩니다. 3. 일정 모듈은 주간 학습 작업을 자동으로 배열합니다.

Python은 게임 및 GUI 개발에서 탁월합니다. 1) 게임 개발은 Pygame을 사용하여 드로잉, 오디오 및 기타 기능을 제공하며 2D 게임을 만드는 데 적합합니다. 2) GUI 개발은 Tkinter 또는 PYQT를 선택할 수 있습니다. Tkinter는 간단하고 사용하기 쉽고 PYQT는 풍부한 기능을 가지고 있으며 전문 개발에 적합합니다.

Python은 데이터 과학, 웹 개발 및 자동화 작업에 적합한 반면 C는 시스템 프로그래밍, 게임 개발 및 임베디드 시스템에 적합합니다. Python은 단순성과 강력한 생태계로 유명하며 C는 고성능 및 기본 제어 기능으로 유명합니다.

2 시간 이내에 Python의 기본 프로그래밍 개념과 기술을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우기, 2. 마스터 제어 흐름 (조건부 명세서 및 루프), 3. 기능의 정의 및 사용을 이해하십시오. 4. 간단한 예제 및 코드 스 니펫을 통해 Python 프로그래밍을 신속하게 시작하십시오.

Python은 웹 개발, 데이터 과학, 기계 학습, 자동화 및 스크립팅 분야에서 널리 사용됩니다. 1) 웹 개발에서 Django 및 Flask 프레임 워크는 개발 프로세스를 단순화합니다. 2) 데이터 과학 및 기계 학습 분야에서 Numpy, Pandas, Scikit-Learn 및 Tensorflow 라이브러리는 강력한 지원을 제공합니다. 3) 자동화 및 스크립팅 측면에서 Python은 자동화 된 테스트 및 시스템 관리와 같은 작업에 적합합니다.

2 시간 이내에 파이썬의 기본 사항을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우십시오. 이를 통해 간단한 파이썬 프로그램 작성을 시작하는 데 도움이됩니다.

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

드림위버 CS6
시각적 웹 개발 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음
