Malles A, U und V Berechnung

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
Malle
User
Beiträge: 29
Registriert: Freitag 11. August 2006, 19:04
Wohnort: Coswig
Kontaktdaten:

Das war mein erstes Programm was ich mit Python selbst geschrieben hatte. wollt nur mal wissen was ihr so davon haltet. Aber bedenkt bitte das dass mein erstes selbst geschriebenes Programm ist!
Ps Man beachte daher auch die vielen if's!

Code: Alles auswählen

#!/usr/bin/python

print '''Wilkommen bei Malles U und A Berechnung.'''
print '''Sie koennen das Programm jederzeit beenden indem Sie "ende" Eingeben und Enter druecken'''
print '''Bitte achten sie darauf das die Werte alle die Selben maseinheiten haben'''
print '''Hinweis: der Punkt steht fuer das normale Komma'''

while True:
    AU = raw_input('Geben sie nun "U" fuer Umfang "V" fuer Volumen oder "A" fuer Flaecheninhalt ein und druecken sie Enter ')
    if AU == 'A':
        dr = raw_input('''geben Sie jetzt "dreieck", "rechteck", "quadrat", "rhombus" oder "kreis" ein um den jeweiligen Flaecheninhalt zu berechnen: ''')
        if dr == 'rechteck':
            r = float(raw_input('''laenge: ''')) * float(raw_input('''breite: '''))
            print 'der Flaecheninhalt ist', r
            print 'Sie koennen noch einen weiteren Flaecheninhalt oder Umfang berechnen.'
        if dr == 'quadrat':
            q = (float(raw_input('''laenge: '''))) ** 2
            print 'der Flaecheninhalt ist', q
            print 'Sie koennen noch einen weiteren Flaecheninhalt oder Umfang berechnen.'''
        if dr == 'dreieck':
            d = float(raw_input('''grundseite: ''')) * float(raw_input('''hoehe: ''')) / 2
            print 'der Flaecheninhalt ist', d
            print 'sie koennen noch einen weiteren Flaecheninhalt oder Umfang berechnen'
        if dr == 'kreis':
            k = (float(raw_input('''radius: '''))** 2) * 3.141592654
            print 'der Flaecheninhalt ist', k
            print '''Sie koennen noch einen weiterren Flaecheninhalt oder Umfang berechnen'''
        if dr == 'rhombus':
            r = (float(raw_input('''diagonale 1: ''')) * float(raw_input('''diagonale 2: '''))) / 2
            print 'der Flaecheninhalt ist', r
            print 'Sie koennen noch einen weiteren Flaecheninhalt oder Umfang berechnen'''
        if dr == 'ende':
            break
    
    if AU == 'U':
        um = raw_input('''geben sie jetzt "dreieck", "rechteck", "quadrat", "rhombus" oder "kreis" ein um den jeweiligen Umfang zu berechnen: ''')
        if um == 'rechteck':
            ur = 2 * (float(raw_input('''laenge: ''')) + float(raw_input('''breite: ''')))
            print 'der Umfang betraegt', ur
            print 'sie koennen noch einen weiteren Flaecheninhalt oder Umfang berechnen'
        if um == 'quadrat':
            uq = 4 * (float(raw_input('''laenge: ''')))
            print 'der Umfang betraegt', uq
            print 'Sie koennen noch einen weiteren Flaecheninhalt oder Umfang berechnen'
        if um == 'dreieck':
            ud = float(raw_input('''grundseite: ''')) + float(raw_input(''' zweite Seite: ''')) + float(raw_input('''dritte Seite: '''))
            print 'der Umfang betraegt', ud
            print 'Sie koennen noch einen Weiteren Flaecheninhalt oder Umfang berechnen'
        if um == 'kreis':
            uk = 2 * 3.141592654 * (float(raw_input('''radius: ''')))
            print '''der Umfang betraegt''', uk
            print '''Sie koennen noch einen Weiteren Flaecheninhalt oder Umfang berechnen'''
        if um == 'rhombus':
            ro = float(raw_input('Seite: ')) * 4
            print 'der Umfang betraegt', ro
            print '''Sie koennen noch einen weiteren Flaecheninhalt oder Umfang berechnen'''
        if um == 'ende':
            break

    if AU == 'V':
        vo = raw_input('''geben sie jetzt "quader", "wuerfel", "dreieckseule", "trapetzseule", "pyramide", "tetraeder", "kreiszylinder", "kreiskegel" oder "kugel" ein um das jeweilige Volumen zu berechnen: ''')
        if vo == 'quader':
            qu = float(raw_input('''laenge: ''')) * float(raw_input('''breite: ''')) * float(raw_input('''hoehe: '''))
            v = ['''das Volumen betraegt''', '''Sie koennen noch einen weiteren flaecheninhalt berechnen''']
            print v [0], qu
            print v [1]
        if vo == 'wuerfel':
            wu = (float(raw_input('''Seite: '''))) ** 3
            print v [0], wu
            print v [1]
        if vo == 'dreieckseule':
            ds = (float(raw_input('''1. Kathete: ''')) * float(raw_input('''2. kathete: ''')) * float(raw_input('''hoehe: '''))) / 4
            dse = ds * 1.732050808
            print v [0], dse
            print v [1]
        if vo == 'trapetzseule':
            ts = (float(raw_input('''grundseite Trapez: ''')) + float(raw_input('''Parallele zur Grundseite: '''))) / 2 * float(raw_input('''hoehe grundseite: '''))
            tse = ts * float(raw_input('''hoehe der Saeule: '''))
            print v [0], tse
            print v [1]
        if vo == 'pyramide':
            py = (float(raw_input('''grundkante1: ''')) * float(raw_input('''grundkante2: ''')) * float(raw_input('''hoehe: '''))) / 3
            print v [0], py
            print v [1]
        if vo == 'tetraeder':
            te = (float(raw_input('''1.Seite: ''')) * float(raw_input('''2.Seite: ''')) * float(raw_input('''3.Seite: '''))) / 12 * 1.414213562
            print v [0], te
            print v [1]
        if vo == 'kreiszylinder':
            kz = 3.141592654 * (float(raw_input('''radius: ''')) ** 2) * float(raw_input('''hoehe: '''))
            print v [0], kz
            print v [1]
        if vo == 'kreiskegel':
            kk = (3.141592654 * (float(raw_input('''radius: ''')) ** 2) * float(raw_input('''hoehe: '''))) / 3
            print v [0], kk
            print v [1]
        if vo == 'kugel':
            ku = (4 * 3.141592654 * (float(raw_input('''radius: ''')) ** 3)) / 3
            print v [0], ku
            print v [1]
        if vo == 'ende':
            break
    if AU == 'ende':
        break
    
print 'Danke das sie Malles U, A und V berechnung benutzt haben'
XT@ngel: Code in Python tags gesetzt
Malle
User
Beiträge: 29
Registriert: Freitag 11. August 2006, 19:04
Wohnort: Coswig
Kontaktdaten:

Die Zeileneinrückung muss man sich mal eben dazu denken weil das beim Kopieren schief gegangen ist. sry :oops:
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

kannst du das ganze noch in code-tags setzen?
wenn du das bearbeitest, bei B, i, u und Quote.
und das wäre doch ganz lieb, wenn die einrückung stimmen würde, da hat man viel schneller die übersicht ;)
http://www.cs.unm.edu/~dlchao/flake/doom/
Malle
User
Beiträge: 29
Registriert: Freitag 11. August 2006, 19:04
Wohnort: Coswig
Kontaktdaten:

Verdammte sch**** kann nicht einfach mal was Funktionieren wie e geplant ist!!!!!!!!!!
Malle
User
Beiträge: 29
Registriert: Freitag 11. August 2006, 19:04
Wohnort: Coswig
Kontaktdaten:

So aber jetzt hier ein link zu dem Programm

http://10a06.fasthoster.de/MallesAUundVBerechnung.zip
XT@ngel
User
Beiträge: 255
Registriert: Dienstag 6. August 2002, 14:36
Kontaktdaten:

Hab das eben mal für dich erledigt *g*
Wäre nett wenn du bei deinem dritten post den code wieder löschen würdest
damit er nicht doppelt ist?
Oder soll ich den post löschen?
MfG
Andreas
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

also pi ist auch in math definiert.
ich würde dass lieber benutzen.
http://www.cs.unm.edu/~dlchao/flake/doom/
Malle
User
Beiträge: 29
Registriert: Freitag 11. August 2006, 19:04
Wohnort: Coswig
Kontaktdaten:

Ich würde ja auch das Pi von math nutzen wenn ich wüsste als was das definiert ist? Ebenfalls wuesste ich gern ob und wenn ja wie ich sinus cosinus und tangens in python nutzen kann?
BlackJack

Diese Funktionen sind, wie `pi` auch, im `math` Modul definiert:

Code: Alles auswählen

In [41]: import math

In [42]: dir(math)
Out[42]:
['__doc__',
 '__file__',
 '__name__',
 'acos',
 'asin',
 'atan',
 'atan2',
 'ceil',
 'cos',
 'cosh',
 'degrees',
 'e',
 'exp',
 'fabs',
 'floor',
 'fmod',
 'frexp',
 'hypot',
 'ldexp',
 'log',
 'log10',
 'modf',
 'pi',
 'pow',
 'radians',
 'sin',
 'sinh',
 'sqrt',
 'tan',
 'tanh']
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

um es noch mal zu verdeutlichen:

Code: Alles auswählen

>>> import math
>>> print math.pi
3.14159265359
http://www.cs.unm.edu/~dlchao/flake/doom/
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

Hi Malle,

interessanter Einsteigercode, hat Ähnlichkeit mit meiner damaligen QBasic-Programmierung - aber da war das fast noch nötig. :-)

Wie wäre es, wenn Du jetzt den optimierten Python-Code mal daneben stellst, wäre ein Klasse Beispiel für Pythons Effizienz? :D

Grüße,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Malle
User
Beiträge: 29
Registriert: Freitag 11. August 2006, 19:04
Wohnort: Coswig
Kontaktdaten:

Danke für die Liste ist echt hilfreich so kann ich auch bei gelegenheit den sinus satz usw. mit einbauen.
Könntest du mir bitte nóch sagen für was die Einzelnen Funktionen da sind?
Ich meine sin cos und tan kann ich mir ja scho denken aber bei log oder log10 hörts dann auf.

Code: Alles auswählen

#!/usr/bin/python
# Malles A, U und V Berechnung 1.2

import math # importiere math
print '''Wilkommen bei Malles U und A Berechnung.'''
print '''Sie koennen das Programm jederzeit beenden indem Sie "ende" Eingeben und Enter druecken'''
print '''Bitte achten sie darauf das die Werte alle die Selben maseinheiten haben'''
print '''Hinweis: der Punkt steht fuer das normale Komma'''

while True:
    AU = raw_input('Geben sie nun "U" fuer Umfang "V" fuer Volumen oder "A" fuer Flaecheninhalt ein und druecken sie Enter ')
    if AU == 'A':
        dr = raw_input('''geben Sie jetzt "dreieck", "rechteck", "quadrat", "rhombus" oder "kreis" ein um den jeweiligen Flaecheninhalt zu berechnen: ''')
        if dr == 'rechteck':
            r = float(raw_input('''laenge: ''')) * float(raw_input('''breite: '''))
            print 'der Flaecheninhalt ist', r
            print 'Sie koennen noch einen weiteren Flaecheninhalt oder Umfang berechnen.'
        if dr == 'quadrat':
            q = (float(raw_input('''laenge: '''))) ** 2
            print 'der Flaecheninhalt ist', q
            print 'Sie koennen noch einen weiteren Flaecheninhalt oder Umfang berechnen.'''
        if dr == 'dreieck':
            d = float(raw_input('''grundseite: ''')) * float(raw_input('''hoehe: ''')) / 2
            print 'der Flaecheninhalt ist', d
            print 'sie koennen noch einen weiteren Flaecheninhalt oder Umfang berechnen'
        if dr == 'kreis':
            k = (float(raw_input('''radius: '''))** 2) * 3.141592654
            print 'der Flaecheninhalt ist', k
            print '''Sie koennen noch einen weiterren Flaecheninhalt oder Umfang berechnen'''
        if dr == 'rhombus':
            r = (float(raw_input('''diagonale 1: ''')) * float(raw_input('''diagonale 2: '''))) / 2
            print 'der Flaecheninhalt ist', r
            print 'Sie koennen noch einen weiteren Flaecheninhalt oder Umfang berechnen'''
        if dr == 'ende':
            break
    
    if AU == 'U':
        um = raw_input('''geben sie jetzt "dreieck", "rechteck", "quadrat", "rhombus" oder "kreis" ein um den jeweiligen Umfang zu berechnen: ''')
        if um == 'rechteck':
            ur = 2 * (float(raw_input('''laenge: ''')) + float(raw_input('''breite: ''')))
            print 'der Umfang betraegt', ur
            print 'sie koennen noch einen weiteren Flaecheninhalt oder Umfang berechnen'
        if um == 'quadrat':
            uq = 4 * (float(raw_input('''laenge: ''')))
            print 'der Umfang betraegt', uq
            print 'Sie koennen noch einen weiteren Flaecheninhalt oder Umfang berechnen'
        if um == 'dreieck':
            ud = float(raw_input('''grundseite: ''')) + float(raw_input(''' zweite Seite: ''')) + float(raw_input('''dritte Seite: '''))
            print 'der Umfang betraegt', ud
            print 'Sie koennen noch einen Weiteren Flaecheninhalt oder Umfang berechnen'
        if um == 'kreis':
            uk = 2 * 3.141592654 * (float(raw_input('''radius: ''')))
            print '''der Umfang betraegt''', uk
            print '''Sie koennen noch einen Weiteren Flaecheninhalt oder Umfang berechnen'''
        if um == 'rhombus':
            ro = float(raw_input('Seite: ')) * 4
            print 'der Umfang betraegt', ro
            print '''Sie koennen noch einen weiteren Flaecheninhalt oder Umfang berechnen'''
        if um == 'ende':
            break

    if AU == 'V':
        vo = raw_input('''geben sie jetzt "quader", "wuerfel", "dreieckseule", "trapetzseule", "pyramide", "tetraeder", "kreiszylinder", "kreiskegel" oder "kugel" ein um das jeweilige Volumen zu berechnen: ''')
        v = ['Das Volumen betraegt: ', 'Sie koennen noch einen weiteren Flaecheninhalt, Umfang oder Volumen berechnen']# hab auch gleich noch einen fehler gefunden...
        if vo == 'quader':
            qu = float(raw_input('''laenge: ''')) * float(raw_input('''breite: ''')) * float(raw_input('''hoehe: '''))#denn meine v liste stand zuerst hier!!!:)
            print v [0], qu
            print v [1]
        if vo == 'wuerfel':
            wu = (float(raw_input('''Seite: '''))) ** 3
            print v [0], wu
            print v [1]
        if vo == 'dreieckseule':
            ds = (float(raw_input('''1. Kathete: ''')) * float(raw_input('''2. kathete: ''')) * float(raw_input('''hoehe: '''))) / 4
            dse = ds * 1.732050808
            print v [0], dse
            print v [1]
        if vo == 'trapetzseule':
            ts = (float(raw_input('''grundseite Trapez: ''')) + float(raw_input('''Parallele zur Grundseite: '''))) / 2 * float(raw_input('''hoehe grundseite: '''))
            tse = ts * float(raw_input('''hoehe der Saeule: '''))
            print v [0], tse
            print v [1]
        if vo == 'pyramide':
            py = (float(raw_input('''grundkante1: ''')) * float(raw_input('''grundkante2: ''')) * float(raw_input('''hoehe: '''))) / 3
            print v [0], py
            print v [1]
        if vo == 'tetraeder':
            te = (float(raw_input('''1.Seite: ''')) * float(raw_input('''2.Seite: ''')) * float(raw_input('''3.Seite: '''))) / 12 * 1.414213562
            print v [0], te
            print v [1]
        if vo == 'kreiszylinder':
            kz = math.pi * (float(raw_input('''radius: ''')) ** 2) * float(raw_input('''hoehe: '''))#Benutzen von math.pi war einfach und ging schnell
            print v [0], kz
            print v [1]
        if vo == 'kreiskegel':
            kk = (math.pi * (float(raw_input('''radius: ''')) ** 2) * float(raw_input('''hoehe: '''))) / 3 #und man kann sich auch nicht vertippen
            print v [0], kk
            print v [1]
        if vo == 'kugel':
            ku = (4 * math.pi * (float(raw_input('''radius: ''')) ** 3)) / 3 #genauso hier
            print v[0], ku
            print v[1]
        if vo == 'ende':
            break
    if AU == 'ende':
        break
    
print 'Danke das sie Malles U, A und V berechnung benutzt haben'
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

Hallo Malle,

log und log10 stehen für den natürlichen und dekatischen Logarithmus, die Dir den Exponenten einer Potenz (e^x bzw. 10^x) liefern.
wenn z = log(5) dann e**z = 5
wenn z = log10(5) dann 10**z = 5
Diese und viele andere elementare mathematischen Funktionen werden aber in der einschlägigen Fachliteratur viel besser erklärt.

Grüße,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
XT@ngel
User
Beiträge: 255
Registriert: Dienstag 6. August 2002, 14:36
Kontaktdaten:

Die Funktionsnamen sind Abkürzungen der Funktionsnamen auf englisch

Bei log kannst du auch die Basis angeben:

Code: Alles auswählen

log(x[, base])
Ein Beispiel:

Code: Alles auswählen

import math
>>> math.log(25,5)
2.0
25=5^x
da 5^2=25

Code: Alles auswählen

sqrt( x)
Return the square root of x. .Also die Quadratwurzel

radians(x)
konvertriert Grad in Bogemaß

degrees(x)
Von Bogenmaß in Grad
Diese und viele andere elementare mathematischen Funktionen
Und dass, ist wohl eine Frage der Definition was elementar ist :wink:

MfG
Andreas
Malle
User
Beiträge: 29
Registriert: Freitag 11. August 2006, 19:04
Wohnort: Coswig
Kontaktdaten:

Ich hatte zwar mehr auf eine einfache Liste gehofft aber ich vermute mal das ich das meiste davon sowieso noch nicht brauche.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Übrigens: Sowas
Malle hat geschrieben:

Code: Alles auswählen

import math # importiere math
ist bäh. Kommentare im Stil

Code: Alles auswählen

a = 1 # Weise a den Wert 1 zu
sind nicht nur überflüssig, sondern können auf den Leser hinderlich wirken.
Malle
User
Beiträge: 29
Registriert: Freitag 11. August 2006, 19:04
Wohnort: Coswig
Kontaktdaten:

Im allgemeinen benutzte ich sowieso kaum Kommentare. Damit wollte ich nur noch mal die veränderungen zum ersten skript verdeutlichen. Aber trotzdem danke für den Tip.
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

Hi Malle,

birkenfeld hat schon recht. Aber das Gegenteil, nämlich zu wenig oder gar nicht zu kommentieren, ist mindestens genauso schlecht. Also sieh es bitte als konstruktive Kritik und denk an die einfach Regel: "Als Kommentar beschreib nicht das, was da steht, sondern das, was nicht da steht."

Grüße,
der Michel
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Malle
User
Beiträge: 29
Registriert: Freitag 11. August 2006, 19:04
Wohnort: Coswig
Kontaktdaten:

Ja is klar und danke für den Tipp, aber für dieses einfach struckterierte programm braucht man ja keine großartigen kommetare.
Antworten