Liste fonksiyonda eleman ekleme sorunu

Hepinize merhaba arkadaşlar .Bir liste oluşturup içine rastgele sayılar gönderim bu sayıların içinde olup olmadığını kontrol eden bir kod yazdım fakat kod ya listeye kaydetmiyor ya da retur yapınca fonksiyon bitiyor

import time as tm
import random

liste = []
while True:
    n = random.randint(0,500)
    tm.sleep(2)
    if n in liste:
        print("listede var")
    else:
        liste.append(n)
        

Bu kodu naparsam hem fonksiyondan çıkmaz hem listeye değer ekleyebilirim ?

n değişkeni döngünün dışına çıkar

n = random.randint(0,500)
1 Beğeni
return n 

yaptığımda döngü duruyor
ben durmamasını istiyorum
bu arada yanlış yazmışım while üstünde

def liste():

olması gerekiyor

Evet, return deyimi fonksiyonu bitirir.

Bir fonksiyona liste gibi davranamazsınız. Hem fonksiyonunuzun hem de listenizin adı liste. Sonuç olarak ortada bir liste kalmıyor.

1 Beğeni

Şöyle bir şey denedim.Belki işini görür

import time as tm
import random

def Liste():
	liste = []
	while True:
		tm.sleep(2)
		x = random.randint(1,10)
		if(x in liste):
			print(x,"listede var ")
			print("\n")
			
		else:
			print(x,"Elemanı listede yok")
			liste.append(x)
			print("listeye eklendi")
			print("\n")
        
Liste()

Biraz gec cevap verdim ufak bir işim çıktı.

1 Beğeni

yaptığımın bir faydası olmaz else dışına atıp fonksiyonun tekrar başlaması gerekiyor

peki ya return yapıp şunu yapsam olurmu ?

while True:
liste()
tm.sleep(4)

Verdiğiniz koddan bir şey anlayamadım.

def Örnek():
       liste = []
       n = random.randint(0,500)
       if (n in liste):
              print("Devam et")
              contiune
      else:
            liste.append(n)
           return liste

while True:
      örnek()

Döngü ne zaman duracak?

Durmasını istemiyorum sadece aynı sayıları listenin içine eklemesin yeter
time.sleep(10) yaparım

Buna gerek yok zaten else var.


Bir süre sonra ekleyecek bir şey kalmayacak:

Sizin kodla ilgili bir fikriniz varmı ?

Attığınız kodda ne yapmak istediğinizi bilmediğim için bir şey diyemem, ama şöyle bir kod yazdım:

import random

def listeyi_doldur(l, başlangıç, bitiş):
    sayaç = 0
    ilk_uzunluk = len(l)
    while len(l) - ilk_uzunluk < bitiş - başlangıç + 1:
        sayı = random.randint(başlangıç, bitiş)
        if sayı in l:
            sayaç += 1
        else:
            l.append(sayı)
    return sayaç


l = []
s = listeyi_doldur(l, 0, 500)
print(s, "deneme sonrasında liste dolduruldu:")
print(l)

2 Beğeni

@EkremDincel
Kodunuzu While döngüsü içine aldım ve işmi gördü teşekkür ederim