2016-07-17 4 views
1

https://www.codeeval.com/open_challenges/199/ Hier ist eine Beschreibung einer Übung.String-Maske in CodeEval

Es ist meine Lösung für mich ist richtig, aber in CodeEval habe ich den Status 'Teilweise'. Vielleicht weiß jemand was falsch ist?

import sys 

with open(sys.argv[1], 'r') as test_cases: 
for test in test_cases: 

    a, b = test.split() 

    for index, value in enumerate(b): 
     if value == '1': 
      a = a.replace(a[index], a[index].upper()) 

    print (a) 

test_cases.close() 
+0

(i) Ihre Einrückung ist vermasselt, (ii) die 'a = a.replace..'-Zeile ist falsch (es funktioniert für die Eingabe Samples aufgeführt, aber nicht für zB 'Hallo 00010') – thebjorn

+0

Ich füge hinzu Max Argument ersetzen a.replace (a [index], a [index] .upper(), 1) 'aber ich sehe nicht, was falsch ist Einrückung – Mtzw

+0

Die for-Schleife sollte innerhalb der With-Anweisung erfunden werden. – thebjorn

Antwort

0

Ein großes Problem dabei ist, dass, wenn Sie in einer Zeichenfolge ein Zeichen in Großbuchstaben müssen auf der Grundlage ihrer Position, Sie sollten nicht ersetzen verwenden, die Sie verwenden, in der Art und Weise uppercases es alle Vorkommen das Zeichen in der Zeichenfolge, unabhängig davon, ob sie sich in Positionen befinden, die in Großbuchstaben angezeigt werden sollen.