» »

python pomoč

python pomoč

studentka ::

Oj!

Jst bi prosila za pomoč pri sestavljanju funkcije v pythonu:
Funkcija omogoča izračun vsote za števila od a do vključno b; a in b sta podana kot vhodna parametra.

Prosim za pomoč. Hvala!

Lp
  • zaklenil: Mavrik ()

commissar ::

pomoč kot link do začetniških tutorialov ali pomoč kot celotno rašitev problema?

studentka ::

Prosim za pomoč kot celotno rešitev problema. 90% naloge mam narejene, s to funkcijo pa se že dva dneva matram in mi nikakor ne uspe tega narest.

Prosim.

Lp

morbo ::

Če imaš že 90% potem ne bo tako težko. Poglej si funkcijo range()

studentka ::

Sj mam v funkciji for zanko pa range() in sm to obrnila že 100x okrog in okrog pa mi ne dela. Ne znam nastavt funkcije pa povezat z glavnim programom, kjer bi lahko podala a in b kot vhodna parametra. Delam to že dva dni in mi počasi zmanjkuje idej, kako to skupi dat. Pa še zjutraj moram oddat, zato prosim za pomoč.

Lp

commissar ::

na pamet napisano tako da se verjetno ne bo takoj compilalo:

def vsota(a,b):
..ret = 0
..for i in range(a,b+1):
.....ret = ret + i
..return ret

Namesto pik daj presledke

Zgodovina sprememb…

studentka ::

Ful ti hvala za pomoč. Mi je končno delalo pol.

Lp

jype ::

Morda bo še lažje takole:

print sum(range(a, b+1))

Neumann ::

Sposodil si bom temo, za pomoč pri enem problemu.
Zanima me, kako bi, oziroma če se da, da bi v pythonu napisal program, ki bi vse ki so "tegani", na neki facebook sliki, zapisal v excel datoteko?

Program bi vprašal po url-ju slike in avtomatsko vse tegane zapisal v excel datoteko?
Če bi imel mogoče kdo kakšne napotke, kako se to lotit, ali pa vsaj link do kakšne strani s katero si lahko pomagam? Zdaj vem kako prebrati podatke iz strani urllib, samo kako zajeti imena in priimke oseb in jih zapisati v nek excel pa nimam pojma kako bi to rešil?

Spura ::

Nek HTML parser (v javi so taki naprimer Tagsoup in Beautiful soup), poisces div ki ima imena notri in jih vn poberes.
Pol rabis se neki excel lib (ali pa kar CSV file naredis).

edit: ubistvu v htmlju isces SPAN elemente ki imajo class "fbPhotoTagListTag tagItem"

Zgodovina sprememb…

  • spremenil: Spura ()

OrkAA ::

To je sicer delujoca metoda a po mojem mnenju precej overkill. Sem preprican, da obstaja kaksen python facebook api, ki ti take podatke vrne le z nekaj klici. Vsekakor najprej glej v tej smeri preden odkrivas toplo vodo.

Neumann ::

Zdajle ko sem gledal izvorno kodo, mogoče res ne bi bilo slabo, pač razčlenit po TagListTag tagItem, in pač te elemente pisati v excel? Gre se mi zato, da sam napišem kodo :) je pa res, da nevem točno kako misliš da bi izgledal ta python facebook api? da je že funkcija napisana?

Zgodovina sprememb…

  • spremenilo: Neumann ()

jype ::

BeautifulSoup, lxml.html

Neumann> da je že funkcija napisana?

Zagotovo je to že kdo potreboval, morda pa tudi objavil. Malo išči, preden sam pišeš.

Neumann ::

Hvala. Moram malo preštudirati tale BeautifulSoup, pa upam da mi nekaj rata. Ubistvu to kako mu povedati kaj točno naj mi vzame in zapiše v excel.

Zgodovina sprememb…

  • spremenilo: Neumann ()

OrkAA ::

Neumann:

https://developers.facebook.com/docs/re...

Tukaj je facebook api dokumentacija, kjer morda najdes metodo, ki jo potrebujes. Potem pa stvari lahko sprogramiras direktno ali pa poisces kaksen python vmesnik za klicanje facebook apija, ki ti bo se olajsal delo.

Primer: https://github.com/sciyoshi/pyfacebook/

Neumann ::

Ubsitvu bi rad naredil, da bi uporabnik v program prilimal link od slike, potem pa bi mu tegane osebe izpisalo v excel datoteko.

Tukaj sem najdu za FQL:http://developers.facebook.com/docs/ref...

v šoli smo delali vedno tako. Peš na roke, izvorna koda, si pogledal kaj se naprimer pri imenu, kjer je nekdo tegan vedno pojavi: v tem primeru TagList... potem si vse te elemente shranil v seznam,....idt. itd. :)

Neumann ::

Mi lahko samo še nekdo razloži, v čem je prednost uporabe HTML parserjev oz. slabost in kakšna, če sploh kakšna prednost uporabe regularnih izrazov? Pač da sam z regularnimi izrazi "izluščiš" željene podatke?

jype ::



(Ta te požre, če HTML parsaš z regexi. Ne, ne hecam se.)

Zgodovina sprememb…

  • spremenilo: jype ()

genesiss ::

Neumann ::

:)

Spura ::

Kadar iscem tocno dolocen tag, ki ima malo ali nic podtagov (in podtage drugih tipov kot je tag sam) uporabljam regexe. Drugace pac ne.

Neumann ::

Imam še eno vprašanje glede programiranja v pythonu in sicer me zanima,
kako brati stran, kjer potrebuješ uporabniško ime in geslo?

Tole sem napisal, naj bi bilo pravilno, pa očitno ni, saj mi v datoteko txt, zapiše samo vir strani, če nimaš dostopa do strani.

url = "http://www.facebook.com/..................../"
facebook = urllib.request.build_opener(urllib.request.HTTPCookieProcessor())
facebook.open('http://www.facebook.com/login.php', b'username= neko_uporabnisko_ime&password=geslo')
webpage = urllib.request.urlopen(url)

tekst = webpage.read()


ampak mi nikakor noče odpreti, vedno mi v datoteko, kamor bi mi moglo vpisati celotni vir strani, izpiše vir tiste strani (Nimate dovoljenja za ogled strani ali pa je stran potekla).

V uporabniškem imenu imam @, ki sem jo probal napisati - ni delalo, in potem zamenjati z %40, znakom za @ - ni delalo.

Uporabljam python 3.2, če to kaj pomeni? Upam, da mi bo kdo znal pomagati.

Neumann ::

Tudi če probam kakšno drugo stran, recimo gmail, mi v txt datoteko zapiše vir/podatke prve strani, to je www.gmail.com/login , geslo in u.i. sta 100% pravilna. Nevem zakaj mi noče priti notr v račun.


Ni mi ratalo, slučajno sem dodal stran, ki je dostopna brez gesla in passworda, pa sem mislil, da se mi je lepo vpisal. No ni se mi, tako da če bo imel kdo kakšno idejo bi bilo super.

Zgodovina sprememb…

  • spremenilo: Neumann ()

Neumann ::

Tudi če probam kakšno drugo stran, recimo gmail, mi v txt datoteko zapiše vir/podatke prve strani, to je www.gmail.com/login , geslo in u.i. sta 100% pravilna. Nevem zakaj mi noče priti notr v račun.


Ni mi ratalo, slučajno sem dodal stran, ki je dostopna brez gesla in passworda, pa sem mislil, da se mi je lepo vpisal. No ni se mi, tako da če bo imel kdo kakšno idejo bi bilo super.

dasf ::

Z wiresharkom preveri če je kakšna razlika med zahtevama, ki jih pošljeta Python in brskalnik. Lahko da stran preverja tudi referal ali user agent headerje.

Da bo ta zahteva sploh pravilno oblikovana si oglej izvorno kodo strani, možno je da kakšen javascript kaj izvaja s spremenljivkami. Javascript se v Pythonu seveda ne izvaja.

Za bolj popularne storitve (facebook,gmail...) so na voljo tudi kakšne python kjižnjice.

http://libgmail.sourceforge.net/

Zgodovina sprememb…

  • spremenil: dasf ()

Neumann ::

Ja zdej mam največji problem ubistvu ta, da nevem točno kako prevesti stran v bytes in potem nazaj v string.

import urllib.request, urllib.error, re
import lib2to3
import urllib

def Matching(pat, text):
    match = re.search(pat,text)
    if match:
        print (match.group())
    else:
        print ("Matching not successful!")

def Searching(pat, text):
    find_all = re.findall(pat, text)
    if find_all:
        print (find_all)
    else:
        print("Searching not successful!")

url = input("Insert url:")

facebook = urllib.request.build_opener(urllib.request.HTTPCookieProcessor())

facebook.open('http://www.facebook.com/login.php', b'username=user%40gmail.com&password=pass')#tu moram dati spredaj pred 'username b.
facebook = urllib.request.urlopen(url)


text = facebook.read()

full_page = open("full_page.txt", "w") #tu bi lahko napisal "wb", pa bi bilo bytes ampak me potem ko delam z regularnimi izrazi zafrkava

full_page.write(text) #tu dobim potem error TypeError: must be str, not bytes

full_page.close()


Če bo mogoče lahko kdo preko kode pogledal kje se motim oziroma kaj naj naredim.

Unicode in encode sem nekaj probaval pa mi ne rata. res ne vem, upam da bo kdo imel kakšno idejo.

// Tagi za kodo na Slo-Techu so "st.koda python" namesto "code" :) -- moderator

Zgodovina sprememb…

  • spremenil: Mavrik ()

Neumann ::

Najdu sem delno rešitev in sicer je treba dodati tapravi encode, v mojem primeru:

text = str(preberi, encoding='cp1250') takole.

moral sem pretvoriti v srt, (text), zraven pa pač probati kaj bo delalo:

1.) utf-8
2.) ascii
3.) cp-1250
4.) latin-1

se je pa pojavil nov problem, dela že, toda ni šumnikov, saj jih cp-1250 nima.

Spura ::

Cp 1250 ima sumnike.

Neumann ::

ja potem ko iščem z re.findall neko ime, ki ima šumnik notri naprimer Špela mi ne najde v datoteki.

Za špela recimo dobim tole: Ĺ\xa0peLa'

Zgodovina sprememb…

  • spremenilo: Neumann ()

Neumann ::

Sedaj mi je uspelo priti tudi do šumnikov..in sicer z utf-8.

text = str(preberi, encoding='utf-8')
full_page = codecs.open("full_page.txt", "w", 'utf-8')
 


Takole izgleda celotna koda, sedaj pa mi delajo tudi šumniki.

Spura ::

Ce imas tekst v utf 8 potem seveda ne bos dobil sumnikov ce ga dekodiras v napacen charset. Utf8 ima drugje sumnike kot ANSI.

Neumann ::

Imam novo vprašanje.. :)
Uporabljam python 3.2, ki naj nebi imel modulov za ustvarjanje, pisanje in branje za excel. Zato sem uporabil modul csv.

Tu pa nastane problem, lepo izpišem vse besede v celice v csv-ju ampak mi v vsaki celici, besedo razdeli z vejico, vsako črko posebej.

Recimo:

če dodam v prvo celico besedo avto, mi jo zapiše kot: a,v,t,o, presledke pa z dvema vejicama ,, .
Če uporabim delimiter=":", mi potem namesto vejic da dvopičje (:), sem tudi poskusil, da v delimiter ne bi dal ničesat pa ne gre. delimiter="" - to ne deluje, mi napiše da mora biti delimiter SET.

Samo še teh vejic se znebim in sem zmagal. Upam da ima kdo kakšno idejo. LP

miha90 ::

želim sešteti argumenta/seznama v funkciji def plus(i,j), kjer je len(j) < len(i) tako da mi ne sesteje vseh. Kako bi torej napisal to funkcijo da sta 3 in 4 element "navidezni" 0?
i=[1,2,3,5]
j=[2,3]
torej: [1,2,3,5]+[2,3,0,0] = [3,5,3,5]

keton ::

def sestej(a, b):
	if len(a) < len(b):
		for i in range(0, len(a)):
			b[i] += a[i]
		return b
	for i in range(0, len(b)):
		a[i] += b[i]
	return a

FrEaKmAn ::

def sum(a, b):
    b.extend([0]*(len(a)-len(b)))
    return [a[i] + b[i] for i in range(len(a))]


samo pač ne upošteva tega če je j > i ...

Zgodovina sprememb…

  • spremenil: FrEaKmAn ()

miha90 ::

okej še ena hitra pomoč če lahko. imam seznam s podseznami(ki so vektorji). moja funkcija evklid(vektor1, vektor2) izračuna evklidsko razdaljo, vendar pa ne vem kako bi napisal da izračuna vsoto razdalj podseznama z ostalimi podseznami v seznamu.
izmišljen primer:
vsota razdalj 1. podseznama z 2.,3. in 4.
vsota razdalj 2. -||- z 1.,3. in 4.
...
vsota razdalj 4. -||- z 1.,2. in 3.

for i in seznam:
    vsota+=evklid(i,???)


tu kjer je ??? nevem kaj bi napisal da razbere "ostali podseznami"

Meizu ::

Če vstaviš samo eno for zanko, potem ne moreš klicati funkcije z dvemi argumenti, saj ti tale for zanka čekira samo en podseznam, rabiš pa vsaj dva.

Za začetek poskusi takole:

for i in seznam:
     for j in seznam:
          print(evklid(i,j))


Lahko pa poskusiš tudi takole:

from itertools import combinations

for i in combinations(seznam,2):
     print(evklid(i[0],i[1])


V obojem dobiš ven izračunane vse evklidske razdalje med podseznami, vprašanje je le, kaj rabiš.

Edit: Typo

Zgodovina sprememb…

  • spremenil: Meizu ()

Meizu ::

Neumann je izjavil:

Imam novo vprašanje.. :)
Uporabljam python 3.2, ki naj nebi imel modulov za ustvarjanje, pisanje in branje za excel. Zato sem uporabil modul csv.

Tu pa nastane problem, lepo izpišem vse besede v celice v csv-ju ampak mi v vsaki celici, besedo razdeli z vejico, vsako črko posebej.

Recimo:

če dodam v prvo celico besedo avto, mi jo zapiše kot: a,v,t,o, presledke pa z dvema vejicama ,, .
Če uporabim delimiter=":", mi potem namesto vejic da dvopičje (:), sem tudi poskusil, da v delimiter ne bi dal ničesat pa ne gre. delimiter="" - to ne deluje, mi napiše da mora biti delimiter SET.

Samo še teh vejic se znebim in sem zmagal. Upam da ima kdo kakšno idejo. LP


Kaj pa če poskusiš metodo strip(",")?

schwinchn ::

Res se je kul učit programirat oz. DN reševat, če ti drugi govorijo. Good luck old duck ;)

Mavrik ::

Glede na to, da je problem bil rešen in v izogib oblikovanju še ene "vse za vse" python teme bom tole zaklenil. Za nove probleme odprite temo samo za tisti problem prosim :)
The truth is rarely pure and never simple.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10317168 (7916) black ice
»

[Python] Domači nalogi

Oddelek: Programiranje
332857 (1747) ragezor
»

Preizkusi znanja na razgovorih za službo

Oddelek: Programiranje
112572 (2300) PNG
»

Python, prosim za pomoc pri programiranju (strani: 1 2 3 )

Oddelek: Programiranje
10413268 (9370) lenika
»

[C#] Prosim pomagajte! Potrebujem program, ki bi pobiral podatke iz ene strani

Oddelek: Programiranje
212579 (2189) David1994

Več podobnih tem