sauberer – chatgpz.de – KI-Tools & Praxiswissen http://chatgpz.de Unabhängige Tests, Anleitungen und Hintergründe zu KI-Tools. Tue, 25 Nov 2025 08:10:34 +0000 de-DE hourly 1 https://wordpress.org/?v=6.4.2 234900186 Wie künstliche Intelligenz zu einer Zukunft mit sauberer Energie beitragen kann | MIT-Nachrichten http://chatgpz.de/artificial-intelligence/wie-kuenstliche-intelligenz-zu-einer-zukunft-mit-sauberer-energie-beitragen-kann-mit-nachrichten/ http://chatgpz.de/artificial-intelligence/wie-kuenstliche-intelligenz-zu-einer-zukunft-mit-sauberer-energie-beitragen-kann-mit-nachrichten/#respond Tue, 25 Nov 2025 08:10:34 +0000 http://chatgpz.de/artificial-intelligence/wie-kuenstliche-intelligenz-zu-einer-zukunft-mit-sauberer-energie-beitragen-kann-mit-nachrichten/ [ad_1]

Den Zusammenhängen zwischen künstlicher Intelligenz und erhöhtem Energiebedarf wird zunehmend Aufmerksamkeit geschenkt. Doch während die stromhungrigen Rechenzentren, die zur Unterstützung von KI gebaut werden, potenziell die Stromnetze belasten, die Kundenpreise und Serviceunterbrechungen erhöhen und den Übergang zu sauberer Energie generell verlangsamen könnten, kann der Einsatz künstlicher Intelligenz auch die Energiewende unterstützen.

Beispielsweise reduziert der Einsatz von KI den Energieverbrauch und die damit verbundenen Emissionen in Gebäuden, im Transportwesen und in industriellen Prozessen. Darüber hinaus trägt KI dazu bei, das Design und den Standort neuer Wind- und Solaranlagen sowie Energiespeicheranlagen zu optimieren.

In Stromnetzen trägt der Einsatz von KI-Algorithmen zur Betriebssteuerung dazu bei, die Effizienz zu steigern und Kosten zu senken, den wachsenden Anteil erneuerbarer Energien zu integrieren und sogar vorherzusagen, wann wichtige Geräte gewartet werden müssen, um Ausfälle und mögliche Stromausfälle zu verhindern. KI kann Netzplanern dabei helfen, Investitionen in Erzeugung, Energiespeicherung und andere Infrastrukturen zu planen, die in Zukunft benötigt werden. KI hilft Forschern auch dabei, neuartige Materialien für Kernreaktoren, Batterien und Elektrolyseure zu entdecken oder zu entwerfen.

Forscher am MIT und anderswo untersuchen aktiv Aspekte dieser und anderer Möglichkeiten der KI zur Unterstützung des Übergangs zu sauberer Energie. Auf seiner Forschungskonferenz 2025 hat MITEI kündigte das Information Heart Energy Discussion board aneine gezielte Forschungsmaßnahme für MITEI-Mitgliedsunternehmen, die an der Bewältigung der Herausforderungen des Strombedarfs von Rechenzentren interessiert sind.

Steuerung des Echtzeitbetriebs

Kunden sind in der Regel auf eine kontinuierliche Stromversorgung angewiesen, und Netzbetreiber erhalten dabei Hilfe von KI – und optimieren gleichzeitig die Speicherung und Verteilung von Energie aus erneuerbaren Quellen.

Aber mit der zunehmenden Set up von Photo voltaic- und Windparks – die beide Strom in geringeren Mengen und zeitweise liefern – und der wachsenden Bedrohung durch Wetterereignisse und Cyberangriffe wird es immer schwieriger, die Zuverlässigkeit sicherzustellen. „Genau hier kann KI ins Spiel kommen“, erklärt Anuradha Annaswamy, leitende Wissenschaftlerin am Division of Mechanical Engineering des MIT und Direktorin des Lively-Adaptive Management Laboratory des MIT. „Im Wesentlichen muss man eine vollständige Informationsinfrastruktur einführen, um die physische Infrastruktur zu ergänzen und zu ergänzen.“

Das Stromnetz ist ein komplexes System, das eine sorgfältige Kontrolle auf Zeitskalen von Jahrzehnten bis hinunter zu Mikrosekunden erfordert. Die Herausforderung lässt sich auf die Grundgesetze der Energiephysik zurückführen: Die Stromversorgung muss zu jedem Zeitpunkt der Stromnachfrage entsprechen, andernfalls kann die Erzeugung unterbrochen werden. In den vergangenen Jahrzehnten gingen die Netzbetreiber im Allgemeinen davon aus, dass die Erzeugung fest vorgegeben sei – sie konnten sich darauf verlassen, wie viel Strom jedes große Kraftwerk produzieren würde –, während die Nachfrage im Laufe der Zeit auf ziemlich vorhersehbare Weise schwankte. Dadurch könnten Betreiber bestimmte Kraftwerke so beauftragen, dass sie je nach Bedarf laufen, um den Bedarf am nächsten Tag zu decken. Bei Ausfällen würden speziell dafür vorgesehene Einheiten nach Bedarf in Betrieb genommen, um das Defizit auszugleichen.

Heute und in Zukunft muss dieser Ausgleich von Angebot und Nachfrage weiterhin gewährleistet sein, auch wenn die Zahl kleiner, intermittierender Stromerzeugungsquellen zunimmt und Wetterstörungen und andere Bedrohungen für das Netz zunehmen. KI-Algorithmen ermöglichen die komplexe Verwaltung von Informationen, die erforderlich sind, um innerhalb weniger Stunden vorherzusagen, welche Kraftwerke betrieben werden sollen, und stellen gleichzeitig sicher, dass Frequenz, Spannung und andere Eigenschaften des eingehenden Stroms den Anforderungen für den ordnungsgemäßen Betrieb des Netzes entsprechen.

Darüber hinaus kann KI neue Möglichkeiten eröffnen, das Angebot zu erhöhen oder die Nachfrage zu senken, wenn die Vorräte im Netz knapp werden. Wie Annaswamy betont, kann die Batterie Ihres Elektrofahrzeugs (EV) sowie die Batterie, die durch Sonnenkollektoren oder Windturbinen aufgeladen wird, bei Bedarf als zusätzliche Stromquelle dienen, die in das Netz eingespeist wird. Und angesichts von Preissignalen in Echtzeit können Besitzer von Elektrofahrzeugen entscheiden, den Ladevorgang von einem Zeitpunkt, an dem die Nachfrage ihren Höhepunkt erreicht und die Preise hoch sind, auf einen Zeitpunkt zu verlagern, an dem sowohl die Nachfrage als auch die Preise niedriger sind. Darüber hinaus können neue intelligente Thermostate so eingestellt werden, dass die Innentemperatur in einem vom Kunden festgelegten Bereich sinkt oder steigt, wenn die Netzbelastung ihren Höhepunkt erreicht. Und Rechenzentren selbst können eine Quelle für Nachfrageflexibilität sein: Ausgewählte KI-Berechnungen könnten bei Bedarf verzögert werden, um Nachfragespitzen auszugleichen. Somit kann KI viele Möglichkeiten bieten, Angebot und Nachfrage je nach Bedarf genau abzustimmen.

Darüber hinaus ermöglicht KI eine „vorausschauende Wartung“. Jeder Ausfall ist für das Unternehmen kostspielig und droht mit Engpässen bei den betreuten Kunden. KI-Algorithmen können während des Normalbetriebs wichtige Leistungsdaten erfassen. Wenn die Messwerte vom Normalwert abweichen, kann das System die Bediener warnen, dass möglicherweise etwas schiefläuft, und ihnen die Möglichkeit geben, einzugreifen. Diese Fähigkeit verhindert Geräteausfälle, reduziert den Bedarf an Routineinspektionen, erhöht die Produktivität der Mitarbeiter und verlängert die Lebensdauer wichtiger Geräte.

Annaswamy betont das „Um herauszufinden, wie dieses neue Stromnetz mit diesen KI-Komponenten aufgebaut werden kann, müssen viele verschiedene Experten zusammenkommen.“ Sie stellt fest, dass Elektroingenieure, Informatiker und Energieökonomen „mit aufgeklärten Regulierungsbehörden und politischen Entscheidungsträgern zusammenarbeiten müssen, um sicherzustellen, dass dies nicht nur eine akademische Übung ist, sondern tatsächlich umgesetzt wird. Alle verschiedenen Interessengruppen müssen voneinander lernen. Und Sie brauchen Garantien, dass nichts scheitern wird. Es kann keine Stromausfälle geben.“

Mithilfe von KI können Sie Investitionen in die Infrastruktur der Zukunft planen

Netzbetreiber müssen ständig den Ausbau von Erzeugung, Übertragung, Speicherung usw. planen, und der Bau und Betrieb der gesamten erforderlichen Infrastruktur kann viele Jahre, in manchen Fällen mehr als ein Jahrzehnt, dauern. Daher müssen sie vorhersagen, welche Infrastruktur sie benötigen, um die Zuverlässigkeit in der Zukunft sicherzustellen. „Es ist kompliziert, weil man über ein Jahrzehnt im Voraus vorhersagen muss, was und wo gebaut werden soll“, sagt Deepjyoti Deka, Forschungswissenschaftler am MITEI.

Eine Herausforderung bei der Vorhersage dessen, was benötigt wird, besteht darin, vorherzusagen, wie das zukünftige System funktionieren wird. „Das wird immer schwieriger“, sagt die Deka, weil immer mehr erneuerbare Energien ans Netz gehen und traditionelle Erzeuger verdrängen. In der Vergangenheit konnten sich Betreiber auf „Spinning-Reserven“ verlassen, additionally auf die Erzeugung von Kapazitäten, die derzeit nicht genutzt werden, aber innerhalb von Minuten on-line geschaltet werden könnten, um eventuelle Engpässe im System zu decken. Das Vorhandensein so vieler intermittierender Generatoren – Wind- und Solarenergie – bedeutet, dass das Netz jetzt weniger stabil und träge ist. Erschwerend kommt hinzu, dass diese intermittierenden Generatoren von verschiedenen Anbietern gebaut werden können und Netzplaner möglicherweise keinen Zugriff auf die physikalischen Gleichungen haben, die den Betrieb jedes Geräts in ausreichend feinen Zeitskalen regeln. „Sie wissen additionally wahrscheinlich nicht genau, wie es laufen wird“, sagt Deka.

Und dann ist da noch das Wetter. Um die Zuverlässigkeit eines geplanten zukünftigen Energiesystems zu bestimmen, muss man wissen, welchen Witterungseinflüssen es ausgesetzt sein wird. Das zukünftige Netz muss nicht nur bei alltäglichem Wetter zuverlässig sein, sondern auch bei Ereignissen mit geringer Wahrscheinlichkeit, aber hohem Risiko wie Hurrikanen, Überschwemmungen und Waldbränden, die alle immer häufiger auftreten, betont Deka. KI kann helfen, indem sie solche Ereignisse vorhersagt und sogar Änderungen der Wettermuster aufgrund des Klimawandels verfolgt.

Deka weist auf einen weiteren, weniger offensichtlichen Vorteil der Geschwindigkeit der KI-Analyse hin. Jeder Infrastrukturentwicklungsplan muss überprüft und genehmigt werden, oft von mehreren Regulierungs- und anderen Stellen. Traditionell würde ein Antragsteller einen Plan entwickeln, seine Auswirkungen analysieren und den Plan einer Gruppe von Prüfern vorlegen. Nachdem er alle gewünschten Änderungen vorgenommen und die Analyse wiederholt hatte, reichte der Antragsteller den Prüfern erneut eine überarbeitete Model ein, um zu prüfen, ob die neue Model akzeptabel struggle. KI-Instruments können die erforderliche Analyse beschleunigen, sodass der Prozess schneller voranschreitet. Planer können sogar die Anzahl der Ablehnungen eines Vorschlags reduzieren, indem sie große Sprachmodelle verwenden, um regulatorische Veröffentlichungen zu durchsuchen und zusammenzufassen, was für eine geplante Infrastrukturinstallation wichtig ist.

Nutzung von KI zur Entdeckung und Nutzung fortschrittlicher Materialien, die für die Energiewende benötigt werden

„Der Einsatz von KI für die Materialentwicklung boomt derzeit“, sagt Ju Li, Carl Richard Soderberg-Professor für Energietechnik am MIT. Er stellt zwei Hauptrichtungen fest.

Erstens ermöglicht KI schnellere physikbasierte Simulationen auf atomarer Ebene. Das Ergebnis ist ein besseres Verständnis auf atomarer Ebene darüber, wie Zusammensetzung, Verarbeitung, Struktur und chemische Reaktivität mit der Leistung von Materialien zusammenhängen. Dieses Verständnis liefert Entwurfsregeln, die bei der Entwicklung und Entdeckung neuartiger Materialien für die Energieerzeugung, -speicherung und -umwandlung helfen, die für ein nachhaltiges zukünftiges Energiesystem erforderlich sind.

Und zweitens kann KI dabei helfen, Experimente in Echtzeit zu steuern, während sie im Labor stattfinden. Li erklärt: „KI hilft uns bei der Auswahl des besten Experiments auf der Grundlage unserer vorherigen Experimente und stellt – basierend auf Literaturrecherchen – Hypothesen auf und schlägt neue Experimente vor.“

Er beschreibt, was in seinem eigenen Labor passiert. Humanwissenschaftler interagieren mit einem großen Sprachmodell, das dann Vorschläge macht, welche spezifischen Experimente als nächstes durchgeführt werden sollen. Der menschliche Forscher akzeptiert oder modifiziert den Vorschlag, und ein Roboterarm reagiert, indem er den nächsten Schritt in der experimentellen Sequenz einrichtet und durchführt, das Materials synthetisiert, die Leistung testet und gegebenenfalls Bilder von Proben aufnimmt. Basierend auf einer Mischung aus Literaturwissen, menschlicher Instinct und früheren experimentellen Ergebnissen koordiniert KI somit aktives Lernen, das die Ziele der Reduzierung von Unsicherheit mit der Verbesserung der Leistung in Einklang bringt. Und wie Li betont: „KI hat viel mehr Bücher und Aufsätze gelesen als jeder Mensch und ist daher von Natur aus interdisziplinärer.“

Das Ergebnis, sagt Li, sei sowohl eine bessere Versuchsplanung als auch eine Beschleunigung des „Arbeitsablaufs“. Traditionell erforderte der Prozess der Entwicklung neuer Materialien die Synthese der Vorläufer, die Herstellung des Supplies, das Testen seiner Leistung und die Charakterisierung der Struktur, das Vornehmen von Anpassungen und die Wiederholung derselben Reihe von Schritten. KI-Anleitung beschleunigt diesen Prozess und „hilft uns, kritische, kostengünstige Experimente zu entwerfen, die uns ein Höchstmaß an Informationsfeedback geben können“, sagt Li.

„Diese Fähigkeit wird sicherlich die Materialentdeckung beschleunigen, und das könnte uns bei der Umstellung auf saubere Energie wirklich helfen“, schließt er. „KI hat das Potenzial, den Prozess der Materialentdeckung und -optimierung zu verbessern und ihn möglicherweise von Jahrzehnten wie in der Vergangenheit auf nur wenige Jahre zu verkürzen.“

MITEIs Beiträge

Am MIT arbeiten Forscher an verschiedenen Aspekten der oben beschriebenen Möglichkeiten. In von MITEI unterstützten Projekten nutzen Groups KI, um Störungen der Plasmaströme in Fusionsreaktoren besser zu modellieren und vorherzusagen – eine Notwendigkeit für die praktische Erzeugung von Fusionsenergie. Andere vom MITEI unterstützte Groups verwenden KI-gestützte Instruments, um Vorschriften, Klimadaten und Infrastrukturkarten zu interpretieren, um eine schnellere und anpassungsfähigere Stromnetzplanung zu erreichen. Die KI-gesteuerte Entwicklung fortschrittlicher Materialien wird fortgesetzt, wobei ein MITEI-Projekt KI zur Optimierung von Solarzellen und thermoelektrischen Materialien nutzt.

Andere MITEI-Forscher entwickeln Roboter, die Wartungsaufgaben auf der Grundlage menschlicher Rückmeldungen, einschließlich körperlicher Eingriffe und verbaler Anweisungen, erlernen können. Ziel ist es, Kosten zu senken, die Sicherheit zu verbessern und den Ausbau der Infrastruktur für erneuerbare Energien zu beschleunigen. Und die vom MITEI finanzierte Arbeit geht weiter an Möglichkeiten, den Energiebedarf von Rechenzentren zu reduzieren, von der Entwicklung effizienterer Computerchips und Rechenalgorithmen bis hin zur Überarbeitung der architektonischen Gestaltung der Gebäude, um beispielsweise den Luftstrom zu erhöhen, um den Bedarf an Klimaanlagen zu reduzieren.

Neben der Leitung und Finanzierung vieler Forschungsprojekte fungiert MITEI auch als Organisator und bringt interessierte Parteien zusammen, um gemeinsame Probleme und mögliche Lösungen zu diskutieren. Im Mai 2025 brachte das jährliche MITEI-Frühjahrssymposium mit dem Titel „KI und Energie: Gefahr und Versprechen“ KI- und Energieexperten aus Wissenschaft, Industrie, Regierung und gemeinnützigen Organisationen zusammen, um KI sowohl als Downside als auch als mögliche Lösung für den Übergang zu sauberer Energie zu untersuchen. Zum Abschluss des Symposiums bemerkte William H. Inexperienced, Direktor des MITEI und Hoyt C. Hottel-Professor in der MIT-Abteilung für Chemieingenieurwesen: „Die Herausforderung, den Energiebedarf von Rechenzentren zu decken und die potenziellen Vorteile der KI für die Energiewende zu erschließen, ist jetzt eine Forschungspriorität für MITEI.“

[ad_2]

]]>
http://chatgpz.de/artificial-intelligence/wie-kuenstliche-intelligenz-zu-einer-zukunft-mit-sauberer-energie-beitragen-kann-mit-nachrichten/feed/ 0 14293
Hören Sie auf, chaotische Python zu schreiben: Ein sauberer Code -Crash -Kurs http://chatgpz.de/data-analytics/hoeren-sie-auf-chaotische-python-zu-schreiben-ein-sauberer-code-crash-kurs/ http://chatgpz.de/data-analytics/hoeren-sie-auf-chaotische-python-zu-schreiben-ein-sauberer-code-crash-kurs/#respond Sun, 15 Jun 2025 12:16:09 +0000 https://chatgpz.de/data-analytics/hoeren-sie-auf-chaotische-python-zu-schreiben-ein-sauberer-code-crash-kurs/ [ad_1]

Hören Sie auf, chaotische Python zu schreiben: Ein sauberer Code -Crash -Kurs
Bild von Autor | Ideogramm

Wenn Sie eine Weile in Python codiert haben, haben Sie wahrscheinlich die Grundlagen gemeistert und einige Projekte gebaut. Und jetzt schauen Sie sich Ihren Code an und denken: „Das funktioniert, aber … es ist nicht genau etwas, das ich in einer Codebewertung stolz zeigen würde.“ Wir waren alle dort.

Wenn Sie jedoch weiter codieren, wird das Schreiben sauberer Code genauso wichtig wie das Schreiben von Funktionscode. In diesem Artikel habe ich praktische Techniken zusammengestellt, mit denen Sie von „It Runs, berühren Sie es nicht“ nach „Dies ist tatsächlich aufrechterhalten“.

🔗 Hyperlink zum Code auf GitHub

1. Modelldaten explizit. Gehen Sie nicht um Diktate herum

Wörterbücher sind in Python tremendous flexibel und das ist genau das Drawback. Wenn Sie Uncooked -Wörterbücher während Ihres gesamten Codes übergeben, laden Sie Tippfehler, Schlüsselfehler und Verwirrung darüber ein, welche Daten tatsächlich vorhanden sein sollten.

Anstelle davon:

def process_user(user_dict):
    if user_dict('standing') == 'lively':  # What if 'standing' is lacking?
        send_email(user_dict('electronic mail'))   # What if it is 'mail' in some locations?
        
        # Is it 'title', 'full_name', or 'username'? Who is aware of!
        log_activity(f"Processed {user_dict('title')}")

Dieser Code ist nicht strong, da er davon ausgeht, dass Wörterbuchschlüssel ohne Validierung existieren. Es bietet keinen Schutz gegen Tippfehler oder fehlende Schlüssel, was verursacht wird KeyError Ausnahmen zur Laufzeit. Es gibt auch keine Dokumentation darüber, welche Felder erwartet werden.

Tun Sie das:

from dataclasses import dataclass
from typing import Non-obligatory

@dataclass
class Person:
    id: int
    electronic mail: str
    full_name: str
    standing: str
    last_login: Non-obligatory(datetime) = None

def process_user(person: Person):
    if person.standing == 'lively':
        send_email(person.electronic mail)
        log_activity(f"Processed {person.full_name}")

Python @dataclass Der Dekorateur bietet Ihnen eine saubere, explizite Struktur mit minimaler Kesselplatte. Ihre IDE kann jetzt eine automatische Vervollständigung für Attribute bereitstellen, und Sie erhalten unmittelbare Fehler, wenn die erforderlichen Felder fehlen.

Für eine komplexere Validierung sollten Sie Pydantic betrachten:

from pydantic import BaseModel, EmailStr, validator

class Person(BaseModel):
    id: int
    electronic mail: EmailStr  # Validates electronic mail format
    full_name: str
    standing: str
    
    @validator('standing')
    def status_must_be_valid(cls, v):
        if v not in {'lively', 'inactive', 'pending'}:
            elevate ValueError('Have to be lively, inactive or pending')
        return v

Jetzt überprüft sich Ihre Daten selbst, fängt Fehler frühzeitig auf und dokumentiert die Erwartungen klar.

2. Verwenden Sie Enums für bekannte Entscheidungen

String -Literale sind anfällig für Tippfehler und bieten keine IDE -Autokonomplete. Die Validierung erfolgt nur zur Laufzeit.

Anstelle davon:

def process_order(order, standing):
    if standing == 'pending':
        # course of logic
    elif standing == 'shipped':
        # totally different logic
    elif standing == 'delivered':
        # extra logic
    else:
        elevate ValueError(f"Invalid standing: {standing}")
        
# Later in your code...
process_order(order, 'shiped')  # Typo! However no IDE warning

Tun Sie das:

from enum import Enum, auto

class OrderStatus(Enum):
    PENDING = 'pending'
    SHIPPED = 'shipped'
    DELIVERED = 'delivered'
    
def process_order(order, standing: OrderStatus):
    if standing == OrderStatus.PENDING:
        # course of logic
    elif standing == OrderStatus.SHIPPED:
        # totally different logic
    elif standing == OrderStatus.DELIVERED:
        # extra logic
    
# Later in your code...
process_order(order, OrderStatus.SHIPPED)  # IDE autocomplete helps!

Wenn Sie sich mit einer festen Reihe von Optionen befassen, macht ein Enum Ihren Code robuster und Selbstdokumentation.

Mit Aufzügen:

  • Ihre IDE bietet automatische Vorschläge
  • Tippfehler werden (quick) unmöglich
  • Sie können bei Bedarf alle möglichen Werte durchsetzen

Enum erstellt eine Reihe genannter Konstanten. Der Typ Hinweis standing: OrderStatus dokumentiert den erwarteten Parametertyp. Verwendung OrderStatus.SHIPPED Anstelle eines Saitenliterales ermöglicht die IDE automatisch und fängt Tippfehler zur Entwicklungszeit.

3. Verwenden Sie nur Key phrase-Argumente für Klarheit

Das versatile Argumentsystem von Python ist leistungsfähig, kann jedoch zu Verwirrung führen, wenn Funktionsaufrufe mehrere optionale Parameter aufweisen.

Anstelle davon:

def create_user(title, electronic mail, admin=False, notify=True, momentary=False):
    # Implementation
    
# Later in code...
create_user("John Smith", "john@instance.com", True, False)

Warten Sie, was meinen diese Booleschen wieder?

Bei der Aufforderung mit Positionsargumenten ist unklar, welche Booleschen Werte ohne Überprüfung der Funktionsdefinition darstellen. Gilt für Administrator, Benachrichtigung oder etwas anderes?

Tun Sie das:

def create_user(title, electronic mail, *, admin=False, notify=True, momentary=False):
    # Implementation

# Now you could use key phrases for non-compulsory args
create_user("John Smith", "john@instance.com", admin=True, notify=False)

Die Syntax erzwingt alle Argumente, nachdem sie nach Schlüsselwort angegeben werden. Auf diese Weise ruft Ihre Funktion Selbstdokumentation auf und verhindert das Drawback „Thriller Boolean“, bei dem die Leser nicht sagen können, was wahr oder Falsch bezieht, ohne die Funktionsdefinition zu lesen.

Dieses Muster ist besonders nützlich bei API -Aufrufen und dergleichen, wo Sie die Klarheit auf der Anrufe sicherstellen möchten.

4. Verwenden Sie Pathlib über OS.Path

Pythons OS.Path -Modul ist funktional, aber klobig. Das neuere Pathlib-Modul bietet einen objektorientierten Ansatz, der intuitiver und weniger fehleranfällig ist.

Anstelle davon:

import os

data_dir = os.path.be a part of('knowledge', 'processed')
if not os.path.exists(data_dir):
    os.makedirs(data_dir)

filepath = os.path.be a part of(data_dir, 'output.csv')
with open(filepath, 'w') as f:
    f.write('resultsn')
    
# Test if we now have a JSON file with the identical title
json_path = os.path.splitext(filepath)(0) + '.json'
if os.path.exists(json_path):
    with open(json_path) as f:
        knowledge = json.load(f)

Dies verwendet eine String -Manipulation mit os.path.be a part of() Und os.path.splitext() für Pfadbeschaffung. Pfadoperationen sind über verschiedene Funktionen hinweg verstreut. Der Code ist ausführlich und weniger intuitiv.

Tun Sie das:

from pathlib import Path

data_dir = Path('knowledge') / 'processed'
data_dir.mkdir(mother and father=True, exist_ok=True)

filepath = data_dir / 'output.csv'
filepath.write_text('resultsn')

# Test if we now have a JSON file with the identical title
json_path = filepath.with_suffix('.json')
if json_path.exists():
    knowledge = json.masses(json_path.read_text())

Warum Pathlib besser ist:

  • Pfad beiträgt / ist intuitiverer
  • Methoden wie mkdir()Anwesend exists()Und read_text() sind an das Pfadobjekt angehängt
  • Operationen wie Änderungen von Erweiterungen (mit _suffix) sind semantischer

Pathlib behandelt die Feinheiten der Pfadmanipulation über verschiedene Betriebssysteme hinweg. Dies macht Ihren Code tragbarer und robuster.

5. MIT WARD -Klauseln schnell scheitern

Tief verschachtelte, wenn es sich um Andränge handelt, sind oft schwer zu verstehen und aufrechtzuerhalten. Die Verwendung von frühen Renditen – Schutzklauseln – führt zu mehr lesbarer Code.

Anstelle davon:

def process_payment(order, person):
    if order.is_valid:
        if person.has_payment_method:
            payment_method = person.get_payment_method()
            if payment_method.has_sufficient_funds(order.whole):
                strive:
                    payment_method.cost(order.whole)
                    order.mark_as_paid()
                    send_receipt(person, order)
                    return True
                besides PaymentError as e:
                    log_error(e)
                    return False
            else:
                log_error("Inadequate funds")
                return False
        else:
            log_error("No fee technique")
            return False
    else:
        log_error("Invalid order")
        return False

Tiefe Verschachtelung ist schwer zu folgen. Jeder bedingte Block erfordert die gleichzeitige Verfolgung mehrerer Zweige.

Tun Sie das:

def process_payment(order, person):
    # Guard clauses: test preconditions first
    if not order.is_valid:
        log_error("Invalid order")
        return False
        
    if not person.has_payment_method:
        log_error("No fee technique")
        return False
    
    payment_method = person.get_payment_method()
    if not payment_method.has_sufficient_funds(order.whole):
        log_error("Inadequate funds")
        return False
    
    # Principal logic comes in any case validations
    strive:
        payment_method.cost(order.whole)
        order.mark_as_paid()
        send_receipt(person, order)
        return True
    besides PaymentError as e:
        log_error(e)
        return False

Schutzklauseln verarbeiten Fehlerfälle vorne und reduzieren die Einkleberwerte. Jede Bedingung wird nacheinander überprüft, wodurch der Fluss leichter zu folgen ist. Die Hauptlogik kommt am Ende und ist eindeutig von der Fehlerbehandlung getrennt.

Dieser Ansatz skaliert viel besser, wenn Ihre Logik in Komplexität wächst.

6. Nicht überbeanspruchte Auflistverständnisse

Record -Verständnisse sind eine der elegantesten Merkmale von Python, werden jedoch bei Überladen mit komplexen Bedingungen oder Transformationen unlesbar.

Anstelle davon:

# Laborious to parse at a look
active_premium_emails = (person('electronic mail') for person in users_list 
                         if person('standing') == 'lively' and 
                         person('subscription') == 'premium' and 
                         person('email_verified') and
                         not person('electronic mail') in blacklisted_domains)

In dieser Liste wird das Verständnis zu viel Logik in eine Zeile eingebaut. Es ist schwer zu lesen und zu debuggen. Mehrere Bedingungen werden miteinander verkettet, was es schwierig macht, die Filterkriterien zu verstehen.

Tun Sie das:
Hier sind bessere Alternativen.

Choice 1: Funktion mit einem beschreibenden Namen

Extrahiert die komplexe Bedingung in eine benannte Funktion mit einem beschreibenden Namen. Das Listenverständnis ist jetzt viel klarer und konzentriert sich auf das, was es tut (E -Mails extrahieren), anstatt wie es Filterung ist.

def is_valid_premium_user(person):
    return (person('standing') == 'lively' and
            person('subscription') == 'premium' and
            person('email_verified') and
            not person('electronic mail') in blacklisted_domains)

active_premium_emails = (person('electronic mail') for person in users_list if is_valid_premium_user(person))

Choice 2: herkömmliche Schleife, wenn die Logik komplex ist

Verwendet eine traditionelle Schleife mit frühes Fortsetzung für Klarheit. Jede Bedingung wird separat überprüft, sodass es leicht zu debuggen kann, welcher Zustand möglicherweise fehlschlägt. Die Transformationslogik ist ebenfalls deutlich getrennt.

active_premium_emails = ()
for person in users_list:
    # Complicated filtering logic
    if person('standing') != 'lively':
        proceed
    if person('subscription') != 'premium':
        proceed
    if not person('email_verified'):
        proceed
    if person('electronic mail') in blacklisted_domains:
        proceed
        
    # Complicated transformation logic
    electronic mail = person('electronic mail').decrease().strip()
    active_premium_emails.append(electronic mail)

Auflistenverständnisse sollten Ihren Code lesbarer machen, nicht weniger. Wenn die Logik komplex wird:

  • Komplexe Bedingungen in benannte Funktionen unterteilen
  • Erwägen Sie, eine reguläre Schleife mit frühen Fortsetzung zu verwenden
  • Teilen Sie komplexe Operationen in mehrere Schritte auf

Denken Sie daran, das Ziel ist die Lesbarkeit.

7. Schreiben Sie wiederverwendbare reine Funktionen

Eine Funktion ist eine reine Funktion, wenn sie immer den gleichen Ausgang für die gleichen Eingänge erzeugt. Außerdem hat es keine Nebenwirkungen.

Anstelle davon:

total_price = 0  # World state

def add_item_price(item_name, amount):
    world total_price
    # Lookup value from world stock
    value = stock.get_item_price(item_name)
    # Apply low cost 
    if settings.discount_enabled:
        value *= 0.9
    # Replace world state
    total_price += value * amount
    
# Later in code...
add_item_price('widget', 5)
add_item_price('gadget', 3)
print(f"Complete: ${total_price:.2f}")

Dies verwendet den globalen Staat (total_price) was es schwierig macht.

Die Funktion hat Nebenwirkungen (modifizieren globaler Zustand) und hängt vom externen Zustand (Inventar und Einstellungen) ab. Dies macht es unvorhersehbar und schwer wiederzuverwenden.

Tun Sie das:

def calculate_item_price(merchandise, value, amount, low cost=0):
    """Calculate closing value for a amount of things with non-compulsory low cost.
    
    Args:
        merchandise: Merchandise identifier (for logging)
        value: Base unit value
        amount: Variety of gadgets
        low cost: Low cost as decimal 
        
    Returns:
        Ultimate value after reductions
    """
    discounted_price = value * (1 - low cost)
    return discounted_price * amount

def calculate_order_total(gadgets, low cost=0):
    """Calculate whole value for a set of things.
    
    Args:
        gadgets: Record of (item_name, value, amount) tuples
        low cost: Order-level low cost
        
    Returns:
        Complete value in any case reductions
    """
    return sum(
        calculate_item_price(merchandise, value, amount, low cost)
        for merchandise, value, amount in gadgets
    )

# Later in code...
order_items = (
    ('widget', stock.get_item_price('widget'), 5),
    ('gadget', stock.get_item_price('gadget'), 3),
)

whole = calculate_order_total(order_items, 
                             low cost=0.1 if settings.discount_enabled else 0)
print(f"Complete: ${whole:.2f}")

Die folgende Model verwendet reine Funktionen, die alle Abhängigkeiten als Parameter betrachten.

8. Schreiben Sie Docstrings für öffentliche Funktionen und Klassen

Die Dokumentation ist (und sollte nicht) ein nachträglicher Gedanke sein. Es ist ein zentraler Bestandteil des Code -Code. Gute Docstrings erklären nicht nur, was Funktionen tun, sondern warum sie existieren und wie sie sie richtig einsetzen.

Anstelle davon:

def celsius_to_fahrenheit(celsius):
    """Convert Celsius to Fahrenheit."""
    return celsius * 9/5 + 32

Dies ist eine minimale Dokumentation, die den Funktionsnamen nur wiederholt. Bietet keine Informationen zu Parametern, Rückgabetwerten oder Randfällen.
Tun Sie das:

def celsius_to_fahrenheit(celsius):
	"""
	Convert temperature from Celsius to Fahrenheit.
	The system used is: F = C × (9/5) + 32
	Args:
    	celsius: Temperature in levels Celsius (will be float or int)
	Returns:
    	Temperature transformed to levels Fahrenheit
	Instance:
    	>>> celsius_to_fahrenheit(0)
    	32.0
    	>>> celsius_to_fahrenheit(100)
    	212.0
    	>>> celsius_to_fahrenheit(-40)
    	-40.0
	"""
	return celsius * 9/5 + 32

Ein guter Docstring:

  • Dokumente Parameter und Rückgabewerte
  • Stellt alle Ausnahmen fest, die möglicherweise erhoben werden könnten
  • Bietet Nutzungsbeispiele

Ihre Docstrings dienen als ausführbare Dokumentation, die mit Ihrem Code synchronisiert bleibt.

9. Automatisieren Sie das Leinen und Formatieren

Verlassen Sie sich nicht auf die manuelle Inspektion, um Stilprobleme und gemeinsame Fehlern zu fangen. Automatische Instruments können die mühsame Arbeit der Sicherstellung von Codequalität und -konsistenz erledigen.

Sie können versuchen, diese Linien- und Formatierungswerkzeuge einzurichten:

  1. Schwarz – Codeformatierer
  2. Halskrause – Schneller Stoßunter seinen
  3. Mypy – statischer Typ Checker
  4. ISORT – Veranstalter importieren

Integrieren Sie sie mithilfe von Pre-Commit-Hooks, um vor jedem Commit automatisch Code zu überprüfen und zu formatieren:

  1. Vorkommind installieren: pip set up pre-commit
  2. Erstellen a .pre-commit-config.yaml Datei mit den konfigurierten Instruments
  3. Laufen pre-commit set up zu aktivieren

Dieses Setup gewährleistet einen konsistenten Codestil und fängt ohne manuelle Aufwand frühzeitig Fehler auf.

Sie können überprüfen 7 Instruments zum Schreiben eines besseren Python -Code mehr darüber zu wissen.

10. Vermeiden Sie alles, außer dass

Generische Ausnahmehändler verbergen Fehler und erschweren das Debuggen. Sie fangen alles auf, einschließlich Syntaxfehler, Speicherfehler und Tastaturinterrudeln.

Anstelle davon:

strive:
    user_data = get_user_from_api(user_id)
    process_user_data(user_data)
    save_to_database(user_data)
besides:
    # What failed? We'll by no means know!
    logger.error("One thing went mistaken")

Dies verwendet eine bloße Ausnahme zum Handeln:

  • Programmierfehler (wie Syntaxfehler)
  • Systemfehler (wie MemoryError)
  • Tastaturinterrudeln (Strg+C)
  • Erwartete Fehler (wie Netzwerkzeitüberschreitungen)

Dies erschwert das Debuggen extrem, da alle Fehler gleich behandelt werden.

Tun Sie das:

strive:
    user_data = get_user_from_api(user_id)
    process_user_data(user_data)
    save_to_database(user_data)
besides ConnectionError as e:
    logger.error(f"API connection failed: {e}")
    # Deal with API connection points
besides ValueError as e:
    logger.error(f"Invalid person knowledge obtained: {e}")
    # Deal with validation points
besides DatabaseError as e:
    logger.error(f"Database error: {e}")
    # Deal with database points
besides Exception as e:
    # Final resort for surprising errors
    logger.essential(f"Surprising error processing person {user_id}: {e}", 
                  exc_info=True)
    # Presumably re-raise or deal with generically
    elevate

Fängt spezifische Ausnahmen auf, die zu erwarten sind und angemessen behandelt werden können. Jeder Ausnahmetyp hat seine eigene Fehlermeldung und Handhabungsstrategie.

Die letzte Ausnahme außer Ausnahme fängt unerwartete Fehler auf und protokolliert sie mit vollem Traceback (exc_info=True) und räumen sie wieder, um vermeiden, ernsthafte Probleme nonetheless zu ignorieren.

Wenn Sie aus irgendeinem Grund einen All-Hap-Handler benötigen, verwenden Sie besides Exception as e: eher als bloß besides:und protokollieren Sie immer die vollständigen Ausnahmendetails mit exc_info=True.

Einpacken

Ich hoffe, Sie können zumindest einige dieser Praktiken in Ihrem Code verwenden. Beginnen Sie mit der Implementierung in Ihren Projekten.

Sie werden feststellen, dass Ihr Code wartbarer, nachweisbarer und leichter zu argumentierbarer wird.

Wenn Sie das nächste Mal versucht sind, eine Abkürzung zu nehmen, denken Sie daran: Code wird viel mehrmals gelesen als geschrieben. Joyful Clear Coding?

Bala Priya c ist ein Entwickler und technischer Schriftsteller aus Indien. Sie arbeitet gern an der Schnittstelle zwischen Mathematik, Programmierung, Datenwissenschaft und Inhaltserstellung. Ihre Interessensgebiete und Fachgebiete umfassen DevOps, Information Science und natürliche Sprachverarbeitung. Sie liest gerne, schreibt, codieren und Kaffee! Derzeit arbeitet sie daran, ihr Wissen mit der Entwicklergemeinschaft zu lernen und zu teilen, indem sie Tutorials, Anleitungen, Meinungsstücke und vieles mehr autorisiert. Bala erstellt auch ansprechende Ressourcenübersichten und Codierungs -Tutorials.



[ad_2]

]]>
http://chatgpz.de/data-analytics/hoeren-sie-auf-chaotische-python-zu-schreiben-ein-sauberer-code-crash-kurs/feed/ 0 9981
Eine Plattform zur Beschleunigung sauberer Energieprojekte | MIT Nachrichten http://chatgpz.de/artificial-intelligence/eine-plattform-zur-beschleunigung-sauberer-energieprojekte-mit-nachrichten/ http://chatgpz.de/artificial-intelligence/eine-plattform-zur-beschleunigung-sauberer-energieprojekte-mit-nachrichten/#respond Sat, 25 Jan 2025 00:37:06 +0000 https://chatgpz.de/artificial-intelligence/eine-plattform-zur-beschleunigung-sauberer-energieprojekte-mit-nachrichten/ [ad_1]

Unternehmen und Entwickler stehen häufig vor einer steilen Lernkurve bei der Set up sauberer Energietechnologien wie Solarinstallationen und EV -Ladegeräten. Um ein faires Geschäft zu erhalten, müssen sie in einem komplexen Ausschreibungsverfahren navigieren, bei dem Vorschläge angefordert, Angebote bewertet und letztendlich mit einem Anbieter zusammengearbeitet werden.

Jetzt, die von zwei MIT -Alumni und ihren Kollegen gegründete Begin -Station A, wird der Prozess der Bereitstellung sauberer Energie gestoppt. Das Unternehmen hat einen Marktplatz für Clear Vitality entwickelt, der Immobilieneigentümern und Unternehmen hilft, Immobilien zu analysieren, um die Renditen für saubere Energieprojekte zu berechnen, detaillierte Projektlisten zu erstellen, Angebote zu sammeln und zu vergleichen und einen Anbieter auszuwählen.

Die Plattform hilft Immobilienbesitzern und Unternehmen bei der Einführung sauberer Energietechnologien wie Solarmodule, Batterien und EV -Ladegeräte zu den niedrigstmöglichen Preisen, an Stellen mit dem höchsten Potenzial zur Senkung der Energiekosten und -emissionen.

„Wir tun viel, um die Adoption sauberer Energie einfach zu machen“, erklärt Manos Saratsis Smarchs ’15, der mit Kevin Berkemeyer MBA ’14 mit der Station A mitbegründet wurde. „Stellen Sie sich vor, Sie hätten versucht, ein Flugticket zu kaufen, und Ihr Reisebüro hat nur einen Träger verwendet. Es wäre teurer und man könnte nicht einmal an einige Orte gelangen. Unsere Kunden möchten mehrere Optionen haben und leicht etwas über die Erfolgsbilanz erfahren, mit denen sie arbeiten. “

Die Station A hat sich bereits mit einigen der größten Immobilienunternehmen des Landes zusammengetan, von denen einige mit Tausenden von Immobilien den CO2 -Fußabdruck ihrer Gebäude reduzieren. Das Unternehmen arbeitet auch mit Lebensmittelketten, Lagern und anderen Unternehmen zusammen, um den Übergang der sauberen Energie zu beschleunigen.

„Unsere Plattform verwendet viel KI und maschinelles Lernen, um Adressen in den Aufbau von Fußabdrücken zu verwandeln und ihre Stromkosten, verfügbare Anreize zu verstehen und wo sie den höchsten ROI erwarten können“, sagt Saratsis, der als Produktleiter von Station A dient. „Dies würde normalerweise Zehn- oder Hunderttausende von {Dollars} beratungszeit erfordern, und wir können es so schnell ohne Geld tun.“

Aufbau des Fundaments

Als Doktorand in der Abteilung für Architektur des MIT untersuchte Saratsis Umweltdesign -Modellierung und verwendete Daten aus Quellen wie Satellitenbildern, um zu verstehen, wie Gemeinschaften Energie verbrauchen, und um die wirkungsvollsten potenziellen Lösungen für saubere Energie vorzuschlagen. Er sagt Klassen mit Professoren Christoph Reinhart Und Kent Larson waren besonders Augenöffnungen.

„Meine Fähigkeit, ein thermisches Energiemodell aufzubauen und den Stromverbrauch in einem Gebäude am MIT zu simulieren“, sagt Saratsis.

Berkemeyer warfare Präsident des MIT Vitality Golf equipment an der MIT Sloan College of Administration. Er warfare auch wissenschaftlicher Mitarbeiter bei der MIT Vitality Initiative als Teil der Zukunft der Photo voltaic Bericht und ein Lehrerassistent für Kurs 15.366 (Klima- und Energieunternehmen). Er sagt, dass Klassen im Unternehmertum mit Professor der Praxis Invoice Aulet und in Nachhaltigkeit mit hochrangiger Dozentin Jason Jay prägend waren. Vor seinem Studium am MIT hatte Berkemeyer umfangreiche Erfahrung in der Entwicklung von Photo voltaic- und Speicherprojekten und dem Verkauf sauberer Energieprodukte an gewerbliche Kunden. Die späteren Mitbegründer haben die Wege am MIT nicht überschritten, aber nach dem Abschluss arbeiteten sie bei der NRG-Energie der Versorgungsunternehmen zusammen.

„Als Mitbegründer sahen wir eine Gelegenheit, die Annäherung an die CEO von Station A zu verändern, wie Unternehmen sich der sauberen Energie nähern“, sagte Berkemeyer. „Die Station A wurde aus einer gemeinsamen Überzeugung entstanden, dass Daten und Transparenz das volle Potenzial für saubere Energietechnologien für alle ausschöpfen könnten.“

Bei NRG bauten die Gründer Software program auf, um Dekarbonisierungsmöglichkeiten für Kunden zu identifizieren, ohne Analysten für persönliche Audits an die Web sites zu schicken zu müssen.

„Wenn sie mit einer großen Lebensmittelkette oder einem großen Einzelhändler zusammenarbeiten, würden wir proprietäre Analysen verwenden, um dieses Portfolio zu bewerten und Empfehlungen für Dinge wie Solarprojekte, Energieeffizienz und Nachfragereaktion zu erhalten, die innerhalb eines Jahres constructive Renditen erzielen würden.“ Saratsis erklärt.

Die Instruments waren ein großer Erfolg innerhalb des Unternehmens. Im Jahr 2018 beschloss das Paar zusammen mit den Mitbegründern Jeremy Lucas und Sam Steyer, die Technologie in Station A. herauszuholen.

Die Gründer begannen mit Energieunternehmen zusammenzuarbeiten, legten jedoch bald ihren Fokus auf Immobilienbesitzer mit riesigen Portfolios und großen Unternehmen mit langfristigen Leasingverträgen. Viele Kunden haben Hunderte oder sogar Tausende von Adressen zu bewerten. Mit nur den Adressen kann die Station A detaillierte finanzielle Rendite für saubere Energieinvestitionen liefern.

Im Jahr 2020 erweiterte das Unternehmen seinen Schwerpunkt vom Verkauf des Zugangs zu seiner Analytik bis zur Schaffung eines Marktplatzes für Clear -Vitality -Transaktionen und hilft Unternehmen, den Wettbewerbsbetriebsprozess für Clear Vitality -Projekte durchzuführen. Nach der Set up eines Projekts kann die Station A auch bewerten, ob es seine erwartete Leistung erzielt und finanzielle Renditen erzielt.

„Wenn ich mit Leuten außerhalb der Branche spreche, sagen sie:“ Warte, das existiert nicht schon? „, Sagt Saratsis. „Es ist irgendwie verrückt, aber die Branche ist immer noch sehr entstehend, und niemand konnte einen Weg finden, den Ausschreibungsprozess clear und im Maßstab durchzuführen.“

Vom Campus zur Welt

Heute sind rund 2.500 Entwickler für saubere Energie auf der Plattform von Station A aktiv. Eine Reihe großer Immobilieninvestitionstrusss nutzen ihre Dienstleistungen auch, zusätzlich zu Unternehmen wie HP, Nestle und Goldman Sachs. Wenn Station A ein Entwickler wäre, sagt Saratsis, dass sie jetzt in Bezug auf die jährlichen Solareinsätze zu den Prime 10 rangieren würde.

Die Gründer verdanken ihre Zeit am MIT, um ihnen zu helfen, zu skalieren.

„Viele dieser Beziehungen stammen aus dem MIT -Netzwerk, sei es durch Leute, die wir in Sloan oder durch Auseinandersetzung mit dem MIT getroffen haben“, sagt Saratsis. „So viel von diesem Geschäft geht es um den Ruf, und wir haben einen wirklich guten Ruf etabliert.“

Seit seiner Gründung sponsert Station A auch Kurse im Sustainability Lab am MIT, wo Saratsis als Scholar nachforschten. Während sie daran arbeiten, die Angebote von Station A zu erweitern, sagen die Gründer, dass sie die Fähigkeiten nutzen, die sie jeden Tag als Schüler gewonnen haben.

„Alles, was wir bei der Erstellung von Analysen tun, ist in gewisser Weise durch die Dinge inspiriert, die ich beim MIT gemacht habe“, sagt Saratsis.

„Station A fängt gerade erst an“, sagt Berkemeyer. „Clear Vitality Adoption geht nicht nur um Technologie, sondern darum, den Prozess nahtlos und zugänglich zu machen. Das macht uns jeden Tag und wir freuen uns, diese Transformation zu leiten. “

[ad_2]

]]>
http://chatgpz.de/artificial-intelligence/eine-plattform-zur-beschleunigung-sauberer-energieprojekte-mit-nachrichten/feed/ 0 6751