Python zadatak pomoć

poruka: 15
|
čitano: 6.458
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
4 godine
neaktivan
offline
Python čitanje iz file-a i uspoređivanje sa unosom
    1. Moram riješiti ovaj zadatak, ali ne razumijem kako da u pythonu pročitam zadnji red, odvojim ga dalje da dobijem zadnji element tog reda i onda to usporedim sa korisničkim unosom. Znam jedino napisat kratki kod koji čita file,podijeli file po retcima i printa zadnji redak.
    2. Napišite program koji učitava datoteku s popisom korisnika /etc/passwd. U toj su datoteci pojedini elementi retka odvojeni znakom dvotočke, a posljednji element je zadana ljuska korisnika koja se pokreće nakon njegove prijave. Program traži unos ljuske (npr. /bin/bash ili /usr/sbin/nologin), a zatim se u tekstualnu datoteku spremaju po jedno u redu imena korisnika kojima je to zadana ljuska korisnika.
Poruka je uređivana zadnji put uto 7.5.2019 12:12 (žnjžnj).
 
0 0 hvala 0
11 godina
neaktivan
offline
Re: Python čitanje iz file-a i uspoređivanje sa un

Ne treba ti zadnji red, nego zadnji podatak svakog retka. Treba ti i prvi podatak svakog retka (ime korisnika).

 

shell = input('Unesi ljusku:')

with open('/etc/passwd') as passwd, open('output.txt', 'w') as output:
    for line in passwd:
        info = line.rstrip().split(':')
        if info[-1] == shell:
            output.write(info[0] + '\n')

Poruka je uređivana zadnji put sri 8.5.2019 21:38 (Bobobo-bo Bo-bobo).
4 godine
neaktivan
offline
Python zadatak pomoć

hvala puno, skroz kirvo sam procitao zadatak

 
0 0 hvala 0
12 godina
offline
Python zadatak pomoć

Pozdrav.

Počinjem učiti Python i nije mi jasan ovaj primjer. Nastojat ću precizno ubaciti ss...

 

EDIT: Nadam se da je čitljivo. Nastaje problem nakon retka c=a+b

Nisam ja ništa prčko.
Poruka je uređivana zadnji put ned 10.11.2019 16:35 (Spiridon).
Moj PC  
0 0 hvala 0
11 godina
neaktivan
offline
Re: Python zadatak pomoć

Nedostaju ti razmaci na početku retka "c=a+b"

 

>>> def zbroj(a, b):
... c=a+b
  File "<stdin>", line 2
    c=a+b
    ^
IndentationError: expected an indented block

 

 Python koristi razmake za označavanje blokova (tipično 4 razmaka) pa ispravan kod izgleda ovako:

 

>>> def zbroj(a, b):
...     c=a+b
...     print("Rezultat je",c)
...
>>>

 

Rad u interaktivnom Python shellu nije za početnika pa ti preporučam besplatan JetBrainsov PyCharm Community edition.

13 godina
neaktivan
offline
Python zadatak pomoć

Nevezano za ovu temu, imam jedno pitanje pa bi radije pitao u postojećoj temi nego da otvaram novu.

Za diplomski rad koristim opensource softver u kojeg manualno ubacujem podatke iz excela i za to mi treba previše vremena s obzirom da ćemo trebati vrtiti neke oprimizacije/solvere i sl. Softver te podatke čita iz običnog file formata (bez ekstenzije). Ono što bi meni trebalo je skripta koju bi napisao vjerojatno u Pythonu koja će uzeti tražene podatke (tipa jedan stupac) i spremiti ih u obični file format. 

Djeluje mi jako jednostavno, ali znam jako malo programiranja pa mi trebaju upute kako krenuti. 

Hvala unaprijed :)

 
0 0 hvala 0
15 godina
offline
Re: Python zadatak pomoć

Kako bez ekstencije? Koji je format koji sw čita?

 

Da nije csv? Export to csv iz excela je bulid in funkcija. 

13 godina
neaktivan
offline
Re: Python zadatak pomoć

U windows exploreru mi ne piše nikakav format, otvorim ga s notepad++ ili običnim notepadom i tu upisujem c/p data iz excela. U notepad++ ga doslovno spremim kao All Types (*.*). Softver to očita kao set podataka kojeg uzime kao sekundnu/minutnu ili satnu potrošnju energije/vode, ovisno što mu zadam.

 

Edit: znam za .csv, ali nije. Eksperimentirao sam s "pandas" libraryem u Pythonu i tamo se može spremati u .csv

Poruka je uređivana zadnji put pon 10.2.2020 13:37 (Keops).
15 godina
offline
Python zadatak pomoć

Ok. Nebitno kaj piše u win exploreru. Kakvi su podaci (struktura) u toj datoteci kada otvoriš sa N++?

Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Re: Python zadatak pomoć

Otvorim ga s N++ i doslovno imam u prvom redu ime software-a, u drugom redu prazno i od trećeg reda pa nadalje do kojeg god reda hoću brojke koje god hoću postaviti. Softver to uzima kao pattern neke potrošnje vode/energije. 

Ali nema veze jer sam ipak uspio učitati taj pattern iz .csv datoteke pa sam sad i napisao tu mini skripticu uz pomoć pandasa. Izgleda da softver čita bilo koje podatke napisane u tom obliku. Sad sam probao i kao .txt sejvati podatke i uspio je. Hvala svejedno!

15 godina
offline
Python zadatak pomoć

Super.

 

Kao što rekoh. Nebitno kaj piše u win exploreru.

Moj PC  
0 0 hvala 0
10 godina
neaktivan
offline
Python zadatak pomoć

Pozdrav.Treba mi pomoc kod ovog zadatka.Ugl računam pretvaranje neto u bruto 2 plaću.E sad ovaj kppr36 sta sam boldao ovisi o kp,odnosno koficjentu prireza.Trebao bih staviti uvjete da npr.ako netko kada dobije pitanje unese koficjent prireza kada se pokrene funkcija da je recimo 1.5,da u formulu se obracunava automatski da je kpr36= 1.7 itd.itd. uvjeta takvih bi trebao napravit 20 takPokusao sam sa if kp=1,kpr36 =1.7,elif kp=1  kpr36=..... itd itd.... ali neide.Hvala

 

n=float(input("Unesite svoju neto plaću: "))
kp=float(input("Unesite svoj koficjent prireza: "))
O=4000

if n<=O:
Bruto1=n*1.25


elif n<=30000-(7200*kp)+O :
Bruto1=((n-O)/(1-(0.24*kp))+O)/0.8


elif n>30000-(7200*kp)+O or n<=40550.40**2[(10550.40**3-O)*0.36*kp+7200*kp]**4 :
Bruto1=(30000+O+(n-(30000-7200*kp+O))*kppr36)/0.80



Bruto2=Bruto1+(Bruto1*0.165)
print("Tvoja Bruto1 plaća je",Bruto1)
print("Tvoja Bruto2 plaća je" ,Bruto2)

 
0 0 hvala 0
11 godina
neaktivan
offline
Re: Python zadatak pomoć

Za takvo preslikavanje možeš koristiti dictionary:

 

REVERZNI_KOEFICIJENT = {
    1.0: 1.7,
    1.1: 1.9,
    1.2: 2.2,
}
kp = float(input('Unesite svoj koeficijent poreza:'))
kppr36 = REVERZNI_KOEFICIJENT[kp]

 

 

Mislim da tebi nije radilo jer Python za usporedbu koristi == (dva znaka jednakosti) pa rješenje s ulančanim if/else izgleda ovako:

 

kp = float(input('Unesite svoj koeficijent poreza:'))
if kp == 1.0:
    kppr36 = 1.7
elif kp == 1.1:
    kppr36 = 1.9
elif kp == 1.2:
    kppr36 = 2.2

 

10 godina
neaktivan
offline
Re: Python zadatak pomoć

Thx.Ako bi koristio i imam 3 input.kppr 24.znaci ako npr ovako zelimnapraviti if kp=1.2 =kppr=1.8 =kppr24=1.9 .Govorim za dictionary

Poruka je uređivana zadnji put sri 22.4.2020 1:53 (boks1950).
11 godina
neaktivan
offline
Re: Python zadatak pomoć

Onda možeš za vrijednost dictionaryja staviti tuple

 

REVERZNI_KOEFICIJENTI = {
    1.0: (1.7, 1.0),
    1.1: (2.2, 1.5),
    1.2: (1.8, 1.9),
}
kp = float(input('Unesite koeficijent poreza:'))
kppr, kppr24 = REVERZNI_KOEFICIJENTI[kp]

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice