我不知道为什么我不能在我的代码上编辑数组

时间:2019-06-25 02:43:57

标签: python

这是我的代码功能代码

def edit():
    i()
    indeks = input(" masukan hobi ke :")
    if int(indeks)>len(hobi):
        print("data tidak ada ")
    elif int (indeks) <= len(hobi):
        hobibaru=input("hobi baru :)
        hobi[indeks]=hobibaru

这是我的错误通讯

  

回溯(最近通话最近):文件   “ C:\ Users \ murtadho \ AppData \ Local \ Programs \ Python \ Python37 \ x.py”,行   74,在       show_menu()文件“ C:\ Users \ murtadho \ AppData \ Local \ Programs \ Python \ Python37 \ x.py”,行   62,在show_menu中       edit_data()文件“ C:\ Users \ murtadho \ AppData \ Local \ Programs \ Python \ Python37 \ x.py”,行   33,在edit_data中       buku [indeks] = judul_baru TypeError:列表索引必须是整数或切片,而不是str

3 个答案:

答案 0 :(得分:2)

IIUC尝试:

def edit():
    i()
    indeks = input(" masukan hobi ke :")
    if int(indeks)>len(hobi):
        print("data tidak ada ")
    elif int (indeks) <= len(hobi):
        hobibaru=input("hobi baru :")
        hobi[int(indeks)]=hobibaru

我不能保证它会工作,但是听起来合理,我希望它能工作。

答案 1 :(得分:0)

似乎有几个问题:

您正在获取输入,并尝试将其转换为int类型。虽然您可以肯定它是整数,但是如果插入字符串,则可能会导致问题。

def edit():
    i()
    indeks = input(" masukan hobi ke :")
    try:
        indeks = int(indeks)
    except:
        break
    if indeks >len(hobi):
        print("data tidak ada ")
    elif indeks <= len(hobi):
        hobibaru=input("hobi baru :")
        hobi[indeks]=hobibaru

答案 2 :(得分:0)

我建议您在使用indeks之前将输入int返回到list

def edit():
    i()
    indeks = int(input(" masukan hobi ke :"))
    if indeks>len(hobi):
        print("data tidak ada ")
    elif indeks <= len(hobi):
        hobibaru=input("hobi baru :)
        hobi[indeks]=hobibaru