An alle Schüler und Studenten mit Informatikproblemen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Eros
User
Beiträge: 9
Registriert: Montag 15. Februar 2021, 11:01

Leonidas hat geschrieben: Freitag 9. Juli 2004, 11:44 Ach, nutzen die Informatikstudenten Python? Ich dachte die Unis legen mehr Wert auf Java.
Moin, bin Lernender in der Schweiz. Lerne Informatik /Systemtechnik. Zu unser Ausbildung gehört nun seit neuestem auch Python. ich bin btw im 1 Lehrjahr, also noch nicht sehr erfahren. Ich kann nur sagen, wir machen schon an den Aufgaben, aber oft sind (meine) resultate halt falsch, und dann denke ich, "Nehmen wir doch gleich einen ganz neuen Code" anstelle an dem Falschen ewig lang rumzu arbeiten, bis er funktionsfähig ist.
hororizon
User
Beiträge: 1
Registriert: Samstag 17. April 2021, 12:02

Hi Neu hier. Derzeit am Python lernen. (Abgebrochener Bauingenieur)
Irgendwo am Anfang des Threads hieß es das Python nicht an Unis nicht gelehrt wird. Dazu nur Folgendes, an unserer Uni gab es einen Nebenkurs: "Python für Bauingenieure."
An diesem habe ich teilgenommen. Arbeite zurzeit, zur übung an einem Programm in Python was aus Textdateien Wörter suchen soll und daraus systematisch die wörter davor und danach in verschiedene Textdateien schreiben soll. Welche dann auch später verwendet werden. Ziel des Ganzen u.a. Orte aus einem literarischen Text (Wobei hier je nach Kontext auch Wasserfall oder Baum) ein Wort sein kann. Herausziehen und letztendlich in eine grobe Grafik eintragen. Zurzeit versuche ich aus dem Handbuch (Python von Peter Kaiser, Johannes Ernesti Das umfassende Handbuch - Aktuell zu Python 2.5) ,
auch wenn das wohl veraltet ist, das Kapitel/Modul threading zu nutzen. Hierbei wurde mir aber gesagt das Threading in Python eher ungeeignet ist. Stimmt das? Wenn ja warum? Was ist besser geeignet? (Ich wollte je Buch was durchsucht wird, einen eigenen Thread starten.)

PS: sry wegen dem Offtopic. Es ging mir eigentlich nur um die Aussage das in Unis sehr wohl Python benutzt wird.

Im Kurs damals Python 3.7 genutzt
Jetzt 3.9
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Der Thread ist von 2004. Seitdem ist Python stark gewachsen. Solche alten Aussagen sollte man also nicht all zu sehr auf die Goldwaage legen.

Und bitte eroeffne fuer deine eigentliche Frage ein neues Thema.
Benutzeravatar
__blackjack__
User
Beiträge: 13005
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@hororizon: Ein Buch zu Python 2.5 sollte man echt nicht mehr verwenden. Und auch bei neueren Ausgaben von diesem Buch, solltest Du etwas vorsichtig sein, denn das behandelt zum Beispiel die 3. Ausgabe von dem Buch, die bereits für Python 3 ist, zum Thema „Threads“ erst mal in einem eigenen Kapitel das `_thread`-Modul, Das Modul hiess in Python 2 noch `thread` und dort wurde schon seit Ewigkeiten in der Dokumentation auf das `threading`-Modul verwiesen. Der führende Unterstrich kennzeichnet das in Python 3 dann auch als Implementierungsdetail, welches man nicht verwenden sollte. Ich vermute der Verlag wollte die Seiten einfach ungern wegwerfen, was aber IMHO eine recht fragwürdige Entscheidung ist/war. Also nicht das `thread`/`_thread`-Modul verwenden, auch wenn das in einem Buch beschrieben wird!

In CPython gibt ein „global interpreter lock“ (GIL), welches dafür sorgt, dass immer nur ein Thead zur gleichen Zeit Python-Bytecode ausführen kann. Wenn ein Thread in einem blockierenden Systemaufruf steckt, oder Code einer in C geschriebenen Erweiterung ausgeführt wird, die das GIL freigibt, kann aber durchaus auch Code parallel ausgeführt werden.

Wenn man tatsächliche Paralellität braucht, dann geht das mit mehreren Prozessen. Dafür gibt es das `multiprozessing`-Modul. Ich würde aber erst schauen ob man mit `concurrent.futures` etwas anfangen kann. Die API ist auf höherer Ebene und man kann sich da zwischen Threads und Prozessen entscheiden.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
kalenderfamily
User
Beiträge: 23
Registriert: Freitag 18. Juni 2021, 12:30

Eros hat geschrieben: Montag 15. Februar 2021, 11:44
Leonidas hat geschrieben: Freitag 9. Juli 2004, 11:44 Ach, nutzen die Informatikstudenten Python? Ich dachte die Unis legen mehr Wert auf Java.
Moin, bin Lernender in der Schweiz. Lerne Informatik /Systemtechnik. Zu unser Ausbildung gehört nun seit neuestem auch Python. ich bin btw im 1 Lehrjahr, also noch nicht sehr erfahren. Ich kann nur sagen, wir machen schon an den Aufgaben, aber oft sind (meine) resultate halt falsch, und dann denke ich, "Nehmen wir doch gleich einen ganz neuen Code" anstelle an dem Falschen ewig lang rumzu arbeiten, bis er funktionsfähig ist.
Grüzi, ich bin Lehrender in D, darf ich mal fragen, mit was ihr arbeitet? Ich habe gesehen, dass die Schweiz und Österreich in vielen Dingen schon sehr weit sind, es gibt gutes Onlinematerial, manchmal auch echt viel! Gerne PM, Grüße
Vadym
User
Beiträge: 7
Registriert: Sonntag 30. Mai 2021, 18:53

Guten Tag, ich habe eine Aufgabe bekommen, aber alleine leider schaffe ich nicht. Kann mir jemand Helfen bitte.

Erstellen Sie eine Funktion, die eine ganze Zahl als Eingabeparameter bekommt und feststellt, ob

die Zahl kleiner Null ist (Rückgabewert 0)
einstellig ist (Rückgabewert 1)
zweistellig ist (Rückgabewert 2)
dreistellig ist (Rückgabewerte 3)
vierstellig und größer ist (Rückgabewerte 99)

Verwenden Sie keine Schleife in Ihrem Programm und nur eine return-Anweisung.

def klassen(zahl):

return n
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bitte stell deine Frage nicht in einem Thema, das sich der Diskussion *wie* hier mit Hausaufgaben umgegangen wird. Sonder stell die Frage bitte in einem eigenen Thema.
narpfel
User
Beiträge: 643
Registriert: Freitag 20. Oktober 2017, 16:10

@Vadym:

Code: Alles auswählen

λ» let
 | klassen n
 |   | n < 0 = 0
 |   | n < 10 = 1
 |   | n < 100 = 2
 |   | n < 1000 = 3
 |   | otherwise = return 99 !! 0
 |
klassen :: (Ord a, Num a, Num p) => a -> p
λ» klassen 42
2
λ» klassen (-123)
0
λ» klassen 1337
99
Und lies am besten nochmal den ersten Beitrag hier im Thread. :)

Und wenn du deine Frage in einem eigenen Thread stellst, dann schreibe bitte auch deinen Ansatz und wo konkret du Probleme mit der Aufgabenstellung hast.
Vadym
User
Beiträge: 7
Registriert: Sonntag 30. Mai 2021, 18:53

Ok.Danke.Die Aufgabe habe ich auch so wie Sie gelöst.
Vadym
User
Beiträge: 7
Registriert: Sonntag 30. Mai 2021, 18:53

Jetzt habe ich wieder Schwierigkeiten :shock:
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

@Vadym: narpfel hat kein Python-Programm geschrieben. Also ist es sehr unwahrscheinlich, dass Du Dein Problem auf die selbe Art gelöst hast.
Vadym
User
Beiträge: 7
Registriert: Sonntag 30. Mai 2021, 18:53

Neue Aufgabe . :roll:
Erstellen eine Funktion ,die aus einer Zahl y mit der angegebenen Iterationsformel solange einenneuen Wert x berechnet,bis sich das x nur noch in der z-ten Nachkommastelle ändert.
x《n+1》=((3×x^4《n》)+y)/4×x^3《n》
Eingabeparameter:
y Zahl zwischen 12 und 24(nachprüfen;bei falschem Wert von y -1 zurückgeben)
x0 Startwertfür die Iteration von x
z Anzahl Nachkommastellen für die Genauigkeit
Aus numerischen Gründen ist während der Iteration nicht zu runden.
def my_rt(y,x0,z)
........
...........
return xn1
#Test
x=my_rt(12,1,10)
print(x)
Antwort:1.8.........
Vadym
User
Beiträge: 7
Registriert: Sonntag 30. Mai 2021, 18:53

@Siirius3 Ich habe die Aufgabe selber zum Laufen gebracht.💪💪💪💪💪
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Vadym hat geschrieben: Sonntag 20. Juni 2021, 14:21o
Erstellen Sie eine Funktion, die eine ganze Zahl als Eingabeparameter bekommt und feststellt, ob

die Zahl kleiner Null ist (Rückgabewert 0)
einstellig ist (Rückgabewert 1)
zweistellig ist (Rückgabewert 2)
dreistellig ist (Rückgabewerte 3)
vierstellig und größer ist (Rückgabewerte 99)

Verwenden Sie keine Schleife in Ihrem Programm und nur eine return-Anweisung.
Die Anforderungen sind ja nicht so toll gestellt, um eine halbwegs elegante Lösung zu erhalten. Wie hast du es denn gelöst? Ich wollte mehrfach verschachtelte if-else-Anweisungen vermeiden und habe daher den Zehnerlogarithmus bemüht, allerdings auch nur mit Verrenkungen:

Code: Alles auswählen

from math import log10

def analyze(n):
    return int(log10(n) + 1) if 0 < n < 1000 else int(n == 0) or (0, 99)[n >= 1000]
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Und wie das so ist, fällt einem kurz nach dem Posten noch etwas ein:

Code: Alles auswählen

def analyze(n):
    return (n >= 0) + (n >= 10) + (n >= 100) if n < 1000 else 99
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

@snafu: warum der Symmetriebruch?

Code: Alles auswählen

def analyze(n):
    return (n >= 0) + (n >= 10) + (n >= 100) + 96 * (n >= 1000)
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Jo, stimmt. So ist es besser.
Vadym
User
Beiträge: 7
Registriert: Sonntag 30. Mai 2021, 18:53

Danke Sirius3 und snafu.Könnten vielleicht mir mit der nächste Aufgabe helfen. Alleine schaffe ich leider nicht.
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

@Vadym: bitte fange einen eigenen Thread an, und stelle dort eine konkrete Frage, an welcher Stelle Du mit Deinen Hausaufgaben nicht weiter kommst. Und falls Du snafus Lösung klauen und als Deine eigene ausgeben solltest, mußt Du wenigstens erklären können, warum sie funktioniert.
Vadym
User
Beiträge: 7
Registriert: Sonntag 30. Mai 2021, 18:53

Ich weiß einfach nicht wie soll ich anfangen.Leider.
Antworten