Gå til innhold

Forslag til oppgåver til nybyrjar.


Anbefalte innlegg

Du kan jo alltids ta å lage flere fungsjoner om du vil, ellers du kan du prøve noen av disse?

 

1. Lag en "statistikk bilde generator", se på PIL og evt mysqldb.

2. Lag et spørreprogram, hent noen spørsmål fra en fil (evt mysqldb) og spør brukeren om disse. Du kan lage noe statistikk greier til dette programmet også.

3. Lag et pokker, hjerter eller kabalspill, kan lages i console og tegnene for de forskjellige sortene er tilgjengelig.

4. Lag deg en egen RSS leser.

5. Lag 2, bare at du leser data fra brukeren musikk samling om album og utgivelser og gir spørsmål fra det. Du kan jo også prøve å spille av sangene.

 

Noen vanskelige, 2,3 og 4 er vel de enkleste.

Lenke til kommentar
Videoannonse
Annonse

Hint:

import urllib2
f = urllib2.urlopen('http://gamer.no/feeds/general.xml')
print f.read()

 

Legg gjerne denne list til i favoritter:

http://docs.python.org/modindex.html

 

Du finner alt du trenger uten å gjøre det så alt for komplisert i standard samlingen.

 

EDIT: Du må også legge til noe f.eks: <print "Ugyldig valg"> på linje 69 for at dagbok scriptet skal virke.

Endret av hotstian
Lenke til kommentar
  • 2 uker senere...

For personer som er har interesse av mattematikk/logikk/problemløsning så er www.projecteuler.net absolutt å anbefale.

 

Før du spør om oppgaver bør du kanskje også tenke litt over hva du kan gjøre for deg selv. Er det noe drift av dataen din du synes er kjedelig? Lag et program som automatiserer det. Den slags er nyttig av to grunner - Du lærer av det, og du får mer tid til å lære, fordi du slipper å gjøre alt det kjedelige vedlikeholdet selv. :)

Lenke til kommentar
Er det mogleg å gjere ting i operativsystemet, som t.d å slå av det "brukarsikkerhets"-tullet i win vista og å skifte standard nettlesar?

 

Brukersikkerhetsgreiene til Vista kan du nok neppe slå av fra brukerland, med mindre du har access og slike koselige ting. Bruker ikke Vista selv, så det er vanskelig for meg å si.

 

Vet at det finnes en webbrowser modul i standard biblioteket, men vet ikke hvor kraftig den er (Hva den lar deg gjøre mao).

 

Dokumentasjonen for den befinner seg uansett her: http://docs.python.org/lib/module-webbrowser.html.

Lenke til kommentar
4. Lag deg en egen RSS leser.

 

Tenkte jeg skulle prøve meg på den, jeg. :) Veldig fin thread!

 

Har prøvd å lage en, men den funker ikke på gamer.nos, men den funket på http://www.securityfocus.com/rss/news.xml og http://www.jabber.org/news/rss.xml. Tror jeg fikk litt problemer med spesialtegn mm på gamer.no sin.

 

Uansett, noen som kan gi meg kommentarer på programmet mitt?

Klikk for å se/fjerne innholdet nedenfor

   #!/usr/bin/python

from pysqlite2 import dbapi2 as sqlite
import urllib2
import os


connection = sqlite.connect('RSS.db') #Aapner database
cursor = connection.cursor()
print "Koblet til databasen"



def getInfo(RSSadress): #Laster ned xml-filen til PC-en
 try:
	 print "Sletter gammel fil ...",
	 os.remove('buffer')
 except OSError:
	 print "[Feilet]"
 else:
	 print "[Ferdig]"

 print "Laster ned ... ",
 try:
	 f = urllib2.urlopen(RSSadress)
 except:
	 print "[Feil]"
	 return False
 else:
	 print "[Ferdig]"

 s = file('buffer', 'w')
 s.write(f.read())
 s.close()


def updateDB(): #Henter data fra xml-filen og legger i databasen
 try:
	 print "Sletter gammel database.", #Prover aa slette gammel tabell fra databasen
	 cursor.execute('DROP TABLE rss')
 except:
	 print "[Feilet]"
 else:
	 print "[Ferdig]"

 cursor.execute('CREATE TABLE rss (id INTEGER PRIMARY KEY, title VARCHAR(100), link VARCHAR(100), description VARCHAR(100))') #Oppretter den nye tabellen

 s = file('buffer')
 gotTitle = False
 gotLink = False
 gotDescription = False

 while True:
	 line = s.readline()
	 if len(line) == 0:
		 break

	 if line.find('<title>') != -1:
		 gotTitle = True
		 line = line.replace('<title>', '')
		 line = line.replace('</title>', '')
		 title = '"' + line + '"'
	 elif line.find('<link>') != -1:
		 gotLink = True
		 line = line.replace('<link>', '')
		 line = line.replace('</link>', '')
		 line = line.replace('\n', '')
		 link = '"' + line + '"'
	 elif line.find('<description>') != -1:
		 gotDescription = True
		 line = line.replace('<description>', '')
		 line = line.replace('</description>', '')
		 description = '"' + line + '"'

	 if gotTitle == True and gotLink == True and gotDescription == True:
		 cursor.execute('INSERT INTO rss VALUES (null, %s, %s, %s)' % (title, link, description))
		 connection.commit()
		 gotLine = False
		 gotLink = False
		 gotDescription = False
 s.close()
 print "Databasen er oppdatert"



def printDB(): #Skriver ut fra databasen
 try:
	 print "Aapner databasen ... ",
	 cursor.execute('SELECT * FROM rss')
 except:
	 print "[Feilet]"
 else:
	 print "[Ferdig]"

 for row in cursor:
	 print "============================================="
	 print row[1]
	 print "(", row[2], ")"
	 print row[3]
 print "============================================="


igjen = True

print "\tPRRS"

while igjen:
 print "-------------------------"
 print "\tMenu:"
 print "1 - Last ned og oppdater"
 print "2 - Skriv ut"
 print "3 - Avslutt"

 valg = raw_input('>>> ')

 if valg == "3":
	 igjen = False
 elif valg == "1":
	 print '''\
Skriv inn adresse til .xml-feed.
La staa tomt for jabber.org sin feed.'''
	 RSSadresse = raw_input(">>> ")
	 if RSSadresse == "":
		 RSSadresse = "http://www.jabber.org/news/rss.xml"
	 stop = getInfo(RSSadresse)
	 if stop != False:
		 updateDB()
 elif valg == "2":
	 printDB()

connection.commit()
cursor.close()
connection.close()

 

Bare å spørre dersom det er noe i rotet som virker rart eller dere lurer på noe. :p

Lenke til kommentar

Ser flott ut det der, Backslash!

 

Eg lærer mykje av det scriptet, mtp. parsing og databaser.

 

Men, for å køyre det, må eg opprette ein fil med namnet RSS.db i mappa programmet ligg?

 

EDIT: FOrresten, backslash, kvifor slettar du buffer og så skriv du i staden for å berre skrive over?

Endret av Arne
Lenke til kommentar

Hehe, takk takk. :)

 

Nei, du maa ikke lage RSS.db, den blir laget automatisk dersom den mangler.

 

Har ingen god grunn til hvorfor jeg sletter filen foerst. Har egentlig aldri lagret til fil foer, saa jeg viste ikke helt om den bare la til eller skrev over. :)

 

Har fikset htmldecoding, men ikke det med cdata, etter aa ha lest artikkelen paa wikipedia om det, saa har jeg enda ikke forstaatt helt hva det gjoer. :p

 

Tror jeg sier meg ferdig med den for naa, ogsaa proever meg paa en av de andre oppgavene. :)

Lenke til kommentar
Har fikset htmldecoding, men ikke det med cdata, etter aa ha lest artikkelen paa wikipedia om det, saa har jeg enda ikke forstaatt helt hva det gjoer. :p

CDATA er egentlig veldig lett. Som du har sett, så måtte du decode alle entiter (&gt osv) tilbake til sin opprinnelige character. En CDATA-blokk sier bare at det inni skal tolkes som characters, altså slik at > ikke må encodes til &gt osv.

 

Det er ganske vanlig å bruke i blant anned rss-feeds for å slippe å encode html'en i description-elementet.

 

Tror jeg sier meg ferdig med den for naa, ogsaa proever meg paa en av de andre oppgavene. :)

Eller du kan fikse den slik at den bruker en eller annen xml-parser som allerede følger med python, så slipper du å tenke på well-formed, entities, cdata osv :) For noe så enkelt og lite som dette kan du trygt bruke xml.dom.minidom.

Endret av steingrim
Lenke til kommentar
For personer som er har interesse av mattematikk/logikk/problemløsning så er www.projecteuler.net absolutt å anbefale.

 

Før du spør om oppgaver bør du kanskje også tenke litt over hva du kan gjøre for deg selv. Er det noe drift av dataen din du synes er kjedelig? Lag et program som automatiserer det. Den slags er nyttig av to grunner - Du lærer av det, og du får mer tid til å lære, fordi du slipper å gjøre alt det kjedelige vedlikeholdet selv. :)

 

Kjempebra side! Har loest 6 oppgaver der naa, men jeg greier ikke helt og overholde den delen med maks 1 min paa alle. :p Men tror egentlig det er matten min som holder meg mest tilbake... Holder paa med oppgave 7 naa, men siden ikke jeg vet noe bedre saa beregner jeg alle primtall opp til det 10001. Tar tid. xD

Lenke til kommentar

Vel om du irriterer deg gul og blå tilslutt så:

 

Mattematisk hint:

 

 

Husk at halvparten av tallene er delbare på 2. Du trenger derfor bare å sjekke halvparten av tallene.

 

 

For å finne primtallene tar du annenhvert tall og skjekker om det er delbart på alle primtallene som er før dette tallet. Du kan også bruke "%" til det, hvis det returneres negativt så er det primtall.

 

Eks:

Er 17 et primtall?

 

17 % 3 = 2

17 % 5 = 2

17 % 7 = 3

17 % 11 = 6

17 % 13 = 4

 

Det er et primtall.

 

 

 

Test kode:

 

 

import time
primeList = []
primes = 1
num = 3
now = time.time()
while primes < 10001:

isPrime = 1
for test in primeList:
	if not num % test:
		isPrime = 0
		break # Not a prime
if isPrime:
	primeList.append(num)
	primes += 1
num += 2

primeList.insert(0, 2)
print str(primeList)
print "\n Took: %s" % (time.time()-now)

 

 

Kunne ikke dy meg :p

Endret av hotstian
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...