Matroids Matheplanet Forum Index
Moderiert von Bilbo matph
Matroids Matheplanet Forum Index » Informatik » Python Grenzproblem
Autor
Schule Python Grenzproblem
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2609
  Themenstart: 2021-06-16

Hallo, ich habe ein kleines Problem: so hab ich das gelöst, ist aber nicht genau, was ich will ... \sourceon Python \numberson def def_odrittel(y): pzinodrittel=[] #print("/",y/3,"//",y//3) for lv in range(y//3,y+1,1): if isprime(lv): pzinodrittel.append(lv) return pzinodrittel \sourceoff Problembeschreibung: In Zeile 4 steht als Obergrenze y+1. Ich möchte aber, dass da steht, lv<=y. Wenn ich das hinschreibe, kommt immer "assignment bevore declaration", und wenn ich der Deklaration wegen, ein lv=0 davorschreibe, bleibt der Container leer. Was kann ich tun?


   Profil
DerEinfaeltige
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.02.2015
Mitteilungen: 3040
  Beitrag No.1, eingetragen 2021-06-16

Ich verstehe dein Problem nicht. range(start,stop,step) generiert ganze Zahlen von (inklusive) start bis (exklusive) stop. range(y//3,y+1,1) generiert also (y//3,y//3+1,y//3+2,...,y-1,y). Details siehe Dokumentation range Dokumentation Deiner Beschreibung nach ist das genau, was du willst. Wenn du kein range nutzen willst, nutze eben while oder schreibe eine eigene Funktion, die genau das tut und genau den Syntax besitzt, den du erwartest.


   Profil
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2609
  Beitrag No.2, vom Themenstarter, eingetragen 2021-06-16

Hallo Einfältiger, selbst sagte ja, dass die Funktion genau tut, was selbst will. Aber selbst will wissen, warum ly<=y nicht funktioniert, bzw, wie man die Grenzbeschreibung gültig schreiben würde unter Benutzung der Zeichen <=? Selbst hat jetzt kein programmiertechnisches, sondern ein Denkproblem.


   Profil
DerEinfaeltige
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.02.2015
Mitteilungen: 3040
  Beitrag No.3, eingetragen 2021-06-16

Weil lv<=y in Python keine Ganzzahl ist und range nunmal ein bis drei Ganzzahlen (start,stop,step) als Parameter erwartet. Eben genau das, was in der Dokumentation als Vertrag angegeben ist.


   Profil
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2609
  Beitrag No.4, vom Themenstarter, eingetragen 2021-06-16

\quoteon(2021-06-16 09:05 - DerEinfaeltige in Beitrag No. 3) Weil lv<=y in Python keine Ganzzahl ist und range nunmal ein bis drei Ganzzahlen (start,stop,step) als Parameter erwartet. Eben genau das, was in der Dokumentation als Vertrag angegeben ist. \quoteoff Danke, dann hat Selbst das wohl von cpp mitgeschleppt... Danke!


   Profil
Folgende Antworten hat der Fragesteller vermutlich noch nicht gesehen.
haegar90
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 18.03.2019
Mitteilungen: 792
Wohnort: Gog
  Beitrag No.5, eingetragen 2021-06-16

Du könntest alternativ primerange verwenden. \sourceon Python def def_odrittel(y): return list(primerange(y//3, y+1)) \sourceoff


   Profil
Bekell wird per Mail über neue Antworten informiert.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2021 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]