Python Programmierungsaufgabe?

Was ist der hier der fehler

Ich suche print()-Aufrufe, die jeweils bestimmte Teile der Eingabesequenz ausgeben. Die print()-Aufrufe können untereinander geschrieben werden (Achtung, die Reihenfolgeist wichtig). Da Indexing und Slicing sowohl für Strings als auch für Listen möglich ist, kann der gleiche Pythoncode alle Tests abdecken.

Die Ausgaben sollen in der folgenden Weise umgesetzt werden:

1. Das letzte Element soll mithilfe von Indexing ausgewählt werden.

2. Die Sequenz soll mithilfe von Slicing so reduziert werden, dass das erste und letzte Element wegfallen und nur die Mitte übrig bleibt.

3. Die Sequenz soll mithilfe von Slicing so reduziert werden, dass nur die zweite Hälfte übrig bleibt. Bei Sequenzen mit gerader Anzahl von Elementen soll genau die zweite Hälfte übrig sein, bei Sequenzen mit ungerader Anzahl von Elementen soll das Element in der Mitte mit ausgegeben werden.

4. Die Sequenz soll mithilfe von Indexing mit negativen Zahlen so reduziert werden, dass nur die letzten vier Elemente übrig bleiben.

5. Die Sequenz soll abhängig von der Länge reduziert werden: Sequenzen mit fünf oder weniger Elementen sollen ohne weiteres ausgegeben werden, aus Sequenzen mit genau acht Elementen sollen zwei Elementen am Anfang und zwei Elementen am Ende wegfallen, bei allen anderen Sequenzen sollen die letzten vier Elementen ausgegeben werden.

beispiel

Test Resultat

eingabe = "ABCDE"

F

BCD

CDE

BCDE

ABCDE

eingabe = "FGHIJKLMN"

N

GHIJKLM

JKLMN

KLMN

KLMN

eingabe = [1, 2, 3, 4, 5, 6, 7, 8]

8

[2, 3, 4, 5, 6, 7]

[5, 6, 7, 8]

[5, 6, 7, 8]

[3, 4, 5, 6]

Bild zum Beitrag
Programmiersprache, Python
TypeError bei Python-Programm?

Ich habe folgendes Programm:

import itertools

# Daten aus der Tabelle einlesen
data = []
with open('tour1.txt', 'r') as file:
    for line in file:
        parts = line.strip().split(',')
        data.append((parts[0], int(parts[1]), parts[2] == 'X'))

# Essentielle Tourpunkte auswählen
essential_points = [place for place, year, is_essential in data if is_essential]

# Funktion zur Berechnung der Teiltour
def calculate_tour(places, essential_places):
    min_distance = float('inf')
    min_tour = None

    for perm in itertools.permutations(essential_places):
        tour = [places[0][0]] + [places[i][0] for i in perm] + [places[0][0]]
        total_distance = 0

        for i in range(len(tour) - 1):
            total_distance += abs([x[1] for x in places if x[0] == tour[i]][0] - [x[1] for x in places if x[0] == tour[i + 1]][0])

        if total_distance < min_distance:
            min_distance = total_distance
            min_tour = tour

    return min_tour

# Sortieren der Orte nach ihrem Jahr
sorted_data = sorted(data, key=lambda x: x[1])

# Die Teiltour berechnen
shortest_tour = calculate_tour(sorted_data, essential_points)

# Ergebnis ausgeben
for point in shortest_tour:
    print(point, end=" -> ")
print(shortest_tour[0])  # Zum Startpunkt zurückkehren

Beim Ausführen wird mir folgender Fehler ausgegeben: TypeError: list indices must be integers or slices, not str

Die Textdatei ist nach dem Format "Brauerei,1613,X,0" (als Beispiel) aufgebaut.
Ich habe probiert das Problem durch ein voranstellen von Int() bei den Listen zu Lösen, was nicht funktioniert hat...
Gibt es eine andere Möglichkeit zur Lösung?

Vielen Dank!

Error, Programmiersprache, Python
flask: jinja2.exceptions.TemplateNotFound: index.html | Wie fixen?

Hallo zusammen,

nachdem ich jetzt Stunden, und zwar wirklich Stunden an nur einem, meiner Meinung nach unnötigem Problem gesessen habe, bitte ich nun um Hilfe.

Folgendes vorab: Nachdem ich die Datenbankkonfiguration ausgelagert habe, fing das Problem wieder an. Zuvor habe ich in die flask_app.py einfach folgendes eingetragen, was das Problem löste:

data = "Daten aus Python-Skript"

Ich persönlich arbeite mich ja in die Programmierung ein, habe aber das Gefühl, dass Flask irgendwie unnötig kompliziert ist. Aber das ist ja nicht wichtig.

Ich habe just for fun OpenAI mal über den Code laufen lassen: Zugegeben, ist das nicht die schlauste Option, aber nach 5 Stunden nur für diesen Code verzweifelt man doch etwas xD

Ich möchte Daten aus der Datenbank abrufen und auf der Webseite anzeigen lassen. Dazu existiert folgender Code:

Hauptverzeichnis/main.py:

from web.flask_app import app
from systm import main

if __name__ == '__main__':
    app.run(debug=True, host="0.0.0.0", port=5000)  # 5000 Standard

Hauptverzeichnis/systm/main.py:

from flask import Flask, render_template
from systm.d import create_db_connection

app = Flask(__name__)


# Datenbankverbindung initialisieren
db = create_db_connection()
cursor = db.cursor()


@app.route('/')
def display_data():
    # Hier können Sie Daten aus Ihrem Python-Skript abrufen
    cursor.execute("SELECT * FROM products")
    product_info = cursor.fetchall()

    # Diese Daten werden an die HTML-Datei übergeben
    return render_template('index.html', product_info=product_info)


# Route, um Produktinformationen anzuzeigen
@app.route('/products')
def display_products():
    # Informationen aus der Datenbank abrufen
    cursor.execute("SELECT * FROM products")
    product_info = cursor.fetchall()

    # Informationen an das HTML-Template übergeben und anzeigen
    return render_template('products.html', product_info=product_info)


if __name__ == '__main__':
    app.run(debug=True)

Hauptverzeichnis/systm/d.py:

import mysql.connector

def create_db_connection():
    db = mysql.connector.connect(
        host="",
        user="",
        password="",
        database=""
    )
    return db

Hauptverzeichnis/web/flask_app.py:

from flask import Flask, render_template
from systm.d import create_db_connection

app = Flask(__name__, template_folder='web/templates', static_folder='web/static')


# Deaktivieren des Template-Caching
app.jinja_env.auto_reload = True
app.config['TEMPLATES_AUTO_RELOAD'] = True
app.config['STATIC_AUTO_RELOAD'] = True


# Datenbankverbindung initialisieren
db = create_db_connection()
cursor = db.cursor()


@app.route('/')
def display_data():
    # Daten aus der Datenbank abrufen
    cursor.execute("SELECT * FROM products")
    product_info = cursor.fetchall()

    # Diese Daten werden an die HTML-Datei übergeben und angezeigt
    return render_template('index.html', product_info=product_info)

Hauptverzeichnis/web/templates/index.html :

<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" type="style/css" href="{{ url_for('static', filename='style.css') }}">
</head>
<body>
    <h1>Produktinformationen</h1>
    <table>
        <tr>
            <th>Produktname</th>
            <th>Verschlüsselungstyp</th>
            <!-- Weitere Spalten hinzufügen -->
        </tr>
        {% for product in product_info %}
        <tr>
            <td>{{ product[0] }}</td>
            <td>{{ product[1] }}</td>
            <!-- Weitere Spalten hinzufügen -->
        </tr>
        {% endfor %}
    </table>
</body>
</html>
HTML, Webseite, HTML5, Programmiersprache, Python, Webentwicklung, Python 3, Flask
Verstehs nicht.. -> ModuleNotFoundError: No module named 'sys.main'; 'sys' is not a package? (PYTHON)?

Vielleicht kann mir jemand von hier helfen. Ich hatte das Problem noch nie und Lösungen gibt es offenbar auch keine hilfreichen.

Das Projekt besteht aus dem Hauptordner, in diesem die Struktur:

Projektordner/

├── main.py

├── sys/

│ ├── __init__.py

│ ├── main.py

├── web/

│ ├── __init__.py

│ ├── flask_app.py

│ ├── static/

│ │ ├── style.css

│ ├── templates/

│ │ ├── index.html

trotzdem erhalte ich ständig diese Meldung: (PS, der Ordner wurde als Package und nicht Directory in Pycahrm erstellt.)

*:\****\****\****\****\bots\testert\dfgdfg\****\Scripts\python.exe "D:/PyCharm/PyCharm Community Edition 2022.2.3/PyCharm Community Edition 2023.1.4/plugins/python-ce/helpers/pydev/pydevd.py" --multiprocess --qt-support=auto --client **** --port **** --file "*:\****\****\****\****\****\Projekte\****\main.py" 
Connected to pydev debugger (build ****)
Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 981, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'sys.main'; 'sys' is not a package


Process finished with exit code 1     

Gerade wo ich diese Frage formuliere, frage ich mich, warum es über eine andere Ordnerstruktur gestartet wird, als in der in der sich das Projekt befindet????

Verstehe halt nicht warum PyCharm diesen Weg wählt, was einfach nur dumm wäre aber gut, das tut es halt:
*:\****\****\****\****\bots\testert\dfgdfg\****\Scripts\python.exe



Code, Python, Python 3, Pycharm

Meistgelesene Beiträge zum Thema Python