Линия раскалывается не в том месте - PullRequest
1 голос
/ 22 сентября 2019

У меня проблемы с разделением строк из файла .txt.

Я хочу, чтобы строка разделялась в ',', но она разделяет каждый символ, даже если функция .split () имеетпараметр.

Может кто-нибудь показать мне, что я сделал неправильно и как это можно исправить или даже улучшить.

Это было бы очень признательно

Линия разделяласьв правильном месте, прежде чем я переместил функцию split () в цикл FOR, однако даже когда я набрал правильный ответ, он не распознал бы его как правильный, я попытался превратить ответ в строку для проверки, но этопроблема не возникла.

python

def main():
  file = open ("Spanish Words Randomized.txt", "r")
  line = file.readline()
  for line in file:
    line.split(",")
    answer = input("What is '" + line[0] + "' in Spanish?:")
    if answer == str(line[1]):
       print("correct")
    elif answer != str(line[1]):
        print("It was",line[1])


main()

Это первые 3 строки файла .txt

"
A shanty town,Un barrio de chabolas
Managers,Los gerentes
Running water,El agua corriente
"

ожидаемый результат должен позволить мневведите то, что находится на другой стороне ',' и скажите, что это правильно

Ответы [ 2 ]

2 голосов
/ 22 сентября 2019

Вместо line.split(",") попробуйте что-то вроде line = line.split(","), потому что я думаю, что функция split() возвращает список и не изменяет саму строку.

1 голос
/ 22 сентября 2019

Попробуйте вместо этого:

def main():

    with open ("Spanish Words Randomized.txt", "r") as fin :
        # read the whole file, stripping EOL and filtering the empty lines
        text = [line.strip() for line in fin.readlines() if len(line) > 1]

    for line in text :
       q, a = line.split(",")    # need to catch the results of the split()
       answer = input("What is '" + q + "' in Spanish?:")
       if answer == a :
           print("correct")
       else :    # no point to check what we already know
           print("It was", a)

main()
...