xxlxxl 发表于 2020-9-21 19:17:49

函数问题

本帖最后由 xxlxxl 于 2020-9-21 19:22 编辑

问题:有两个列表,
列表1: words = ['green', 'grasses', 'frolicking', 'cats', '', 'kittens', 'playful']
列表2: start_chs = ['a', 'c', 'g']
列表里的内容会变,这里只是举个例子。
问题条件:当 words为空列表时,return False。当start_chs 为空列表时,return False,当两个列表都为空时return空列表。这部分的代码我已经敲出来了def starts_with(words, start_chs):
    z = []
    a = 0
    if start_chs == '':
      return(False)
    elif words == '':
      return(False)
    for i in start_chs:
      if i == words:
            a += 1
      else:
            pass
    if a == 0:
      return(False)
    if words == '' and start_chs == '':
      return(z)
    else:
      return(True)
问题要求:自行定义一个函数search(words, start_chs)        ,当 words 列表中的单词是以start_chs中的字母开头时(比如,‘green’ 以 ‘g' 开头),将这个词放入一个新列表中,最后输出这个新列表。


补上原题,因为原题为两个部分,就一起放上来了。

疾风怪盗 发表于 2020-9-21 19:28:56

本帖最后由 疾风怪盗 于 2020-9-21 19:57 编辑

你这都是从哪找来的题目......

def starts_with(words, start_chs):
    if len(words) == 0 or len(start_chs) == 0:
      return False
    else:
      if words in start_chs:
            return True
      else:
            return False



def search(words, start_chs):
    new_words = []
    for word in words:
      if starts_with(word, start_chs):
            new_words.append(word)
    return new_words


words = ['green', 'grasses', 'frolicking', 'cats', '', 'kittens', 'playful']
start_chs = ['a', 'c', 'g']
new_words = search(words, start_chs)
print(new_words)


qiuyouzhi 发表于 2020-9-21 19:30:02

words = ['green', 'grasses', 'frolicking', 'cats', '', 'kittens', 'playful']
start_chs = ['a', 'c', 'g']

def search(words, start_chs):
    if not words and not start_chs:
      return []
    elif not words or not start_chs:
      return False
    res = in start_chs]
            
    return res

print(search(words, start_chs))
那个starts_with没看懂有啥用

疾风怪盗 发表于 2020-9-21 19:39:48

qiuyouzhi 发表于 2020-9-21 19:30
那个starts_with没看懂有啥用

估计是课堂作业,不想做,就发论坛了

看了一会英文才明白,其实就是定义两个函数(不要看楼主的解释,看英文才会明白)
第一个来判断
第二个根据第一个判断来添加进列表

sunrise085 发表于 2020-9-21 19:50:18

qiuyouzhi 发表于 2020-9-21 19:30
那个starts_with没看懂有啥用

不要看他说的中文,他说的不对,直接看英文题目即可。
俩函数,第一个函数作用是判断一个单词的首字母是不是在一个列表中,若在就返回True,若不在就返回False,楼主说的不对。
第二个函数的作用是从单词列表中找出首字母在字母列表中的单词组成新列表,然后返回新列表
四楼说的对!

疾风怪盗 发表于 2020-9-21 19:59:03

sunrise085 发表于 2020-9-21 19:50
不要看他说的中文,他说的不对,直接看英文题目即可。
俩函数,第一个函数作用是判断一个单词的首字母 ...

经你提醒,发现刚写的还是有点不对,漏了个没找到的return Flase,而且也不用循环,直接in列表就行了。。。。。。。

sunrise085 发表于 2020-9-21 20:05:30

疾风怪盗 发表于 2020-9-21 19:28
你这都是从哪找来的题目......

第一个函数可以再简单点
def starts_with(word, start_chs):
    if not word:
      return False
    if word in start_chs:
      return True
    return False

sunrise085 发表于 2020-9-21 20:06:44

疾风怪盗 发表于 2020-9-21 19:59
经你提醒,发现刚写的还是有点不对,漏了个没找到的return Flase,而且也不用循环,直接in列表就行了。。 ...

我发现那个问题, 然后正打算改一下,然后再看的时候你已经修改了

xxlxxl 发表于 2020-9-24 14:19:49

疾风怪盗 发表于 2020-9-21 19:39
估计是课堂作业,不想做,就发论坛了

看了一会英文才明白,其实就是定义两个函数(不要看楼主的解释 ...

学校作业,实在做不明白
页: [1]
查看完整版本: 函数问题