【Python CheckiO 题解】First Word


CheckiO 是面向初学者和高级程序员的编码游戏,使用 Python 和 JavaScript 解决棘手的挑战和有趣的任务,从而提高你的编码技能,本博客主要记录自己用 Python 在闯关时的做题思路和实现代码,同时也学习学习其他大神写的代码。

CheckiO 官网:https://checkio.org/

我的 CheckiO 主页:https://py.checkio.org/user/TRHX/

CheckiO 题解系列专栏:https://itrhx.blog.csdn.net/category_9536424.html

CheckiO 所有题解源代码:https://github.com/TRHX/Python-CheckiO-Exercise


题目描述

【First Word】:给定一个字符串,找到其中的第一个单词(单词非字母),输入的字符串可能包含点和逗号,字符串可能以字母、点或空格开头,单词中可能包含撇号。

【链接】https://py.checkio.org/mission/first-word/

【输入】:字符串

【输出】:字符串

【前提】:原字符串可能包含大小写字母、空格、逗号、点(.)和撇号('

【范例】

first_word("Hello world") == "Hello"
first_word("greetings, friends") == "greetings"

解题思路

在本题中,给定的字符串只包含 . , ' 三种符号,而遇到 ' 是不用处理的,因此可以直接用 replace() 方法,将 ., 替换成空格,然后再以空格为分隔符,将字符串进行切片,最后返回第一个元素即可。

代码实现

def first_word(text: str) -> str:
    """
        returns the first word in a given text.
    """
    # your code here
    return text.replace(',',' ').replace('.',' ').split( )[0]


if __name__ == '__main__':
    print("Example:")
    print(first_word("Hello world"))
    
    # These "asserts" are used for self-checking and not for an auto-testing
    assert first_word("Hello world") == "Hello"
    assert first_word(" a word ") == "a"
    assert first_word("don't touch it") == "don't"
    assert first_word("greetings, friends") == "greetings"
    assert first_word("... and so on ...") == "and"
    assert first_word("hi") == "hi"
    assert first_word("Hello.World") == "Hello"
    print("Coding complete? Click 'Check' to earn cool rewards!")

大神解答

大神解答 NO.1

def first_word(text: str) -> str:
    import re
    a = re.split("[^a-zA-Z']",text)
    output =""
    for i in a:
        output += i
        if output != "":
            return(output)

大神解答 NO.2

def first_word(text: str) -> str:
    i=0
    j=0
    while i < len(text) and text[i].isalpha() == False:
           i+=1
    text1=text[i:]
    while j < len(text1) and text1[j]!='.' and text1[j]!=',' :
               j += 1
    s = text1[:j].split(' ')
    return s[0]

大神解答 NO.3

import re

def first_word(text: str) -> str:
    return re.findall(r"[A-Za-z']+", text)[0]
发布了135 篇原创文章 · 获赞 475 · 访问量 44万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览