Python - pomoć oko zadatka

poruka: 131
|
čitano: 81.767
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
6 godina
neaktivan
offline
Re: Python - pomoć oko zadatka
Bobobo-bo Bo-bobo kaže...

Ako za GUI koristiš paket tkinter jedan način je da napraviš funkciju koja prima redak i stupac pa označuje sve Checkbutton-e u istom retku i istom stupcu. Problem što Checkbutton-ov parametar command prima samo funkcije bez parametara možeš riješiti pomoću functools.partial:

 

from functools import partial


def oznaci(redak, stupac):
    ...


for redak in range(n):
    for stupac in range(n):
        Checkbutton(..., command=partial(oznaci, redak, stupac))

 

 Ako moze da mi napises ovu funkciju "def oznaci(redak,stupac):..."

11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Evo probaj ovako:

 

import functools
from tkinter import *

n = int(input('Unesi broj n:'))
boxVars = []
master = Tk()

def mark(row, column):
    for i in range(n):
        boxVars[i][column].set(1)
        boxVars[row][i].set(1)

for row in range(n):
    boxVars.append([])
    for column in range(n):
        var = IntVar()
        boxVars[row].append(var)
        widget = Checkbutton(master, variable=var, command=functools.partial(mark, row, column))
        widget.grid(row=row, column=column)

mainloop()

6 godina
neaktivan
offline
Python - pomoć oko zadatka

Molim vas pomoc oko ovog zadatka:

 

Mala neprofitna udruga se priprema za posjet Državnog ureda za reviziju koji će pregledati sve putne naloge iz jedne kalendarske godine. Kada član udruge putuje na službeni put on (odnosno ona) prijavi datum polaska i datum povratka te podigne dnevnice u iznosu od 100 kuna po danu provedenom na putu. Dani provedeni na putu uključuju i datum polaska i datum povratka pa, primjerice, za službeni put koji počinje 13. svibnja i završava 17. svibnja dnevnice iznose ukupno 500 kuna.

 

Administrativnom pogreškom je sa svakog putnog naloga izbrisan datum povratka te iznos dnevnica, međutim još su uvijek poznati svi datumi polaska te ukupan isplaćeni iznos za sve dnevnice. Također je poznato da su svi službeni putovi započeli i završili unutar iste kalendarske godine (dakle 1. siječanj je najraniji mogući datum polaska, a 31. prosinac najkasniji datum povratka). Odredite datume povratka za sve putne naloge tako da svi nalozi budu ispravni (datum povratka je isti ili dolazi nakon datuma polaska) te da ukupan isplaćeni iznos za dnevnice odgovara zadanom. Kalendarska godina nije prijestupna, a možete pretpostaviti da rješenje uvijek postoji iako ne mora biti jedinstveno.

 

ULAZNI PODACI

 

U prvom redu nalazi se prirodan broj t (1 ≤t≤ 3 650 000) – ukupan iznos isplaćenih dnevnica. U sljedećem redu nalazi se prirodan broj n (1 ≤n≤ 100) – broj putnih naloga. U j-tom od sljedećih n redova nalazi se datum polaska na j-tom putnom nalogu u formatu „dd.mm.“ gdje je mm dvoznamenkasti broj mjeseca, a dd dvoznamenkasti broj dana u mjesecu. Broj mm je između 1 i 12 uključivo dok je dd između 1 i ukupnog broja dana u tom mjesecu uključivo. Svaki datum polaska je ispravan datum u godini koja nije prijestupna.

 

IZLAZNI PODACI

 

Ispišite n redova. U j-ti red ispišite datum povratka u j-tom putnom nalogu u istom formatu kojim su datumi zapisani na ulazu.

 

unaprijed hvala!

 
0 0 hvala 0
14 godina
neaktivan
offline
Python - pomoć oko zadatka

Evo pomoci cu ti u vezi zadatka. Pitaj me sto god ti nije jasno :)

 
0 0 hvala 1
11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Rješenje:

 

from datetime import date, timedelta

GODINA = 2001
KRAJ_GODINE = date(GODINA, 12, 31)

podaci = [line.strip() for line in open('/home/ivan/PycharmProjects/untitled/test.txt')]
t = int(podaci.pop(0))
n = int(podaci.pop(0))
preostali_dodatni_dani = t // 100 - n

for podatak in podaci:
    dan, mjesec = podatak.split('.')[:2]
    datum = date(GODINA, int(mjesec), int(dan))
    dodatni_dani = min((KRAJ_GODINE - datum).days, preostali_dodatni_dani)
    print((datum + timedelta(dodatni_dani)).strftime('%d.%m.'))
    preostali_dodatni_dani -= dodatni_dani

6 godina
neaktivan
offline
Python - pomoć oko zadatka

Može li mi molim vas tko pomoć oko ovih zadataka? Tek mjesec dana radimo sa pythonom i naravno štekam čim se nešto i mrvicu zakomplicira.

Ovo je sve baby razina. Napominjem, pokušavala sam ovo sve sama riješit i stvarno sma se trudila. Na ovim zadacima stojim već sigurno tjedan dana bez imalo uspjeha. Javljanje na forumu mi je uistinu bilo skroz zadnja opcija.

 

ZADATAK 1:

Napisati program koji prima tri broja i zatim ih ispisuje poredane po veličini, bez korištenja dodatnih
varijabli.

 

I ja sam to napisala ovako:

 

x = int(input("BROJ1: "))
y = int(input("BROJ2: "))
z = int(input("BROJ3: "))

if x > y:
   x, y = y, x
if x > z:
   x, z = z, x
if y > z:
   y, z = z, y

print(x,y,z)

 

I to tako radi. Ali gore u zadatku piše ''bez dodatnih varijabli''? Jel s tim misle da nema onog spremanja veličina u nove varijable nego da moram koristit samo ovo što unosimo, ili?

 

 

ZADATAK 2:
Varijablama a i b pridružiti proizvoljne cjelobrojne vrijednosti. Napisati izraze koji provjeravaju iduće
činjenice (izraze koji rezultiraju u True ili False kada se izvrše u interpreteru). Brojčane pozicije bitova
brojimo od najmanje značajnog bita:
a) je li zadnji bit broja a postavljen na 1
b) je li četvrti bit broja a postavljen na 1
c) jesu li zadnja tri bita varijabli a i b jednaki
d) jesu li predzadnja tri bita varijabli a i b jednaki
e) jesu li četvrti i šesti bit broja a postavljen na 1
f) jesu li četvrti ili šesti bit broja a postavljen na 1
g) je li samo četvrti ili šesti bit broja a postavljen na 1

 

E ovaj mi je baš nejsana. Dakle, ja sam to nekako pokušavala ovako i davalo mi je True/False ako je 1 ili 0 na određenom mjestu:

 

a = 9
b = 13

#a
if ((a >> 0) & 1):
    print("True")
else:
    print("False")
 
#b
if ((a >> 3) & 1):
    print("True")
else:
    print("False")
   
#c
   
#d

#e
if ((a >> 3) and (a >> 5))&1:
    print("True")
else:
    print("False")
   
#f
if ((a >> 3) or (a >> 5))&1:
    print("True")
else:
    print("False")
   
#g

 

Uopće ne znam je se to tako radi. Prof je na vježbama objašnjavala to šiftanje mjesta, ali nisam baš shvatila. Nisam to niti na predavanjima shvatila. Ni na internetu mi objašnjenja nisu bila baš jasna. Kako sam ja to shvatila je da broj moram pretvorit u binarni  i onda u kodu pomicat mjesta u lijevo ili desno da bi provjerila da li je na tom mjestu 1 ili 0. Ali sve mi je to nekako sumnjivo. Mislim, jano je kao dan da sam ja to sve krivo radila. c) d) i g) su mi samo dodatni pokazatelji da je pogrešno. Kako izdvajiti određeni broj bitova da bi ih usporedila?

 

 

ZADATAK 3:

IP adresa je sastavljena od četiri dijela (npr. 196.68.33.1) gdje je svaki dio kodiran na 8 bitova, tako da je
IP adresa zapravo 32-bitni broj. Adresa iz prethodnog primjera kodira se brojem 3292799233. Treba
napisati izraz (ili izraze) koji za uneseni cijeli broj između 0 i 2147483647 provjerava:
a) jesu li prva dva dijela adrese 196 i 68
b) jesu li zadnja dva dijela adrese manji od 128
c) jesu li prvi i zadnji dio adrese jednaki

 

Pod a) pretpostavljam da 196 i 68 moram spremiti u varijable da bi ih usporedila sa 196 i 68?
I šta:

x = 196
y = 68

if (x == 196) and (y == 68):
    print("True")
else:
    print("False")

??????? je to to? Ili su mislili na neku drugu usporedbu? b) bi riješila na isti princip. c) mi je dao do znanja da su a) i b) sigurno pogrešni.

 

ZADATAK 4:

Napisati program koji prima brojeve dok se ne upiše 0. Ako je uneseni broj negativan, program traži
ponovan unos broja dok se ne unese pozitivan broj. Na kraju program ispisuje broj _pogrešnih_
(negativnih) unosa.

Taj sam napisala ovako:

 

greske = 0

broj = int(input("Unesite broj: "))

while broj != 0:
   broj = int(input("Unesite broj: "))
   if broj < 0:
      greske += 1
   elif broj == 0:
      print("broj negativnih unosa: ", greske)

 

Zanima me da li je to ok napisano?

 

 

ZADATAK 5:

Napisati program koji generira slučajne brojeve između 0 i 1000. Program ispisuje samo brojeve koji su
veći od 100, a manji od 500. Program završava kada ispiše 10 brojeva.

 

Napisala:

 

from random import randint

for rezultat in range(10):
    broj = randint(0, 1000)
   if 100 < broj < 500:
     rezultat = print(broj)

 

Ne znam kako da to napišem da mi bude 10 ispisa, a ne 10 pokušaja u pronalaženju broja. Pokušavala sam FOR stavljat u drugi redoslijed, ali onda bi mi ispisivalo isti broj 10 puta............... šteta što ne možemo jednostavno stavit da traži random brojeve iz (100, 500).

 

 

ZADATAK 6:

Napisati program koji broji koliko je bitova broja (od zadnjih 32 bita) postavljeno na 1.

 

Taj je isti tip kao i ZADATAK 2 pa ga naravno ne znam niti započet jer mi to sa bitovima uopće nije jasno. :/

 

 

ZADATAK 7:

Napisati program koji od korisnika prima dva po dva broja. Ako su oba broja pozitivna ispisuje sve
brojeve između njih, u suprotnom javlja grešku i završava.

 

Napisala:

 

m = int(input("Prvi broj: "))
n = int(input("Drugi broj: "))

if (m < n) and (m > -1):
    for i in range(m+1, n):
        print(i)
elif (n < m) and (n > -1):
    for i in range(m-1, n, -1):
        print(i)
else:
    print("! POGREŠAN UNOS !")

 

Ne znam u kakvu da ga petlju stavim da bi se vrtio beskonačno dok se ne upiše 0. Program i ovako malo naopako ispisuje brojeve. Prvi problem koji sam imala je da mi nije ispisivao brojeve kad bi prvi uneseni bro bio veći od drugog, to sam nekako riješila. Zatim mi je problem bio što je uvijek ukljućivao jedan od unesenih brojeva, ali i to sam uspjela riješit običnim oduzimanjem. Kad sam ga bila stavila u neku petlju koju sam našla na internetu čisto da vidim kako bi radio jer takve primjere još nismo učili, nije se zaustavljao na pogrešnom unosu nego je i dalje tražio brojeve. Na početku sam bila stavila neki WHILE uvjet čisto da ima neki razlog da bi se vrtio, npr bila sam stavila while i!=0:, i tako se lijepo vrtio sve dok ne unesem dva negativna broja. Onda bi mi ispisao POGREŠAN UNOS i zaustavio se. Ali pretpostavljam da to tako ne može jer ipak je pored while pokazivao da je i undefined.

 

 

ZADATAK 8:

Napisati program koji iscrtava puni pravokutnik zvjezdicama. Broj redaka i stupaca određuje korisnik.

 

Taj smo bili na predavanju rješavali, ali izgleda da sam ja riješeni rpimjer krivo prepisala u bilježnicu ili sam neki ključni dio propustila jer meni to uopće ne radi....

 

_______________

 

Druge zadatke sam sve više-manje znala riješit, ima ih zapravo još 2-3 koja ne znam ali mislim da ću njih znat riješit sama ukoliko mi se ovi gore navedeni objasne jer se sve nekako nadovezuje i kombinira.

 

 
0 0 hvala 0
8 godina
neaktivan
offline
Python - pomoć oko zadatka

Dobro vecer,

 

dobio sam zadatak da napravim program u pythonu ( iz tipografije ) koji ce sam dijeliti rijeci kada prelaze u sljedeci redatk. 
npr:

pone-

djeljak

 

problem je sto neznam kako zapoceti pa me zanima zna li tko gdje kakav dobar tutorial?

 

Hvala

 
0 0 hvala 0
6 godina
neaktivan
offline
Python - pomoć oko zadatka

Itko?

 
0 0 hvala 0
11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

1. Rješenje je dobro - zadatak vjerojatno traži zamjenu vrijednosti bez korištenja privremene varijable.


3. IP adresu iz 32-bitnog oblika možeš pretvoriti u oblik a.b.c.d tako da 4 puta uzastopno prikupiš ostatke dijeljenja IP adrese s 2⁸ = 2 ** 8 = 256:

broj = int(input('Unesi broj:'))

# pretvori broj u oblik a.b.c.d
broj, d = divmod(broj, 256)
broj, c = divmod(broj, 256)
a, b = divmod(broj, 256)

print(a, b, c, d)  # Ispiši sve dijelove adrese
print(a == 196 and b == 68)  # 3.a provjeri da je prvi dio 196 i drugi dio 68



4. Ponuđeno rješenje radi dobro osim kad korisnik odmah upiše negativan broj. Prvi unos (onaj iznad while petlje) nema provjere da li je unesen negativan broj pa se total pogrešnih ne uvećava za jedan. Python nema do-while petlju pa koristi beskonačnu while petlju iz koje se izlazis break:

greske = 0

while True:
   broj = int(input("Unesite broj: "))
   if broj < 0:
      greske += 1
   elif broj == 0:
      break
     
print("broj negativnih unosa: ", greske)



5. Napravi while petlju koja broji "uspješne" ispise i prekida kad ih ima 10

from random import randint

ispisano = 0

while ispisano < 10:
    broj = randint(0, 1000)
    if 100 < broj < 500:
        print(broj)
        ispisano += 1

 


7. Problem s naopakim ispisom kad korisnik prvo unese veći broj se može riješiti popravkom argumenata druge range funkcije:

m = int(input("Prvi broj: "))
n = int(input("Drugi broj: "))

if (m < n) and (m > -1):
    for i in range(m+1, n):
        print(i)
elif (n < m) and (n > -1):
    for i in range(n+1, m):
        print(i)
else:
    print("! POGREŠAN UNOS !")

While petlja nije potrebna jer tekst zadatka ne traži da se unos ponavlja.

 

 

8. Probaj ovako:

retci = int(input("Unesi broj redaka: "))
stupci = int(input("Unesi broj stupaca: "))

for redak in range(retci):
    print('*' * stupci)

7 godina
neaktivan
offline
Python - pomoć oko zadatka

Ljudi moze pomoc?
Jel postoji neki nacin da napravim da mi sav tekst između špicastih zagrada plave boje kad ga korisnik upise?

Radim text editor koji bih htio da bude i HTML editor pa zato pitam...

Moj kod:

import sys
import os
from tkinter import *
from tkinter.font import Font
import html.parser

#Spremanje teksta
def SaveAsTxt():
inputValue = textbox.get("1.0", "end-1c")
f = open('saveddocs\text.txt','w')
f.write(inputValue)
f.close()

def SaveAsHtml():
inputValue = textbox.get("1.0", "end-1c")
f = open('website.html','w')
f.write(inputValue)
f.close()

window = Tk()
window.title("CodePad 0.1")
window.minsize(1280,720)
window.resizable(width=False, height=False)


#MenuBar
menuBar = Menu(window)

#File
filemenu = Menu(window)
saveasmenu = Menu(window)#Save As
saveasmenu.add_radiobutton(label=".txt", command=SaveAsTxt)#Save as txt
saveasmenu.add_radiobutton(label=".html", command=SaveAsHtml)#Save as html
menuBar.add_cascade(label="File", menu=filemenu)
filemenu.add_cascade(label="Save As", menu=saveasmenu)
window.config(menu=menuBar)

#TextBox
textbox = Text(window)
textbox.place(x=10, y=10, width=1250, height=700)
myFont = Font(family="times new roman", size=11)
textbox.configure(font=myFont)
textbox.configure(bg="#EEEEEE")

#Font define
def Arial():
myFont = Font(family="Arial", size=11)
textbox.configure(font=myFont)

def TimesNewRoman():
myFont = Font(family="Times New Roman", size=11)
textbox.configure(font=myFont)

#Fontsize define
def size11():
myFont = Font(size=11)
textbox.configure(font=myFont)

def size12():
myFont = Font(size=12)
textbox.configure(font=myFont)

def size13():
myFont = Font(size=13)
textbox.configure(font=myFont)

def size14():
myFont = Font(size=14)
textbox.configure(font=myFont)

def size15():
myFont = Font(size=15)
textbox.configure(font=myFont)

#Color define
def black():
textbox.configure(foreground="black")
textbox.config(insertbackground="black")

def white():
textbox.configure(foreground="white")
textbox.config(insertbackground="white")

def red():
textbox.configure(foreground="red")
textbox.config(insertbackground="red")

def orange():
textbox.configure(foreground="orange")
textbox.config(insertbackground="orange")

def green():
textbox.configure(foreground="#5FFF54")
textbox.config(insertbackground="#5FFF54")

def yellow():
textbox.configure(foreground="yellow")
textbox.config(insertbackground="yellow")

#Bg-color define
def bgwhite():
textbox.configure(bg="#EEEEEE")

def bgblack():
textbox.configure(bg="black")

def bggrey():
textbox.configure(bg="#5A868E")

#Style
stylemenu = Menu(window)#Style
fontmenu = Menu(window)#Font
fontsizemenu = Menu(window)#FontSize
fontcolormenu = Menu(window)#FontColor
textbgmenu = Menu(window)#TextBackground
menuBar.add_cascade(label="Style", menu=stylemenu)

#Font
stylemenu.add_cascade(label="Font", menu=fontmenu)
fontmenu.add_radiobutton(label="Arial", command=Arial)
fontmenu.add_radiobutton(label="Times New Roman", command=TimesNewRoman)

#FontSize
stylemenu.add_cascade(label="Font Size", menu=fontsizemenu)
fontsizemenu.add_radiobutton(label="11", command=size11)
fontsizemenu.add_radiobutton(label="12", command=size12)
fontsizemenu.add_radiobutton(label="13", command=size13)
fontsizemenu.add_radiobutton(label="14", command=size14)
fontsizemenu.add_radiobutton(label="15", command=size15)

#FontColor
stylemenu.add_cascade(label="Font Color", menu=fontcolormenu)
fontcolormenu.add_radiobutton(label="Black", command=black)
fontcolormenu.add_radiobutton(label="White", command=white)
fontcolormenu.add_radiobutton(label="Red", command=red)
fontcolormenu.add_radiobutton(label="Orange", command=orange)
fontcolormenu.add_radiobutton(label="Green", command=green)
fontcolormenu.add_radiobutton(label="Yellow", command=yellow)

#TextBackground
stylemenu.add_cascade(label="Background Color", menu=textbgmenu)
textbgmenu.add_radiobutton(label="Greyish-White", command=bgwhite)
textbgmenu.add_radiobutton(label="Black", command=bgblack)
textbgmenu.add_radiobutton(label="Greyish-Blue", command=bggrey)
window.mainloop()

 

Fight with the best,die like the rest!
Poruka je uređivana zadnji put uto 28.11.2017 11:41 (FatMAN).
Moj PC  
0 0 hvala 0
11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Za svoj textbox koristi modificiranu verziju Text widgeta sa Stack Overflowa - ta klasa ima metodu za označavanje teksta pomoću regularnog izraza. Regularni izraz za matchanje je r'<[^<]+?>'

 

Najjednostavnije je da ovu metodu zoveš na KeyRelease event Text widgeta:

 

def paint_angle_brackets(event):
    # Rekreiranje taga "anglebrackets" će resetirati prethodne matcheve
    textbox.tag_delete("anglebrackets")
    textbox.tag_configure("anglebrackets", foreground="blue")
    textbox.highlight_pattern("<[^<]+?>", "anglebrackets", regexp=True)

...
textbox = CustomText(window)
textbox.bind("<KeyRelease>", paint_angle_brackets)
...

 

 

Nažalost, ovo rješenje ne radi kad špicaste zagrade zahvaćaju dva ili više redaka teksta, npr.

<red1
red2>

7 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Sorry al to meni ne radi

Kaze da CustomText nije definiran iako sam ga stavio u klasu...

 

def paint_angle_brackets(event):
# Rekreiranje taga "anglebrackets" će resetirati prethodne matcheve
textbox.tag_delete("anglebrackets")
textbox.tag_configure("anglebrackets", foreground="blue")
textbox.highlight_pattern("<[^<]+?>", "anglebrackets", regexp=True)

 

class CustomText(textbox):
textbox = CustomText(window)
textbox.tag_configure("red", foreground="#ff0000")
textbox.bind("<KeyRelease>", paint_angle_brackets)

Fight with the best,die like the rest!
Poruka je uređivana zadnji put sri 29.11.2017 11:47 (FatMAN).
11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

U svom projektu moraš imati kompletan izvorni kod klase CustomText s linka na Stack Overflow - ne samo deklaraciju.

 

Najbolje da napraviš novi modul customtext.py i u njega kopiraš definiciju klase, a onda u glavnom modulu importiraš tu klasu (from customtext import CustomText).

7 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Aha znaci ono sa stacka kopiram u drugi file i onda ovo tvoje u svoj file i trebalo bi raditi

Fight with the best,die like the rest!
6 godina
neaktivan
offline
Python - pomoć oko zadatka

Pozz svima,novi sam na ovom forumu,nedavno sam se poceo baviti programiranjem.

Imam jedan program koji mi neko treba protumaciti 

evo kod:

 

import math

parni=int(input('Unesi paran broj'))

for nep in range(3,nep//2+1,2):

   p=True

   for nep2 in range(nep,parni-nep):

      if p: 

       for k in range(2,round(sqrt.math(nep2))+1):

                  if nep%2==0:

                  p=False

  if p:

    print('{} + {}') .format(nep,parni-nep))

 

 

Uglavnom znam da program ispisuje zbir parnog broja uz pomoc prostih brojeva,međutim ne znam postepeno protumaciti korak svaki sto mi treba u skoli,pa ako ima neka dobra dusa da mi objasni :)

 
0 0 hvala 0
6 godina
neaktivan
offline
Python - pomoć oko zadatka

Jel može pomoć neznam ovaj zadatak:

Omogući unos broja sati i ispiši koliko je to dana i preostalo sati. 

ewqeq
Moj PC  
0 0 hvala 0
7 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Ne znam jesi dosad vec napravio ali ako nisi evo ti

 

import math

sati = input("upisite broj sati ")
dani = int(sati)//24
ostatak = int(sati)%24
print("broj sati koji ste unijeli jednak je " + str(dani) + " dana, a ostatak je " + str(ostatak) + " sata/sati")

 

Fight with the best,die like the rest!
11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Import math nije potreban jer su cjelobrojno dijeljenje (//) i modulo (%) standardni operatori. Za dodatno pojednostavljenje može se koristiti built-in funkcija divmod:

 

ukupno_sati = int(input('Unesi broj sati:'))
dana, sati = divmod(ukupno_sati, 24)
print('To je', dana, 'dana i preostalo sati', sati)

6 godina
neaktivan
offline
Python - pomoć oko zadatka

Trebao bi pomoć oko zadatka.

Zadatak glasi: Napišite program koji će učitati sve slike iz direktrorija i na tim slikama stvoriti horizontalne te vertikalne pruge širine 8, 16, 32 piksela. 

Hvala puno!

 
0 0 hvala 0
7 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Dobar savjet kao i uvijek :)

Fight with the best,die like the rest!
11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka
cincekina kaže...

Trebao bi pomoć oko zadatka.

Zadatak glasi: Napišite program koji će učitati sve slike iz direktrorija i na tim slikama stvoriti horizontalne te vertikalne pruge širine 8, 16, 32 piksela. 

Hvala puno!

 

Evo vertikalne pruge širine 8 piksela za JPEG/PNG/BMP slike (treba instalirati pillow).

from pathlib import Path
from PIL import Image, ImageDraw

IMAGE_EXTS = ('.jpeg', '.jpg', '.png', '.bmp')
SIRINA = 8
POMAK = SIRINA // 2 - 1

image_paths = [child.absolute() for child in Path('.').iterdir() if child.suffix.lower() in IMAGE_EXTS]

for image_path in image_paths:
    image = Image.open(image_path)

    draw = ImageDraw.Draw(image)
    for x in range(0, image.width, SIRINA * 2):
        draw.line((x + POMAK, 0, x + POMAK, image.height), width=SIRINA)

    image.save(image_path)

7 godina
neaktivan
offline
Python - pomoć oko zadatka

Opet ja, zna li netko kako bi se mogla napraviti undo funkcija za tekstualno polje u pythonu?
Hvala puno!

EDIT: Rjesio sam ovo nekako, no sad imam drugi problem. Naime, kad hocu pretvoriti svoj file u exe sa py2exe javlja mi gresku(slika).

Molim vas, ako netko ima rjesenje za ovo, citao sam da je mozda problem sa utf 8 no javlja istu gresku i kad ukljucim to.

Fight with the best,die like the rest!
Poruka je uređivana zadnji put pet 12.1.2018 22:45 (FatMAN).
Moj PC  
0 0 hvala 0
11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Moguće je da ti CodePad.py datoteka ima BOM (Byte order mark) na početku - snimi je bez toga.

7 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Hvala. Toliko sam trazio po stranim forumima i nasao sam rjesenje. Samo sam sve iz idlea prebacio u NPP i encodirao u UTF-8 bez BOM-a, i napokon radi

Fight with the best,die like the rest!
7 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Ovako, zelim u odvojenom textboxu napraviti da mi prikazuje varijablu wordcount koju sam napravio, medutim samo mi da output da je klasa napravljena i da on pristupa toj klasi.

 

#Wordcount klasa

class WordcountClass():
def Wordcount(self, wordcount):
for wordcount in range(0,1000):
if msvcrt.kbhit():
if ord(msvcrt.getch()) == 32:
wordcount = wordcount+1

 

#WordCountBox
wordcount=WordcountClass()
wordcount.Wordcount(wordcount)
wordcountbox = Text(window)
wordcountbox.place(x=10, y=718, width=350, height=25)
WordCountFont = Font(family="times new roman", size=12)
wordcountbox.configure(font=WordCountFont)
wordcountbox.insert(END, 'Words: %s' % str(wordcount))

Output Output
Fight with the best,die like the rest!
Poruka je uređivana zadnji put ned 14.1.2018 12:41 (FatMAN).
7 godina
neaktivan
offline
Re: Python - pomoć oko zadatka
Pozdrav,zanima me programiranje i trazio sam s kojim programom pocet. Trenutno sam 1. Razred srednje skole Tehnicar za racunalstvo. Imam malog nekog znanja u HTML-u i CSS-u ali to je sve premalo... Je li bolje da krenem ucit Pyhton ili da naucim HTML i CSS dokraja
 
0 0 hvala 0
11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Output "<__main__.WordCount object at..." je korektan jer je u glavnom programu varijabla wordcount instanca klase Wordcount (imašwordcount=WordcountClass()).

 

Preporučam ti da napraviš posebnu funkciju koja primi tektst, a vraća broj riječi u tom tekstu. Tu funkciju treba zvati nakon svake izmjene teksta. Najjednostavnija verzija te funkcije je:

 

def wordcount(text):
    return len(text.split())

 

11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Ovisi što te trenutno veseli. Znanje HTML-a će ti koristiti, ali to nije programski jezik. Ako te baš zanima programiranje počni s Pythonom.

Poruka je uređivana zadnji put čet 18.1.2018 10:38 (Bobobo-bo Bo-bobo).
7 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Zavisi što te zanima. Ja sam isto 1. razred i HTML i CSS sam naucio onako dosta(razumijem sintaksu, vježbam responsive design)...

Ne kažem da mi ide savršeno, ali ako nešto zaboravim tu je uvijek W3Schools.

HTML i CSS je svakako dobro znati, a tko kaže da ne možeš učiti i njih i python u isto vrijeme.

Fight with the best,die like the rest!
7 godina
neaktivan
offline
Re: Python - pomoć oko zadatka
Jel se W3School placa? Ja sam poceo preko khan academy
Nova poruka
E-mail:
Lozinka:
 
vrh stranice