Heim Backend-Entwicklung Python-Tutorial Implementieren Sie die Funktion zur Anzeige der Mitarbeiterinformationstabelle

Implementieren Sie die Funktion zur Anzeige der Mitarbeiterinformationstabelle

May 21, 2018 am 09:14 AM
信息 员工

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'[=><]+&#39;, where_str).group()
                where_list = re.split(r&#39;[=><]+&#39;, where_str)
            where_field = where_list[0]
            value = where_list[1]if re.search(r&#39;[\&#39;\"]+&#39;, value):  # 带&#39;和"的表示字符,处理掉&#39;和"value = value.replace(&#39;\"&#39;, &#39;&#39;)
                value = value.replace(&#39;\&#39;&#39;, &#39;&#39;)else:
                value = float(value)# print(where_str, where_field, sizeof, value)# 条件判断 >, <, =, likeif sizeof == &#39;>':
                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 == '<&#39;:
                v = info_list[field.get(where_field)]if float(v) < value:
                    view_list = []for i in range(len(search_field)):if search_field[i] == &#39;*&#39;:
                            view_list = info_list[:]else:
                            view_list.append(info_list[field.get(search_field[i])])else:print(&#39;,&#39;.join(view_list))elif sizeof == &#39;=&#39;:
                v = info_list[field.get(where_field)]if field.get(where_field) == 2:
                    v = float(v)if v == value:
                    view_list = []for i in range(len(search_field)):if search_field[i] == &#39;*&#39;:
                            view_list = info_list[:]else:
                            view_list.append(info_list[field.get(search_field[i])])else:print(&#39;,&#39;.join(view_list))elif sizeof == &#39;like&#39;:
                v = info_list[field.get(where_field)]if value in v:
                    view_list = []for i in range(len(search_field)):if search_field[i] == &#39;*&#39;:
                            view_list = info_list[:]else:
                            view_list.append(info_list[field.get(search_field[i])])else:print(&#39;,&#39;.join(view_list))else:passdef add(staff):
    staff.sort()
    num = int(re.split(r&#39;,&#39;, staff[-1])[0]) + 1phone = input("phone:").strip()for line in staff:if phone == line[3]:print("already exists...")return Falseif not re.match(r&#39;^\d+$&#39;, phone) or len(phone) < 7:print("format error...")return False
    name = input("name:").strip()
    age = input("age:").strip()
    dept = input("dept:").strip()
    enroll_date = input("enroll_date:").strip()for s in (name, age, dept, enroll_date):if not len(s):print("input is null...")return Falseelse:
        staff.append(&#39;%s,%s,%s,%s,%s,%s\n&#39; % (num, name, age, phone, dept, enroll_date))return staffdef update(staff, field):
    cmd = input("cmd>").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()
Nach dem Login kopieren

View Code

Das obige ist der detaillierte Inhalt vonImplementieren Sie die Funktion zur Anzeige der Mitarbeiterinformationstabelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So entfernen Sie Informationen zum Autor und zur letzten Änderung in Microsoft Word So entfernen Sie Informationen zum Autor und zur letzten Änderung in Microsoft Word Apr 15, 2023 am 11:43 AM

Microsoft Word-Dokumente enthalten beim Speichern einige Metadaten. Diese Details werden zur Identifizierung des Dokuments verwendet, z. B. wann es erstellt wurde, wer der Autor war, Datum der Änderung usw. Es enthält auch andere Informationen wie die Anzahl der Zeichen, die Anzahl der Wörter, die Anzahl der Absätze und mehr. Wenn Sie den Autor oder die zuletzt geänderten Informationen oder andere Informationen entfernen möchten, damit andere Personen die Werte nicht kennen, gibt es eine Möglichkeit. In diesem Artikel erfahren Sie, wie Sie Informationen zum Autor und zur letzten Änderung aus einem Dokument entfernen. Entfernen Sie den Autor und die zuletzt geänderten Informationen aus dem Microsoft Word-Dokument. Schritt 1 – Gehen Sie zu

So erhalten Sie die GPU in Windows 11 und überprüfen die Grafikkartendetails So erhalten Sie die GPU in Windows 11 und überprüfen die Grafikkartendetails Nov 07, 2023 am 11:21 AM

Systeminformationen verwenden Klicken Sie auf Start und geben Sie Systeminformationen ein. Klicken Sie einfach auf das Programm, wie im Bild unten gezeigt. Hier finden Sie die meisten Systeminformationen und unter anderem Informationen zur Grafikkarte. Erweitern Sie im Systeminformationsprogramm Komponenten und klicken Sie dann auf Anzeigen. Lassen Sie das Programm alle notwendigen Informationen sammeln und sobald es fertig ist, können Sie den grafikkartenspezifischen Namen und andere Informationen auf Ihrem System finden. Auch wenn Sie über mehrere Grafikkarten verfügen, finden Sie hier die meisten Inhalte zu dedizierten und integrierten Grafikkarten, die an Ihren Computer angeschlossen sind. Verwenden des Geräte-Managers von Windows 11 Wie bei den meisten anderen Windows-Versionen können Sie auch die Grafikkarte auf Ihrem Computer über den Geräte-Manager finden. Klicken Sie auf Start und dann

So teilen Sie Kontaktdaten mit NameDrop: Anleitung für iOS 17 So teilen Sie Kontaktdaten mit NameDrop: Anleitung für iOS 17 Sep 16, 2023 pm 06:09 PM

In iOS 17 gibt es eine neue AirDrop-Funktion, mit der Sie Kontaktinformationen mit jemandem austauschen können, indem Sie zwei iPhones berühren. Es heißt NameDrop und so funktioniert es. Anstatt die Nummer einer neuen Person einzugeben, um sie anzurufen oder ihr eine SMS zu schicken, können Sie mit NameDrop Ihr ​​iPhone einfach in die Nähe der Person halten, um Kontaktdaten auszutauschen, damit sie Ihre Nummer hat. Wenn Sie die beiden Geräte zusammenfügen, wird automatisch die Schnittstelle zum Teilen von Kontakten angezeigt. Wenn Sie auf das Popup klicken, werden die Kontaktinformationen einer Person und ihr Kontaktposter angezeigt (Sie können Ihre eigenen Fotos anpassen und bearbeiten, ebenfalls eine neue Funktion von iOS17). Dieser Bildschirm enthält auch Optionen zum „Nur Empfangen“ oder zum Teilen Ihrer eigenen Kontaktinformationen als Antwort.

Die Bindungsrate neuer Mitarbeiter von Nintendo erreichte 98,8 %, und das durchschnittliche Jahresgehalt lag im vergangenen Jahr bei 9,88 Millionen Yen Die Bindungsrate neuer Mitarbeiter von Nintendo erreichte 98,8 %, und das durchschnittliche Jahresgehalt lag im vergangenen Jahr bei 9,88 Millionen Yen Sep 14, 2023 am 08:49 AM

Laut Nachrichten dieser Website vom 2. September wurden auf der offiziellen Website von Nintendo Mitarbeiterdaten veröffentlicht. Die Bindungsrate neuer Mitarbeiter (der Anteil der neuen Absolventen, die im April 2019 in das Unternehmen eintraten und im April 2022 weiter im Unternehmen arbeiteten) liegt bei 98,8 %, davon 100 % Männer und 96 % Frauen. Das bedeutet, dass von 100 neuen Mitarbeitern, die Nintendo einstellt, sich etwa einer dazu entschließt, zu kündigen, während die durchschnittliche Bindungsrate neuer Mitarbeiter in Japan bei 70 % liegt. Keitake Okamoto, CEO von UZUZ Co., Ltd., sagte: „Große Unternehmen bieten normalerweise hohe Gehälter und gute Sozialleistungen, daher sind die Mitarbeiterbindungsquoten höher, insbesondere Nintendo als beliebtes repräsentatives Unternehmen in Japan.“ Das Jahresgehalt beträgt 9,88 Millionen Yen (ca. 492.000 Yuan), obwohl es in der Spielebranche einige Unternehmen mit höheren Jahresgehältern als Nintendo gibt.

Der Single-View-NeRF-Algorithmus S^3-NeRF verwendet Multi-Beleuchtungsinformationen, um Szenengeometrie und Materialinformationen wiederherzustellen. Der Single-View-NeRF-Algorithmus S^3-NeRF verwendet Multi-Beleuchtungsinformationen, um Szenengeometrie und Materialinformationen wiederherzustellen. Apr 13, 2023 am 10:58 AM

Aktuelle 3D-Bildrekonstruktionsarbeiten verwenden normalerweise eine Multi-View-Stereo-Rekonstruktionsmethode (Multi-View-Stereo), die die Zielszene aus mehreren Blickwinkeln (Multi-View) unter konstanten natürlichen Lichtbedingungen erfasst. Diese Methoden gehen jedoch normalerweise von Lambertschen Oberflächen aus und haben Schwierigkeiten, hochfrequente Details wiederherzustellen. Ein weiterer Ansatz zur Szenenrekonstruktion besteht darin, Bilder zu verwenden, die von einem festen Standpunkt, aber mit unterschiedlichen Punktlichtern aufgenommen wurden. Photometrische Stereomethoden nutzen beispielsweise diesen Aufbau und nutzen seine Schattierungsinformationen, um die Oberflächendetails von Nicht-Lambertschen Objekten zu rekonstruieren. Bestehende Einzelansichtsmethoden verwenden jedoch normalerweise Normalkarten oder Tiefenkarten, um das Sichtbare darzustellen

Wie NameDrop auf dem iPhone funktioniert (und wie man es deaktiviert) Wie NameDrop auf dem iPhone funktioniert (und wie man es deaktiviert) Nov 30, 2023 am 11:53 AM

In iOS17 gibt es eine neue AirDrop-Funktion, die es Ihnen ermöglicht, Kontaktinformationen mit jemandem auszutauschen, indem Sie zwei iPhones gleichzeitig berühren. Es heißt NameDrop und hier erfahren Sie, wie es tatsächlich funktioniert. NameDrop macht es überflüssig, die Nummer einer neuen Person einzugeben, um sie anzurufen oder ihr eine SMS zu schicken, damit sie Ihre Nummer hat. Sie können Ihr iPhone einfach in die Nähe der Person halten, um Kontaktinformationen auszutauschen. Wenn Sie die beiden Geräte zusammenfügen, wird automatisch die Schnittstelle zum Teilen von Kontakten angezeigt. Wenn Sie auf das Popup klicken, werden die Kontaktinformationen einer Person und ihr Kontaktposter angezeigt (ein eigenes Foto, das Sie anpassen und bearbeiten können, ebenfalls neu in iOS 17). Dieser Bildschirm enthält auch die Option „Nur Empfangen“ oder das Teilen Ihrer eigenen Kontaktinformationen als Antwort

Was ist der Grund für die Verzögerung beim Empfang von Nachrichten auf WeChat? Was ist der Grund für die Verzögerung beim Empfang von Nachrichten auf WeChat? Sep 19, 2023 pm 03:02 PM

Der Grund für die Verzögerung beim Empfang von Informationen durch WeChat können Netzwerkprobleme, Serverlast, Versionsprobleme, Geräteprobleme, Probleme beim Senden von Nachrichten oder andere Faktoren sein. Detaillierte Einführung: 1. Netzwerkprobleme können mit der Netzwerkverbindung zusammenhängen. Wenn die Netzwerkverbindung instabil ist oder das Signal schwach ist, kann es zu Verzögerungen bei der Informationsübertragung kommen mit einem stabilen Netzwerk verbunden und die Netzwerksignalstärke ist gut. 2. Wenn die Auslastung des WeChat-Servers hoch ist, kann es zu Verzögerungen bei der Informationsübertragung kommen, insbesondere wenn eine große Anzahl von Benutzern WeChat verwendet gleichzeitig usw.

Der Jobraub durch KI ist Realität! Fast 500 US-Unternehmen haben ihre Mitarbeiter durch ChatGPT ersetzt und einige Unternehmen haben mehr als 100.000 US-Dollar gespart. Der Jobraub durch KI ist Realität! Fast 500 US-Unternehmen haben ihre Mitarbeiter durch ChatGPT ersetzt und einige Unternehmen haben mehr als 100.000 US-Dollar gespart. Apr 07, 2023 pm 02:57 PM

Seitdem ChatGPT eine Welle ausgelöst hat, befürchten viele Menschen, dass KI im Begriff ist, menschliche Arbeitsplätze zu stehlen. Allerdings könnte die Realität noch grausamer sein QAQ... Laut der Umfragestatistik der Arbeitsvermittlungsplattform Resume Builder hat der Anteil der Nutzung von ChatGPT zur Vertretung einiger Mitarbeiter unter mehr als 1.000 befragten amerikanischen Unternehmen erstaunliche 48 % erreicht. Von diesen Unternehmen haben 49 % ChatGPT bereits aktiviert und 30 % sind dabei. Sogar CCTV Finance veröffentlichte dazu einen Sonderbericht: Verwandte Themen landeten einst auf der Hotlist von Zhihu. Viele Internetnutzer sagten, sie müssten zugeben, dass AIGC-Tools wie ChatGPT jetzt nicht mehr aufzuhalten seien – die Welle komme, aber es werde schwierig sein, voranzukommen . Rückzug. Einige Programmierer wiesen auch darauf hin: Nach der Verwendung von Copil

See all articles