Weiter schreiben Python?

3 Antworten

Dein Programm läuft in der Console. Das ist komplett textbasiert. Es gibt keinen "yes" und auch keinen "no"-Button auf den man klicken kann. Außerdem soll bei beiden Buttons anscheinend das Gleiche passieren, es sei denn, du kennst einen Unterschied zwischen "schließen" und "abschließen".

Du müsstest also nochmal etwas genauer erklären, was du machen willst.


Hatschpi 
Fragesteller
 21.07.2022, 14:36

Ich möchte die Taste Nein hinzufügen, um das Programm zu schließen

0
daCypher  21.07.2022, 15:21
@Hatschpi

Dann musst du das mit einer grafischen Benutzeroberfläche bauen. So auf die schnelle zusammengebastelt z.B. so:

phoneList = {
    "name": [
        "Amal",
        "Mohammed",
        "Khadijah",
        "Abdullah",
        "Rawan",
        "Faisal",
        "Layla"
    ],
    "num": [
        "1111111111",
        "2222222222",
        "3333333333",
        "4444444444",
        "5555555555",
        "6666666666",
        "7777777777"
    ]
}


def get_name(num):
    if num in phoneList["num"]:
        return phoneList["name"][phoneList["num"].index(num)]


def display_name():
    name = get_name(txtInput.get(1.0, "end")[:-1])
    if name:
        lblAnswer['text'] = name
    else:
        lblAnswer['text'] = "This is an invalid number"


from tkinter import *
window = Tk()
window.title("Phone Book")
Label(window, text="Enter number").pack()
txtInput = Text(window, height=1, wrap='none')
txtInput.pack()
lblAnswer = Label(window)
lblAnswer.pack()
btnYes = Button(window, text="yes", command=display_name)
btnYes.pack()
btnNo = Button(window, text="no", command=quit)
btnNo.pack()
window.mainloop()
2
Hatschpi 
Fragesteller
 22.07.2022, 00:02
@daCypher

Sie haben echt sehr schön gemacht, ich bedanke Ihnen Sehr

1
ded1x  21.07.2022, 14:54

Ich vermute eine Übungsaufgabe.

0

So könne man das machen:

phoneList = {"name": ["Amal", "Mohammed","Khadijah", "Abdullah", "Rawan", "Faisal", "Layla"], "num": [1111111111, 2222222222, 3333333333, 4444444444, 5555555555, 6666666666, 7777777777]}

while True:
  phoneNumber = int(input("Enter phone number: "))

  if phoneNumber in phoneList["num"]:
    i = phoneList["num"].index(phoneNumber)
    print(phoneList['name'][i])

  else:
    print("This is invalid number")

  if input("Do you want to continue? (y/n) ") == "n":
    break

Meinst du sowas?

Woher ich das weiß:eigene Erfahrung

Hanibal545  21.07.2022, 14:44

oder was hast du mit

Ich möchte das Programm schließen, nachdem ich (no) gedrückt habe
Ich möchte das Programm abschließen, nachdem ich auf (yes) geklickt habe

gemeint=

1
Hatschpi 
Fragesteller
 21.07.2022, 14:53

Es hat geklappt Danke

1

Kleiner Tipp. Wenn du es übersichtlicher haben möchtest, dann kannst du es so machen:

better_phoneList = {"Amal": 1111111111, "Mohammed": 2222222222, "Khadijah": 3333333333, "Abdullah": 4444444444, "Rawan": 5555555555, "Faisal": 6666666666, "Layla": 7777777777}

while True:
  phoneNumber = int(input("Enter phone number: "))
  for key, value in better_phoneList.items():
    if phoneNumber == value:
      print(f"{key}'s phone number is {value}")
      break
  else:
    print("This is invalid number")


  if input("Do you want to continue? (y/n) ") == "n":
    break
Woher ich das weiß:eigene Erfahrung