gpt4 book ai didi

Python 3 - 类型错误 : string indices must be integers/conditional statement

转载 作者:太空宇宙 更新时间:2023-11-03 15:18:50 25 4
gpt4 key购买 nike

我以为只要if语句为True,就运行该行代码。为什么条件中需要一个整数?

#function that accepts a string and calculates the number of upper case and lower case

def case_count(str):
total_cap_cases = 0
total_low_cases = 0
for words in str:
if str[words].isupper():
total_cap_cases += 1
elif words.islower():
total_low_cases += 1
else:
pass

print(total_cap_cases)
print(total_low_cases)


str = "How Many upper and LOWER case lettters are in THIS senTence?"
case_count(str)

最佳答案

当我运行此代码时:

s = "abc"

for words in s:
print(words)

我得到这个输出:

$ python test.py
a
b
c

这是因为 for variable in string: 没有创建整数索引。相反,它将字符串的各个字符分配给变量,一次一个。

当您对 str: 中的单词执行 操作时,您实际上一次处理 str 一个字符。你最好这样写:

for character in str:
if character.isupper():
tot_cap_cases += 1
elif character.islower():
tot_low_cases += 1
else:
tot_non_cases += 1

(另外,值得指出的是,在 unicode 的世界中,您不能简单地假设任何不是大写的字符都必须是小写。根据 this Unicode FAQ page 大多数脚本根本没有大小写。)

关于Python 3 - 类型错误 : string indices must be integers/conditional statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43671634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com