当我把'HelLO‘放到这段代码中时,它应该输出10,但只输出5,为什么?
该程序的目的是,如果一个单词包含小写字母,则将分数增加5,如果包含大写字母,则会增加另一个单词的分数。但是,它只需要至少有一个in才能添加分数。HellO既有大写字母也有小写字母,所以加起来应该是10。
capitals="A","B","C","D","E","F","G","H","I","J",
"K","L","M","N","O","P","Q","R","S","T","U",
"V","W","X","Y","Z"
characters="a","b","c","d","e","f","g","h","i","j",
"k","l","m","n","o","p","q","r","s","t","u",
"v","w","x","y","z"
word=raw_input("word please")
score=0
for i in range(0,len(word)):
a=i
for i in range(0,26):
if word[a]==characters[i]:
score=score+5
break
for i in range(0,26):
if word[a]==capitals[i]:
score=score+5
break
print score
发布于 2018-07-21 06:17:36
在执行循环for i in range(0,len(word)): a=i
之后,a
的值变为len(word)-1
(在本例中为4),并且再也不会改变。以下是您要查找的内容:
import string
score = 0
# Does the string have at least one uppercase char?
if set(string.ascii_uppercase) & set(word):
score += 5
# Does the string have at least one lowercase char?
if set(string.ascii_lowercase) & set(word):
score += 5
https://stackoverflow.com/questions/51450883
复制相似问题