Jump to content

Como eu faço para nao utilizar a função nativa do python Range (dentro do for, if ou while) , pois no exercício não posso usar funções prontas e o tamanho de linhas do losango ao digitar ex: 6 for 5 linhas e não 11 linhas que nem o exemplo ai


CAIOG94

Postagens Recomendadas

image.pngimage.pngimage.png

 

N = int(input("Digite o valor de N:"))

while N<6 or N%2==1 or N>32:

print("O número {} digitado é inválido".format(N))

N = int(input("Digite o valor de N válido:"))

i=1

j=1

while i < N+1:

for j in range(1,N-i+1):

print(" ", end="")

for j in range(1, 2*i):

if j==1 or j==2*i-1:

print("**", end="")

else: print(" ", end="")

i = i + 1

j = j + 1

print()

for i in range(N-1,0, -1):

for j in range(1,N-i+1):

print(" ", end="")

for j in range(1, 2*i):

if j==1 or j==2*i-1:

print("**", end="")

else: print(" ", end="")

i = i + 1

j = j + 1

print()

 

Obs: não posso usar a função range nesse exercicio. Quero tiralo, sem mudar o objetivo do exercício e diminuir a quantidade de números do losango, sendo N=6 ,5 linhas, N=10, 9 linhas @geovaniif

Link to comment
Compartilhe em outros sites

oi!

certo, usar o for com range ou usar um while com um contador vc chega no mesmo resultado, é bem facil não usar o range. A gente usa o range quando sabemos a quantidade de iterações que queremos ter, e geralmente usamos o while quando não sabemos, mas, da pra fazer um if dentro do while pra ele ser interrompido. ex:

todas as forma abaixo contam até 10. Tenta mudar o seu for range pelo while com a condição.

###### usando range #####
for i in range(10):
	print(i)

##### usando while com condição #####
contador = 0
while contador < 10:
	print(contador)
    contador += 1
    
#### usando while com break #######
x = 0
while True:
	if x >= 10:
		break
	print(x)
    x = x + 1
    
#### usando recursividade #####

def funcao_conta_10(numero):
	if numero >= 10:
		return
    print(numero)
    funcao_conta_10(numero+1)

funcao_conta_10(0)

 

 

Link to comment
Compartilhe em outros sites

sobre o numero de linhas no losango, basta alterar a iteração de numero de linhas

while i < N+1: ### <- essa iteração é do numero de linhas
    for j in range(1,N-i+1): ## <- essa é do numero de espaços
        print(" ", end="")
    for j in range(1, 2*i): # <- essa é pra descobrir onde colocar os *
        if j==1 or j==2*i-1:
            print("**", end="")
        else: print(" ", end="")

    i = i + 1
    j = j + 1

    print() # <- esse print sever pra gerar uma linha nova
# logo, podemos ver que ele vai até N+1. Quando N é 6, ele vai até 7. Se vc quer mudar pra ir até 5, bastar fazer N-1 na iterção    

 

Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...