[GO] Janken Poi in Python für Anfänger (Antworten und Erklärungen)

Dieser Artikel ist für Django Girls Japan Python Anfänger, Dies ist ein Lernmaterial für "Lass uns ein Janken-Spiel mit Python machen". Da der Autor auch Anfänger ist, entschuldigen wir uns für etwaige Unannehmlichkeiten. Namer-Umgebung: Windows 10 Python3.5 Darüber hinaus enthält dieser Artikel Antworten und Erklärungen zu den Problemen im Artikel von Janken Poi in Python.

Antwortcode

Die Problemseite ist hier

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

import random

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

print("Janken")
print("a=Goo b=Choki c=Geben Sie Par a, b oder c ein")
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 == "Schmiere":
            if pc == "Choki":
                judge = win
            else:
                judge = lose

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

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

    print("Deine Wahl%s" % user_choice)
    print("%s" % pc)
    print("%s" % judge)
except:
    print("")

dic = """Geben Sie a, b oder c für das Ergebnis ein. * Der obige Code ist nur ein Beispiel. Ich denke, es gibt verschiedene Möglichkeiten, es zu beschreiben, also hoffe ich, dass Sie es als eine der Methoden erkennen. Kommentar Erstellen eines Wörterbuchs Q1: Erstellen Sie ein Wörterbuch, in dem 1 Goo 2 und Choki 3 Par ist."""

dic.JPG Bitten Sie den Benutzer, a, b oder c einzugeben. Da der Schlüssel des Wörterbuchs a, b oder c ist, ist der Schlüssel a, b, c und der Wert ist Erstellen Sie ein Wörterbuch mit goo, choki und par.

input()

input.JPG

Die print-Anweisung ist eine Anweisung, die den in () beschriebenen Inhalt druckt.

user = input('>>> ') Die Programmausführung wird in der Zeile unterbrochen, in die input () geschrieben wird, und wartet auf die Tastatureingabe. Dieses Mal steht vor input () eine zweizeilige print-Anweisung, sodass diese mit der print-Anweisung und dem in () von input () angegebenen >>> unterbrochen wird.

Die Funktion input () speichert den über die Tastatur eingegebenen Inhalt in der Variablen (in diesem Fall Benutzer).

Außerdem diesmal freundlich an den Benutzer ... damit Sie Großbuchstaben eingeben können, user = Konvertiert mit user.lower () eingegebene Zeichen in Kleinbuchstaben.

Ausnahmebehandlung

Wenn der vom Benutzer eingegebene Inhalt nicht a, b oder c ist, gibt es keinen Schlüssel im Wörterbuch. Ein Fehler tritt auf und das Programm wird unterbrochen.

3.JPG

Dies verdirbt das lustige (?) Spiel.

Es gibt verschiedene Möglichkeiten, dies zu vermeiden, aber dieses Mal verwenden wir die Ausnahmebehandlung.

try.JPG

Abrufen des Wörterbuchwerts mithilfe von Variablen

user_choice = """Frage 2: Verwendet es dic von der vom Benutzer eingegebenen Nummer?
Holen Sie sich den Charakter von Choki oder Par"""

Die Methode zum Erfassen des Werts des Wörterbuchs ist der Wörterbuchname [Schlüssel]. Dieses Mal werde ich verwenden dic.JPG Daher lautet der Wörterbuchname dic. Der Schlüssel ist Benutzer, da es sich um die von input () empfangenen Informationen handelt.

Um den Wert von Goo, Choki oder Par aus den vom Benutzer ausgewählten Informationen zu erhalten,

user_choice = dic[user]

Es wird beschrieben als.

Unterscheiden Sie Goo, Choki, Par von den Händen des Computers

pc = """Frage 3: Lassen Sie den PC anhand des importierten Zufalls eine Zahl auswählen.
Und hol dir die Schnur von Goo, Choki oder Par"""

6.JPG

Es gibt andere Möglichkeiten, eine Computerhand mithilfe des Zufallsmoduls auszuwählen. Verwenden Sie diesmal random.choice (), da die Liste zuerst in Python erstellt wird.

Mit random.choice (choice_list) wird ein Element zufällig aus der choice_list extrahiert. Das extrahierte Element wird für den Schlüssel des zuvor erstellten Wörterbuchs verwendet.

Daher ... Aus der vom Computer ausgewählten Hand durch Setzen von dic [random.choice (choice_list)] Sie können Wert bekommen.

Bedingte Verzweigung mit if-Anweisung

"""Frage 4: Vergleichen Sie die Hand des Benutzers mit der Hand des PCs, um das Ergebnis zu erhalten.
Das Ergebnis ist, eine Variable namens Judge zu erstellen und einen der oben genannten Draw Win Woss zu verlieren
Bitte setzen Sie es in die Variable."""

if.JPG Pfeile der gleichen Farbe sind die Bedingungen. (Es tut mir leid. Es ist etwas schwer zu verstehen. Ich werde es aktualisieren, wenn ich es leichter verstehen kann ...) python Ich werde dieses Urteil zuerst fällen und dann gewinnen oder verlieren, also werde ich unten ein detailliertes Urteil fällen:

Verkettung von Strings

Verkettung mit% s% d

9.JPG

Dieses Mal verwende ich eine etwas ältere Art der String-Verkettungsmethode. Schon jetzt wird es an verschiedenen Stellen als Beispiel beschrieben. Ich benutze es immer noch oft (weil es einfach ist ... ^^;), also werde ich es erklären.

"Was du gewählt hast%s" % user_choice

Es gibt eine Beschreibung von% s in der Zeichenfolge in "" ('' ist OK). Geben Sie das Zeichen an, das Sie in diesen% s-Teil einbetten möchten (diesmal die Zeichenfolge in der Variablen user_choice). Um dies anzugeben, fügen Sie es einfach in "" ein, geben Sie% ein und geben Sie dann das Zeichen ein, das Sie einbetten möchten.

Was ist, wenn Sie mehrere Zeichen einbetten möchten?

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 bettet den int-Wert ein

Es ist in Ordnung, wenn Sie% s und% d in der angegebenen Reihenfolge nach% nach der Zeichenfolge übergeben (in der Reihenfolge der Einbettung aufgeführt, durch Kommas getrennt).

** Übrigens ist die japanische Übersetzung von ↑ "Frauen werden erst nach 40 interessant." (Es ist egal, aber lol)

Andere Verbindungsmethoden

Verkettung mit Operatoren

Sie können auch Operatoren für Zeichenfolgen verwenden. Tatsächlich ...

"Sie haben gewählt" + user_choice

Auch wenn Sie nur sagen, es gibt kein Problem mit diesem Inhalt.

Sie können auch * (Multiplikation) für die Zeichenfolge verwenden. Zum Beispiel ... Angenommen, "Goo" befindet sich in der Variablen user_choice

user_choice * 3

Dann

"Goo Goo Goo"

Es wird sein.

Verkettung im Format

Nun ... In einigen Fällen möchten Sie möglicherweise dieselbe Zeichenfolge an mehreren Stellen einbetten.

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

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

Die Zahl in {} gibt die Raumnummer des Taples nach der Formatierung an. Wenn Sie% s verwenden, ist das Innere von () dasselbe wie ("Taro", "Taro", "Hanako"). Es ist notwendig, mehrere aufzulisten, aber wenn Sie das Format wie oben verwenden, Dies ist praktisch, da Sie nicht zweimal "Taro" schreiben müssen.

Wenn es viele Orte gibt, die Sie einbetten möchten, und es schwierig ist, sie anhand der Zimmernummer usw. zu verwalten. Es ist auch möglich, durch Schlüsselwort anzugeben.

"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"

Es gibt verschiedene andere Möglichkeiten, das Format anzugeben, aber ich möchte es separat vorstellen.

Bonus. Ich habe versucht, 3 Spiele zu machen

・ In diesem Fall können Sie nicht im Spiel zählen ・ Wenn die Gesamtzahl der Siege zwischen dem Benutzer und dem Computer 3 erreicht, gewinnt derjenige, der 2 oder mehr gewinnt.

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

import random

dic = {"a": "Schmiere", "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=Geben Sie Par a, b oder c ein")
    user = input('>>>  ')

    user_choice = user.lower()
    try:
        user_choice = dic[user]
    except:
        print("Bitte geben Sie a, b oder c ein.")
        continue

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

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

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

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

    print(u"Deine Wahl%s" % user_choice)
    print(u"Der Computer wählte%s" % pc)
    print(u"%Das Ergebnis des d-ten Rennens ist%s" % (i, judge))
    print(u"")

    i += 1

if user_co >= pc_co:
    print(u"%d gewinnen%Sie gewinnen mit einer Niederlage" % (user_co, pc_co))
else:
    print(u"%d gewinnen%d Niederlage ist deine Niederlage" % (user_co, pc_co))


↑ Das 3. Spiel wird ebenfalls nach meinen Regeln gemacht ... Ich denke, es wird eine gute Praxis sein, verschiedene Regeln selbst zu arrangieren und festzulegen.

Recommended Posts

Janken Poi in Python für Anfänger (Antworten und Erklärungen)
Führen Sie unittest in Python aus (für Anfänger)
Kausales Denken und kausale Suche von Python (für Anfänger)
Versuchen Sie, RPN mit Python zu berechnen (für Anfänger)
[Einführung für Anfänger] Umgang mit MySQL mit Python
Grundlegende Geschichte der Vererbung in Python (für Anfänger)
Python Lehrbuch für Anfänger
OpenCV für Python-Anfänger
[Für Anfänger] Wie man den Befehl say mit Python benutzt!
Einstellungen für das Spielen von Wave in Python PyAudio und PortAudio
Probleme und Gegenmaßnahmen zum Überlaufen der Binärisierung von Otsu in Python
[Für Anfänger] Lernen Sie in 5 Stunden kostenlos die grundlegende Python-Grammatik!
Python # So überprüfen Sie Typ und Typ für Super-Anfänger
Suchen Sie rekursiv nach Dateien und Verzeichnissen in Python und geben Sie sie aus
Lernablauf für Python-Anfänger
Techniken zum Sortieren in Python
Python3-Umgebungskonstruktion (für Anfänger)
Python #Funktion 2 für Super-Anfänger
Stapel und Warteschlange in Python
Grundlegende Python-Grammatik für Anfänger
100 Pandas klopfen für Python-Anfänger
Python #Funktion 1 für Super-Anfänger
Unittest und CI in Python
Python #Liste für Super-Anfänger
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
Über "für _ in range ():" von Python
Listet Methodenargumentinformationen für Klassen und Module in Python auf
[Für Anfänger] Zusammenfassung der Standardeingabe in Python (mit Erklärung)
TensorFlow-Lernmethode für Profis der freien Künste und Python-Anfänger
Tipps zum Codieren kurz und einfach in Python zu lesen
Nützliche Tricks in Bezug auf Listen und Anweisungen in Python
Probleme und Lösungen bei der Frage nach MySQL db in Python 3
[Python] Zugreifen auf und Zuschneiden von Bildpixeln mit OpenCV (für Anfänger)
Überprüfen Sie Python auf Speicherlecks
Pakete, die MIDI mit Python Midi und Pretty_Midi verarbeiten
Unterschied zwischen list () und [] in Python
Suchen Sie mit Python nach externen Befehlen
Unterschied zwischen == und ist in Python
Zeigen Sie Fotos in Python und HTML an
Python-Übungen für Anfänger # 2 [für Anweisung / while-Anweisung]
Sortieralgorithmus und Implementierung in Python
Python für Super-Anfänger Super-Anfänger Python # Wörterbuch Typ 1
Bearbeiten Sie Dateien und Ordner in Python
Über Python und Cython dtype
Zuweisungen und Änderungen in Python-Objekten
Python #index für Super-Anfänger, Slices
Überprüfen und verschieben Sie das Verzeichnis in Python
Verschlüsselung mit Python: IND-CCA2 und RSA-OAEP
<Für Anfänger> Python-Bibliothek <Für maschinelles Lernen>
Hashing von Daten in R und Python
Python #len Funktion für Super-Anfänger
Funktionssynthese und Anwendung in Python
Exportieren und Ausgeben von Dateien in Python
Web Scraping für Anfänger in Python (1)
Reverse Flat Pseudonym und Katakana in Python2.7
Lesen und Schreiben von Text in Python