哪里错了,请大神帮忙看看指点修改下
本帖最后由 lzb1001 于 2022-5-21 22:42 编辑Windows 10(专业版) | Python 3.7.6
----------------------------------
from tkinter import *
import time
root = Tk()
text = Text(root, width=30, height=5)
text.pack()
text.insert(INSERT, 'I love FishC.com!')
def getIndex(text, index):
return tuple(map(int, str.split(text.index(index), '.')))
start = '1.0'
while True:
x = input('请输入想要查找的字母:')
pos = text.search(x, start, stopindex=END)
if not pos:# ???
print('找不到%s哦,请确认后重新输入……' % x)
print('找到啦,%s的位置在(行,列):'% x, getIndex(text, pos))
start = pos + '+1c'
time.sleep(1)
root.title('Text组件Tags用法教学示例')
mainloop()
-----------------------------
运行后搜索不存在的字母如W时,返回如下错误:
请输入想要查找的字母:W
找不到W哦,请确认后重新输入……
Traceback (most recent call last):
File "D:\work\p15_29.py", line 36, in <module>
print('找到啦,%s的位置在(行,列):'% x, getIndex(text, pos))
File "D:\work\p15_29.py", line 25, in getIndex
return tuple(map(int, str.split(text.index(index), '.')))
File "C:\Users\dell\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 3268, in index
return str(self.tk.call(self._w, 'index', index))
_tkinter.TclError: bad text index ""
【我的问题】
问题出在哪里?该如何修改?
我的本意是:当输入不存在的字母时,提示不存在,同时跳出让用户重新输入 在找不到后面添加一个continue或break 本帖最后由 白two 于 2022-5-22 11:10 编辑
加一个 continue, 同时 start 改成 = 1.0(这个可能和编辑器有关, 你自己看着改, 反正我"1.0"是有bug的, 1.0正常运行)
from tkinter import *
import time
root = Tk()
text = Text(root, width=30, height=5)
text.pack()
text.insert(INSERT, 'I love FishC.com!')
def getIndex(text, index):
print(text, index)
return tuple(map(int, str.split(text.index(index), '.')))
start = 1.0
while True:
x = input('请输入想要查找的字母:')
pos = text.search(x, start, stopindex=END)
print(pos)
if not pos:
print('找不到%s哦,请确认后重新输入……' % x)
continue
print('找到啦,%s的位置在(行,列):'% x, getIndex(text, pos))
start = 1.0
time.sleep(1)
root.title('Text组件Tags用法教学示例')
mainloop()
页:
[1]