Problema com uma função, ME AJUDEM!

2 respostas
H

Bom dia! Boa tarde! Boa noite! Não sei como começar, então obrigado por ajudar.
Código a baixo:

def sortudo(x):
return “2” in str(x) and “7” not in str(x)

A funçao retorna True se o numero tiver o digito 2 e não tiver o digito 7, ela funciona, mas quando e dou o seguint comando no IDLE:

len ([ x for x in range(18644,3308) if sortudo(x) ])

O retorno da 0

Isso é um exercício do google developer day 2010, ficaria agradecido se alguem me dissese qual o problema.

(Eu comecei a estudar pelo Python para zumbis a duas semanas, então nao sei quase nada)

2 Respostas

O

quando você usa a função range, está usando um valor inicial superior ao final, retornando um array vazio, pois não existem valores maiores que 18644 menores que 3308.
https://docs.python.org/2/library/functions.html#range
a correta utilização dessa função é : range(start, stop)

Juacy_Willian

eu acho que o problema não é esse, pois o range quando usado dessa forma ele vai decrementando o indice!!

isso mesmo, para decrementaro indice do range, é preciso passar o valor do incremento como negativo no terceiro paramentro do range.

range(inicio[, fim[, incremento]])

se o incremento for negativo ele decrementa

Criado 3 de abril de 2016
Ultima resposta 5 de mai. de 2016
Respostas 2
Participantes 3