Soru random sıralama

#1

bir txt dosyasında her satırda bir kelime var yaklaşık 100 satırlık
ahmet
mehmet
ayşe
kemal



şeklinde

yazılım bunları 6 şarlı gurplar halinde başka bir txt dosyasına random karıştırıp satır satır atmak istiyor yani çıktı

ayşe ahmet … … … …
mehmet ayşe … … … …


Bunu nasıl yazarız?

#2

Buradaki uc noktalar ne anlama geliyor? Tek satira 6 tane kelime yazmaya mi usendin?

open, random ve print ile.

#3

bişeyler yazmak için yazmak ne kadar saçma birşey…boş bişe yazdın ne oldu neticen tavanamı erdi… yardımcı olacaksan yaz… alay etmek kötü bişedir bilmiyoruz soruyoruz…

#4

Herhalde gece olmasından dolayı ama aklıma bu kadarı geldi.

import random
c = []

for line in open("yazbelicin.txt").readlines(): # burada 18 tane kelime var
    line_1 = line.strip()
    c.append(line_1) # kelimeleri listeme ekliyorum.

c_1 = open("emrelalal.txt","w") # dosyayı yazacağım için w da açıyorum
l = 0
random.shuffle(c) # kelimeleri karıştırıyorum.
for m in c: # m ye karışmış olan kelimeleri alıyorum
    c_1.write(m + " ") # aralarında boşluk olacak şekilde kelimeleri ekliyorum
    l += 1 # l yi bir arttırıyorum.
    if l == 6: # burada ise 6 olduğu zaman 6 kelime olduğu zaman l yi tekrar 0 yapıp bir boşluk bırakıyorum burada l yi 0 yapmamın sebebi zaten kaç kelime varsa o kadar devam edecektir her 6 olduğunda bir boşluk ekleyecek.
        l = 0
        c_1.write("\n")

çıktıya göz atalım iki defa çalıştırıyorum ilk çıktı.

yazbel6 yazbel5 yazbel13 yazbel8 yazbel7 yazbel18 
yazbel2 yazbel3 yazbel10 yazbel9 yazbel1 yazbel16 
yazbel15 yazbel17 yazbel4 yazbel12 yazbel11 yazbel14

ikinci çıktı;

yazbel16 yazbel11 yazbel8 yazbel13 yazbel2 yazbel5 
yazbel18 yazbel12 yazbel10 yazbel9 yazbel3 yazbel15 
yazbel7 yazbel4 yazbel6 yazbel14 yazbel1 yazbel17

Eğer 18 kelime olmasaydıda 20 kelime olsaydı yine en son satıra 2 sini yan yana yazardı 6 olduğu zaman yine yeni satıra geçerdi

#5

teşekkürler ayrıntılı cevabın için hocam, belli bir miktar üretiyor bunu yazılım açık kaldığı sürece üretmesini ve yazdırmasını nasıl sağlarız…

bu kodla her kelimeyi bir defa kullanıp 6 tane oluşturup programı sonlandırıyor… oluşturulan toplam satır sayısı kelime / 6 oluyor… istenilen tüm kelimeleri içinden 6 tanesini random seçip yazılım sonlandırılana kadar bu işleme devam etmesi…teşekkürler

#6

Döngüye alarak bunu sağlıyabilirsiniz klavyeyi dinleyerek q tuşuna bastığınızda ise programın durdurulmasını sağlıyabilirsiniz zor değil kendiniz yapabilirsiniz buradan sonra artık yemi verdim siz tutun :slight_smile:

#7

Soruda “6 sarli gruplar” demissin, ornek olarak da 2’li grup vermissin; hakikaten 4 tane daha isim yazmaya mi usendigini yoksa kendini ifade mi edemedigini sordum. (Bu forumda ikisini de goruyoruz.) Hala cevap vermedin.

Her halukarda kullanman gereken fonksiyonlarin resmi dokumentasyonuna referans vermek ne bos ne de alay. Kodun tamamini yazmaya usendim…

#8

" hakikaten 4 tane daha isim yazmaya mi usendigini yoksa kendini ifade mi edemedigini sordum "

ikiside değil sadece bir kısaltma anlaşılacağını düşündüğüm devamının da bu şekilde geleceği vs şeklinde bir ifade tabi ben foruma yeni katıldığım için anlayış eksikliği olan arkadaşların varlığından bir haberdim. bunun için özür dilerim… soruyu tekrarlıyorum…

bir txt dosyasında her satırda bir kelime var yaklaşık 100 satırlık
ahmet
mehmet
ayşe
kemal
ömer
zeynep
aslı
buğra

şeklinde

yazılım bunları 6 şarlı gurplar halinde başka bir txt dosyasına random karıştırıp satır satır atmak istiyor yani çıktı

ayşe ahmet ali kemal buğra ömer
mehmet ayşe buğra kemal ömer ali
zeynep ahmet aslı ali ömer buğra
ömer kemal buğra zeynep hatice

Bunu nasıl yazarız?

#9

Kabaca algoritma:

  • bir txt dosyasini ac, icinden isimleri bir isim_havuzu listesine/array’ine oku
  • sonsuza kadar veya N kere:
    • 6 kere:
      • ismi yazdir, ardindan bosluk yazdir
    • satiri bitir / \n yazdir

Basit bir ornegi de yazilmis yukarida.

1 Like