


Implémenter la fonction d'affichage du tableau d'informations sur les employés
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'[=><]+', where_str).group() where_list = re.split(r'[=><]+', where_str) where_field = where_list[0] value = where_list[1]if re.search(r'[\'\"]+', value): # 带'和"的表示字符,处理掉'和"value = value.replace('\"', '') value = value.replace('\'', '')else: value = float(value)# print(where_str, where_field, sizeof, value)# 条件判断 >, <, =, likeif sizeof == '>': 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 == '<': 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 == '=': 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] == '*': view_list = info_list[:]else: view_list.append(info_list[field.get(search_field[i])])else:print(','.join(view_list))elif sizeof == 'like': v = info_list[field.get(where_field)]if value in v: 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:passdef add(staff): staff.sort() num = int(re.split(r',', staff[-1])[0]) + 1phone = input("phone:").strip()for line in staff:if phone == line[3]:print("already exists...")return Falseif not re.match(r'^\d+$', 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('%s,%s,%s,%s,%s,%s\n' % (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()
View Code
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les documents Microsoft Word contiennent certaines métadonnées lors de leur enregistrement. Ces détails sont utilisés pour l'identification du document, comme la date de création, l'auteur, la date de modification, etc. Il contient également d'autres informations telles que le nombre de caractères, le nombre de mots, le nombre de paragraphes, etc. Si vous souhaitez supprimer l'auteur ou les dernières informations modifiées ou toute autre information afin que d'autres personnes ne connaissent pas les valeurs, il existe un moyen. Dans cet article, voyons comment supprimer les informations sur l'auteur et la dernière modification d'un document. Supprimer les informations sur l'auteur et la dernière modification du document Microsoft Word Étape 1 – Accédez à

Utilisation des informations système Cliquez sur Démarrer et entrez les informations système. Cliquez simplement sur le programme comme indiqué dans l'image ci-dessous. Vous trouverez ici la plupart des informations sur le système, notamment les informations sur la carte graphique. Dans le programme Informations système, développez Composants, puis cliquez sur Afficher. Laissez le programme rassembler toutes les informations nécessaires et une fois prêt, vous pourrez trouver le nom spécifique de la carte graphique et d'autres informations sur votre système. Même si vous possédez plusieurs cartes graphiques, vous pouvez trouver ici la plupart des contenus liés aux cartes graphiques dédiées et intégrées connectées à votre ordinateur. Utilisation du Gestionnaire de périphériques Windows 11 Tout comme la plupart des autres versions de Windows, vous pouvez également trouver la carte graphique sur votre ordinateur à partir du Gestionnaire de périphériques. Cliquez sur Démarrer puis

Dans iOS 17, il existe une nouvelle fonctionnalité AirDrop qui vous permet d'échanger des informations de contact avec quelqu'un en touchant deux iPhones. Cela s'appelle NameDrop, et voici comment cela fonctionne. Plutôt que de saisir le numéro d'une nouvelle personne pour l'appeler ou lui envoyer un SMS, NameDrop vous permet simplement de placer votre iPhone près de son iPhone pour échanger ses coordonnées afin qu'elle ait votre numéro. Rassembler les deux appareils fera automatiquement apparaître l’interface de partage de contacts. En cliquant sur la fenêtre contextuelle, vous afficherez les informations de contact d'une personne et son affiche de contact (vous pouvez personnaliser et modifier vos propres photos, également une nouvelle fonctionnalité d'iOS17). Cet écran comprend également des options pour « Recevoir uniquement » ou partager vos propres informations de contact en réponse.

Selon les informations de ce site du 2 septembre, le site officiel de Nintendo a divulgué les données des employés. Le taux de rétention des nouveaux employés (la proportion de nouveaux diplômés qui ont rejoint l'entreprise en avril 2019 et ont continué à travailler dans l'entreprise en avril 2022) est aussi élevé. 98,8%, dont 100% d'hommes et 100% de femmes 96%. Cela signifie que pour 100 nouveaux employés embauchés par Nintendo, environ un décide de démissionner, alors que le taux moyen de rétention des nouveaux employés au Japon est de 70 %. Keitake Okamoto, PDG d'UZUZ Co., Ltd., a déclaré : « Les grandes entreprises offrent généralement des salaires élevés et de bons avantages sociaux, de sorte que les taux de rétention des employés sont plus élevés, en particulier Nintendo en tant qu'entreprise représentative populaire au Japon. » L'année dernière, la moyenne de Nintendo. Le salaire annuel est de 9,88 millions de yens (environ 492 000 yuans), bien que certaines entreprises de l'industrie du jeu vidéo offrent des salaires annuels plus élevés que ceux de Nintendo.

Les travaux actuels de reconstruction d'images 3D utilisent généralement une méthode de reconstruction stéréo multi-vues (Multi-view Stereo) qui capture la scène cible à partir de plusieurs points de vue (multi-vues) dans des conditions d'éclairage naturel constantes. Cependant, ces méthodes supposent généralement des surfaces lambertiennes et ont des difficultés à récupérer les détails haute fréquence. Une autre approche de la reconstruction de scène consiste à utiliser des images capturées à partir d'un point de vue fixe mais avec des points lumineux différents. Les méthodes photométriques stéréo, par exemple, prennent cette configuration et utilisent ses informations d'ombrage pour reconstruire les détails de surface d'objets non lambertiens. Cependant, les méthodes existantes à vue unique utilisent généralement une carte normale ou une carte de profondeur pour représenter le visible.

Dans iOS17, il existe une nouvelle fonctionnalité AirDrop qui vous permet d'échanger des informations de contact avec quelqu'un en touchant deux iPhones en même temps. Cela s'appelle NameDrop, et voici comment cela fonctionne réellement. NameDrop élimine le besoin de saisir le numéro d'une nouvelle personne pour l'appeler ou lui envoyer un SMS afin qu'elle ait votre numéro, vous pouvez simplement tenir votre iPhone près de son iPhone pour échanger des informations de contact. Rassembler les deux appareils fera automatiquement apparaître l’interface de partage de contacts. En cliquant sur la fenêtre contextuelle, vous afficherez les informations de contact d'une personne et son affiche de contact (une photo de votre choix que vous pouvez personnaliser et modifier, également nouvelle sur iOS 17). Cet écran inclut également « Recevoir uniquement » ou partagez vos propres informations de contact en réponse.

La raison du retard dans la réception des informations par WeChat peut être due à des problèmes de réseau, à la charge du serveur, à des problèmes de version, à des problèmes de périphérique, à des problèmes d'envoi de messages ou à d'autres facteurs. Introduction détaillée : 1. Problèmes de réseau. Le retard dans la réception des informations sur WeChat peut être lié à la connexion réseau. Si la connexion réseau est instable ou si le signal est faible, cela peut entraîner des retards dans la transmission des informations. connecté à un réseau stable et la force du signal réseau est bonne. 2. Lorsque la charge du serveur WeChat est élevée, cela peut entraîner des retards dans la transmission des informations, en particulier pendant les périodes de pointe ou lorsqu'un grand nombre d'utilisateurs utilisent WeChat. en même temps, etc.

Depuis que ChatGPT a déclenché une vague, de nombreuses personnes craignent que l’IA ne vole des emplois humains. Cependant, la réalité pourrait être encore plus cruelle QAQ... Selon les statistiques d'enquête de la plateforme de services d'emploi Resume Builder, parmi plus de 1 000 entreprises américaines interrogées, la proportion d'utilisateurs de ChatGPT pour remplacer certains employés a atteint un étonnant 48 %. Parmi ces entreprises, 49 % ont déjà activé ChatGPT et 30 % sont en route. Même CCTV Finance a publié un rapport spécial à ce sujet : des sujets connexes se sont autrefois précipités sur la liste chaude de Zhihu. De nombreux internautes ont déclaré qu'ils devaient admettre que les outils AIGC tels que ChatGPT sont désormais imparables - la vague arrive, mais il sera difficile d'avancer. . retraite. Certains programmeurs ont également souligné : Après avoir utilisé Copil
