帮我把下面的代码改正确 start = [] if find_mail == find[0]: pinyin = gui.enterbox('请输入联系人姓氏拼音开头字母(大小写都行)', '姓氏拼音开头字母查找') if pinyin == None: continue if len(pinyin) == 0 or len(pinyin) > 1: error = gui.msgbox('请输入正确格式!\n\n例:\n\t小明: "x" 或者"X"', '格式错误', ok_button='知道了') continue for i in range(len(mail)): if mail[i][2] == pinyin: start.append(mail[i][:2]) else: if mail[i][2].upper == pinyin: start.append(mail[i][:2]) if len(start) == 0: error = gui.msgbox('该联系人不存在\n请重新输入', '联系人不存在') continue finish = '' for i in range(len(start)): finish += '联系人{} 姓名: {} 电话号码: {} 联系人地址: {}'.format(i + 1, start[i][0], start[i][1]) finish += '\n' out = gui.msgbox('在"{}"的拼音开头中有{}个联系人:\n\n{}'.format(pinyin, len(start), finish), '查找完成', ok_button='好的')
时间: 2024-01-22 15:04:10 浏览: 128
改正后的代码如下:
```python
start = []
if find_mail == find[0]:
pinyin = gui.enterbox('请输入联系人姓氏拼音开头字母(大小写都行)', '姓氏拼音开头字母查找')
if pinyin is None:
continue
if len(pinyin) != 1:
error = gui.msgbox('请输入正确格式!\n\n例:\n\t小明: "x" 或者"X"', '格式错误', ok_button='知道了')
continue
for i in range(len(mail)):
if mail[i][2].startswith(pinyin.lower()):
start.append(mail[i][:2])
elif mail[i][2].startswith(pinyin.upper()):
start.append(mail[i][:2])
if len(start) == 0:
error = gui.msgbox('该联系人不存在\n请重新输入', '联系人不存在')
continue
finish = ''
for i in range(len(start)):
finish += '联系人{} 姓名: {} 电话号码: {} 联系人地址: {}\n'.format(i + 1, start[i][0], start[i][1], start[i][2])
out = gui.msgbox('在"{}"的拼音开头中有{}个联系人:\n\n{}'.format(pinyin, len(start), finish), '查找完成', ok_button='好的')
```
改正点如下:
1. `len(pinyin) == 0 or len(pinyin) > 1` 改为 `len(pinyin) != 1`,因为只需要输入一个字母。
2. `mail[i][2].upper == pinyin` 改为 `mail[i][2].startswith(pinyin.upper())`,因为需要判断拼音是否以输入的字母开头。
3. `finish += '\n'` 添加换行符,使结果更易读。
阅读全文