Programmieren Lernen, Python Tutorial #9: Palindrome erkennen

preview_player
Показать описание
Ich hoffe, dir hat dieses Video gefallen! Wenn du mich unterstützen willst, darfst du mir gerne etwas spenden:
Die Produktion von guten Lehrvideos ist ziemlich aufwendig. Spenden ermöglichen es mir, dies zu finanzieren. Dafür wird von mir auch komplett auf Werbung, nicht ernst gemeinte Kaufvorschläge und Affiliate-Marketing verzichtet.

Wenn dir das Video gefällt und du Interesse an mehr hast, würde es mich freuen wenn du mich abonierst! :)

Du kannst mich auf auf auf folgenden Netzwerken finden und supporten:

Machs gut und bis dahin!
Рекомендации по теме
Комментарии
Автор

Wirklich sehr gut erklärt. Ich habe zu Python von anderen Tutorials angesehen, aber deine sind für einen Anfänger, wie ich es bin, gut zu verstehen. Sonst hätte ich programmieren lernen längst wegen erwiesener Dummheit an den Nagel gehängt.
Danke

manni
Автор

beste tutorialreihe überhaupt. vielen dank dafür und mach bitte weiter.

MultiBelz
Автор

Ich finde es richtig cool, das du das machst. Und dieses Programm hat mir bei den Hausaufgaben geholfen ;D

pietle
Автор

Richtig gute Sache. Verständlich, sympathisch, macht Spaß.

ChrisTian-lfwq
Автор

Tolle Tutorials.Danke. Das hilft mir sehr.

macschomo
Автор

Finde deine Videos echt super und verstehe auch alles soweit habe nur echt probleme dinge selbständig zu schreiben oder etwas hinzuzufügen bekomme irgendwie nur das gleiche hin was ich schon durch deine videos gemacht habe :D

southparkmusik
Автор

man kann bei ungeraden Buchstabenzahlen noch einen schritt sparen.


bei "rentner" würde das Programm prüfen ob t = t ist.
definiert man laenge weiter oben schon mit "laenge = len(wort)-1"
[unten das - 1 wo laenge indexoperator ist natürlich raus machen]


Nun funktionieren die Bedingungen in den Kontrollfunktionen immernoch (die werte ändern sich, aber die gewollten Vorgänge laufen weiter) und bei Wörtern mit 3, 5, 7... Ziffern wird die mittlere Stelle nicht mehr geprüft, die ja immer gleich sich selbst ist.

fernabianer
Автор

Hey Diddy, Falls du hier noch aktiv bist; Schau dir doch bitte mal den Code hier an. Das mit dem .upper() konnte ich zwar Dank den Sachen die wir bei dir gelernt haben zum Laufen bringen aber es sieht furchtbar aus! Das muss eleganter gehen!


Es geht um diesen Bereich:


## Den Ersten Buchstabe der Eingabe wieder groß machen

z = Eingabe[0]
z = z.upper()
Eingabe = z

while lenEingabe > 1:
Eingabe = Eingabe + str(EingabeKopie[EineEins])
lenEingabe -= 1
EineEins += 1





Für alle Fälle hier der Gesamte Code:



## Palindrom erkennen
#!3= 3*2*1 und !0 = 1

# Benutzereingabe und Variablen für Kernfunktion:
Eingabe = input("Bitte Wort eingeben: ")
x = len(Eingabe) -1
y = 0
EingabeistPalindrom = True
Kindersicherung = 0

#Variablen und Änderungen Groß/-Kleinschreibung:
EingabeKopie = Eingabe
EineEins = 1
lenEingabe = len(Eingabe)

Eingabe = Eingabe.lower()

#Sicherung gegen zu kurze Eingaben:
if len(Eingabe) < 2:
Kindersicherung = 1

#Kernfunktion:
while x > (len(Eingabe) -1)/2:
if Eingabe[y] != Eingabe[x]:
EingabeistPalindrom = False
break
elif Eingabe[y] == Eingabe[x]:
x -= 1
y += 1

#Anfangsbuchstabe (wieder?) groß machen:
z = Eingabe[0]
z = z.upper()
Eingabe = z

while lenEingabe > 1:
Eingabe = Eingabe + str(EingabeKopie[EineEins])
lenEingabe -= 1
EineEins += 1

#Ergebnis ausgeben:
if EingabeistPalindrom == True and Kindersicherung == 0:
print (Eingabe + " ist ein Palindrom")
elif EingabeistPalindrom == False and Kindersicherung == 0:
print (Eingabe + " ist kein Palindrom")
else:
print ("Ihre Eingabe muss mindestens 2 Zeichen lang sein! Bitte neu starten.")

fernabianer
Автор

Bei 8:33 "el klingt irgendwie unanständig, .. ist aber so" xD

Tom-hglw
Автор

Wenn man in der version Wörter wie hi prüft wird istPalindrom auf True gesetzt

DdDd-uqzz
Автор

Hi Diddy,
Danke erst einmahl,

Hier habe ich noch eine variante vom code

while i < laenge/2:
if wort[i] != wort[-i-1]:
istpalindrom= False

danielfunk
Автор

Gutes Einsteiger Tutorial. Modul könnte man in diesem Fall noch gut erklären. Wenn laenge ungerade ist ( also laenge mod != 0) dann ist es kein palindrome. Zudem wird es bei langen Eingaben dank kürzerer Laufzeit deutlich effizienter. Weiter so.

wingvan
Автор

Diddy, ich versteh da was nicht. -> "if wort[i] != wort[laenge-i-1]: ...i=i+1" ->Bsp. Lagerregal daraus lese ich: Wenn erster Buchstabe (also "L" weil 0) ungleich Wortlänge (also 9 weil gezählt ab 0) minus 0 (weil i=0), minus 1 (also letztendlich 8 und somit schließlich Wortindex-Position "A" weil wieder gezählt ab 0), dann "False". Ok, hier muss ich irgendwas falsch verstehen, weil wie hier o.g. dann L mit A verglichen wird, sprich: Der erste Buchstabe wird mit dem zweit-letzten verglichen, obwohl das falsch wäre. ...Ich vermute es hat irgendwas mit dem Zweck dieser Zeile zu tun: "while i < laenge/2:". Aber ich komme nicht dahinter was der Zweck davon ist und wieso man die Länge des Wortes durch 2 teilt. Bitte hilf du oder irgendwer mir da mal weiter. LG

zlibkorn
Автор

Danke fürs Tutorial Chris. Kann man irgendwie einbauen das er nicht zwischen Groß- und Kleinbuchstaben differenziert?

stegoLP
Автор

Code für Groß- und Kleinschreibung:

wort = input("Bitte daszu prüfende Wort eingeben: ")
l = [ ]

for x in wort.lower():
l.append(x)

if l[::] == l[::-1]:
print(wort + " ist ein Palindrom")
else:
print(wort + " ist kein Palindrom")

Knuddelfell
Автор

hallo ich habe mal eine frage, würde mir in meinem programierer verständnis sehr helfen:
((
import sys

wort = input ("Bitte Wort eingeben; ")

laenge = len (wort)

istPalendrom = FALSE

#amma
#lagerregal

i = 0


while i < laenge/2 :
if wort [i] == wort [laenge - i - 1]:
istPalendrom = TRUE
i = i + 1

print (istPalendrom)


(FALSE, ==, TRUE; geändert)
Es gibt True aus wenn der erste und letzte buchstabe gleich sind. Meine Frage:
liegt das daran, dass die schleife beendet wird sobald True am Ende der schleife erwähnt wird??? Oder warum funktiioniert sie nicht?

MrFUCKOFFHATER
Автор

Hallo Diddy Development,
seit einigen Tagen benutze ich dein Tutorial, um Python zu lernen. Allerdings gibt Python bei mir einen Fehler aus, obwohl ich exakt dasselbe Programm geschrieben habe wie du. Woran kann das liegen?

Die Fehlermeldung:
Traceback (most recent call last):
File "C:/Python27/tutorial8.py", line 3, in <module>
wort = input("Please enter the word you would like to have checked: ")
File "<string>", line 1, in <module>
NameError: name 'anna' is not defined

TLB
Автор

funktioniert aber nur, wenn man alle buchstaben klein schreibt.
wenn man z.B Anna schreibt, ist das Ergebnis False...
wie kann man dies so einstellen, damit es keine Rolle mehr spielt ob man kleine oder grosse Buchstaben verwendet?

Besten Dank und freundliche Grüsse =)

Parafsta
Автор

Ist das nicht viel einfacher wenn man das Programm so schreibt?

import sys

wort = input('Bitte das zu überprüfende Wort eingeben:')

länge = len(wort)

i = 0

while i < länge:
länge = länge - 1
i = i + 1

if wort[i] == wort[länge-1]:
e = ('true')

else:
e = ('false')
print (e)

fred
Автор

das kann man auch so programmieren, denke ich

Name=input("bitte einen Namen eingeben: ")
umgekehrterName=""
for Buchstabe in Name:
umgekehrterName= Buchstabe + umgekehrterName
if umgekehrterName == Name:
print("ja")
else:
print("nein")

embeddor
visit shbcf.ru