lostyazilim
tr.link

python belirli sayılar arasında rastgele sayı

4 Mesajlar 3.187 Okunma
lstbozum
tr.link

umuterdal umuterdal WM Aracı Kullanıcı
  • Üyelik 20.12.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek SEO & Web Dev.
  • Konum Ankara
  • Ad Soyad U** İ**
  • Mesajlar 369
  • Beğeniler 41 / 128
  • Ticaret 8, (%100)
merhabalar pythonda sayısal loto oynatan program için uğraşıyorum ancak 1-49 arasında rastgele sayı seçiyor 6 tane onun kodu şu

import random

def lottery():
# returns 6 numbers between 1 and 49
for i in range(6):
yield random.randint(1,49)

for random_number in lottery():
print((random_number))

ben istiyorum ki mesela benim yazdığım 20 tane rakamın arasından seçsin onu nasıl yapabilirim ?
 

 

wmaraci
reklam

hashereta hashereta Python Programlama Kullanıcı
  • Üyelik 18.12.2016
  • Yaş/Cinsiyet 41 / E
  • Meslek python pro webmaster yapay zek
  • Konum Van
  • Ad Soyad H** A**
  • Mesajlar 68
  • Beğeniler 16 / 7
  • Ticaret 5, (%100)
"""
Sayısal Loto
"""

#!/usr/bin/env python
#-*- coding:utf-8-*-
from Tkinter import* #python 3,5 ve üzeri V kullanıyorsan Tkinter'i Küçük harfle yaz tkinter olarak
import random
pencere=Tk()
pencere.title("Sayısal Loto...") #pencere başlığı
pencere.geometry("400x100+60+200")#pencerenin boyutu
pencere.resizable(width=FALSE,height=FALSE)#pencerenin boyutlanmasını engeller

class Cekilis(object):
def __init__(self):
self.araclar()

def araclar(self):
self.buton=Button(text="Çekiliş",command=self.kodlar)
self.buton.pack()
self.etiket=Label(text="RastGele...",fg="blue",font="Comic 15 bold")
self.etiket.pack()
def kodlar(self):
liste=[]
while len(liste)!=6: #kaçtane sayı yazmasını istiyorsan
a=random.randint(1,49) #hangi sayılar arasında olmasını istiyorsan
if a not in liste:
liste.append(a)
self.etiket["text"]=liste


uyg=Cekilis()
mainloop()#döngü yapak pencerenin
#devamlı olarak ekranda kalmasını sağlıyor
"""
mainloop() komutu yazılmaz ise
program yine calısır ama pencereyi ekranda göremeyiz.
"""
 

 

En İleri Karmaşıklık Sadeliktir......

creed74 creed74 WM Aracı Kullanıcı
  • Üyelik 30.06.2016
  • Yaş/Cinsiyet 50 / E
  • Meslek Yazılım
  • Konum İstanbul Anadolu
  • Ad Soyad Y** T**
  • Mesajlar 977
  • Beğeniler 33 / 388
  • Ticaret 45, (%100)

hashereta adlı üyeden alıntı

"""
Sayısal Loto
"""

#!/usr/bin/env python
#-*- coding:utf-8-*-
from Tkinter import* #python 3,5 ve üzeri V kullanıyorsan Tkinter'i Küçük harfle yaz tkinter olarak
import random
pencere=Tk()
pencere.title("Sayısal Loto...") #pencere başlığı
pencere.geometry("400x100+60+200")#pencerenin boyutu
pencere.resizable(width=FALSE,height=FALSE)#pencerenin boyutlanmasını engeller

class Cekilis(object):
def __init__(self):
self.araclar()

def araclar(self):
self.buton=Button(text="Çekiliş",command=self.kodlar)
self.buton.pack()
self.etiket=Label(text="RastGele...",fg="blue",font="Comic 15 bold")
self.etiket.pack()
def kodlar(self):
liste=[]
while len(liste)!=6: #kaçtane sayı yazmasını istiyorsan
a=random.randint(1,49) #hangi sayılar arasında olmasını istiyorsan
if a not in liste:
liste.append(a)
self.etiket["text"]=liste


uyg=Cekilis()
mainloop()#döngü yapak pencerenin
#devamlı olarak ekranda kalmasını sağlıyor
"""
mainloop() komutu yazılmaz ise
program yine calısır ama pencereyi ekranda göremeyiz.
"""


Yukarıdaki kodlar istediğiniz çözümü sağlamaz, yukarıda da 1 ile 49 arası rastgele 6 değer alınıyor. Arkadaş "kendi belirlediğim rakamlar arasından çeksin" demiş.. Dolayısıyla önce içinde istediğiniz rakamların olduğu bir liste oluşturmanız gerekir;

sayilar = ['15', '20', '30', '50', '80']

Bu listeden rastgele bir değer çekmek için choice fonksiyonunu random ile kullanabilirsiniz, örneğin;

random.choice(sayilar)


Birden fazla rastgele değer çekmek için ise sample fonksiyonunu randomla kullanabilirsiniz, örneğin;

random.sample(sayilar, 3)

sayilar dizisinden rastgele 3 adet değer çeker...
hashereta

kişi bu mesajı beğendi.

fmdogancan fmdogancan WM Aracı Kullanıcı
  • Üyelik 22.09.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek Yazılım
  • Konum İstanbul Avrupa
  • Ad Soyad F** D**
  • Mesajlar 46
  • Beğeniler 6 / 10
  • Ticaret 0, (%0)
Python 2.x


#-*- coding: utf-8 -*-

import random

def lottery(sayilar):
yield random.sample(sayilar,6)

sayilar = list()

for i in range(20):
sayi = int(raw_input("{}.Sayıyı girin: ".format(i+1)))
if sayi <= 49:
sayilar.append(sayi)

for rnd_no in lottery(sayilar):
print rnd_no
 

 

Github: https://github.com/fatihmert | CV: http://fatihmert.dev/        
wmaraci
wmaraci
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al