用于查找得分最高的单词的 Python 程序

pythonserver side programmingprogramming更新于 2023/12/28 21:09:00

在 Python 中,字符串是一种用于表示字符序列的基本数据类型。它们括在单引号 ('') 或双引号 ("") 中,并提供各种操作和处理方法

示例

假设我们已获取 输入字符串。现在,我们将使用上述方法从输入字符串中找到得分最高的单词。

输入

inputString = "hello tutorialspoint python users and learners"

输出

从输入字符串中得出得分最高的单词:tutorialspoint

在上述输入字符串中,单词 tutorialspoint 的字符位置值总和具有最大值。因此,它是输入字符串中得分最高的单词。

方法 1:使用 for 循环、split()、ord()、ascii_lowercase 函数

在此方法中,我们将使用 for 循环、split()、ord()、ascii_lowercase 函数的组合来查找得分最高的单词。

ascii_lowercase 是一个预初始化的字符串,在 Python 3 中用作字符串常量。Python 的字符串 ascii_lowercase 返回小写字母。

ord() 函数(以数字形式返回给定字符的 Unicode 代码/ASCII 值)

ascii_lowercase(返回小写字母)

string.split(separator, maxsplit)
ord(character)
string.ascii_lowercase

算法(步骤)

以下是执行所需任务所要遵循的算法/步骤 –。

  • 使用 import 关键字导入字符串模块。

  • 创建一个变量来存储输入字符串并打印给定的字符串。

  • 用 0 初始化一个变量以说明当前单词分数。

  • 用 0 初始化另一个变量以存储最高分数。

  • 创建一个空字符串来存储输入字符串中得分最高的单词。

  • 使用 split() 函数(将字符串拆分为列表。我们可以定义分隔符; (默认分隔符是任何空格)将输入字符串拆分为单词列表,并使用for 循环遍历该列表中的单词。

  • 将当前单词的分数初始化为 0。

  • 使用另一个嵌套的 for 循环遍历当前单词的每个字符。

  • 使用if 条件语句检查当前字符是否为小写。

  • 将当前字符的 ASCII 值差异添加到分数中。

  • 使用if 条件语句检查当前单词的分数是否大于最高分数。

  • 如果条件为,则用当前单词分数更新最高分数。

  • 将当前单词更新为最高得分单词。

  • 从输入字符串中打印出得分最高的单词

示例

以下程序使用 for 循环、split()、ord() 和 ascii_lowercase 函数从输入字符串中返回得分最高的单词

# 导入字符串模块
import string
# 输入字符串
inputString = "hello tutorialspoint python users and learners"
# 打印输入字符串
print("输入字符串: ", inputString)
# 存储当前单词得分
curr_score = 0
# 存储最高分数
maximumScore = 0
# 用于存储字符串中得分最高的单词的空字符串
maxScoreWord = ''
# 将输入字符串拆分为单词列表并遍历该列表中的单词
for word in inputString.split():
    # 将当前单词的分数初始化为0
    curr_score = 0
    # 遍历当前单词的每个字符
    for character in word:
        # 检查字符是否为小写
        if character in string.ascii_lowercase:
            # 将当前字符的ASCII值差异添加到分数中
            curr_score += ord(character) - 96
    # 检查当前单词的分数是否大于最大分数
    if curr_score > maximumScore:
        # 如果条件为真,则用当前单词得分更新最大得分
        maximumScore = curr_score
        # 将当前单词更新为得分最高的单词
        maxScoreWord = word
# 打印输入字符串中得分最高的单词
print("输入字符串中得分最高的单词: ", maxScoreWord)

输出

输入字符串:hello tutorialspoint python 用户和学习者
输入字符串中得分最高的单词:tutorialspoint

方法 2:使用 for 循环、sum() 和 ord() 函数

在此方法中,我们将学习如何使用简单的 for loop()、sum() 和 ord() 函数来查找得分最高的单词。

sum() 函数(返回可迭代对象中所有项目的总和)

ord() 函数(以数字形式返回给定字符的 Unicode 代码/ASCII 值)

split() 函数(将字符串拆分为列表。我们可以定义分隔符;默认分隔符是任何空格)

sum(iterable, start=0)
ord(character)

算法(步骤)

以下是执行所需任务需要遵循的算法/步骤 –

  • 使用 split 函数将输入字符串拆分为单词列表,并使用 for 循环 遍历该列表中的单词。

  • 通过遍历单词并检查其是否为小写字母,获取单词每个字符的差异 ASCII 值的总和。

  • 使用 if 条件 语句检查当前单词的分数是否大于最高分数。

  • 用当前单词更新最高分数如果条件为 true,则得分。

  • 将当前单词更新为得分最高的单词。

  • 从输入字符串中打印得到的最高得分单词

示例

以下程序在循环、sum() 和 ord() 函数中返回输入字符串中得分最高的单词 –

# 导入字符串模块
import string
# 输入字符串
inputString = "hello tutorialspoint python users and learners"
# 打印输入字符串
print("输入字符串: ", inputString)
# 存储当前单词得分
curr_score = 0
# 存储最高分数
maximumScore = 0
# 用于存储字符串中得分最高的单词的空字符串
maxScoreWord = ''
# 将输入字符串拆分为单词列表并遍历该列表中的单词
for word in inputString.split():
    # 获取当前单词的分数
    curr_score = sum(
        ord(character) - 96 for character in word if character in string.ascii_lowercase)
    # 检查当前单词的分数是否大于最大分数
    if curr_score > maximumScore:
        # 如果条件为真,则用当前单词分数更新最大分数
        maximumScore = curr_score
         # 更新当前单词为得分最高的单词
        maxScoreWord = word
# 打印输入字符串中得分最高的单词
print("输入字符串中得分最高的单词: ", maxScoreWord)

输出

输入字符串:hello tutorialspoint python 用户和学习者
输入字符串中得分最高的单词:tutorialspoint

结论

总之,提供的代码演示了两种从输入字符串中查找得分最高的单词的不同方法。这两种方法都涉及迭代输入字符串的单词并根据字符的 ASCII 值计算分数。通过比较计算出的分数来确定得分最高的单词。该代码展示了如何使用 Python 中的字符串操作、迭代、条件语句和内置函数来实现所需的结果。


相关文章