Girdinin içindeki yeri nasıl tespit ederim

Merhaba, aklıma bir şey takıldı ve nasıl yapacağımı bir türlü bulamadım. Sorumu örnekle açıklamak istiyorum.

Kullanıcı program çalışınca input() aracılığı ile “site/1/elbiseler/1/mavi” gibi bir link girecek. Ben linkteki ikinci sıradaki 1 ifadesini for döngüsüne sokup 1000’e kadar işlemek istiyorum ama nasıl yapacağımı bulamadım.

Python da girdi de özel alan belirtme var mı? Mesela “site/1/elbiseler/1/mavi” yerine kullanıcı “site/1/elbiseler/$1$/mavi” girsin bende programa $$ arasında yer alan yeri kullanayım. Böyle br şey var mı?

Stringlerin index metodundan yararlanabilirsiniz

#a'nın inputtan gelen değer olduğunu varsayın.
print(a.index("1"))

Buradan dönecek olan değer size 1’in yerini verecektir.
Bu metot ile 1’e erişebilirsiniz ve sonrasında kurmak istediğiniz Döngülerde kullanabilirsiniz.

Hocam soruyu yeniden düzenledim daha anlaşılır yaptım. Verdiğiniz cevap konu ile ilgisizdi.

Evet var:

1 Beğeni
response = input("Link :")
target = response.index('1', response.index('1') + 1)
for i in range(1, 100+1):
    print(response[:target], i, response[target + 1:], sep="")

Çıktı :

site/1/elbiseler/1/mavi
site/1/elbiseler/2/mavi
site/1/elbiseler/3/mavi
site/1/elbiseler/4/mavi
site/1/elbiseler/5/mavi
site/1/elbiseler/6/mavi
site/1/elbiseler/7/mavi
site/1/elbiseler/8/mavi
site/1/elbiseler/9/mavi
site/1/elbiseler/10/mavi
site/1/elbiseler/11/mavi
site/1/elbiseler/12/mavi
site/1/elbiseler/13/mavi
site/1/elbiseler/14/mavi
site/1/elbiseler/15/mavi
site/1/elbiseler/16/mavi
site/1/elbiseler/17/mavi
site/1/elbiseler/18/mavi
site/1/elbiseler/19/mavi
site/1/elbiseler/20/mavi
site/1/elbiseler/21/mavi
site/1/elbiseler/22/mavi
site/1/elbiseler/23/mavi
site/1/elbiseler/24/mavi
site/1/elbiseler/25/mavi
site/1/elbiseler/26/mavi
site/1/elbiseler/27/mavi
site/1/elbiseler/28/mavi
site/1/elbiseler/29/mavi
site/1/elbiseler/30/mavi
site/1/elbiseler/31/mavi
site/1/elbiseler/32/mavi
site/1/elbiseler/33/mavi
site/1/elbiseler/34/mavi
site/1/elbiseler/35/mavi
site/1/elbiseler/36/mavi
site/1/elbiseler/37/mavi
site/1/elbiseler/38/mavi
site/1/elbiseler/39/mavi
site/1/elbiseler/40/mavi
site/1/elbiseler/41/mavi
site/1/elbiseler/42/mavi
site/1/elbiseler/43/mavi
site/1/elbiseler/44/mavi
site/1/elbiseler/45/mavi
site/1/elbiseler/46/mavi
site/1/elbiseler/47/mavi
site/1/elbiseler/48/mavi
site/1/elbiseler/49/mavi
site/1/elbiseler/50/mavi
site/1/elbiseler/51/mavi
site/1/elbiseler/52/mavi
site/1/elbiseler/53/mavi
site/1/elbiseler/54/mavi
site/1/elbiseler/55/mavi
site/1/elbiseler/56/mavi
site/1/elbiseler/57/mavi
site/1/elbiseler/58/mavi
site/1/elbiseler/59/mavi
site/1/elbiseler/60/mavi
site/1/elbiseler/61/mavi
site/1/elbiseler/62/mavi
site/1/elbiseler/63/mavi
site/1/elbiseler/64/mavi
site/1/elbiseler/65/mavi
site/1/elbiseler/66/mavi
site/1/elbiseler/67/mavi
site/1/elbiseler/68/mavi
site/1/elbiseler/69/mavi
site/1/elbiseler/70/mavi
site/1/elbiseler/71/mavi
site/1/elbiseler/72/mavi
site/1/elbiseler/73/mavi
site/1/elbiseler/74/mavi
site/1/elbiseler/75/mavi
site/1/elbiseler/76/mavi
site/1/elbiseler/77/mavi
site/1/elbiseler/78/mavi
site/1/elbiseler/79/mavi
site/1/elbiseler/80/mavi
site/1/elbiseler/81/mavi
site/1/elbiseler/82/mavi
site/1/elbiseler/83/mavi
site/1/elbiseler/84/mavi
site/1/elbiseler/85/mavi
site/1/elbiseler/86/mavi
site/1/elbiseler/87/mavi
site/1/elbiseler/88/mavi
site/1/elbiseler/89/mavi
site/1/elbiseler/90/mavi
site/1/elbiseler/91/mavi
site/1/elbiseler/92/mavi
site/1/elbiseler/93/mavi
site/1/elbiseler/94/mavi
site/1/elbiseler/95/mavi
site/1/elbiseler/96/mavi
site/1/elbiseler/97/mavi
site/1/elbiseler/98/mavi
site/1/elbiseler/99/mavi
site/1/elbiseler/100/mavi

Böyle bir çıktı aramıyor musunuz ? Bu gönderimin en başında sizden alıntıladığım yerden bunu anladım.

2 Beğeni

aynen buydu istediğim hocam teşekkür ederim

1 Beğeni
target = response.rindex('1')
2 Beğeni

hocam şu an deniyorum verdiğiniz şekilde işe yarıyor. Her şey güzel fakat sorun şu 1 yerine farklı bir şey olsa ne olacak.
Benim istediğim girdi de artırılmak istenen yerin kullanıcı tarafından belirtilmesi, program da bu yeri işleyecek. Mesela site.com/1/1/elbiseler olan siteyi site.com/$1$/1/elbiseler olarak girsin programımda anlasın ki kullanıcının odaklandığı yer $ işareti içinde yer alan “1” ifadesi.

Demek istediğinizi anlayamadım.
site.com/$1$/1/elbiseler böyle bir şey girilirse çalışmayacağını mı düşünüyorsunuz? Eğer öyleyse yanılıyorsunuz.
Bu kodlar ile her türlü benzer çıktıları alırsınız. Sadece stringde iki tane 1in bulunması lazım. Bu kadar.
Mesela 1 1 yazsanız bile ikinci yazılan 1 döngüye alınıp arttırılır yine.

Hocam kullanıcı 1 yerine 2,3 veya “a” girerse çalışmaz program. Ben kullanıcının istediği yeri girdiği zaman özel karakterler arasında girmesini istiyorum. Programım da anlayacak o girdi alanını. Mesela kulalnıcı site/a/b/1 olan orjinal linki girmek yerine site/a/$b$/1 girecek benim programım da işlenecek yerin b olduğunu anlayacak. site/a/b/$1$ girerse programım 1 ifadesini işleyecek.

Kullanıcının o şekilde girmesini garantilerseniz regex kullanabilirsiniz:

# Regular Expression modülü var Python ile gelen
import re

# kullanıcı girdisi ve aranan örüntü
user_inp = "site.com/$74$/1/elbiseler"
pattern = r"/\$(\w+)\$/"

# arama sonucu
result = re.search(pattern, user_inp)

# eşleşme yoksa None döner, varsa None dönmez
if result is not None:
    girdinin_icindeki_sey = result.group(1)
    print(girdinin_icindeki_sey)

Bu regex ne yapıyor:
regex101: build, test, and debug regex

Python’daki modülün dokümantasyonu: re — Regular expression operations — Python 3.12.1 documentation

2 Beğeni

haklısnız hocam regex ile yapabilirim hiç düşünemedim teşekkür ederim.