Mine værktøjer
Du er her: Forside diverse filer til download mm. tal.py
Handlinger tilknyttet webside

tal.py

af Lars Bauer JørgensenSidst opdateret 16/12 2007 20:57

http://www.eksperten.dk/spm/793624 Oprette numre og udtrække tilfældige deraf. Hej jeg er lidt rusten i php, da det er et stykke tid siden jeg har skrevet noget brugbart. så jeg prøver at søge lidt hjælp her. Jeg vil gerne have en liste (et array) af tal jeg definerer fra og til i inputbokse. Altså hvis jeg vælger 1 og 100 får jeg en kommasepereret liste med tallene fra 1 til 100. Dernæst vil jeg gerne have et inputfelt mere hvor jeg kan trække nogle tal ud af listen ovenfor. Dvs at jeg hart 3 input felter, et til startnr, et til slutnr og et til antal af numre som skal ekskluderes. Hvis jeg igen vælger 1 og 100 og 10 i den sidste - så kommer tallene fra 1 til 100 med 10 tilfældige tal i en anden komasepereret liste som ikke er med i den første... Den sidste ting jeg gerne vil have er at man kan dividere antallet af tal mellem start og slut med et nyt tal man indtaster, og det antal man indtaster er også den mængde af lister tallene bliver skrevet ud i. Håber det er til at forstå hvad jeg skriver og at der er nogen som gider at hjælpe mig.

Klik her for at hente fil

Størrelse: 2.0 kB - Filtype text/python-source

Indhold af fil-indholdsobjekt

#!/usr/bin/env python
import cgi
import cgitb
import random
cgitb.enable()

doc = """Givet mængden M på n - m + 1 elementer <br>
hvor n er højeste tal og m er mindste tal i mængden<br>
Udtræk y tal af M<br>"""

Page = """Content-type: text/html

<html>
<style>
p.err {color: red;}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Se og hent kildekoden <a target="_blank" href="http://www.databassen.dk:8090/bauerdata/python-program-eksempler/tal.py">her</a>
<h2>%(doc)s</h2>
<hr>
<form action="tal.py">
  <label>Mindste tal (m) i mængden</label>
  <input type="number" name="m" value="%(m)s"><br>
  <label>Største tal (n) i mængden</label>
  <input type="number" name="n" value="%(n)s"><br>
  <label>Antal (y) som udtrækkes</label>
  <input type="number" name="y" value="%(y)s"><br>
  <label>Antal elementer pr liste (z) der udskrives</label>
  <input type="number" name="z" value="%(z)s"><br>
  <input type="submit" value="Ryst posen">
</form>
<hr>
M = %(M)s<br>
Left   = %(Left)s<br>
<h3>Chosen</h3>
%(Chosen)s<br>
%(Errors)s
<hr>
<b>Python er nemt, Python er sjovt.</b>
</html>
"""
Defaults = { "m":1, "n":25, "y":10, "z":5,  }
Errors = []

def get_param( form, key ):
    return form.has_key( key ) and int( form[ key ].value ) or Defaults.get( key , -1 )
    
form = cgi.FieldStorage()
m = get_param( form, "m" )
n = get_param( form, "n" )
y = get_param( form, "y" )
z = get_param( form, "z" )
if m > n:
    Errors.append('<p class="err">m er > n!</p>')
if y > n - m + 1:
    Errors.append('<p class="err">Mængden y som udtrækkes er > end den mængden den skal udtækkes fra!</p>')
if z > y:
    Errors.append('<p class="err"><z bør være <= y!</p>')
Errors = "<br>".join( Errors )

M = [ x for x in range( m , n + 1 ) ]
random.shuffle( M )

Chosen = M[:y]
Left   = M[ y: ]
Chosen.sort()
M.sort()
Left.sort()
l=[]
for x in range( 0, y, z ):
    l.append( str( Chosen[ x:x+z ] ) )
    
Chosen = "<br>".join( l )
Left   = str( Left )
M = str( M )
print Page  % vars()
« august 2018 »
søn man tir ons tor fre lør
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Chat Rooms
Dyrk motion

Trim ballerup

 

Powered by Plone, the Open Source Content Management System