Anfänger-Problem...

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.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo Addili!

Mach für deine Frage doch mal einen neuen Thread mit einem entsprechenden Betreff auf und im entsprechenden Unterforum auf. Dann erhöhen sich die Chancen, dass dir jemand helfen kann.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

birkenfeld hat geschrieben:Non sequitur... wenn man ein Konstrukt nicht kennt, ist es nicht verwunderlich, dass man es nicht verwendet.
Einverstanden.
birkenfeld hat geschrieben:
pütone hat geschrieben:Aus meiner Sicht machen die else-Konstruktionen für Schleifen einen Quelltext schlechter lesbar.
Hier gilt das gleiche wie für Dekoratoren oder Lambdas: Man muss das Element kennen, um den Quelltext zu können. Bei anderen Elementen, wie if-else, erschließt sich der Sinn dem Betrachter von selbst -- aber hätte man nur solche Elemente zur Verfügung, würde Python zu einer Art "kleinstem gemeinsamen Nenner" aller Sprachen und damit ziemlich uninteressant.
Hier mag ich dir nun nicht folgen. Während die Verwechslungsgefahr mit verwandten Konstruktionen bei z.B. Lambdas oder Dekoratoren äußerst gering ist, gilt dies für ein "else" sicher nicht.
Und: Lambdas und Dekoratoren sind mächtige Elemente, ohne die sich manches nur wesentlich umständlicher (vielleicht auch gar nicht - aber das kannst du besser beurteilen als ich) realisieren lässt. Vom "Schleifen-else" würde ich das nicht behaupten.
BlackJack

Mit dem Schleifen-``else`` spart man sich eine Variable, und damit eine Namensgebung, für den Zustand wie die Schleife verlassen wurde.

Code: Alles auswählen

    flag = True
    for item in obj:
        if predicate(item):
            flag = False
            break
    if flag:
        print 'spam'

    # versus:
    
    for item in obj:
        if predicate(item):
            break
    else:
        print 'spam'
Mycron
User
Beiträge: 12
Registriert: Samstag 10. Mai 2008, 20:18

Voronwe hat geschrieben:

Code: Alles auswählen

import cgi

def prim(n):
	p = []
	for x in range(2,n):
		for y in range(2,x):
			if x % y == 0:
				break
		else:
			p.append(x)
	
	for z in p:
		print z, "<br />"
		
	print "Dies sind insgesamt", len(p)

fs = cgi.FieldStorage()
grenze = fs.getvalue("zahl", "10")

print "Alle Primzahlen bis", grenze, ":<br />"

prim(grenze)
Nabend!

Bin noch ein sehr sehr unerfahrener Neuling in Python und in Programmieren überhaupt (außer HTML) und will das eben mit Pyhon ändern. Auf de Thread bin ich gekommen als ich ne Lösung für mein Problem gesucht habe. Gut der Thread löst zwar mein Problem nicht, aber wenn ich scho dabin will ich noch eben ne Wissenslücke schließen ;)

Und zwar versteh ich in diesem Skript die Zeile 5 nicht. Kann mir jemand erklären was genau sie bewirkt? Also, an "p" wird was übergeben, des ist mir schon klar, aber was?

Schönen Dank schonmal ;)

Mycron
ck
User
Beiträge: 11
Registriert: Samstag 10. Mai 2008, 17:44
Kontaktdaten:

meinst du das?

Code: Alles auswählen

p = []
Hier wird der Variable p eine leere Liste zugewiesen.
Mycron
User
Beiträge: 12
Registriert: Samstag 10. Mai 2008, 20:18

Ah, dann lag ich mit meiner Vermutung schonmal richtig ;) Ok, wenn mir jetzt noch wer die Funktion von Zeile 18 und 19 erklärt hab ich das Skript auch kapiert :D

Mycron
Achtung, ein n00b! ;)
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Mycron hat geschrieben:Ok, wenn mir jetzt noch wer die Funktion von Zeile 18 und 19 erklärt hab ich das Skript auch kapiert :D
Schau doch einfach in der Doku nach: Library Reference -> cgi. Da ist es erklärt.
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

EyDu hat geschrieben:... Dann muss ich dir leider vorwerfen, dass du wohl nie das Tutorial gelesen hast, da steht es nämlich drin :lol: ...
Korrekt ^^, ich schau es mir nun auf jeden Fall nochmal an.
Antworten