Python代码运行失败

问题遇到的现象和发生背景

运行书上的代码出现错误

问题相关代码,请勿粘贴截图
from PIL import Image
ascii_char = list('0,1')
def get_char(r,g,b,alpha=256):
    if alpha == 0:
        return ' '
    gray=int(0.2126*r+0.7152*g+0.0722*b)
    unit=256 / len(ascii_char)
    return ascii_char [gray//unit]
def main():
    im=Image.open("D:\\sunset.jpg")
    WIDTH,HEIGHT=100,60
    im=im.resize((WIDTH,HEIGHT))
    txt = ""
    for i in range(HEIGHT):
        for j in range(WIDTH):
            txt += get_char(*im.getpixel((j,i)))
        txt += '\n'
    fo = open("pic_char.txt","w")
    fo.write(txt)
    fo.close()
main()


运行结果及报错内容

Traceback (most recent call last):
  File "D:\DesignWork\venv\Scripts\CharImage.py", line 21, in <module>
    main()
  File "D:\DesignWork\venv\Scripts\CharImage.py", line 16, in main
    txt += get_char(*im.getpixel((j,i)))
  File "D:\DesignWork\venv\Scripts\CharImage.py", line 8, in get_char
    return ascii_char [gray//unit]
TypeError: list indices must be integers or slices, not float


我的解答思路和尝试过的方法
我想要达到的结果

第七行改成
unit=int(256 / len(ascii_char))