hilfe hausaufgabe python

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.
BlackJack

@derdon: Selbst unter Windows kann das bei CGI-Skripten wichtig sein, wenn der Webserver damit herausfinden will womit er die Datei mit der Endung *.cgi denn nun eigentlich starten soll.

@KlaliB: Die ``for``-Schleife wird da richtig erklärt, Du solltest den Fehler bei Dir suchen.

Was willst Du denn mit der Schleife überhaupt machen? Worüber willst Du iterieren?
Benutzeravatar
snafu
User
Beiträge: 6850
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@KlaliB:

Die Shebang-Thematik ist für dein eigentliches Programm völlig unerheblich. Das ist nur ein Hinweis an die Shell wie sie das Programm ausführen soll, wenn man es "direkt" startet, d.h. es nicht dem Pythoninterpreter als Argument mitgibt. Für diesen Schritt sorgt nämlich dann der/die/das Shebang. Zur Lösung deines Problems trägt das allerdings nicht wirklich etwas bei. Lass dich da nicht verwirren und schau dir vielleicht mal lieber die drei Links an, die ich gepostet habe. :)
Pascal
User
Beiträge: 271
Registriert: Samstag 4. April 2009, 22:18

ich misch mich hier mal ein...

also du sollst einen Bankautomaten bzw. die Ausgabe der Scheine programmieren??
eigentlich würde es reichen wenn du dich an das hälts was KEBA sehr schön geschrieben hat.
Hier nochmal das ganze:
KEBA hat geschrieben:Stell dir vor, du bist ein Bankautomat und sollst 120€ auszahlen. Was wäre die einfachste Form (= am wenigsten Scheine, ausbauen kann man das ja immernoch). Ich nehme die Lösung hier mal vorweg: ein 100€-Schein und ein 20€-Schein.

Was machst du also nun bei folgenden Beträgen: 100€, 75€, 140€, 120€, 555€, 2005€?

Notiere/Merk dir genau, wie du jeweils zur Lösung gelangt bist.
ich entschuldige mich schon mal im Vorfeld für den folgenden Code:
Viel Spaß damit ;)

Code: Alles auswählen

# -*- coding: cp1252 -*-
# Geldausgabe am defekten Bankautomaten (der Automat kann nur 5€-Scheine ausgeben)


print 'Bankautomat'
print
print '(auf Grund eines Defektes kann der Automat nur Beträge in 5€-Scheinen ausgeben)'
print
betrag=input('Wie viel soll ausgezahlt werden? ')
if betrag%5!=0:
    print 'Leider kann dieser Betrag nicht ausgezahlt werden, sorry'
else:
    print 'Der Automat zahlt aus: '
    for i in range(betrag/5):
        print '5€ Schein'  
KlaliB
User
Beiträge: 50
Registriert: Mittwoch 13. Mai 2009, 13:28

Pascal hat geschrieben:ich misch mich hier mal ein...

also du sollst einen Bankautomaten bzw. die Ausgabe der Scheine programmieren??
eigentlich würde es reichen wenn du dich an das hälts was KEBA sehr schön geschrieben hat.
Hier nochmal das ganze:
KEBA hat geschrieben:Stell dir vor, du bist ein Bankautomat und sollst 120€ auszahlen. Was wäre die einfachste Form (= am wenigsten Scheine, ausbauen kann man das ja immernoch). Ich nehme die Lösung hier mal vorweg: ein 100€-Schein und ein 20€-Schein.

Was machst du also nun bei folgenden Beträgen: 100€, 75€, 140€, 120€, 555€, 2005€?

Notiere/Merk dir genau, wie du jeweils zur Lösung gelangt bist.
ich entschuldige mich schon mal im Vorfeld für den folgenden Code:
Viel Spaß damit ;)

Code: Alles auswählen

# -*- coding: cp1252 -*-
# Geldausgabe am defekten Bankautomaten (der Automat kann nur 5€-Scheine ausgeben)


print 'Bankautomat'
print
print '(auf Grund eines Defektes kann der Automat nur Beträge in 5€-Scheinen ausgeben)'
print
betrag=input('Wie viel soll ausgezahlt werden? ')
if betrag%5!=0:
    print 'Leider kann dieser Betrag nicht ausgezahlt werden, sorry'
else:
    print 'Der Automat zahlt aus: '
    for i in range(betrag/5):
        print '5€ Schein'  
also eine sache check ich nicht
wieso nur ` nach dem print muss es nicht " sein?
BlackJack

Ganz offensichtlich nicht. Zeichenketten kann man in ' oder in " einfassen. Das steht aber auch in der Dokumentation.
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

sehr schön :)

wie wärs damit:

Code: Alles auswählen

import random
print 'Bankautomat'
print
print '(auf Grund eines Defektes kann der Automat nur Beträge in 1€-Münzen ausgeben)'
print
betrag=int(raw_input('Wie viel soll ausgezahlt werden? '))
for _ in range(0, betrag):
    print('%s' % ("pling", "plang", "plong")[random.randint(0,2)])
http://www.kinderpornos.info
BlackJack

Dill: Ich würde `xrange()` vorschlagen und `random.choice()` zur Auswahl des Geräuschs. Das ist dann nicht so fehleranfällig beim Erweitern. ;-)
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

ich werde mich in die dokumentation dieser für mich neuen methoden vertiefen und dann ein refactoring starten 8)
http://www.kinderpornos.info
KlaliB
User
Beiträge: 50
Registriert: Mittwoch 13. Mai 2009, 13:28

ich wollte mir mal die ansehen doch bei mir läuft es nicht :( das ´wird rot markiert
ich check da wirklich nichts :roll: :?:

werd mir jetzt mal die seiten angucken
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

das liegt wahrscheinlich daran, dass der code noch nicht refactored war.

Code: Alles auswählen

import random 
print """
Bankautomat
-----------
(auf Grund eines Defektes kann der Automat nur Beträge in 1€-Münzen ausgeben)' 
(es können jetzt auch besonders grosse beträge ausgezahlt werden. 
der nächste lastwagenverleih befindet sich am hauptbahnhof.)

""" 
 
betrag=int(raw_input('Wie viel soll ausgezahlt werden? ')) 
for _ in xrange(betrag): 
    print(random.choice( ("pling", "plang", "plong") ))

besser?

evtl liegt es auch daran, dass du dir das tutorial noch nicht angeschaut hast?
Zuletzt geändert von Dill am Montag 18. Mai 2009, 19:03, insgesamt 1-mal geändert.
http://www.kinderpornos.info
KlaliB
User
Beiträge: 50
Registriert: Mittwoch 13. Mai 2009, 13:28

hab kopfschmerzen und bin krank ich gucks mir morgen weiter an
Pascal
User
Beiträge: 271
Registriert: Samstag 4. April 2009, 22:18

Das von Dill find ich gut

und damit es wirklich pling, plang, plong macht ...

Code: Alles auswählen

import random, winsound
print """ 
Bankautomat 
----------- 
(auf Grund eines Defektes kann der Automat nur Beträge in 1€-Münzen ausgeben)' 
(es können jetzt auch besonders grosse beträge ausgezahlt werden. 
der nächste lastwagenverleih befindet sich am hauptbahnhof.) 

""" 
  
betrag=int(raw_input('Wie viel soll ausgezahlt werden? ')) 
for _ in xrange(betrag):
    pliplaplo=random.choice( ("pling", "plang", "plong") )
    print pliplaplo
    if pliplaplo == 'pling':
        winsound.Beep(780,25)
    elif pliplaplo == 'plang':
        winsound.Beep(100, 60)
    else:
        winsound.Beep(260, 41)

Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

langsam könnte man schon fast ein projekt bei sourceforge aufmachen....

Code: Alles auswählen

# -*- coding: utf-8 -*-
import random, winsound, time
print """ 
Bankautomat 
----------- 
(auf Grund eines Defektes kann der Automat nur Beträge in 1€-Münzen ausgeben)' 
(es können jetzt auch besonders grosse beträge ausgezahlt werden. 
der nächste lastwagenverleih befindet sich am hauptbahnhof.) 

""" 
  
betrag = int(raw_input('Wie viel soll ausgezahlt werden? ')) 
for _ in xrange(betrag): 
    pliplaplo=random.choice( ("pling", "plang", "plong") ) 
    print pliplaplo
    time.sleep(random.choice(range(100, 300, 50))/1000.)
    if pliplaplo == 'pling': 
        winsound.Beep(780,25) 
    elif pliplaplo == 'plang': 
        winsound.Beep(100, 60) 
    else: 
        winsound.Beep(260, 41)
http://www.kinderpornos.info
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Dill hat geschrieben:

Code: Alles auswählen

import random, winsound, time
Bäh, das funktioniert ja gar nicht:

Code: Alles auswählen

ImportError: No module named winsound
Aber ich habe eine viel bessere Lösung:

Code: Alles auswählen

import random, os
...
os.system("say " + random.choice(("pling", "plung", "plong")))
Ich musste allerdings plang in plung umbenennen, weil mein Kumpel Alex die erste Version nicht aussprechen konnte.

Stefan
Benutzeravatar
snafu
User
Beiträge: 6850
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

sma hat geschrieben:

Code: Alles auswählen

os.system
:o
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

sma hat geschrieben:
Dill hat geschrieben:

Code: Alles auswählen

import random, winsound, time
Bäh, das funktioniert ja gar nicht:

Code: Alles auswählen

ImportError: No module named winsound
Aber ich habe eine viel bessere Lösung:

Code: Alles auswählen

import random, os
...
os.system("say " + random.choice(("pling", "plung", "plong")))
Ich musste allerdings plang in plung umbenennen, weil mein Kumpel Alex die erste Version nicht aussprechen konnte.
``say`` funktioniert hier auch nicht, kann also nicht so viel besser als ``winsound`` sein.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Ich glaube, dass sma seinen Post nicht ernst gemeint hat. Dadurch, dass er bewusst auf einen Befehl zurückgreift, der ebenfalls nur auf einem OS läuft, hat er sozusagen mit "den eigenen Waffen zurückgeschlagen".
BlackJack

@derdon: Interessant das er sich dafür ausgerechnet den guten alten Amiga ausgesucht hat. Oder sollte AmigaOS nicht das einzige OS sein, dass einen ``say``-Befehl kennt. ;-)
KlaliB
User
Beiträge: 50
Registriert: Mittwoch 13. Mai 2009, 13:28

bei mir läuft keines eurer programme :(
brauch ich dafür ein extra programm oder was ist los?
hab nur python runtergeladen
es funktioniert aber wirklich garnix
die dinge die ich in der schule schaffe schaf ich nicht .
immer wenn ich irgendwas mit " mache wird das " rot markiert und da steht invalid syntax
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

probier das mal bitte und poste hier was passiert:

Code: Alles auswählen

C:\>python
Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> "Hallo, Welt"
'Hallo, Welt'
>>>
http://www.kinderpornos.info
Antworten