Chat bot programmieren?

Hallo, ich programmiere gerade einen Chat Bot mit python, leider gibt es darin ein Fehler, kann aber keinen finden!

Mein Problem: Immer wenn ich etwas eingebe, dann sagt er immer:"Ich bin mir leider nicht sicher, ob ich Sie richtig verstanden haben". Das habe ich als zufallscode eingegeben, wenn der Chat bot darauf keine Antwort hat!

Dies ist mein Code: # -*- coding: utf-8 -*- 
import random
zufallsantworten=["Ich bin mir leider nicht sicher, ob ich Sie richtig verstanden haben"]
reaktionsantworten = {"Hallo": "Guten Tag Dorian",
                      "Wie geht es dir?": "Was möchtest du denn essen?",
                      "ich bin einsam": "Es tut mir leid das zu hören, ich bin aber für Sie da!",
                      "Wie geht es dir?": "Ich bin ein Chatbot, ich habe leider keine Gefühle",
                      "Aufwiedersehen!": "Aufwiedersehen, ich hoffe, dass ich helfen konnte!",
                      "Aufwiedersehen": "Aufwiedersehen, ich hoffe, dass ich helfen konnte!",
                      "Bye": "Aufwiedersehen, ich hoffe, dass ich helfen konnte!",
                      "Tschüss": "Aufwiedersehen, ich hoffe, dass ich helfen konnte!",
                      "Stell dich bitte vor": "Mein Name ist noch no name, ich bin ein virtueller Chat Assistent und darauf ausgelegt Sie zu unterhalten",
                      "Wer bist du?": "Mein Name ist noch no name, ich bin ein virtueller Chat Assistent und darauf ausgelegt Sie zu unterhalten",
                      "Wer bist du": "Mein Name ist Noch no name, ich bin ein virtueller Chat Assistent und darauf ausgelegt Sie zu unterhalten",
                      "It's been a long day without you, my friend": "And I'll tell you all about it when I see you again",
                      }
                      
print("Willkommen beim Chatbot")
print("Worüber würden Sie gerne heute sprechen?")
print("Zum beenden einfach 'bye' eintippen")
print("")
nutzereingabe = ""
while nutzereingabe != "bye":
    nutzereingabe = ""
    while nutzereingabe == "":
        nutzereingabe = input("")
        
    nutzereingabe = nutzereingabe.lower()
    nutzerwoerter = nutzereingabe.split()
    
    intelligenteAntworten = False
    for einzelwoerter in nutzerwoerter:
        if einzelwoerter in reaktionsantworten:
            print(reaktionsantworten[einzelwoerter])
            intelligenteAntworten = True
    if intelligenteAntworten == False:
        print(random.choice(zufallsantworten))
        
    print("")
print("Einen schönen Tag wünsche ich Dir. Bis zum nächsten Mal")

Das einzige, was funktioniert ist bye..., davor haben nur die kurzen Befehle funktioniert..., kann mir bitte jemand helfen?

Und, könnte man den Chatbot außerdem auch am Handy verwenden und wie?

programmieren, Python
While-Schleife in Python sich wiederholen lassen, bis der Nutzer gewinnt und 'n' eingibt?

Hi! Ich schreibe in Python gerade ein kleines Zahlen-Rate-Spiel. Dabei soll der Nutzer eine Zahl zwischen 1 und 10 erraten und wenn er das erfolgreich getan hat, soll er gefragt werden, ob er noch einmal spielen möchte. D.h. die While-Schleife soll so lange wiederholt werden, bis der User gewinnt und nicht mehr weiterspielen möchte, also 'n' eingibt. Dann soll ganz am Ende einfach nur noch ausgegeben werden: "Thanks for playing! Press Enter to exit."

Wie kann ich das realisieren bzw. was muss ich an meinem jetzigen Code noch ändern? Momentan funktioniert es nämlich nicht.

import random

print("Welcome to the number guessing game!")
manual_yes_no = input("Do you want to read the manual? 'y' for yes, 'n' for playing: ")

if manual_yes_no == 'y':
    print("""------------------------------------------------------
----------------------MANUAL--------------------------
------------------------------------------------------
A number between 1 and 10 is generated. You have to 
guess the number by typing it. The program says if
your number is lower or higher than the generated
number. Have fun!
------------------------------------------------------
------------------------------------------------------
------------------------------------------------------""")

def guessing():
    _var_secretnumber = random.randint(1, 10)
    _var_usernumber = 0
    _again_var = 'j'

    while _var_usernumber != _var_secretnumber:
        try:
            _var_usernumber = int(input("Your number: "))

            if _var_usernumber < _var_secretnumber:
                print("Higher!")

            if _var_usernumber > _var_secretnumber:
                print("Lower!!")

            if _var_usernumber == _var_secretnumber:
                print("Congrats! You won.")
                _again_var = input("Play again? Type 'y' for yes or 'n' for no: ")
        except ValueError:
            print("Wrong data type! Try a new number!")


try:
    while True:
        guessing()
except KeyboardInterrupt:
    pass
PC, Computer, Software, programmieren, Code, Console, Python
Stimmt dieses Python Craps Programm?

Hallo,

wir müssen in Informatik unser eigenes Craps Spiel programmieren.

Die beiden Würfel werden geworfen. Wenn die Augensumme 7 oder 11 beträgt, hat man gewonnen. Wenn die Augensumme 2, 3 oder 12 beträgt, hat man verloren. Ansonsten wird weitergewürfelt, bis eine Entscheidung gefallen ist. Bei jedem weiteren Wurf der beiden Würfel hat man verloren, wenn eine 7 fällt, und gewonnen, wenn die neue Augensumme gleich der Augensumme im ersten Wurf ist.

Ich bin mir jedoch sehr unsicher, ob ich es richtig programmiert habe, ich bekomme am Ende ein Ergebnis, jedoch bin ich mir unsicher, ob das Spiel nach den Spielregeln ausgeführt wird.

Ich bitte um Hilfe und bedanke mich im Voraus.

Hier der Code:

from random import randint;


#Eingang
print('Dieses Programm simuliert das bekannte Casino-Spiel "Craps". Der Spieler wirft ein normales Paar Würfel.')
print('Beträgt die Augensumme am Ende 2, 3 oder 12, hat der Spieler verloren. Beträgt die Augensumme 7 oder 11, hat der Spieler gewonnen.')
print('Bekommt man keine dieser Augensumme wird weitergewürfelt, bis eine Entscheidung gefallen ist.')
print('Bei jedem weiteren Wurf der beiden Würfel hat man verloren, wenn eine 7 fällt, und gewonnen,')
print('wenn die neue Augensumme gleich der Augensumme im ersten Wurf ist.\n')


anzahl = int(input("Gib die Anzahl der zu simulierenden Craps-Spiele ein: "))


#Verarbeitung


hilf = 0
gewinn = 0
weiterwuerfeln = 0


while hilf < anzahl:


    hilf = hilf + 1


    wuerfel1 = randint(1, 6)
    wuerfel2 = randint(1, 6)
    ergebnis = wuerfel1 + wuerfel2


    if ergebnis == 2 or ergebnis == 3 or ergebnis == 12:
        gewinn = gewinn + 0
    
    elif ergebnis == 7 or ergebnis == 11:
        gewinn = gewinn + 1


    else:


        while weiterwuerfeln != 7 and weiterwuerfeln != ergebnis:


            wuerfelneu1 = randint(1, 6)
            wuerfelneu2 = randint(1, 6)


            weiterwuerfeln = wuerfelneu1 + wuerfelneu2


            if weiterwuerfeln == ergebnis:
                gewinn = gewinn + 1


            if weiterwuerfeln == 7:
                gewinn = gewinn


print('Von', anzahl, 'simulierten Craps-Runden, waren ', gewinn, ' Gewinne dabei, daraus ergibt sich eine Gewinnrate von '+ str(100*(gewinn/anzahl)) + '%.') 
Computer, Schule, programmieren, Informatik, Python
Exakten Wert beim Quadrieren von Floats (Python)?

Hallo,

heute bin ich mit einem Bug im Rucksack unterwegs.

Ich versuche folgende Zahl 11.313708498984761 in Python zu quadrieren. Das Ergebnis müsste 128 sein, doch er gibt 128,00000000000003 aus und ich verstehe nicht wie ich das präzisieren könnte.

Es wäre schön, falls mir jemand weiterhelfen könnte.

Mit freundlichen Grüßen

JUCEL

PS: Hier mein derzeitiger Code:

# This Script was made to calculate the distance to celestial bodies in space (nearby milkyway).
import math
import decimal
import datetime
import random, string

sin = math.sin;
degrees = math.radians;
decimal.getcontext().prec = 200;
decimal = decimal.Decimal;


# Log-File, Datum, Star-Name

request = input("Hello, please choose between following options:\nDistance-Calculator [1] \nProtokoll [2]\nExit [q]\nOption: ")

if request == str("1"):

    print("Please insert following required data:")

    angle1 = input("Angle 1 (°): ")
    angle2 = input("Angle 2 (°): ")

    distance_In = decimal(input("Distance between the angles (Kilometre): "))



    # Angles

    summary = decimal(angle1) + decimal(angle2)
    angle3 = 180 - float(summary)

    # Distances

    distance_In_parsec = distance_In * decimal(0.000000000000060019)

    # Distance_a

    distance_out_a_parsec = decimal(distance_In) * decimal((sin(degrees(decimal(angle1)))/sin(degrees(decimal(angle3))))) * decimal(0.000000000000060019)
    distance_out_a_ligh_years = decimal(distance_out_a_parsec) * decimal(3.26156)
    distance_out_a_astronomic_unit = decimal(distance_out_a_parsec) * decimal(206265)

    print("Distance a: \n ", distance_out_a_parsec, "parsec \n ", distance_out_a_ligh_years, "ly \n", distance_out_a_astronomic_unit, "AU \n")

    # Distance_b

    distance_out_b_parsec = decimal(distance_In) * decimal((sin(degrees(decimal(angle2)))/sin(degrees(decimal(angle3))))) * decimal(0.000000000000060019)
    distance_out_b_ligh_years = decimal(distance_out_b_parsec) * decimal(3.26156)
    distance_out_b_astronomic_unit = decimal(distance_out_b_parsec) * decimal(206265)

    print("Distance b: \n ", distance_out_b_parsec, "parsec \n ", distance_out_b_ligh_years, "ly \n", distance_out_b_astronomic_unit, "AU \n")

    # Distance_center
    half = decimal(distance_In)/2

    distance_out_center_dump = distance_out_a_parsec * distance_out_a_parsec - half * half

    distance_out_center_parsec = decimal(math.sqrt(abs(decimal(distance_out_center_dump)))) * decimal(0.000000000000060019)
    distance_out_center_light_years = decimal(distance_out_center_parsec) * decimal(3.26156)
    distance_out_center_astronomic_unit = decimal(distance_out_center_parsec) * decimal(206265)

    print("Distance from the center of ellipsis: \n ", distance_out_center_parsec, "parsec \n ", distance_out_center_light_years, "ly \n", distance_out_center_astronomic_unit, "AU")

# Protocol

elif request == str("2"):
    pass

elif request == str("q"):
    exit(0)
Computer, programmieren, Informatik, Python, Python 3

Meistgelesene Beiträge zum Thema Python