【问题标题】:Python-sys.argv code for finding number of upper case letters in a string用于查找字符串中大写字母数量的 Python-sys.argv 代码
【发布时间】:2021-11-21 05:16:18
【问题描述】:

我在 Python 的 sys.argv 库中编写了以下代码来查找大写字母的数量。此代码在输入中返回 None - Apple 是 HoT。任何帮助将不胜感激。

import sys
def c_upper(s):
    upper = 0
    for char in s:
        if char.isupper():
            upper += 1
        else:
            pass

s = str(sys.argv[1])
print(c_upper(s))

c_upper(s)

【问题讨论】:

  • 你没有从函数返回任何东西。

标签: python string command-line count


【解决方案1】:

尝试以下方法:

# foo.py
import sys
def c_upper(s):
    upper = 0
    for char in s:
        if char.isupper():
            upper += 1
    return upper

print(c_upper(sys.argv[1]))

运行:

python3 foo.py 'ApplE is HoT' # 4
  1. 您的函数没有返回任何内容,因此该函数隐式返回None。这就是您看到None 的原因。返回值需要使用return upper;请注意,return 语句for 循环之外。

  2. else: pass 是多余的。

  3. sys.argv[1]已经是一个字符串,所以str前面的sys.argv[1]是多余的。

  4. 一旦您学习了列表或生成器理解,您会发现以下内容将是一个更简单的选择:

    def c_upper(s):
        return sum(c.isupper() for c in s)
    

【讨论】:

  • 谢谢我的朋友。
【解决方案2】:

您的变量 s 无法检索文本,因此请更正它。

import sys
def c_upper(s):
    upper = 0
    for char in s:
        if char.isupper():
            upper += 1
        else:
            pass
    return upper
s = 'ApplE is HoT'
print(c_upper(s))

c_upper(s)
print(s)

【讨论】:

    猜你喜欢
    • 2021-02-22
    • 2021-12-10
    • 2022-06-12
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 2017-05-19
    相关资源
    最近更新 更多