lxx213 发表于 2021-1-17 22:17:45

新人求助一段python代码问题

这是一段未完成的代码 如下:
while 1:
   

    list = ['apple','b','after','c','add']

    key = input('请输入')

    for each in list:

      if key in each:

            print(each)
         
   
运行结果如下
请输入a
apple
after
add
请输入

需求是 如果列表中的词 含有输入的字符,那么全部打印出,然后跳出循环,如果输入的字符不在列表内所有的词里,那么提示 没有找到输入的关键字,请重新输入关键字。
小白拜谢。

战机智 发表于 2021-1-17 22:35:30

这样可以吗

while 1:
    list = ['apple', 'b', 'after', 'c', 'add']
    flag = True
    key = input('请输入')

    for each in list:
      if key in each:
            print(each)
            flag=False
    if flag:
      print('没有找到输入的关键字,请重新输入关键字')
    else:
      break

jackz007 发表于 2021-1-17 23:25:03

本帖最后由 jackz007 于 2021-1-17 23:30 编辑

      两个问题:
    1、变量名应该尽量避开 Python 关键字、保留字,所以,不要以 list 为变量名;
    2、与循环无关的语句最好拿出循环,以提高代码的运行效率, 列表 lst 的赋值就属于这种情况;
lst = ['apple','b','after','c','add']
c = 0
while True:
    k = input('请输入关键字 : ')
    for e in lst:
      if k in e:
            print(e)
            c += 1
    if c:
      break
    else:
      print('关键字未找到,请重新输入')
      print()

lxx213 发表于 2021-1-19 13:11:46

如果程序再升级一下呢
list_star = ['apple','b','after','c','add'] 这个列表作为数据来源列表
现在有一个新的空列表
list_now[]
key 首先判断是否在list_star的各个元素内
for each in list_star:
    if key in each:
      list_now.append(each)
      
然后输出list_now 的各个元素,如果key不符合条件 那么提示重新输入


页: [1]
查看完整版本: 新人求助一段python代码问题