Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

Problema con programma python

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

Problema con programma python

Messaggioda gigicookie » mer ago 08, 2012 12:31 pm

Stavo cercando di scrivere un programma che dovrebbe prendere x e moltiplicarlo per y, poi prendere il risultato e moltiplicarlo nuovamente per y. Arrivato a un tot di numeri il programma dovrebbe sommarli e stampare il risultato. Solo che il programma dovrebbe andare a salvarli i vari numeri, ciascuno in una variabile con un numero uguale a quello dell' indice del loop per poi poterli sommare. In pratica vorrei ottenere una cosa del genere

Codice: Seleziona tutto
y = int(raw_input("Qual e il valore iniziale?"))
o = raw_input("Come cambiera (piu, per, meno o diviso)")
x = int(raw_input("Di quanto?"))
z = int(raw_input("Per quante volte?"))
i = 0
per = "per"
piu = "piu"
meno = "meno"
diviso = "diviso"
while i <= z:
 if o == per:
  if i == 0:
   r1 = x * y
  else:
   r[numero della variabile i] = r[numero precedente] * y
  if i == z:
   r = r + r[numero precedente] + r[numero del precedente ancora] ecc...
 i = i +i

Come posso fare?
http://www.MegaLab.it/forum/viewtopic.php?f=3&t=52165
Galaxy next turbo+Rom stock 2.3.6+Cor plenus v2.1.7 + S2SD
Nexus 7+Recovery TWRP+Rom stock+MultiROM+Ubuntu 13.04 raring ringtail+Plasma active
Avatar utente
gigicookie
Senior Member
Senior Member
 
Messaggi: 485
Iscritto il: ven apr 06, 2012 6:40 pm

Re: Problema con programma python

Messaggioda Berga95 » ven ago 10, 2012 12:59 pm

Non ho ben capito, come input tu hai X e Y e come output il risultato e basta? Oppure vuoi anche tutti i numeri precedenti?

EDIT:
Codice: Seleziona tutto
N = int(raw_input("Numero volte: "))
x = int(raw_input("Inserisci X: "))
y = int(raw_input("Inserisci Y: "))
num = x
tot = 0
lista_num = []
for i in range(N):
    num*=y
    tot += num
    lista_num.append(num)
print lista_num, num, tot

Intendi così?
Non è morto ciò che in eterno può attendere - e col passare di strani eoni - anche la morte può morire.
~ H.P. Lovecraft
Avatar utente
Berga95
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3342
Iscritto il: sab set 12, 2009 12:56 pm

Re: Problema con programma python

Messaggioda gigicookie » ven ago 10, 2012 4:29 pm

Io come input ho X ed Y e come output il risultato. In pratica il programma deve fare una cosa del genere:
Esempio:

X = 2
Y = 2
N = 8

2*1=2
2*2=4
4*2=8
8*2=16
16*2=32
32*2=64
64*2=128
128*2=256

2+4+8+16+32+64+128+256= 510
http://www.MegaLab.it/forum/viewtopic.php?f=3&t=52165
Galaxy next turbo+Rom stock 2.3.6+Cor plenus v2.1.7 + S2SD
Nexus 7+Recovery TWRP+Rom stock+MultiROM+Ubuntu 13.04 raring ringtail+Plasma active
Avatar utente
gigicookie
Senior Member
Senior Member
 
Messaggi: 485
Iscritto il: ven apr 06, 2012 6:40 pm


Re: Problema con programma python

Messaggioda M@ttia » ven ago 10, 2012 4:58 pm

Scusa se lo chiedo, ma perché vorresti salvare tutti i numeri in una variabile con suo indice e sommarli assieme alla fine? Non puoi più semplicemente sommarli man mano che calcoli? (cioè somma = 0 all'inizio e poi somma = somma + ultimorisultato * Y).
</IE><FIREFOX>
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Re: Problema con programma python

Messaggioda gigicookie » ven ago 10, 2012 5:45 pm

In quel caso i risultati sarebbero errati:
2
4
12
36
108
324
972
2916
8748
26244
78732 (anzichè 510)
http://www.MegaLab.it/forum/viewtopic.php?f=3&t=52165
Galaxy next turbo+Rom stock 2.3.6+Cor plenus v2.1.7 + S2SD
Nexus 7+Recovery TWRP+Rom stock+MultiROM+Ubuntu 13.04 raring ringtail+Plasma active
Avatar utente
gigicookie
Senior Member
Senior Member
 
Messaggi: 485
Iscritto il: ven apr 06, 2012 6:40 pm

Re: Problema con programma python

Messaggioda M@ttia » sab ago 11, 2012 1:19 am

Forse mi sono spiegato male io: assumiamo per semplicità il caso del "per" (moltiplicazione).

Codice: Seleziona tutto
N = int(raw_input("Numero volte: "))
x = int(raw_input("Inserisci X: "))
y = int(raw_input("Inserisci Y: "))

Somma = x
UltimoRisultato = x

for i in range(1,N):
    UltimoRisultato *= y
    Somma += UltimoRisultato

print Somma


Nel tuo esempio con
N = 8
x = 2
y = 2

si hanno come risultati:
i, UltimoRisultato, Somma
------------------------------------
1 4 6
2 8 14
3 16 30
4 32 62
5 64 126
6 128 254
7 256 510

E così facendo lavori sempre e solo con due variabili (UltimoRisultato e Somma), senza salvare N variabili diverse ogni volta per niente... [^]


P.S.
Noto ora che Berga sopra ha fatto praticamente la stessa cosa... [std] Unica cosa è che lui con N=8 intende avere nella sommatoria finale 8 termini, quindi inizializzo tutto con la x (sia il risultato che la somma fanno già x), e poi faccio range(1,N), ovvero da 1 a N-1.
</IE><FIREFOX>
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Re: Problema con programma python

Messaggioda gigicookie » sab ago 11, 2012 8:22 am

Adesso ho capito... [grazie]
http://www.MegaLab.it/forum/viewtopic.php?f=3&t=52165
Galaxy next turbo+Rom stock 2.3.6+Cor plenus v2.1.7 + S2SD
Nexus 7+Recovery TWRP+Rom stock+MultiROM+Ubuntu 13.04 raring ringtail+Plasma active
Avatar utente
gigicookie
Senior Member
Senior Member
 
Messaggi: 485
Iscritto il: ven apr 06, 2012 6:40 pm

Re: Problema con programma python

Messaggioda Berga95 » dom ago 12, 2012 11:24 am

M@ttia ha scritto:P.S.
Noto ora che Berga sopra ha fatto praticamente la stessa cosa... [std] Unica cosa è che lui con N=8 intende avere nella sommatoria finale 8 termini, quindi inizializzo tutto con la x (sia il risultato che la somma fanno già x), e poi faccio range(1,N), ovvero da 1 a N-1.

Sì, esatto, era questo che non mi era chiaro [^] Poi la lista di appoggio l'ho inserita solo per poter visualizzare tutti i passaggi [std]

gigicookie ha scritto:Adesso ho capito... [grazie]

[brindisi]
Non è morto ciò che in eterno può attendere - e col passare di strani eoni - anche la morte può morire.
~ H.P. Lovecraft
Avatar utente
Berga95
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3342
Iscritto il: sab set 12, 2009 12:56 pm

Re: Problema con programma python

Messaggioda gigicookie » mar ago 14, 2012 9:20 am

Ma per le lettere accentate come si fa a scriverle senza python dia errori?
http://www.MegaLab.it/forum/viewtopic.php?f=3&t=52165
Galaxy next turbo+Rom stock 2.3.6+Cor plenus v2.1.7 + S2SD
Nexus 7+Recovery TWRP+Rom stock+MultiROM+Ubuntu 13.04 raring ringtail+Plasma active
Avatar utente
gigicookie
Senior Member
Senior Member
 
Messaggi: 485
Iscritto il: ven apr 06, 2012 6:40 pm

Re: Problema con programma python

Messaggioda Berga95 » mar ago 14, 2012 7:07 pm

Se non sbaglio anteponendo la lettera u alla stringa in questo modo:
Codice: Seleziona tutto
miastringa = u"testo unicode"

E inserendo in testa al file
Codice: Seleziona tutto
# -*- coding: cp1252 -*-

Qual è il testo che ti da problemi? "più"? [^]
(spero che dividano il topic)
Non è morto ciò che in eterno può attendere - e col passare di strani eoni - anche la morte può morire.
~ H.P. Lovecraft
Avatar utente
Berga95
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3342
Iscritto il: sab set 12, 2009 12:56 pm

Re: Problema con programma python

Messaggioda gigicookie » mer ago 15, 2012 8:48 am

Inserendo in testa al file la stringa funziona... prima sembrava che avesse scritto il testo uno che non sa l' italiano... (qual e, cambiera)
http://www.MegaLab.it/forum/viewtopic.php?f=3&t=52165
Galaxy next turbo+Rom stock 2.3.6+Cor plenus v2.1.7 + S2SD
Nexus 7+Recovery TWRP+Rom stock+MultiROM+Ubuntu 13.04 raring ringtail+Plasma active
Avatar utente
gigicookie
Senior Member
Senior Member
 
Messaggi: 485
Iscritto il: ven apr 06, 2012 6:40 pm

Re: Problema con programma python

Messaggioda Berga95 » mer ago 15, 2012 5:45 pm

Bene [std] Che editor usi? IDLE da me lo rileva e inserisce automaticamente [^]
Non è morto ciò che in eterno può attendere - e col passare di strani eoni - anche la morte può morire.
~ H.P. Lovecraft
Avatar utente
Berga95
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3342
Iscritto il: sab set 12, 2009 12:56 pm

Re: Problema con programma python

Messaggioda gigicookie » mer ago 15, 2012 5:47 pm

GNU nano
http://www.MegaLab.it/forum/viewtopic.php?f=3&t=52165
Galaxy next turbo+Rom stock 2.3.6+Cor plenus v2.1.7 + S2SD
Nexus 7+Recovery TWRP+Rom stock+MultiROM+Ubuntu 13.04 raring ringtail+Plasma active
Avatar utente
gigicookie
Senior Member
Senior Member
 
Messaggi: 485
Iscritto il: ven apr 06, 2012 6:40 pm

Re: Problema con programma python

Messaggioda Berga95 » mer ago 15, 2012 6:00 pm

Ok [std] Ma cp1252 non è una codifica Windows? Beh basta che funzioni [:D]
Non è morto ciò che in eterno può attendere - e col passare di strani eoni - anche la morte può morire.
~ H.P. Lovecraft
Avatar utente
Berga95
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3342
Iscritto il: sab set 12, 2009 12:56 pm

Re: Problema con programma python

Messaggioda gigicookie » mer ago 15, 2012 6:06 pm

Idle mi suggerisce di usare
# -*- coding: utf-8 -*-
però va anche con cp1252 [boħ]
http://www.MegaLab.it/forum/viewtopic.php?f=3&t=52165
Galaxy next turbo+Rom stock 2.3.6+Cor plenus v2.1.7 + S2SD
Nexus 7+Recovery TWRP+Rom stock+MultiROM+Ubuntu 13.04 raring ringtail+Plasma active
Avatar utente
gigicookie
Senior Member
Senior Member
 
Messaggi: 485
Iscritto il: ven apr 06, 2012 6:40 pm


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising