apprentissage de python

Même un ingénieur d'infrastructure comme moi qui n'est pas un ingénieur de développement dans l'apprentissage de python Je voudrais recommander le cours python d'udemy qui explique de manière très facile à comprendre En particulier, M. Jun Sakai, l'instructeur, est facile à entendre et couvre un large éventail de contenus. Je suis reconnaissant de pouvoir mentionner le style de code et d'acquérir des connaissances pratiques. (* Personnellement, je ne pense pas que vous puissiez comprendre cela même si vous lisez beaucoup de livres disponibles dans le commerce.)

https://www.udemy.com/course/python-beginner/

L'un des problèmes est que le robot demande le restaurant recommandé dans les questions et réponses, écrit la réponse au format CSV et compte le nombre de réponses, mais c'est difficile. .. ..

Dire la vérité

La tâche précédente est encore loin d'être terminée, mais la partie sous-jacente du processus de comptage en CSV est terminée. Gardez un mémorandum sur l'endroit où vous êtes accro.

[Partie fixe] Tout d'abord, le processus de comptage des contenus saisis sur CSV ne peut pas être effectué. Lorsque j'ai essayé Google, j'ai réalisé que plusieurs personnes s'inquiétaient du même contenu et que le monde était petit.

Plus précisément, lorsque je lis un fichier avec CSV, je ne peux pas l'écrire dans le fichier tel quel Si vous y réfléchissez bien, la méthode open est appelée en lecture au moment de la lecture. Je ne peux pas l'écrire tel quel, mais il y avait des gens ici qui étaient dépendants de la même chose.

Ainsi, lorsque vous le lisez, écrivez le contenu lu dans une variable Vous devez écrire les variables écrites en CSV à la fin du processus.

Par conséquent, le flux de traitement spécifique est le suivant.

―― 1. Le fichier CSV de sortie existe-t-il?

--1-1. S'il existe Lire toutes les lignes du premier fichier CSV existant --1-1-1. Si une clé existe déjà, comptez la valeur de cette clé, stockez-la dans une variable, puis écrivez-la en CSV. --1-1-2. Si la clé n'existe pas, écrivez une nouvelle clé et une nouvelle valeur dans CSV

--1-2. S'il n'existe pas Créer un nouveau CSV → Ce processus est facile car il est expliqué dans le cours udemy python ci-dessus

Sur la base de ce qui précède, j'ai écrit le code suivant

import csv
import os

from termcolor import colored

while True:
    print(colored('=' * 20, 'green'))
    print(colored('Quel restaurant aimez-vous?', 'green'))
    print(colored('=' * 20, 'green'))
    name = input()
    name = name.title()
    if name:
        break

#Méthode de création d'un nouveau CSV
def new_csv():
    with open('data.csv', 'w', newline='', encoding='utf-8') as csv_file:
        fieldnames = ['Name', 'Count']
        writer = csv.DictWriter(csv_file,fieldnames=fieldnames)
        writer.writeheader()
        writer.writerow({'Name': name,'Count': 1})

#Méthode d'écriture de la variable de données en CSV à la fin
def csv_output():
    with open('data.csv', 'w', newline='', encoding='utf-8') as csv_file:
        fieldnames = ['Name', 'Count']
        writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
        writer.writeheader()
        writer.writerows(data)

#Méthode pour ajouter de nouvelles données au CSV
def csv_appending():
    with open('data.csv', 'a', newline='', encoding='utf-8') as csv_file:
        fieldnames = ['Name', 'Count']
        writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
        writer.writerow({'Name': name,'Count': 1})

"""
data.Si csv existe, lisez le contenu du CSV dans la variable de données
Nouveau s'il n'existe pas_appeler la méthode csv
"""
if os.path.exists('data.csv'):
    with open('data.csv', 'r', newline='', encoding='utf-8') as csv_file:
        reader =csv.DictReader(csv_file)
        data = [row for row in reader]

        #Si la clé existe déjà, elle compte, et si elle n'existe pas, elle passe par une boucle et csv_Appelez la méthode d'ajout
        for row in data:
            if row['Name'] == name:
                row['Count'] = int(row['Count']) + 1
                csv_output()
                break
        else:
            csv_appending()
else:
    new_csv()

J'ai fait ce que je voulais faire avec ça, mais je pense qu'il y a probablement une meilleure façon de l'écrire. Et orienté objet? Cadre MVC? Je pense que je peux écrire du code plus sophistiqué et plus cool si j'en ai un peu plus, mais une fois que la partie logique de base est terminée, je pense que c'est la manière d'améliorer l'extensibilité et la visibilité. De plus, il peut être intéressant d'ajouter un processus pour finalement agréger le fichier CSV créé. .. ..

Personnellement, j'aimerais quelques conseils car cela rendra le code encore meilleur! !!

Merci beaucoup.

Recommended Posts

apprentissage de python
[Python] Note d'apprentissage 1
Notes d'apprentissage Python
sortie d'apprentissage python
Site d'apprentissage Python
Apprentissage Python jour 4
Apprentissage en profondeur Python
apprentissage python (supplément)
Apprentissage profond × Python
notes d'apprentissage python
Apprendre Python avec ChemTHEATER 03
Module Python (mémo d'apprentissage Python ④)
Apprentissage amélioré 1 installation de Python
Apprendre Python avec ChemTHEATER 05-1
Python: pratique du Deep Learning
Python ~ Apprentissage rapide de la grammaire ~
Python
Procédure d'apprentissage privée Python
Apprendre Python avec ChemTHEATER 02
Apprendre Python avec ChemTHEATER 01
Python: réglage du Deep Learning
Apprentissage amélioré Python + Unity (apprentissage)
Python: apprentissage supervisé (retour)
Python: apprentissage supervisé (classification)
Gestion des exceptions Python (mémo d'apprentissage Python ⑥)
Mémo d'apprentissage O'Reilly python3 Primer
Flux d'apprentissage pour les débutants en Python
Python: Apprentissage supervisé: Hyper Paramètres Partie 1
Plan d'apprentissage Python pour l'apprentissage de l'IA
Apprentissage amélioré à partir de Python
Apprentissage automatique avec Python! Préparation
Notes d'apprentissage sur l'analyse des données Python
Programmation Python Machine Learning> Mots-clés
Python: apprentissage supervisé: Hyper Paramètre partie 2
La recommandation de Checkio pour apprendre Python
Commencer avec l'apprentissage automatique Python
Traitement itératif Python appris avec ChemoInfomatics
Python: apprentissage non supervisé: clustering non hiérarchique
estimation personnelle en temps réel (apprentissage)
python kafka
Mettre en œuvre l'apprentissage de l'empilement en Python [Kaggle]
Les bases de Python ⑤
Résumé Python
Python intégré
Technique Python
Étudier Python
Compte à rebours Python 2.7