【问题标题】: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
-
您的函数没有返回任何内容,因此该函数隐式返回None。这就是您看到None 的原因。返回值需要使用return upper;请注意,return 语句在for 循环之外。
-
else: pass 是多余的。
-
sys.argv[1]已经是一个字符串,所以str前面的sys.argv[1]是多余的。
-
一旦您学习了列表或生成器理解,您会发现以下内容将是一个更简单的选择:
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)