Créez une application qui devine les étudiants avec Python

introduction

Au lycée où je vais, un professeur de mathématiques a utilisé Excel pour créer un "gars qui devine les élèves" et l'a utilisé pour deviner les élèves, alors j'en ai fait une version améliorée en faisant du python.

Comment fonctionne la version Excel

  1. Sélectionnez au hasard les élèves et affichez-les à l'écran
  2. Si l'élève a frappé dans le passé, la cellule à côté du nom deviendra rouge
  3. Enregistrez les élèves qui ont frappé (effacez quand il fait un tour)

(Je n'ai pas obtenu la permission du professeur, je m'abstiendrai donc de donner des détails)

Amélioration

  1. Les élèves sont sélectionnés à chaque fois parmi tous les élèves, et il faut juger s'ils ont été touchés une fois ou non. → Les élèves qui ont frappé une fois ne seront pas affichés jusqu'à ce qu'ils aient fait un tour
  2. L'enseignant enregistre manuellement les élèves touchés en les copiant. → Automatiser l'enregistrement

Fonctions à mettre en œuvre

  1. Afficher le nom
  2. Ignorer les absents
  3. Réinitialisation de la liste
  4. Afficher la liste
  5. Afficher l'historique
  6. Effacer l'historique
  7. Mettez à jour la liste
  8. Effacer la console

programme

Le gars qui devine l'étudiant.py


import random
import pickle
import os
import sys
import datetime

name = None

if os.name == 'nt':
    os.system('cls')
elif os.name == 'posix':
    os.system('clear')

print("Voir l'aide pour savoir comment utiliser")

while True:

    a = input('>')

    if a == "help":
        print("Enter----Affichage du nom\n"
              "pass-----Ignorer les absents\n"
              "reset----Réinitialisation de la liste\n"
              "ls-------Afficher la liste\n"
              "history--Voir l'historique\n"
              "Effacer l'historique avec clair à la fin\n"
              "setup----Mettre à jour la liste\n"
              "clear----Console claire\n"
              "exit-----Fin")

    elif a == "ls":

        if name != None and name in list:
            list.remove(name)
            f = open('list.txt', 'wb')
            pickle.dump(list, f)
        if list == []:
            f = open("./list_raw.txt", "rb")
            list_raw = pickle.load(f)

            list = list_raw

            f = open('list.txt', 'wb')
            pickle.dump(list, f)

        f = open("./list.txt", "rb")
        list = pickle.load(f)
        for i in list:
            print(i)

    elif a == "reset":
        f = open("./list_raw.txt", "rb")
        list_raw = pickle.load(f)

        list = list_raw

        f = open('list.txt', 'wb')
        pickle.dump(list, f)
        name = None

    elif a == "clear":
        if os.name == 'nt':
            os.system('cls')
        elif os.name == 'posix':
            os.system('clear')

    elif a == "setup":

        if os.name == 'nt':
            os.system('cls')
        elif os.name == 'posix':
            os.system('clear')

        print("1)Fichier texte avec n'importe quel nom de fichier(*.txt)Créer un.\n"
              "2)Dedans\n1.Nom\n2.Nom\Hmm ·\Hmm ·\Hmm ·\Entrez n.\n"
              "3)setup>Entrez le nom du fichier après.\n"
              "4)Tapez exit pour quitter.")

        while True:

            a = input("setup>")

            if a == "exit":
                if os.name == 'nt':
                    os.system('cls')
                elif os.name == 'posix':
                    os.system('clear')
                break

            else:

                if os.path.isfile(a):

                    f = open(a, "r")
                    list = []

                    for x in f:
                        list.append(x.rstrip("\n"))
                    f.close()

                    f = open('list.txt', 'wb')
                    pickle.dump(list, f)

                    f = open('list_raw.txt', 'wb')
                    pickle.dump(list, f)

                    history = []
                    f = open('history.txt', 'wb')
                    pickle.dump(history, f)

                else:
                    print("Veuillez saisir le nom exact du fichier.")

    elif a == "history":

        f = open("./history.txt", "rb")
        history = pickle.load(f)

        for i in history:
            print(i)

        f = open('history.txt', 'wb')
        pickle.dump(history, f)

    elif "history" in a and "clear" in a:

        f = open("./history.txt", "rb")
        history = pickle.load(f)

        history = []

        f = open('history.txt', 'wb')
        pickle.dump(history, f)

    elif a == "exit":
        sys.exit()

    elif a == "pass":
        pass

    elif a == "":
        if name == None:
            pass

        else:
            if name in list:
                list.remove(name)

            if list != None:
                f = open('list.txt', 'wb')
                pickle.dump(list, f)

            if list == []:
                f = open("./list_raw.txt", "rb")
                list_raw = pickle.load(f)

                list = list_raw
                f = open('list.txt', 'wb')
                pickle.dump(list, f)

    else:
        print(a + ":Commande non trouvée")

    if a == "" or a == "pass":

        f = open("./list.txt", "rb")
        list = pickle.load(f)

        # print(list)

        name = random.choice(list)

        print(name)

        f = open("./history.txt", "rb")
        history = pickle.load(f)

        now = datetime.datetime.now()

        history.append(now.strftime('%m mois%jour j') + ":" + name)

        f = open('history.txt', 'wb')
        pickle.dump(history, f)

Prêt à l'emploi

  1. Créez les fichiers suivants dans le même répertoire que le programme  1.list.txt  2.list_raw.txt  3.history.txt  4.namelist.txt

2.namelist.txt Modifier comme ci-dessous

namelist.txt


1.Yamada Taro
2.Hanako Yamada
  1. Exécutez le programme et exécutez le programme d'installation

Scène d'opération

Screenshot from 2020-02-16 11-07-36.png Screenshot from 2020-02-16 11-07-39.png Screenshot from 2020-02-16 11-07-48.png Screenshot from 2020-02-16 11-07-53.png Screenshot from 2020-02-16 11-07-59.png Screenshot from 2020-02-16 11-08-30.png Screenshot from 2020-02-16 11-08-32.png Screenshot from 2020-02-16 11-08-34.png Screenshot from 2020-02-16 11-08-47.png

Résumé

C'est dommage que ce ne soit pas facile à utiliser pour tout le monde car c'est CUI. Cela ne veut pas dire que je vais en faire une interface graphique. (Je ne peux pas le faire même si je veux le faire parce que je n'ai pas la capacité de concevoir ...)

J'ai créé une version graphique pour une raison quelconque Créez une application qui devine les étudiants avec la version python-GUI

Recommended Posts

Créez une application qui devine les étudiants avec Python
Créez une application qui devine les étudiants avec la version python-GUI
Créez une application de mots anglais avec python
Créons une application qui authentifie OIDC avec Azure AD
Créez rapidement un fichier Excel avec Python #python
[Python] Créez rapidement une API avec Flask
Créez des données de test comme ça avec Python (partie 1)
Créez une application de composition d'images avec Flask + Pillow
Créer une page qui se charge indéfiniment avec python
Créer une image avec des caractères avec python (japonais)
Créez rapidement un serveur API avec Python + Falcon
[kotlin] Créez une application qui reconnaît les photos prises avec un appareil photo sur Android
Créez une application qui fonctionne bien avec les rapports des utilisateurs à l'aide de l'API COTOHA
Créer un serveur local GIF animé avec Python + Flask
Créer un environnement avec virtualenv
Créer une API avec Django
Créer un gif 3D avec python3
Créer un œuf avec python
Créer un répertoire avec python
Créons une application capable de rechercher des images similaires avec Python et Flask Part1
Créons une application capable de rechercher des images similaires avec Python et Flask Part2
Créez un fichier exe qui fonctionne dans un environnement Windows sans Python avec PyInstaller
Créons un script qui s'enregistre avec Ideone.com en Python.
Créez des jeux LCD (16x2) avec Raspberry Pi et Python
Comment exécuter une application construite avec Python + py2app construite avec Anaconda
Créer une application Todo avec Django ① Créer un environnement avec Docker
[Python Kivy] Comment créer un fichier exe avec pyinstaller
Découpez une image avec python
Créer une animation de tracé avec Python + Matplotlib
Créer Awaitable avec l'API Python / C
Créez un environnement virtuel avec Python!
J'ai envoyé un SMS avec Python
Créez une tranche d'âge avec les pandas
Dessinez une illustration avec Python + OpenCV
[Python] Envoyez des e-mails avec Outlook
Créer une API REST qui renvoie l'heure actuelle avec Python3 + Falcon
[LINE Messaging API] Créez un BOT qui se connecte à quelqu'un avec Python
Créez une application qui informe LINE de la météo tous les matins
Créez une application qui recherche uniquement à l'aide de l'API de recherche personnalisée Google avec Python 3.3.1 dans Bottle
Créez une application de gestion automatique des notes pour Tenho Private Room avec le bot LINE et Python Partie 1
Créez une application de gestion automatique des notes pour Tenho Private Room avec le bot LINE et Python Partie 2
Créez une application de gestion automatique des notes pour la salle privée Tenho avec le bot LINE et la partie Python ③
Créer une application en classifiant avec Pygame
Créer un décorateur de fonction Python avec Class
[Python] Un programme qui crée des escaliers avec #
Créez automatiquement la documentation de l'API Python avec Sphinx
Créer une application de fractionnement d'image avec Tkinter
Créez wordcloud à partir de votre tweet avec python3
Créer une visionneuse de traitement d'image avec PySimpleGUI
Créez une image factice avec Python + PIL.
Uncle SES modernise l'application VBA avec Python
Remarques lors de la création d'un environnement avec python
Créez une application Web qui peut être facilement visualisée avec Plotly Dash
Créer une application GUI simple en Python
[Python] Créez un environnement virtuel avec Anaconda
Créons un groupe gratuit avec Python
Créer une application graphique avec Tkinter de Python