Çözüldü "String index out of range" hatası

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
18 Ağustos 2018
Mesajlar
6.342
Makaleler
4
Çözümler
40
Yer
Denizli
Kod:
import random
LANG="UTF-8"


kanji=["上","下","大","工","八","入"]
meaning=["above","below","big","construction","eight","enter"]
on=["じょう","か","だい","こう","はち","にゅう"]
kun=["うえ","した","おお","nan","や","はい"]


for index, kanji in enumerate(kanji, start=0):
  print(index, kanji)

randint = (random.randint(0, 5))
 
randomkanji=kanji[randint]
print(randomkanji)

kanjimeaning=meaning[randint]
print(kanjimeaning)

kanjion=on[randint]
print(kanjion)

kanjikun=kun[randint]
print(kanjikun)

Merhabalar Python öğrenmeye daha doğrusu yazılım öğrenmeye yeni yeni başladım. Bu tarz bir şey yazdım ancak "string index out of range" hatası alıyorum. Kendim çözmeye çalıştım, İngilizce veya Türkçe olarak araştırdım birçok yol denedim ancak işe yaramadı. Nerede yanlış yaptım da bu hatayı aldım yardımcı olabilir misiniz?
 
Çözüm
11.satırda "Kanji" dizisini listelerken "index" ve "Kanji" olarak listeliyorsun, burada sorun "Kanji" olarak zaten liste tanımlı olmasına rağmen tekrar aynı "Kanji" isminde listelenmiş objeyi adlandırıyorsun ve 16.satırda kullanmaya çalıştığın "Kanji" değeri liste değil sıralamada son aldığı liste objesi olduğu için tek karakterli objede +0 index değeri almaya çalıştığından bu hatayı veriyor.

Kısaca "index, Kanji" kısmındaki isimlendirmeyi düzenlersen sorun çözülür.
Kod:
import random
LANG="UTF-8"


kanji=["上","下","大","工","八","入"]
meaning=["above","below","big","construction","eight","enter"]
on=["じょう","か","だい","こう","はち","にゅう"]
kun=["うえ","した","おお","nan","や","はい"]


for index, kanji in enumerate(kanji, start=0):
  print(index, kanji)

randint = (random.randint(0, 5))
 
randomkanji=kanji[randint]
print(randomkanji)

kanjimeaning=meaning[randint]
print(kanjimeaning)

kanjion=on[randint]
print(kanjion)

kanjikun=kun[randint]
print(kanjikun)

Merhabalar Python öğrenmeye daha doğrusu yazılım öğrenmeye yeni yeni başladım. Bu tarz bir şey yazdım ancak "string index out of range" hatası alıyorum. Kendim çözmeye çalıştım, İngilizce veya Türkçe olarak araştırdım birçok yol denedim ancak işe yaramadı. Nerede yanlış yaptım da bu hatayı aldım yardımcı olabilir misiniz?
Hangi satirda aliyorsun bu hatayi?
 
11.satırda "Kanji" dizisini listelerken "index" ve "Kanji" olarak listeliyorsun, burada sorun "Kanji" olarak zaten liste tanımlı olmasına rağmen tekrar aynı "Kanji" isminde listelenmiş objeyi adlandırıyorsun ve 16.satırda kullanmaya çalıştığın "Kanji" değeri liste değil sıralamada son aldığı liste objesi olduğu için tek karakterli objede +0 index değeri almaya çalıştığından bu hatayı veriyor.

Kısaca "index, Kanji" kısmındaki isimlendirmeyi düzenlersen sorun çözülür.
 
Çözüm
Kod:
import random
LANG="UTF-8"


kanji=["上","下","大","工","八","入"]
meaning=["above","below","big","construction","eight","enter"]
on=["じょう","か","だい","こう","はち","にゅう"]
kun=["うえ","した","おお","nan","や","はい"]


for index, kanji in enumerate(kanji, start=0):
  print(index, kanji)

randint = (random.randint(0, 5))
 
randomkanji=kanji[randint]
print(randomkanji)

kanjimeaning=meaning[randint]
print(kanjimeaning)

kanjion=on[randint]
print(kanjion)

kanjikun=kun[randint]
print(kanjikun)

Merhabalar Python öğrenmeye daha doğrusu yazılım öğrenmeye yeni yeni başladım. Bu tarz bir şey yazdım ancak "string index out of range" hatası alıyorum. Kendim çözmeye çalıştım, İngilizce veya Türkçe olarak araştırdım birçok yol denedim ancak işe yaramadı. Nerede yanlış yaptım da bu hatayı aldım yardımcı olabilir misiniz?
Python:
import random
LANG="UTF-8"


kanji=["上","下","大","工","八","入"]
meaning=["above","below","big","construction","eight","enter"]
on=["じょう","か","だい","こう","はち","にゅう"]
kun=["うえ","した","おお","nan","や","はい"]


for indexKanji in enumerate(kanji, start=0):
  print(indexKanji)

randint = (random.randint(0, 5))
 
randomkanji=kanji[randint]
print(randomkanji)

kanjimeaning=meaning[randint]
print(kanjimeaning)

kanjion=on[randint]
print(kanjion)

kanjikun=kun[randint]
print(kanjikun)
 

Geri
Yukarı