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)
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)
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