Forum » Programiranje » [Python]Nekaj osnovnih vprašanj
[Python]Nekaj osnovnih vprašanj
nekdo321 ::
Zanima me kaj je narobe v kodi da še vklučuje to 10044444344 / 113 = 88888888 čeprav ne ustreza pogoju ?
Izvorna koda:
# -*- coding: cp1250 -*-
x = 1
n = input("Vnesi število: ")
while n*x < 10000000000:
n*x
x = x+1
print ""
print n*x,
print "/",
print x,
print "=",
print n
############
Vnesi število: 88888888
177777776 / 2 = 88888888
266666664 / 3 = 88888888
...
9866666568 / 111 = 88888888
9955555456 / 112 = 88888888
10044444344 / 113 = 88888888
Zanima me pa kako bi zdaj spravil število na seznam (list) po cifrah?
Kako bi najlažje ugotovil če se v številu cifre ponavljajo?
Kako odrežem zadnjo cifro od števila?
Izvorna koda:
# -*- coding: cp1250 -*-
x = 1
n = input("Vnesi število: ")
while n*x < 10000000000:
n*x
x = x+1
print ""
print n*x,
print "/",
print x,
print "=",
print n
############
Vnesi število: 88888888
177777776 / 2 = 88888888
266666664 / 3 = 88888888
...
9866666568 / 111 = 88888888
9955555456 / 112 = 88888888
10044444344 / 113 = 88888888
Zanima me pa kako bi zdaj spravil število na seznam (list) po cifrah?
Kako bi najlažje ugotovil če se v številu cifre ponavljajo?
Kako odrežem zadnjo cifro od števila?
- spremenilo: nekdo321 ()
pietro ::
Problem je v tem, ker si ...print n*x... definiral za ...x=x+1... . Tako ti while zanka izpise vrednost za naslednji korak. Ce dobro pogledas je prva vrednost n*x 2*8888888 in ne 88888888, kot bi pricakoval. Tezavo bos odpravil, ce x+=1 (je enako x=x+1) prestavis na konec zanke.
Zadnjih vprasanj ne razumem popolnoma, vendar vseeno. Ce zelis stevila n*x spraviti v listo, pred while zanko poimenujes listo (LISTA=[]), nato pa v zanki dodas ...LISTA.append(n*x).
Ce zelis narediti listo vsake stevke v stevilu n*x posebej, bos moral stevilo n*x spremeniti v string (str(n*x)) in jo z uporabo for zanke (npr. skupaj: for stevka in str(n*x):) dodati v listo (list), kot sem opisal prej (tukaj vsakic znova ustvaris novo listo).
Da se stevila ponavljajo, ugotovis z list.count(stevka).
Zadnjo cifro odrezes z ukazom list.remove(-1).
Zadnjih vprasanj ne razumem popolnoma, vendar vseeno. Ce zelis stevila n*x spraviti v listo, pred while zanko poimenujes listo (LISTA=[]), nato pa v zanki dodas ...LISTA.append(n*x).
Ce zelis narediti listo vsake stevke v stevilu n*x posebej, bos moral stevilo n*x spremeniti v string (str(n*x)) in jo z uporabo for zanke (npr. skupaj: for stevka in str(n*x):) dodati v listo (list), kot sem opisal prej (tukaj vsakic znova ustvaris novo listo).
Da se stevila ponavljajo, ugotovis z list.count(stevka).
Zadnjo cifro odrezes z ukazom list.remove(-1).
nekdo321 ::
Hvala za pomoč imam pa še eno vprašanje
Imam več seznamov zdaj bi jih pa rad filtriral in printal samo tiste sezname, ki vsebujejo samo 0 in 1 (npr. [0, 0, 0, 1, 0, 1, 0, 0, 0, 0]).
Primeri seznamov:
[0, 0, 0, 1, 1, 3, 0, 0, 0, 0]... ta seznam ni v redu
[0, 0, 4, 2, 1, 0, 0, 0, 0, 0]... ta seznam ni v redu
[0, 0, 0, 1, 0, 1, 0, 0, 0, 0]... ta seznam je v redu
Imam več seznamov zdaj bi jih pa rad filtriral in printal samo tiste sezname, ki vsebujejo samo 0 in 1 (npr. [0, 0, 0, 1, 0, 1, 0, 0, 0, 0]).
Primeri seznamov:
[0, 0, 0, 1, 1, 3, 0, 0, 0, 0]... ta seznam ni v redu
[0, 0, 4, 2, 1, 0, 0, 0, 0, 0]... ta seznam ni v redu
[0, 0, 0, 1, 0, 1, 0, 0, 0, 0]... ta seznam je v redu
pietro ::
Ce imas seznam seznamov, kot je ta: T = [[0, 0, 0, 1, 1, 3, 0, 0, 0, 0],[0, 0, 4, 2, 1, 0, 0, 0, 0, 0],[0, 0, 0, 1, 0, 1, 0, 0, 0, 0]], potem storis sledece:
for list in T:
........if 3 not in list and 4 not in list and 5 not in list...:
................print list
for list in T:
........if 3 not in list and 4 not in list and 5 not in list...:
................print list
zdobersek ::
if len([x for x in seznam if (x == 0 or x == 1)] < len(seznam):
if [x for x in seznam if x in [0, 1]] == seznam:
# seznam je veljaven
nekdo321 ::
Kako bi pa naredil tole: x je na začetku 1 potem bi naredil x%10 in potem še x/10 in to zapisal v seznam. Potem bi x povečal za ena in spet naredil x%10 in potem še x/10 in to zapisal v nov seznam... Vsak x bi imel svoj seznam. x bi se večal do 1000000000. Printal bi pa samo tiste sezname kjer: if 2 not in seznam and 3 not in seznam and 4 not in seznam and 5 not in seznam and 6 not in seznam and 7 not in seznam and 8 not in seznam and 9 not in seznam.
Nekajv tem smislu samo ne vem kako naj za vsak x naredim nov seznam in potem x povečam za 1
# -*- coding: cp1250 -*-
x =1
seznam = [0,0,0,0,0,0,0,0,0,0]
while x < 1000000000:
....ostanek = x%10
....x = x/10
....seznam[ostanek]= seznam[ostanek]+1
if 2 not in seznam and 3 not in seznam and 4 not in seznam and 5 not in seznam and 6 not in seznam and 7 not in seznam and 8 not in seznam and 9 not in seznam:
....print seznam
print x
Nekajv tem smislu samo ne vem kako naj za vsak x naredim nov seznam in potem x povečam za 1
# -*- coding: cp1250 -*-
x =1
seznam = [0,0,0,0,0,0,0,0,0,0]
while x < 1000000000:
....ostanek = x%10
....x = x/10
....seznam[ostanek]= seznam[ostanek]+1
if 2 not in seznam and 3 not in seznam and 4 not in seznam and 5 not in seznam and 6 not in seznam and 7 not in seznam and 8 not in seznam and 9 not in seznam:
....print seznam
print x
Zgodovina sprememb…
- spremenilo: nekdo321 ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | python-rabim pomočOddelek: Programiranje | 2776 (1006) | rnla1973 |
» | Python - pomoč (strani: 1 2 3 )Oddelek: Programiranje | 18047 (8795) | black ice |
» | program za delo s polinomi v C#Oddelek: Programiranje | 1892 (1130) | majster123 |
» | Naloga iz Putka - UPMOddelek: Programiranje | 2217 (1553) | NejcSSD |
» | Python - pomoč!Oddelek: Programiranje | 1207 (1043) | lknix |