Python 我的代码没有';一个字符不允许2次(如何修复)

Python 我的代码没有';一个字符不允许2次(如何修复),python,repl.it,Python,Repl.it,我需要写一个代码来计算一个单词中的封闭区域的数量(因此B有两个封闭区域),但是当一个字符在一个问题中出现两次时,它只计算一次 我尝试了一些应该计算字符数的方法,但这只会给我更多的错误 G = 0 Chosen_word = str(input("Choose a word of max 60 character(only uppercase)")) if "A" in Chosen_word: U = U + 2 G = G + 1 如果您键入AA,它应该打印4个端点en 2闭合区域,

我需要写一个代码来计算一个单词中的封闭区域的数量(因此B有两个封闭区域),但是当一个字符在一个问题中出现两次时,它只计算一次

我尝试了一些应该计算字符数的方法,但这只会给我更多的错误

G = 0
Chosen_word = str(input("Choose a word of max 60 character(only uppercase)"))
if "A" in Chosen_word:
  U = U + 2
  G = G + 1
如果您键入AA,它应该打印4个端点en 2闭合区域,但它打印2个端点en 1闭合区域

G = 0
U=0
Chosen_word = str(input("Choose a word of max 60 character(only uppercase)"))

n = Chosen_word.count("A")
U = n * 2
G = n 

print (U)
print (G)
输出:

Choose a word of max 60 character(only uppercase)SADDSAAAA
10
5

您只需通过此代码一次-第一个字母。要遍历每个字母,需要使用一个循环(此处最好是遍历每个字符的
for
循环):


我很难理解你的问题。请提供一些输入和输出示例,以便我们能够看到模式。“en”代表“and”?嗨,欢迎来到StackOverflow!请注意,否决票并不意味着你要解决的不是一个好问题;我们用它们来表示你的问题应该编辑得更清楚。我个人很困惑,因为我不知道
U
的初始值是什么。谢谢你的帮助,现在就编辑整个代码。如果你不想写那么多
if
/
elif
分支,你可以使用的一种技术是预先编一本字典:
dct={a':{U':2。'G':1},B':…}然后,在
for`循环中,从字典中检索,而不是使用条件句(例如,
U+=dct[letter]['U'];g+=dct[letter]['g']
),而这段代码可能会回答这个问题,提供关于如何和/或为什么解决这个问题的额外上下文将提高答案的长期价值。
for letter in chosen_word:
    if letter == 'A':
        U = U + 2
        G = G + 1
    elif letter == 'B':
        ...