» »

python-rabim pomoč

python-rabim pomoč

Anastasia ::

potrebujem pomoč pri sestavi programčka...in sicer kreiranje objekta, prikaz kot niz..ipd. če kdo obvlada in bi mi bil pripravljen pomagat lahko povem kaj me muči malo bolj podrobno0:)
pythona uporabljamo na faksu in mam probleme z domačo nalogo:D

Gandalfar ::

pokazi kar imas do sedaj

Anastasia ::

nekako mi je ratal neki spisat...čeprav programa ne zažene (nevem zakaj:P ), ampak sem že odposlala, tko da bomo vidli kaj bo. drugač pa hvala vseeno, se priporočem za še kdaj0:)

Anastasia ::

zopet rabim pomoč pri pisanju programa, če kdo obvlada in je pripravljen pomagat mu lahko pošljem navodila.. meni ni nič jasno, program pa potrebujem za izdelavo naloge, ki prispeva dotatne točke pri končni oceni predmeta Programiranje. Help0:)

jype ::

Napiši več o tem. Napiši nalogo sem.

Anastasia ::

Radi bi generirali 100 sluˇcajnih realnih ˇstevil v intervalu [0, 100) (ˇstevila
iz enakomerne porazdelitve) in jih izpisali v neko .txt datoteko. Iz datoteke
jih potem preberemo in izraˇcunamo ˇstevilo ˇstevil, ki leˇzijo znotraj enega
standardnega odklona odmika od povpreˇcja teh ˇstevil.
Da implementirate zgornji problem, napiˇsite naslednje funkcije (ˇce ˇzelite,
lahko problem razbijete ˇse na veˇc funkcij!):

1. generiranje stevil — funkcija naj generira 100 sluˇcajnih realnih ˇstevil
v intervalu [0, 100) (enakomerna porazdelitev) in jih izpiˇse na zunanjo
tekstovno datoteko (na 2 decimalki natanˇcno). Loˇcilo med ˇstevili v datoteki
si izberite sami. Ime datoteke podate kot vhodni argument. Funkcija
ne vrne niˇcesar.

2. preberi dat—funkcija prebere ˇstevila iz datoteke, katere ime je podano
kot vhodni argument, jih pretvori iz stringov v ˇstevila in jih vrne zapisane
v seznam

3. povprecje — funkcija izraˇcuna in vrne povpreˇcje ˇstevil v seznamu, ki
je podan kot vhodni argument

4. std odklon — funkcija izraˇcuna in vrne standardni odklon ˇstevil v seznamu,
ki je podan kot vhodni argument (enaˇcbo za izraˇcun najdete tudi
v prosojnicah ”Funkcije, moduli”)

5. st v intervalu — funkcija izraˇcuna in vrne ˇstevilo ˇstevil v seznamu
(vhodni argument), ki leˇzijo v mejah, ki sta podani kot vhodna argumenta.
Primer:
seznam = [1,2,3,4,5]
sp_meja = 2
zg_meja = 3
st_stevil = st_v_intervalu(seznam, sp_meja, zg_meja)
# st_stevil dobi vrednost 2

6. glavna funkcija — funkcija je v bistvu glavni program in se naj pokliˇce
v primeru, ˇce poganjamo modul sam zase. Funkcija kliˇce vse funkcije, ki
ste jih napisali zgoraj v logiˇcno pravilnem zaporedju tako, da na koncu
izraˇcuna in izpiˇse ˇstevilo sluˇcajno generiranih realniˇh ˇstevil, ki leˇzijo v
intervalu povpreˇcje ± 1 standardni odklon teh ˇstevil. Primer:

glavna_funkcija()
Stevilo slucajnih stevil, ki so zapisana v datoteki realna.txt
v enem standardnem odklonu od povprecja je: 53.

no, to je to..js res nevem kako bi se tega lotla..:\

Loki ::

kateri faks to, ce smem vprasati? FMF?
I left my wallet in El Segundo

Anastasia ::

FDV....hja, sej vem, res ne vem kaj mi je blo, da sem si programiranje zbrala kot izbirni predmet..
je komu kaj jasno, kaj je treba narest?

jype ::

To je čist lahko :)

Mal statistike, mal pythona...

Programiranje v Pythonu je pravi užitek. Tipkarske napake so možne.

1. generiranje stevil — funkcija naj generira 100 sluˇcajnih realnih ˇstevil
v intervalu [0, 100) (enakomerna porazdelitev) in jih izpiˇse na zunanjo
tekstovno datoteko (na 2 decimalki natanˇcno). Loˇcilo med ˇstevili v datoteki
si izberite sami. Ime datoteke podate kot vhodni argument. Funkcija
ne vrne niˇcesar.


def generiranje_stevil(ime_datoteke):
  from random import random
  f = file(ime_datoteke, 'w') # odpri datoteko
  for i in range(100): # stokrat zapisi stevilo v datoteko
    f.write('%.2f\n' % (random() * 100)) # random vrne float na intervalu [0, 1)
  f.close() # zapri datoteko


2. preberi dat—funkcija prebere ˇstevila iz datoteke, katere ime je podano
kot vhodni argument, jih pretvori iz stringov v ˇstevila in jih vrne zapisane
v seznam


def preberi_dat(ime_datoteke):
  stevila = []
  for line in file(ime_datoteke, 'r'): # vsako vrstico
    stevila.append(float(line.strip())) # pretvorjeno v stevilo zapisi v seznam
  return stevila # in vrni seznam


3. povprecje — funkcija izraˇcuna in vrne povpreˇcje ˇstevil v seznamu, ki
je podan kot vhodni argument


def povprecje(seznam):
  return sum(seznam)/float(len(seznam))


4. std odklon — funkcija izraˇcuna in vrne standardni odklon ˇstevil v seznamu,
ki je podan kot vhodni argument (enaˇcbo za izraˇcun najdete tudi
v prosojnicah ”Funkcije, moduli”)


Nimam formule :)

def std_odklon(seznam):
  from math import sqrt
  p = povprecje(seznam) # ce bi to zbasal v formulo, bi se povprecje za brezveze racunalo veckrat
  # std. dev. je kvadratni koren variance
  # varianca je pa vsota kvadratov razlik vsakega elementa in povrecne vrednosti seznama deljena z dolzino seznama
  return sqrt(sum([(x-p)**2 for x in seznam])/float(len(seznam)))


5. st v intervalu — funkcija izraˇcuna in vrne ˇstevilo ˇstevil v seznamu
(vhodni argument), ki leˇzijo v mejah, ki sta podani kot vhodna argumenta.


def st_v_intervalu(seznam, min, max):
  seznam.sort()
  stevec = 1
  for x in seznam:
    if x < min: continue
    if x <= max and x >= min: stevec += 1
    if x > max: break
  return stevec


6. glavna funkcija — funkcija je v bistvu glavni program in se naj pokliˇce
v primeru, ˇce poganjamo modul sam zase. Funkcija kliˇce vse funkcije, ki
ste jih napisali zgoraj v logiˇcno pravilnem zaporedju tako, da na koncu
izraˇcuna in izpiˇse ˇstevilo sluˇcajno generiranih realniˇh ˇstevil, ki leˇzijo v
intervalu povpreˇcje &plusmn; 1 standardni odklon teh ˇstevil. Primer:

glavna_funkcija()
Stevilo slucajnih stevil, ki so zapisana v datoteki realna.txt
v enem standardnem odklonu od povprecja je: 53.


def glavna_funkcija():
  ime_datoteke = 'stevila.txt'
  generiranje_stevil(ime_datoteke)
  stevila = preberi_dat(ime_datoteke)
  povprecje_stevil = povprecje(stevila)
  std_odklon_stevil = std_odklon(stevila)
  print 'Stevilo slucajnih stevil, ki so zapisana v datoteki', ime_datoteke
  print 'v enem standardnem odklonu od povprecja je:',
  print st_v_intervalu(stevila, povprecje_stevil - std_odklon_stevil, povprecje_stevil + std_odklon_stevil)

if __name__ == '__main__': glavna_funkcija()


Da se bomo prepričali, da program razumeš, sem v kodo vnesel eno zahrbtno napako, ki jo moraš sama popraviti. Trpim za redko obliko akademske zlobe.

Zgodovina sprememb…

  • spremenilo: jype ()

Quikee ::

A ni lepše random.uniform(0, 100) kot pa random() *100? ;)

jype ::

Quikee> A ni lepše random.uniform(0, 100) kot pa random() *100? ;)

Zagotovo, ampak psevdo-naključne vrednosti tako redko uporabljam, da že dolgo nisem prebral pydoc random :)

Anastasia ::

joj, kaj naj rečem..zelo sem vesela, predvsem pa zelo navdušena, da so na tem svetu še dobri ljudje..bom poiskala napako (no, se jo bom na vso moč potrudila poiskat:)
res hvala:)

jype ::

No, kje je zdaj rešitev brez napake? :)

Nely ::

hey!
tudi jaz sem ena izmed amaterjev, kar se tice pythona in me zanima, a bi mi lahko kdo razlozu prosm navodila naslednje naloge, ker se mi v bistvu sploh ne sanja kako zacet, pa sm vidla d ste tuki gor tko prjazni računalničarji, k tale python ful obvladajo:)
Evo tuki je naloga, pa prosm ce mi kdo lahko prosm pomagu:
Napisite program za upravljanje z bazo izdelkov (baza zaloge izdelkov).
Program naj:
• vprasa za ime datoteke, kjer je baza shranjena (torej pot (njeno mesto)
na disku) oziroma kamor naj shranjuje bazo. Ce datoteka obstaja, naj
jo odpre in prebere bazo (slovar), drugace pa naj to ulovi z izjemo in
kreira novo bazo kot slovar.
• Baza (v obliki slovarja) naj bo narejena tako, da bo ime izdelka kljuc,
vsak izdelek naj bo objekt tipa Izdelek z naslednjimi lastnostmi:
– polja: ime, numericna koda, cena, zaloga
– metoda: vrednost (kar je cena × zaloga)
• Nato naj se (do vpisa opcije za izhod) omogoci:
1. izpis baze
2. dodajanje novih izdelkov (ce cena ni realno in kolicina ne celo
stevilo, naj se to ulovi z izjemo in vnos ponovi) — po dodanem
izdelku se cel slovar zapise v datoteko
3. brisanje izdelkov (v kolikor izdelek ne obstaja, naj se to ujame z
izjemo) — po izbrisanem izdelku se cel slovar zapise v datoteko
4. spreminjanje kolicine za posamezen izdelek na zalogi — po spremembi
se cel slovar zapise v datoteko
5. spreminjanje cene za posamezen izdelek — po spremembi se cel
slovar zapise v datoteko
6. spreminjanje cene za posamezen izdelek
7. izracun vrednosti vseh izdelkov na zalogi
8. izracun stevila vseh izdelkov na zalogi (stevilo enot posameznega
izdelka je zapisano v polju zaloga)
9. izhod
Skratka ne wem niti kako zacet...prosm cee bi se najdu ksn racunalnicar k bi mi znal tole lepo razlozit:)

Quikee ::

#!/usr/bin/env python

import pickle

class Product(object):
	def __init__(self, name, code, price, stock):
		self.name = name
		self.code = code
		self.price = price
		self.stock = stock
	
	def value(self):
		return self.price*self.stock

class ProductDatabase(object):
	def __init__(self, filename):
		self.filename = filename
		self.database = {}
		
		try:
			self.open()
		except IOError:
			self.save()	
	
	def open(self):
		file = open(self.filename, "rb")
		self.database = pickle.load(file)
		file.close()
	
	def save(self):
		file = open(self.filename, "wb")
		pickle.dump(self.database, file)
		file.close()

	def printDB(self):
		for productName, product in self.database.iteritems():
			print "Product: %s(%s) - Price %.2f Stock %d Value %.2f" % \
				(product.name, product.code, product.price, product.stock, product.value())

	def addProduct(self):
		print "Input product name"
		productName = raw_input()
		
		print "Input product code"
		productCode = raw_input()
	
		productPrice = self.inputProductPrice()
		productStock = self.inputProductStock()
		
		self.database[productName] = Product(productName, productCode, productPrice, productStock)
		self.save()
	
	def inputProductPrice(self):
		productPrice = None
		while not productPrice:
			try:
				print "Input product price"
				productPrice = raw_input()
				productPrice = float(productPrice)
			except ValueError: 
				productPrice = None
		return productPrice
		
	def inputProductStock(self):
		productStock = None
		while not productStock:
			try:
				print "Product Stock:"
				productStock = raw_input()
				productStock = int(productStock)
			except ValueError: 
				productStock = None
		return productStock
	
	def selectProductByName(self):
		print "Input product name"
		return raw_input()
	
	def getProductByName(self, name):
		if name not in self.database:
			return None
		return self.database[name]
		
	def deleteProduct(self):
		productName = self.selectProductByName()
		
		try:
			del self.database[productName]
		except KeyError:
			print "Product does not exists"
			return
		print "Product %s deleted" % productName
		self.save()
	
	def changePriceAndSave(self):
		self.changePrice()
		self.save()
		
	def changePrice(self):
		productName = self.selectProductByName()
		
		product = self.getProductByName(productName)
		if not product:
			print "Product %s not in databse yet!" % productName
		
		productPrice = self.inputProductPrice()
		product.price = productPrice
		
	def changeStockAndSave(self):
		productName = self.selectProductByName()
		
		product = self.getProductByName(productName)
		if not product:
			print "Product %s not in databse yet!" % productName
			
		print "Current stock is %d!" % product.stock
		productStock = self.inputProductStock()
		product.stock = productStock
		
		self.save()
	
	def valueOfAllProducts(self):
		collectedValue = 0.0
		for productName, product in self.database.iteritems():
			collectedValue += product.value()
		print "Value of all products is: %f" % collectedValue
	
	def stockOfAllProducts(self):
		stockOfAllProducts = 0
		for productName, product in self.database.iteritems():
			stockOfAllProducts += product.stock
		print "Stock of all products is: %d" % stockOfAllProducts

if __name__ == "__main__":
	
	print "Input database filename:"
	databaseFilename = raw_input()
	
	database = ProductDatabase(databaseFilename)
	
	choise = 0
	choises = {
		1 : database.printDB,
		2 : database.addProduct,
		3 : database.deleteProduct,
		4 : database.changeStockAndSave,
		5 : database.changePriceAndSave,
		6 : database.changePrice,
		7 : database.valueOfAllProducts,
		8 : database.stockOfAllProducts
	}
	
	while (choise != 9):
		print
		print "1. Print database"
		print "2. Add product"
		print "3. Delete product"
		print "4. Change stock and save"
		print "5. Change price and save"
		print "6. Change price"
		print "7. Value of all products"
		print "8. Stock of all products"
		print "9. Exit"
		print "Choose:"
		choise = raw_input()
		print
		try:
			choise = int(choise)
		except ValueError:
			choise = 0
		if choise in choises:
			choises[choise]()


Dokaj grdo razgrajena koda (ProductDatabase recimo bi bilo treba razbit posebej v kodo za bazo in vnos), ampak se nisem kaj dosti sekiral za to. Napake so možne, ker nisem dosti testiral, če deluje pravilno in prav. ;) Vsa imena spremenljivk sem pisal v angleščini ker sem tako navajen. Prav tako sem sem uporabil modul pickle, ki sam zna sam pisat in brat "slovarje" v in iz datoteke - če ste kako drugače obravnavali pisanje in branje "slovarjev" v datoteko ustrezno spremeni ProductDatabase metodi save in open.

Nely ::

Hey!

Hvala ti Quikee, upam da ti nisem prevec zamorila s tem pythonom med prazniki, res si zelo prijazen...joj sploh ne wem kaj nej recem:)res zelo lepo...hvala ti:)
lepo praznuj:)

rnla1973 ::

class ucenec:

def _init_(self,ImeInPriimek,oddelek,stDosezenihtock,vrstaOcene):
self.ImeInPriimek=ImeInPriimek
self.oddelek=oddelek
self.stDosezenihtock=stDosezenihtock
self.vrstaOcene=vrstaOcene

def vrniOceno(self):

tocke=self.stDosezenihtock
if(tocke/20100>89):
return(5)
elif(tocke/20100>75):
return(4)
elif(tocke/20100>63):
return(3)
elif(tocke/20100>49):
return(2)
else:
return(1)

def imeInpriimek(self):
ime=self.ImeInPriimek
z=ime[0]
priimek=""
vrednost=0
s=ime[::-1]

for i in s:
priimek+=i
if(i==" "):
break
priimek=priimek[::-1]
return(priimek+","+z+".")

def izpisObjekta(self):
ime2=self.imeInpriimek()
razred=self.oddelek
ocena=self.vrniOceno()
vrsta=self.vrstaOcene
print(ime2,razred,ocena,vrsta)



def shrani(N):
sez=[]
for i in range(N):
ime=input("vnesite ime: ")
razred=input("vnesite razred: ")
tocke=int(input("vnesite tocke: "))
vrsta=input("vnesite vrsto ocene: ")
klas=ime[0]
klas=ucenec(ime,razred,tocke,vrsta)
sez.append(klas)
return(sez)

u=ucenec("Aljaž Cerovšek" ,"2.c",15.5,"pisna")
print(u.vrniOceno())
print(u.imeInpriimek())
u.izpisObjekta()
sez=shrani(2)
for i in range(len(sez)):
sez[i].izpisObjekta()

def vseOcene(sez,imeInpriimek):
t=imeInpriimek[0]
i=0
st=-1
for j in sez:
if(str(j)!=t):
st+=1
i=st
s=sez[i].vrniOceno()
return(s)
print(vseOcene(sez,"Cerovšek aljaž"))




Ali lahko pomagate kje se zazakne


Vredno ogleda ...

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

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10315880 (6628) black ice
»

python pomoč

Oddelek: Programiranje
111425 (1245) jype
»

Python - problem

Oddelek: Programiranje
132612 (2342) slevin
»

Težave z računalnikom

Oddelek: Pomoč in nasveti
51664 (1589) mojsterleo
»

[Delphi] Unit za EXIF metadata (jpg)

Oddelek: Programiranje
14976 (905) b0B3k

Več podobnih tem