Matroids Matheplanet Forum Index
Moderiert von Bilbo matph
Matroids Matheplanet Forum Index » Informatik » Python Grenzproblem
Druckversion
Druckversion
Antworten
Antworten
Autor
Schule Python Grenzproblem
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2428
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2021-06-16


Hallo,
ich habe ein kleines Problem:

so hab ich das gelöst, ist aber nicht genau, was ich will ...
Python
  1. def def_odrittel(y):
  2. pzinodrittel=[]
  3. #print("/",y/3,"//",y//3)
  4. for lv in range(y//3,y+1,1):
  5. if isprime(lv):
  6. pzinodrittel.append(lv)
  7. return pzinodrittel
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?


-----------------
Das Schwierige ist nicht die Mathematik. Schwierig ist es zu formulieren, daß man selber versteht, was man sieht und die anderen auch!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
DerEinfaeltige
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.02.2015
Mitteilungen: 2912
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  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.


-----------------
Why waste time learning when ignorance is instantaneous?
- Bill Watterson -



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2428
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  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.



-----------------
Das Schwierige ist nicht die Mathematik. Schwierig ist es zu formulieren, daß man selber versteht, was man sieht und die anderen auch!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
DerEinfaeltige
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.02.2015
Mitteilungen: 2912
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  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.


-----------------
Why waste time learning when ignorance is instantaneous?
- Bill Watterson -



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2428
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, vom Themenstarter, eingetragen 2021-06-16


2021-06-16 09:05 - DerEinfaeltige in Beitrag No. 3 schreibt:
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.
Danke, dann hat Selbst das wohl von cpp mitgeschleppt... Danke!


-----------------
Das Schwierige ist nicht die Mathematik. Schwierig ist es zu formulieren, daß man selber versteht, was man sieht und die anderen auch!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Folgende Antworten hat der Fragesteller vermutlich noch nicht gesehen.
haegar90
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 18.03.2019
Mitteilungen: 667
Wohnort: Gog
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, eingetragen 2021-06-16


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



-----------------
Gruß haegar



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell wird per Mail über neue Antworten informiert.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


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]