BlackBoard » Design, Programmierung & Entwicklung » Programmieren » python quelltext erklärung » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen python quelltext erklärung
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
sleeepy sleeepy ist männlich
lasst mich arzt...ich bin durch


images/avatars/avatar-2241.jpg

Dabei seit: 15.03.2003
Beiträge: 1.419

python quelltext erklärung       Zum Anfang der Seite springen

moin!

da wir ne klausur schreiben in informatik, haben wir nen quelltext bekommen, den wir erklären sollen:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
     from random import *
     a = randrange(1,101)
     b = 0
     c = 0
 5   while not c:
       b = b + 1
         zahl = raw_input("Gib eine Zahl ein: ")
         zahl = int(zahl)
         if zahl < a:
10           print "%d ist kleiner!" % zahl
         elif zahl > a:
             print "%d ist größer" % zahl
         else:
             print "Fertig!\n"
15           print "Anzahl: %d" % b
             c = 1


als lösung haben wir dieses bekommen:

Zitat:

In Zeile 1 wird das Modul random importiert, um die Funktion randint verfügbar zu haben. Es folgen drei Variablendeklarationen: a erhält einen zufälligen Integerwert zwischen 1 und 100, b und c werden 0 gesetzt.

Die in Zeile 5 beginnende Schleife läuft solange, bis c wahr ist, also den Wert 1 erhält (Zeile 16). In Zeile 6 wird b mit jedem Schleifendurchlauf um 1 erhöht, dient also als Zähler. Dann wird der Benutzer aufgefordert, eine Zahl einzugeben, die in Zeile 8 in einen Integerwert umgewandelt wird.

Es folgt in den Zeilen 9 bis 16 eine bedingte Anweisung, die drei Fälle unterscheidet. Wenn die eingegebene Zahl kleiner bzw. größer ist als die Zufallszahl a, so wird dem Benutzer dies mitgeteilt. Sonst - also wenn die eingegebene Zahl gleich der Zufallszahl ist, wird die Anzahl der Schleifendurchläufe ausgegeben und die Schleife durch Setzen von c=1 abgebrochen.

Es handelt sich bei diesem Programm offenbar um ein Zahlenratespiel, bei dem der Spieler eine zufällig vom Computer gewählte Zahl erraten muss.


das hätte ich auch so ungefähr hinbekommen, doch verstehe ich nicht, wieso oben c=0 ist, c wahr werden soll, jedoch c am ende mit 1 gleichgesetzt wird, müsste es nicht mit 0 gleichgesetzt werden oder oben c=1 sein?

hoffe mir kann jemand helfen^^ denn entweder verstehe ich den quelltext nicht, oder unser lehrer hat nen kleinen fehler in der lösung gemacht *gg*

__________________
mfg sleeepy

meine original DVDs smile

meine Tüten großes Grinsen

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von sleeepy: 06.12.2004 19:23.

06.12.2004 19:23 sleeepy ist offline E-Mail an sleeepy senden Homepage von sleeepy Beiträge von sleeepy suchen
LX LX ist männlich
El Comandante en Jefe


images/avatars/avatar-2290.gif

Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx

      Zum Anfang der Seite springen

0 ist falsch, 1 ist wahr

Das Programm haut schon so hin, c wird auf 0 initialisiert, womit der Ausdruck "not c" wahr ist. Dadurch wird die Schleife so lange abgearbeitet, bis c den Wert 1 (also wahr) bekommt, wodurch die Anweisung "not c" ja falsch wird.

Alternativ könnte man als Bedingung für die Schleife natürlich auch "c == 0" nehmen (weiß nicht, wie das in Python genau aussieht).

__________________
JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard

"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

06.12.2004 19:35 LX ist offline E-Mail an LX senden Homepage von LX Beiträge von LX suchen
sleeepy sleeepy ist männlich
lasst mich arzt...ich bin durch


images/avatars/avatar-2241.jpg

Dabei seit: 15.03.2003
Beiträge: 1.419

Themenstarter Thema begonnen von sleeepy
      Zum Anfang der Seite springen

achso, dann ist es mir auch klar, doch dachte ich, da mit b ja auch als zahl gearbeitet wird, a auch eine zahl zugewiesen wird, dass c auch als zahl gemeint ist und nicht als wahrheiswert.

wenn man das annimmt, müsste die lösung, die uns unser lehrer gegeben hat, falsch sein oder?


und noch eine frage hab ich: wodrin besteht der unterschied zwischen strings, arrays und tupeln?

ich weis, dass tupeln nicht veränderbar sind, arrays hingegen schon, weswegen eher arrays verwendet werden, doch weis ich nicht, wie unter dem überbegriff "listen, sequenzen" der begriff strings zu erkären ist?!

danke schonmal für die erklärung LX, hoffe du oder jemand anders kann mir bei meinen weiteren fragen noch weiterhelfen^^

__________________
mfg sleeepy

meine original DVDs smile

meine Tüten großes Grinsen

06.12.2004 20:01 sleeepy ist offline E-Mail an sleeepy senden Homepage von sleeepy Beiträge von sleeepy suchen
LX LX ist männlich
El Comandante en Jefe


images/avatars/avatar-2290.gif

Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx

Achtung       Zum Anfang der Seite springen

Zitat:
Original von sleeepy
achso, dann ist es mir auch klar, doch dachte ich, da mit b ja auch als zahl gearbeitet wird, a auch eine zahl zugewiesen wird, dass c auch als zahl gemeint ist und nicht als wahrheiswert.
Viele Programmiersprachen akzeptieren auch Integerwerte bei der Wahrheitsrechnung. Man muss als Programmierer nur wissen, welche Werte als wahr gelten, und welche als falsch. Bei einigen Sprachen ist die 0 beispielsweise falsch, alles andere wahr, andere wiederum weisen nur negativen Zahlen den Wahrheitswert falsch zu, allen anderen (inklusive der 0) wahr.

Zitat:
doch weis ich nicht, wie unter dem überbegriff "listen, sequenzen" der begriff strings zu erkären ist?!
Wie es jetzt bei Python aussieht, weiß ich net, allerdings gibt es Programmiersprachen, in denen Strings eigene Datentypen sind, wohingegen in anderen (C z.B.) Strings nur als Arrays vom Typ char gehandhabt werden, also als Aneinanderreihung von einzelnen Buchstaben/Zeichen.

Wär vielleicht doch ganz praktisch, wenn mal jemand was dazu schreibt, der Ahnung von Python hat *g

__________________
JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard

"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

06.12.2004 20:44 LX ist offline E-Mail an LX senden Homepage von LX Beiträge von LX suchen
grandmaster S grandmaster S ist männlich
Sisyphos


images/avatars/avatar-763.gif

Dabei seit: 16.08.2001
Beiträge: 1.295

      Zum Anfang der Seite springen

die lösung deines lehrers ist schon richtig. solange c gleich null ist wird die schleife ausgeführt. c == 0 gibts bei pyhton übrigens auch.

Tupel unter python:
sequenz von zahlen die mit kommata abgetrennt sind und in runden klammern geschrieben sind. tupelsind listen ähnlich, der unterschied besteht bei den klammern.

strings:
wiederrum liste, deren werte aber nur textzeichen sein können.

mit der funktion len kannst du im ipi mal nach der länge der sequenzen mal ausschau halten. vielleicht hilft dir das ein wenig bei den unterschieden.

__________________
Ich widme meinen Beitrag der (2^30402457)-1, weil sie vor wenigen Wochen als größte Primzahl aus dem Meer der Zahlen auftauchte.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von grandmaster S: 06.12.2004 20:54.

06.12.2004 20:53 grandmaster S ist offline E-Mail an grandmaster S senden Homepage von grandmaster S Beiträge von grandmaster S suchen
sleeepy sleeepy ist männlich
lasst mich arzt...ich bin durch


images/avatars/avatar-2241.jpg

Dabei seit: 15.03.2003
Beiträge: 1.419

Themenstarter Thema begonnen von sleeepy
      Zum Anfang der Seite springen

Zitat:
Wie es jetzt bei Python aussieht, weiß ich net, allerdings gibt es Programmiersprachen, in denen Strings eigene Datentypen sind, wohingegen in anderen (C z.B.) Strings nur als Arrays vom Typ char gehandhabt werden, also als Aneinanderreihung von einzelnen Buchstaben/Zeichen.


1. was bedeutet der typ "char" ?

2. wäre dann ein string nicht das selbe wie ein array (beim beispiel C)? denn ein array sind doch auch zahlen/buchstaben aneinander gereit, genauso wie auch bei einer tupel, nur dass diese nicht veränderbar ist...


Zitat:
Wär vielleicht doch ganz praktisch, wenn mal jemand was dazu schreibt, der Ahnung von Python hat *g


stimmt eigentlich, doch habe ich mittlerweile erfahren müssen, dass python nicht sehr weit verbreitet ist(zumindest bei den leuten die gefragt hab - keiner kann die sprache unglücklich ) und daher bist du mir hier atm die eizige hilfe ^^, weshalb ich mich auch über noch eine antwort von dir freuen würde Augenzwinkern

/edit: merke grad, dass grandmaster s ja auch schon geantwortet hat^^ da war ich wohl zu langsam beim antworten^^

so langsam wird mir das mit c auch klar, danke euch beiden^^

und die begriffe versteh ich nun auch Augenzwinkern

Zitat:
mit der funktion len kannst du im ipi mal nach der länge der sequenzen mal ausschau halten.


was ist das ipi ???

die funktion len kenne ich, was hat die aber hiermit zu tun?!

__________________
mfg sleeepy

meine original DVDs smile

meine Tüten großes Grinsen

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von sleeepy: 06.12.2004 21:00.

06.12.2004 20:56 sleeepy ist offline E-Mail an sleeepy senden Homepage von sleeepy Beiträge von sleeepy suchen
LX LX ist männlich
El Comandante en Jefe


images/avatars/avatar-2290.gif

Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx

Achtung       Zum Anfang der Seite springen

Zitat:
Original von sleeepy
1. was bedeutet der typ "char" ?
Ein Array in C darf ja nur Werte vom selben Datentyp beinhalten, also beispielsweise char (ein Character, also ein beliebiges Zeichen). Genausogut könnte er vom Typ int (Integer, also eine Ganzzahl) oder float (eine Fließkommazahl) etc. sein.

Zitat:
2. wäre dann ein string nicht das selbe wie ein array (beim beispiel C)?
Ja.

__________________
JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard

"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

06.12.2004 21:16 LX ist offline E-Mail an LX senden Homepage von LX Beiträge von LX suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » python quelltext erklärung

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH