» »

[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?
  • 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).

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

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

morbo ::

if len([x for x in seznam if (x == 0 or x == 1)] < len(seznam):
# seznam ni veljaven

Gandalfar ::

@morbo super resitev :-)

nekdo321 ::

Sem že rešil problem

Zgodovina sprememb…

  • spremenilo: nekdo321 ()

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

Zgodovina sprememb…

  • spremenilo: nekdo321 ()


Vredno ogleda ...

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

python-rabim pomoč

Oddelek: Programiranje
162776 (1006) rnla1973
»

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10318047 (8795) black ice
»

program za delo s polinomi v C#

Oddelek: Programiranje
181892 (1130) majster123
»

Naloga iz Putka - UPM

Oddelek: Programiranje
242217 (1553) NejcSSD
»

Python - pomoč!

Oddelek: Programiranje
71207 (1043) lknix

Več podobnih tem