Wie ist dieser verbesserte Python Code zu Palindromen?

Verbesserter Code mit Hilfe der Antwort von alfredo153

#!/bin/python3
#Palindrome-Woerter in Textdatei erkennen
import string

#Funktion zum Erkennen von Palindromen
def check_palindrome(word):
    reverse = ''
    removable = string.punctuation + string.whitespace + string.digits
    for c in removable: #Sonderzeichen entfernen
        word = word.replace(c, '')
    if word in string.punctuation or word in string.whitespace: #Sonderzeichen abfangen
        return False
    for c in word[::-1]: #Wort rueckwaerts zusammen basteln
        reverse = reverse + c
    if reverse.lower() == word.lower(): #Rueckwaerts-Wort mit vorwaerts-Wort vergleichen
        return True
    else:
        return False

#Den Benutzer eine Textdatei oeffnen lassen
file = input('Path to file: ')
palindrome = []

try:
    with open(file, 'r') as f:
        lines = f.readlines()
except FileNotFoundError:
    print('File not found!')
    exit(0)

#Einzelne Woerter im Text der Funktion check_palindrome uebergeben
for line in lines:
    line = line.split(' ')
    for word in line:
        if check_palindrome(word):
            palindrome.append(word)
        else:
            continue

#Ergebnis anzeigen
print(len(palindrome), ' found!\n')
for i in range(len(palindrome)):
    print(palindrome[i].replace('\n', '')) #\n in Wort entfernen, da sonst zu viele Leerzeichen bei Output
Computer, programmieren, Informatik, Python
Verbesserungsvorschläge für mein Python Skript: Polindrome finden?

Hey,

ich habe heute ein kleines Python Skript geschrieben, um Polindrome in einer Textdatei zu erkennen. Polindrome sind Wörter, die rückwärts geschrieben genau den gleichen Sinn ergeben wie vorwärts geschrieben.

#!/bin/python3
#Polindrome-Woerter in Textdatei erkennen
import string

#Funktion zum Erkennen von Polindromen
def check_polindrome(word):
    reverse = ''
    removable = ['\n', '\t', '\r']
    for c in removable: # Zeug entfernen
        word = word.replace(c, '')
    for c in string.punctuation: #Sonderzeichen entfernen
        word = word.replace(c, '')
    for c in string.whitespace: #Leerzeichen entfernen, da sonst falsche Ergebnisse entstehen
        word = word.replace(c, '')
    if word in string.punctuation or word in string.whitespace: #Leer- und Sonderzeichen abfangen
        return False
    if word.isdigit() == True: #Zahlen abfangen, da z.B. 121 rueckwaerts auch 121 ergibt
        return False
    for i in range(len(word)-1, 0-1, -1): #Wort rueckwaerts zusammen basteln
        reverse = reverse + word[i]
    if reverse.lower() == word.lower(): #Rueckwaerts-Wort mit vorwaerts-Wort vergleichen
        return True
    else:
        return False

#Den Benutzer eine Textdatei oeffnen lassen
file = input('Path to file: ')
polindrome = []

try:
    with open(file, 'r') as f:
        lines = f.readlines()
except FileNotFoundError:
    print('File not found!')
    exit(0)

#Einzelne Woerter im Text der Funktion check_polindrome uebergeben
for i in range(0, len(lines)):
    lines[i] = lines[i].split(' ')
    for word in lines[i]:
        if check_polindrome(word) == True:
            polindrome.append(word)
        else:
            continue

#Ergebnis anzeigen
print(len(polindrome), ' found!\n')
for i in range(len(polindrome)):
    print(polindrome[i].replace('\n', '')) #\n in Wort entfernen, da sonst zu viele Leerzeichen bei Output

Die Projektidee habe ich von: https://www.gutefrage.net/frage/python-projekt-ideen#answer-357880884

Wie man rückwärts über eine Zeichenkette rotiert, habe ich von: https://stackoverflow.com/questions/7961499/best-way-to-loop-over-a-python-string-backwards

  • Hat jemand Verbesserungsvorschläge für meinen Code?
  • Ein kleines Feedback bitte
Computer, programmieren, Informatik, Python
Wie kann ich in Python einen Loop einfügen der aus einer Exceltabelle ausliest?

Hallo würde mir gerne meine Vokalen mit Text to Speech vorlesen lassen, ich habe dafür eine Excel-Tabelle mit Englischen und Deutschen Vokabeln.

Mein Problem ist das ich nicht weiß wie man in Python eine automatische loop einfügt die dann von einem English/Deutschvokabel Paar zum nächsten geht und sie vorliest.

Weil so wie ich es jetzt habe muss ich bei jedem neuen Vokabel paar eine manuelle Variable erstellen und dann diese wieder in meinen Text to Speech Code einfügen.

Mein Code:

import openpyxl
import pyttsx3


# Give the location of the file
path = "test.xlsx"

# To open the workbook
# workbook object is created
wb_obj = openpyxl.load_workbook(path)

# Get workbook active sheet object
# from the active attribute
sheet = wb_obj.active

# Cell objects also have a row, column,
# and coordinate attributes that provide
# location information for the cell.

# Note: The first row or
# column integer is 1, not 0.

# Cell object is created by using
# sheet object's cell() method.
wort1en = sheet.cell(row=1, column=1)
wort1de = sheet.cell(row=1, column=2)


# Text to Speech
engine = pyttsx3.init()

# Voice IDs pulled from engine.getProperty('voices')
# These will be system specific
de_voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_DE-DE_HEDDA_11.0"
en_voice_id = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0"

# Set properties _before_ you add things to say
engine.setProperty('rate', 160)    # Speed percent (can go over 100)
engine.setProperty('volume', 1)  # Volume 0-1
# Use female English voice
engine.setProperty('voice', en_voice_id)
engine.say(wort1en.value)


# Set properties _before_ you add things to say
engine.setProperty('rate', 150)    # Speed percent (can go over 100)
engine.setProperty('volume', 0.9)  # Volume 0-1
# Use female German voice
engine.setProperty('voice', de_voice_id)
engine.say(wort1de.value)


engine.runAndWait()

Meine Vokabelliste:

Bild zum Beitrag
Computer, programmieren, Informatik, Python
Ist es schlimm, als völliger Einsteiger im Praktikum zu sein?

Also ich habe seit einigen Wochen große Interesse an Technik und könnte mir eventuell auch vorstellen es als Beruf zu haben, jedoch nur wenn ich auf irgendeine Weise darin gelehrt werde. Jedoch habe ich null Erfahrung in Technik.

Und nein, ich wäre bereit auch viel viel zu lernen. (Habe mich (15) auch seit gestern an Python oder auch Scratch gewagt und dazu auch seit gestern einige YouTube Videos geschaut und auch gerade ein kleines Buch über die Technik-Genies in der Geschichte gelesen und neue Wörter und Begriffe gelernt.) Wie gesagt, ich bin bereit zu lernen, habe aber bis jetzt noch keine einzige Erfahrung in Sachen IT usw.

Oh Gott, ein Jahr lang alle Mitarbeiter mit meiner Ahnungslosigkeit nerven...und sie müssen den Lehrer spielen...

Für das Fach-Abi muss man ja bekanntlich davor ein Jahrespraktikum absolviert haben, aber nun frage ich: Im Praktikum, welches angenommen in einigen Tagen stattfindet,

  • ist es schlimm noch nichts zu wissen?
  • wenn der Chef durch die Bewerbung und etc. weiß, dass ich nichts über Technik weiß? Nehmen die überhaupt einen wie mich an?
  • Ist ein Praktikum nicht dazu da, als Anfänger bzw. Neuling wissen zu sammeln?

Danke im Voraus! Ihr rettet wahrscheinlich ein Leben!

Computer, Leben, Beruf, Wissen, Lernen, Schule, Technik, Programm, IT, programmieren, Scratch, Wissenschaft, Abitur, Codierung, Fachabitur, Fachhochschule, Praktikum, Programmiersprache, Python, Technologie, Ausbildung und Studium, Beruf und Büro

Meistgelesene Beiträge zum Thema Python