我需要打印用户指定的句子中有多少个字符,打印用户指定和打印每个单词的句子中有多少个单词,单词中的字母数,以及第一个和最后一个字母在这个词中。可以这样做吗?
答案 0 :(得分:2)
我希望您花时间了解下面代码中的内容,建议您阅读这些资源。
http://docs.python.org/3/library/re.html
http://docs.python.org/3/library/functions.html#len
http://docs.python.org/3/library/functions.html
http://docs.python.org/3/library/stdtypes.html#str.split
import re
def count_letter(word):
"""(str) -> int
Return the number of letters in a word.
>>> count_letter('cat')
3
>>> count_letter('cat1')
3
"""
return len(re.findall('[a-zA-Z]', word))
if __name__ == '__main__':
sentence = input('Please enter your sentence: ')
words = re.sub("[^\w]", " ", sentence).split()
# The number of characters in the sentence.
print(len(sentence))
# The number of words in the sentence.
print(len(words))
# Print all the words in the sentence, the number of letters, the first
# and last letter.
for i in words:
print(i, count_letter(i), i[0], i[-1])
Please enter your sentence: hello user
10
2
hello 5 h o
user 4 u r
答案 1 :(得分:1)
请阅读Python的字符串文档,它是自我解释的。以下是对不同部分的简短说明以及一些注释。
我们知道句子由单词组成,每个单词由字母组成。我们首先要做的是将split
句子翻译成单词。此列表中的每个条目都是一个单词,每个单词都以一系列字符的形式存储,我们可以获得每个单词。
sentence = "This is my sentence"
# split the sentence
words = sentence.split()
# use len() to obtain the number of elements (words) in the list words
print('There are {} words in the given sentence'.format(len(words)))
# go through each word
for word in words:
# len() counts the number of elements again,
# but this time it's the chars in the string
print('There are {} characters in the word "{}"'.format(len(word), word))
# python is a 0-based language, in the sense that the first element is indexed at 0
# you can go backward in an array too using negative indices.
#
# However, notice that the last element is at -1 and second to last is -2,
# it can be a little bit confusing at the beginning when we know that the second
# element from the start is indexed at 1 and not 2.
print('The first being "{}" and the last "{}"'.format(word[0], word[-1]))
答案 2 :(得分:1)
我们不会在堆栈溢出时为你做功课......但我会让你开始。
您需要的最重要的方法是这两个中的一个(取决于python的版本):
input([prompt])
,..如果提示参数存在,则写入
到没有尾随换行符的标准输出。那个功能呢
从输入中读取一行,将其转换为字符串(剥离一个
尾随换行符),并返回。读取EOF时,EOFError为
提高。 http://docs.python.org/3/library/functions.html#input raw_input([prompt])
,...如果提示参数是
目前,它被写入标准输出而没有尾随换行符。
然后该函数从输入中读取一行,将其转换为字符串
(剥离尾随换行符),然后返回。读取EOF时
提出了EOFError。 http://docs.python.org/2.7/library/functions.html#raw_input 您可以像
一样使用它们>>> my_sentance = raw_input("Do you want us to do your homework?\n")
Do you want us to do your homework?
yes
>>> my_sentance
'yes'
正如您所看到的,写入的文本在my_sentance
变量
要获取字符串中的字符数,您需要了解字符串实际上只是一个列表!因此,如果您想知道可以使用的字符数量:
len(s)
,...返回对象的长度(项目数)。
参数可以是序列(字符串,元组或列表)或映射
(字典)。 http://docs.python.org/3/library/functions.html#len 我会让你弄清楚如何使用它。
最后,你需要为字符串使用内置函数:
str.split([sep[, maxsplit]])
,...返回中的单词列表
string,使用sep作为分隔符字符串。如果给出maxsplit,at
大多数maxsplit分裂已完成(因此,列表最多将有
maxsplit + 1个元素)。如果没有指定maxsplit或-1,那么那里
对分割数量没有限制(所有可能的分割都是如此)。
http://docs.python.org/2/library/stdtypes.html#str.split