2017-07-16 10 views
0

Ich bin verpflichtet, eine Länge Zeichenkette zu bekommen und haben das Programm zählen und zeigen die Gesamtzahl der Buchstaben "T" gefunden in der eingegebenen Zeichenfolge aber die folgenden Fehler erhalten. Zeile 13 ist dies: if string[0,counter] == "T":String-Indizes müssen Ganzzahlen sein - Teilzeichenfolge

Irgendwelche Vorschläge?

File "python", line 13, in TypeError: string indices must be integers

#Variable to hold number of Ts in a string 
numTs = 0 

#Get a sentence from the user. 
string = input("Enter a string: ") 

#Count the number of Ts in the string. 
for counter in range(0,len(string)): 
    if string[0,counter] == "T": 
    numTs = numTs + 1 

#Display the number of Ts. 
print("That string contains {} instances of the letter T.".format(numTs)) 

Antwort

1
#Count the number of Ts in the string. 
for counter in range(0,len(string)): 
    if string[0,counter] == "T": 
    numTs = numTs + 1 

Ihr Index für string ist ein tuple: 0, counter.

Stattdessen sollten Sie einfach den Index counter verwenden.

for counter in range(0,len(string)): 
    if string[counter] == "T": 
    numTs = numTs + 1 

Wenn Ihr Ziel nicht nur zu lernen, wie Algorithmen so zu implementieren, ein idiomatischer Weg, um die Standard-Bibliothek Counter verwenden.

>>> string = 'STack overflow challenge Topic' 
>>> from collections import Counter 
>>> c = Counter(string) 
>>> 
>>> c['T'] 
2 
+0

Danke, mit den Indexzähler taten es zu finden. – Cornel

0
string = input("Enter the string:\n");count = 0 
for chars in string: 
    if chars == "T" or chars == "t": 
     count = count + 1 
print ("Number of T's in the string are:",count) 

Dadurch wird die Anzahl von t in dem gegebenen String

+0

Danke. Das funktioniert. – Cornel

Verwandte Themen