|
|
|
|
python quelltext erklärung |
sleeepy
lasst mich arzt...ich bin durch
Dabei seit: 15.03.2003
Beiträge: 1.419
|
|
python quelltext erklärung |
|
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
meine Tüten
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von sleeepy: 06.12.2004 19:23.
|
|
06.12.2004 19:23 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
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 |
|
|
sleeepy
lasst mich arzt...ich bin durch
Dabei seit: 15.03.2003
Beiträge: 1.419
Themenstarter
|
|
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
meine Tüten
|
|
06.12.2004 20:01 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
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 |
|
|
sleeepy
lasst mich arzt...ich bin durch
Dabei seit: 15.03.2003
Beiträge: 1.419
Themenstarter
|
|
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
) und daher bist du mir hier atm die eizige hilfe ^^, weshalb ich mich auch über noch eine antwort von dir freuen würde
/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
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
meine Tüten
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von sleeepy: 06.12.2004 21:00.
|
|
06.12.2004 20:56 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
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 |
|
|
|
|
|
|