如何在Python中打印任何给定句子中最长的单词而不使用标点符号?

如何在Python中打印任何给定句子中最长的单词而不使用标点符号?,python,Python,我设法得到了最长单词的输出,但是它在句子末尾有一个句号“.”。例如,我的意见是你很棒。而且产量很大。但我想去掉最后的句号。我曾尝试使用无标点“for”函数,但它会导致运行时错误和其他错误。有人知道怎么改正吗?谢谢 编辑:我在下面加入了我的代码以供参考。 您可以替换所有标点符号、按单词拆分文本并提取最长的单词,例如: 从字符串导入标点符号 你太棒了。 对于标点符号: sample=sample.replaceSommbol, 最长单词=maxsample.split,关键字=lambda单词:le

我设法得到了最长单词的输出,但是它在句子末尾有一个句号“.”。例如,我的意见是你很棒。而且产量很大。但我想去掉最后的句号。我曾尝试使用无标点“for”函数,但它会导致运行时错误和其他错误。有人知道怎么改正吗?谢谢 编辑:我在下面加入了我的代码以供参考。

您可以替换所有标点符号、按单词拆分文本并提取最长的单词,例如:

从字符串导入标点符号 你太棒了。 对于标点符号: sample=sample.replaceSommbol, 最长单词=maxsample.split,关键字=lambda单词:lenword 印刷字 >>>伟大的
解决这个问题的一种方法是创建一个无效字符列表,它可以扩展到其他可能给您带来问题的标点符号。然后,使用for循环将在字符串中找到的任何一个替换为空字符串。这样做很重要,这样您查找最长字符串的方法就是只计算实际字母,而不是计划删除的标点符号

invalid_chars = ['.',',','!','?']
s = "<your string here.>"


for c in invalid_chars:
    s.replcate(c,"")
longest_word = max(s.split(" "), key=len)

我为您提供了两种选择:

如果您只关心句号问题,可以删除它,例如:句子=句子[:-1],这将删除最后一个字符。 或者,您可以删除所有不需要的字符,方法是将它们替换为:句子=句子。替换“.”,
你能给我们看看你的密码吗?根据您的代码解决问题会很有帮助。请对字符串使用.rstrip方法删除右侧的特定字符,例如“great…”.rstrip“。==“great”我已编辑了我的问题并添加了代码。希望这有帮助。不,你没有。图像是无用的。这是我的方法。str.maketrans可用于一次性过滤所有标点符号。我们也应该考虑两个词之间是否存在一个标点符号的空间,因为这可能会导致意想不到的后果。这是一个通用的解决方案,应该根据每个案例的特殊需要进行更新。在Hello,how are you?这句话中,最长的单词是Hello,,因此您的第一个方法将失败。在计算单词长度之前,您还应该过滤任何标点符号,因为这样一来,单词就会被删除。这会被绑起来的。你说得对,先生。我固定在这个例子上,我们真的应该替换所有的标点符号,而不仅仅是句点。