[PYTHON] Programme de livre de mots anglais lié à des documents Google

introduction

Ravi de vous rencontrer. Mon nom est kkatus03. Je pense qu'il y a des endroits inaccessibles, mais merci.

Aperçu du programme

Le plan est comme suit.

Cette fois, j'ai décidé de faire un tel programme

J'étudiais TOEIC. Bien sûr, je me consacrais également à l'étude des mots anglais, alors j'ai acheté des notes pour les mots et j'ai étudié. Cependant, comme j'avais plus d'occasions d'utiliser des PC à l'université, j'ai souffert d'un stress que je ne ressentais pas au lycée.

――Frustré d'écrire des lettres à la main ―― Vos bagages augmenteront ・ Si vous oubliez votre cahier à la maison, vous ne pourrez pas étudier

J'ai progressivement ressenti l'inefficacité des supports papier, et j'ai pensé: "Est-il possible de le gérer en utilisant le cloud comme les documents Google?" Si cela peut être réalisé, il sera possible d'ajouter des mots anglais sans stress n'importe où et sur n'importe quel appareil (même depuis un smartphone, si vous utilisez un clavier dédié).

De plus, je me suis demandé s'il serait possible de poser des questions dans un format quiz au hasard. Parce que

――Si les mots sont dans l'ordre, les mots faciles à retenir seront biaisés. ――Je me souviens avoir connecté des mots écrits sur la même page

Parce que.

En anglais, l'objet réel doit remonter à la surface au moment où vous voyez le mot anglais. Par exemple

  1. Voir le mot «pomme»
  2. Faire flotter l'image réelle

687474703a2f2f6b6964732e77616e7075672e636f6d2f696c6c7573743531385f7468756d622e676966.gif

Nous devons pouvoir le faire avec chaque mot. Pour maîtriser cela, j'ai senti qu'il valait mieux pratiquer au quotidien avec la «fonction de poser des mots au hasard et sous forme de quiz».

Comment utiliser (préparation de livre de mots)

  1. Créez un document sur Google Drive (quel qu'en soit le nom) ①.PNG

  2. Rendez "Disponible à tous ceux qui connaissent le lien" dans les paramètres de partage du document créé. ②.PNG

  3. Écrivez les données de mot au format csv dans le document créé. ④.PNG

Etc "Mots anglais" "Virgule demi-largeur" "Traduction japonaise" Ce n'est pas grave si vous écrivez dans le format. 4. Collez le lien du document dans l'espace prévu sur la deuxième ligne de code ci-dessous ③.PNG

Comment utiliser (exécuter)

  1. Lorsque vous l'exécutez, une question vous sera posée ⑤.PNG
  2. Pensez à la réponse dans votre tête et appuyez sur Entrée pour obtenir la réponse à la question actuelle et à la question suivante ⑥.PNG
  3. Répétez jusqu'à la fin et le message "bien joué !!" sera affiché. ⑦.PNG

Bien sûr, la prochaine fois que vous l'exécuterez, vous devriez être invité dans un ordre différent de la dernière fois!

Explication des programmes et des fonctions

Pour expliquer brièvement le programme,

C'est comme ça.

Les trois fonctions suivantes sont les principales fonctions créées.

--Fonction DLwordnote

DLwordnote.png [Argument] URL de Google Document Wordbook [Valeur de retour] Une chaîne de caractères obtenue en extrayant uniquement les données de mots du fichier html du livre de mots. La méthode d'extraction étant approximative, elle est omise.

--Fonction Make_Data

Make_Data.png [Argument] Données Word extraites par DLwordnote [Valeur de retour] Un tableau qui stocke des données de mot Utilisez le module csv pour stocker dans un tableau à deux dimensions.

--Fonction Quiz

Quiz.png [Argument] Un tableau qui stocke les données de mot créées par Make_Data [Valeur de retour] Aucun Utilisez le module aléatoire pour poser des questions sans ordre particulier.

Implémentation avec Python

En supposant Python 3. ○. Puisque le but était de réaliser la fonction, je l'ai faite avec peu de connaissances.

word_practice.py


def main():
    Quiz(Make_Data(DLwordnote('URL spécifiée')))
    
    
    print("well played!!")
    

import urllib.request as req

def DLwordnote(url):
    response = req.urlopen(url)        #Ouvrez le fichier HTML en spécifiant l'URL
    html_data=(str(response.read(),'utf-8_sig'))#html_Mettez tout le HTML dans une variable appelée data
    response.close()
    #print(html_data)

    word_data=''#Créez ici des données de mots uniquement

    startwords='DOCS_modelChunk = [{"ty":"is","ibi":'#En html, les données de mots commencent par cette phrase(Devrait être)

    while(html_data.find(startwords)!=-1):
        startpoint = html_data.find(startwords)+len(startwords)#Quel personnage est le point de départ
        html_data=extract(html_data,startpoint,len(html_data))#Couper au début des données de mot

        i=0#,"s":"De quel nombre compte
        while True:#"Jusqu'à ce que tu trouves
            if (html_data[html_data.find(',"s":"')+len(',"s":"')+i]=='"'):#"Si est trouvé, bouclez
                break
            word_data+=str(html_data[html_data.find(',"s":"')+len(',"s":"')+i])#Le HTML précédent_mot extrait des données_Affecter à une variable appelée data
            #Avec ça,\n n'est pas reconnu comme un code de saut de ligne
            i+=1

    dammy="\\"+"n"#Pas un code de saut de ligne\n
    #print(word_data.replace(dammy,"\n"))
    return (word_data.replace(dammy,"\n"))#Renvoie la chaîne csv lue

import random
import csv

def Make_Data(csv_data):#Lire la chaîne csv à partir du fichier
#J'ai essayé d'utiliser le moins de séquences possible
    list_data=csv_data.split("\n")#La chaîne de caractères csv est séparée comme un élément de liste basé sur le saut de ligne, qui est répertorié._Attribuer aux données
    list_data=[n for n in list_data if (n!='\n') and (n!='') and (n!=' ')]#Travailler pour supprimer les valeurs invalides
    for i in range(len(list_data)):#list_Séparez les données en éléments dans chaque élément en fonction de virgules
        list_data[i]=list_data[i].split(",")
    
    #print(list_data)
    return list_data#Liste contenant la liste csv_Renvoie des données

def Quiz(list_data):
    #Créez une liste appelée check pour noter si chaque question a été posée(below),0:undo,1:done
    check=[0]*len(list_data)#Pour le moment, faites une liste avec tous les 0 éléments avec la même longueur que les données
    total=0#Notez le nombre de questions posées

    while True:#boucle
        num=random.randint(0,len(list_data)-1)#Remplacez le numéro du problème par num (aléatoire)
        if(check[num]==0):#Si cela n'a pas encore été demandé
            print("[%d/%d]" % (total+1,len(list_data)))#Sortie d'écran et questions
            #press enter key
            input("%s" % (list_data[num][0]))
            print("%s\n" % (list_data[num][1]))#Sortie d'écran et questions

            check[num]=1#Faites une note comme déjà mentionné
            total+=1#1 compte à rebours
            
        
        if(total==len(list_data)):#Si toutes les questions sont posées
            break#Déverrouiller

def extract(data,a,b):#Données de chaîne de caractères a,Extraire jusqu'à b
    tmp=''
    for i in range(a,b):
        tmp+=data[i]
    return tmp

if __name__=="__main__":
    main()

Résumé

Dans ce programme

Réalisé la fonction. C'est un code approximatif, mais j'ai suivi ce programme tous les jours en me rendant à l'école et j'ai augmenté mon score TOEIC de 400 points à la seconde moitié de 600 points.

En tant que futur numéro

Cela peut être mentionné.

Je posterai à nouveau si je peux l'améliorer!

Bonus: comment courir sur iPhone

  1. Veuillez installer l'application "Mobile C" IMG_1691.PNG
  2. Créez un fichier dans un dossier approprié et collez le code ci-dessus IMG_1692.PNG IMG_1694.PNG
  3. Exécutez avec "Run" et appuyez sur le bouton fléché plié en bas à droite pour continuer. IMG_1693.PNG

Recommended Posts

Programme de livre de mots anglais lié à des documents Google
Créez une application de mots anglais avec python
[Le livre de mots anglais le plus fort Bakusei ww] Génère automatiquement le livre de mots anglais requis pour les ingénieurs avec Python-Partie 1
Enregistrement facile des livres avec l'API et Rails de Google Livres
Une histoire liée à Google Cloud Storage avec un peu d'ingéniosité