郭.135 2024-03-21 18:41 采纳率: 50%
浏览 0
已结题

编写Linux的shell脚本,在txt文件中查找城市,但是结果总是查找不出来

如图是我的代码和运行结果,目的是在输入一个城市名,在txt文件中查找该城市,输入q退出程序,但是我的只会显示该城市不存在和q退出

img

img


请帮助我解决这个问题🙏

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-21 18:42
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题分析: 根据运行结果来看,程序只能检测到输入的城市名不存在txt文件中,或者输入了q退出程序,这肯定不是我们所期望的。我们需要对程序进行进一步的分析,找出程序存在的问题所在。根据代码我们可以发现,程序的运行逻辑如下:
    1. 首先读取cities.txt文件,将其中的城市名存储在一个名为city的列表中。
    2. 然后进入一个无限循环中,每次循环中都会等待用户输入城市名或者q。
    3. 如果用户输入了q,则退出程序。
    4. 否则,检查输入的城市名是否在city列表中。
    5. 如果在,则输出该城市名;否则,输出“该城市不存在”。 通过对程序运行的理解和上述分析,我们可以发现该程序存在以下几个问题:
    6. 程序只能检查到输入的城市名是否在city列表中,在txt文件中查找是没有做到的。
    7. 循环中没有提示用户输入城市名或者q的信息,缺少界面友好度。
    8. 输出信息匮乏,只输出了输入的城市名不存在或者q退出程序。 解决方案:
    9. 在程序中添加查找txt文件功能,可以使用Python自带的文件打开和读取函数open()和readlines()实现。其他方法也可以,如使用第三方库pandas等。
    10. 在循环中添加提示信息,告诉用户应该输入的信息。
    11. 更好的输出结果,可以根据查找的结果进行输出。比如,如果城市名存在,则输出其对应的信息;如果不存在,则输出“该城市不存在”等信息。 参考代码:
    # 打开txt文件并读取城市名
    with open('cities.txt', encoding='utf-8') as f:
        cities = [city.strip() for city in f.readlines()]
    # 循环,等待用户输入
    while True:
        # 提示用户输入城市名或者q
        input_str = input('请输入城市名或者q退出:').strip()
        # 如果输入了q,则退出程序
        if input_str == 'q':
            print('退出程序!')
            break
        # 查找城市名是否在txt文件中
        if input_str in cities:
            # 在txt文件中查找到了该城市,根据需求输出对应信息
            print('城市名:{}'.format(input_str))
            # 以此类推,添加其他输出信息
        else:
            # 在txt文件中未找到该城市
            print('该城市不存在!')
    

    以上是一种基本解决问题的思路和代码示例。具体实现,根据实际情况进行调整。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月21日
  • 创建了问题 3月21日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见