Janken Poi en Python pour les débutants (réponses et explications)

Cet article est destiné aux débutants Django Girls Japan Python, Ceci est un matériel de session d'étude pour "Faisons un jeu Janken avec Python". Puisque l'auteur est aussi un débutant, nous nous excusons pour tout inconvénient. Environnement Namer: Windows 10 python3.5 Cet article est une page de réponses et d'explications aux problèmes dans l'article Janken Poi en Python.

Code de réponse

La page de problème est ici

# !/usr/bin/env python
# -*- coding: utf-8 -*-

import random

dic = {"a": "Goo", "b": "Choki", "c": "Par"}

print("Janken")
print("a=Goo b=Choki c=Entrez par a, b ou c")
user = input('>>>  ')
user = user.lower()

try:
    user_choice = dic[user]

    choice_list = ["a", "b", "c"]
    pc = dic[random.choice(choice_list)]

    draw = 'DRAW'
    win = 'You Win!!'
    lose = 'You lose!!'

    if user_choice == pc:
        judge = draw
    else:
        if user_choice == "Goo":
            if pc == "Choki":
                judge = win
            else:
                judge = lose

        elif user_choice == "Choki":
            if pc == "Par":
                judge = win
            else:
                judge = lose

        else:
            if pc == "Goo":
                judge = win
            else:
                judge = lose

    print("Tu choisis%s" % user_choice)
    print("L'ordinateur a choisi%s" % pc)
    print("Le résultat est%s" % judge)
except:
    print("Entrez a, b ou c.")

Commentaire

Créer un dictionnaire

dic = """Question 1: Veuillez créer un dictionnaire où 1 est Goo 2 et Choki 3 est Par."""

dic.JPG Demandez à l'utilisateur de saisir a, b ou c. Puisque la clé du dictionnaire est a, b ou c, la clé est a, b, c et la valeur est Créez un dictionnaire avec goo, choki et par.

input()

input.JPG

L'instruction print est une instruction qui imprime le contenu décrit dans ().

user = input('>>> ') L'exécution du programme est interrompue à la ligne où input () est écrit et attend l'entrée du clavier. Cette fois, il y a une instruction print sur deux lignes avant input (), donc elle sera interrompue avec l'instruction print et le >>> spécifié dans () de input () affiché.

La fonction input () stocke le contenu saisi depuis le clavier dans la variable (utilisateur dans ce cas).

De plus, cette fois, merci à l'utilisateur ... pour que vous puissiez saisir des lettres majuscules, user = Conversion des caractères saisis avec user.lower () en minuscules.

Gestion des exceptions

Si le contenu saisi par l'utilisateur n'est pas a, b ou c, il n'y a pas de clé dans le dictionnaire. Une erreur se produira et le programme sera interrompu.

3.JPG

Cela gâche le jeu amusant (?).

Il existe différentes manières d'éviter cela, mais cette fois, nous utiliserons la gestion des exceptions.

try.JPG

Obtenir la valeur du dictionnaire à l'aide de variables

user_choice = """Question 2: Est-ce que c'est goo en utilisant dic à partir du nombre entré par l'utilisateur?
Obtenez le caractère de choki ou par"""

La méthode d'acquisition de la valeur du dictionnaire est le nom du dictionnaire [clé]. Cette fois je vais utiliser dic.JPG Par conséquent, le nom du dictionnaire sera dic. La clé est user car ce sont les informations reçues par input ().

Par conséquent, afin d'obtenir la valeur de Goo, Choki ou Par à partir des informations sélectionnées par l'utilisateur,

user_choice = dic[user]

Il est décrit comme.

Distinguer goo, choki, par des mains de l'ordinateur

pc = """Question 3: En utilisant le hasard importé, laissez le PC choisir un nombre,
Et obtenir la chaîne de goo, choki ou par"""

6.JPG

Il existe d'autres façons de choisir une main d'ordinateur, en utilisant le module aléatoire, Cette fois, python prépare la liste en premier, utilisez donc random.choice ().

Avec random.choice (choice_list), un élément est extrait aléatoirement de la choice_list. L'élément extrait est utilisé pour la clé du dictionnaire créé précédemment.

Par conséquent ... De la main sélectionnée par l'ordinateur en définissant dic [random.choice (choice_list)] Vous pouvez obtenir de la valeur.

Branche conditionnelle avec instruction if

"""Question 4: Comparez la main de l'utilisateur avec celle du PC pour obtenir le résultat.
Le résultat est de créer une variable appelée juge et de faire l'un des tirages ci-dessus gagner perdre
Veuillez le mettre dans la variable."""

if.JPG Les flèches de la même couleur sont les conditions. (Je suis désolé. C'est un peu difficile à comprendre. Je vais le mettre à jour si je peux le rendre plus facile à comprendre ...) python Je vais d'abord faire ce jugement, puis je gagnerai ou perdrai, alors je ferai un jugement détaillé ci-dessous sinon:.

Concaténation de chaînes

Concaténation à l'aide de% s% d

9.JPG

Cette fois, j'utilise un type légèrement plus ancien de méthode de concaténation de chaînes. Même maintenant, il est décrit comme un exemple sur divers sites. Je l'utilise encore beaucoup (car c'est facile ... ^^;), donc je vais vous l'expliquer.

"Ce que tu as choisi%s" % user_choice

Il y a une description de% s dans la chaîne de caractères entre "" ('' est OK). Spécifiez le caractère que vous souhaitez incorporer dans cette partie% s (cette fois, la chaîne de caractères dans la variable user_choice). Pour spécifier, placez-le simplement entre "", entrez%, puis entrez le caractère que vous souhaitez incorporer.

Et si vous souhaitez intégrer plusieurs personnages?

a = "women"
b = 40

"A %s does not become interesting until she is over %d" % (a, b)

→A women does not become interesting until she is over 40 *% d intègre la valeur int

C'est OK si vous passez% s et% d dans l'ordre spécifié, après le% après la chaîne de caractères (listés dans l'ordre d'incorporation, séparés par des virgules).

** À propos, la traduction japonaise de ↑ est "Les femmes ne deviennent intéressantes qu'après 40 ans." (Ça n'a pas d'importance, mais lol)

Autres méthodes de connexion

Concaténation à l'aide d'opérateurs

Vous pouvez également utiliser des opérateurs pour les chaînes. Réellement ...

"Vous avez choisi" + user_choice

Même si vous dites simplement, il n'y a aucun problème avec ce contenu.

Vous pouvez également utiliser * (multiplication) pour la chaîne de caractères. Par exemple ... En supposant que "Goo" est dans la variable user_choice

user_choice * 3

Puis

"Goo Goo Goo"

Ce sera.

Concaténation à l'aide du format

Eh bien ... Dans certains cas, vous voudrez peut-être incorporer la même chaîne à plusieurs endroits.

"My name is {0}.  Hallo {0}!! My Name is {1}".format("Taro", "Hanako")

→ "My name is Taro. Hallo Taro!! My Name is Hanako"

Le nombre entre {} indique le numéro de pièce du taple après formatage. Si vous utilisez% s, l'intérieur de () est le même que ("Taro", "Taro", "Hanako"). Il est nécessaire d'en lister plus d'un, mais si vous utilisez le format, comme ci-dessus, Ceci est pratique car vous n'avez pas à écrire deux fois "Taro".

S'il y a de nombreux endroits que vous souhaitez intégrer et qu'il est difficile de gérer par numéro de chambre, etc. Il est également possible de spécifier par mot-clé.

"My name is {name1}.  Hallo {name1}!! My Name is {name2}".format(name1= "Taro", name2 =  "Hanako")

→ "My name is Taro. Hallo Taro!! My Name is Hanako"

Il existe plusieurs autres façons de spécifier le format, mais je voudrais l'introduire séparément.

prime. J'ai essayé de faire 3 jeux

・ Dans ce cas, vous ne pouvez pas compter dans le jeu ・ Lorsque le nombre total de victoires entre l'utilisateur et l'ordinateur atteint 3, celui qui gagne 2 ou plus gagne.

# -*- coding: utf-8 -*-
# !/usr/bin/env python

import random

dic = {"a": "Goo", "b": "Choki", "c": "Par"}

draw = 'DRAW'
win = 'You Win!!'
lose = 'You lose!!'

user_co = 0
pc_co = 0

judge = win

i = 1
while (user_co + pc_co) < 3:
    if judge == win or judge == lose:
        print(u"Janken")
    else:
        print(u"Aikode")
    print(u"a=Goo b=Choki c=Entrez par a, b ou c")
    user = input('>>>  ')

    user_choice = user.lower()
    try:
        user_choice = dic[user]
    except:
        print("Veuillez saisir a, b ou c.")
        continue

    pc = dic[str(random.choice("abc"))]

    if user_choice == pc:
        judge = draw
    else:
        if user_choice == "Goo":
            if pc == "":
                judge = win
            else:
                judge = lose

        elif user_choice == "Choki":
            if pc == "Par":
                judge = win
            else:
                judge = lose

        else:
            if pc == u"Goo":
                judge = win
            else:
                judge = lose
    if judge == win:
        user_co += 1
    elif judge == lose:
        pc_co += 1

    print(u"Tu choisis%s" % user_choice)
    print(u"L'ordinateur a choisi%s" % pc)
    print(u"%Le résultat de la dth race est%s" % (i, judge))
    print(u"")

    i += 1

if user_co >= pc_co:
    print(u"%d gagner%Vous gagnez avec une défaite" % (user_co, pc_co))
else:
    print(u"%d gagner%La défaite est votre défaite" % (user_co, pc_co))


↑ Le 3ème jeu se fait également selon mes règles ... Je pense que ce sera une bonne pratique d'arranger et de définir vous-même diverses règles.

Recommended Posts

Janken Poi en Python pour les débutants (réponses et explications)
Exécutez unittest en Python (pour les débutants)
Raisonnement causal et recherche causale par Python (pour les débutants)
Essayez de calculer RPN avec Python (pour les débutants)
[Introduction pour les débutants] Manipuler MySQL avec Python
Histoire de base de l'héritage en Python (pour les débutants)
Manuel python pour les débutants
OpenCV pour les débutants en Python
[Pour les débutants] Comment utiliser la commande say avec python!
Préférences pour jouer à Wave dans Python PyAudio et PortAudio
Problèmes et contre-mesures pour le débordement de la binarisation d'Otsu en Python
[Pour les débutants] Apprenez la grammaire de base Python gratuitement en 5 heures!
Python # Comment vérifier le type et le type pour les super débutants
Recherche récursive de fichiers et de répertoires en Python et sortie
Flux d'apprentissage pour les débutants en Python
Techniques de tri en Python
Construction de l'environnement Python3 (pour les débutants)
Python #function 2 pour les super débutants
Pile et file d'attente en Python
Grammaire de base Python pour les débutants
Pandas 100 coups pour les débutants en Python
Python #function 1 pour les super débutants
Unittest et CI en Python
#List Python pour les super débutants
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
À propos de "for _ in range ():" de python
Liste des informations sur les arguments de méthode pour les classes et les modules en Python
[Pour les débutants] Résumé de l'entrée standard en Python (avec explication)
Méthode d'apprentissage TensorFlow pour les professionnels des arts libéraux et les débutants en Python
Conseils pour coder courts et faciles à lire en Python
Astuces utiles liées à la liste et aux instructions en Python
Problèmes et solutions à la demande de MySQL db dans Python 3
[Python] Accès et recadrage des pixels d'image à l'aide d'OpenCV (pour les débutants)
Rechercher les fuites de mémoire dans Python
Paquets qui gèrent le MIDI avec Python midi et pretty_midi
Différence entre list () et [] en Python
Rechercher des commandes externes avec python
Différence entre == et est en python
Afficher les photos en Python et html
Exercices Python pour les débutants # 2 [pour instruction / instruction while]
Algorithme de tri et implémentation en Python
Python pour les super débutants Super débutants Python # dictionnaire type 1
Manipuler des fichiers et des dossiers en Python
À propos de Python et Cython dtype
Affectations et modifications des objets Python
Python #index pour les super débutants, tranches
Vérifiez et déplacez le répertoire en Python
Chiffrement avec Python: IND-CCA2 et RSA-OAEP
<Pour les débutants> bibliothèque python <Pour l'apprentissage automatique>
Hashing de données en R et Python
Fonction Python #len pour les super débutants
Synthèse de fonctions et application en Python
Exporter et exporter des fichiers en Python
Web scraping pour les débutants en Python (1)
Inverser le pseudonyme plat et le katakana en Python2.7
Lire et écrire du texte en Python