[Ajuda] pekenas dúvidas de python

yELLOW23

Power Member
boas pessoal...começaram de novo as aulas e cá estou eu de volta a Python...

é o seguninte eu fiz um programa em Python para calcular o desvio padrão de cinco números aki vai:



agr as dúvidas são:

1º como é k eu posso fazer para k os resultados da média e do desvio padrão forem CASO sejam inteiros para me apresentarem - por ex - 3 em vez de 3.0, e caso seja um número decimal do tipo 1.936598, me apresentar esse resultado arredondado, do tipo 1.94
2º cm é k posso utilizar o ciclo while para fazer com k o programa esteja sempre a repetir? ou seja no final de calcular a média e desvio padrão dos números, pedir de novo para colocar outros números e calcular de novo, e reptir o programa infinitamente? alguém me pode ajudar??

cumps
 
1º como é k eu posso fazer para k os resultados da média e do desvio padrão forem CASO sejam inteiros para me apresentarem - por ex - 3 em vez de 3.0

Tens de fazer um cast do resultado (float) para int, por ex:
Código:
media = int((x1+x2+x3+x4+x5)/5.0)

yELLOW23 disse:
e caso seja um número decimal do tipo 1.936598, me apresentar esse resultado arredondado, do tipo 1.94

Talvez usar uma formatação específica para apresentar os nºs só com 2 casas decimais arredondadas. Googla a ver se existe alguma função que faça isso.

yELLOW23 disse:
2º cm é k posso utilizar o ciclo while para fazer com k o programa esteja sempre a repetir? ou seja no final de calcular a média e desvio padrão dos números, pedir de novo para colocar outros números e calcular de novo, e reptir o programa infinitamente? alguém me pode ajudar??

Em C, isso faz-se assim
Código:
while(1) ........
Agora em Python não sei se isso é possível...
 
Tens de fazer um cast do resultado (float) para int, por ex:
Código:
media = int((x1+x2+x3+x4+x5)/5.0)

Talvez usar uma formatação específica para apresentar os nºs só com 2 casas decimais arredondadas. Googla a ver se existe alguma função que faça isso.



Em C, isso faz-se assim
Código:
while(1) ........
Agora em Python não sei se isso é possível...

boas....

Tens de fazer um cast do resultado (float) para int, por ex:
Código:
media = int((x1+x2+x3+x4+x5)/5.0)
kuanto a isso, já eu sabia mas por exemplo se a média der um número décimal já n apresenta as casas decimais, o k eu keria era uma função/condição k kuando a média fosse um número inteiro apresentasse o número sem kuaiker casa decimais, e SE fosse decimal me apresenta-se por exemplo c 3 casas decimais apenas.....


Em C, isso faz-se assim
Código:
while(1) ........
Agora em Python não sei se isso é possível...

kuanto a isso já resolvi desta maneira:

e desta maneira fica sempre a repetir o programa cm eu kero.....
mas continuo c o probelma dos arredondamentos,etc,etc,etc...

se alguém souber ajudem-me sff

cumpz
 
Podes sempre fazer uma função que leva como parametros o número e parâmetros de arredondamento a que queres arredondar, exemplo em C noob assim à pressa:
nmr teria de ser uma string para fazer isto, pelo menos em C...
Código:
exit = 0;
flag=0;
//casaDecimal = numero de casas decimais
//nmr é o número lol
for (i=0; i<strlen(nmr) && !exit; i++) {
 
    if (nmr[i] == '.') flag = i;
  
       if (flag) {
                       if (i == (flag+casaDecimal+1)) {
                                if (nmr[i] > 4) {
                                      nmr[i-1] = nmr[i-1] + 1;
                                      nmr [i] = '\0'; //termina o resto pois ja ta arredondado
                                      exit = 1;
                                }
                       }
      }
}

Pronto, esta é a minha opinião assim as tres pancadas, depois podes pormenorizar como queiras claro, mas a base será isso, mas é melhor ouvires opinião de quem sabe lol
Abraço e boa sorte ;)
 
Back
Topo