Не пишу первый вывод моего текста на python - PullRequest
0 голосов
/ 04 марта 2019

Я записываю ряд чисел в текстовый файл, используя дозорного.Если пользователь введет -1, программа завершится.Я добавил еще один цикл для оператора if, и он вызывает первый ввод, который пользователь вводит, чтобы не печатать.

Я мог бы ввести: 1,2,3,4,5,-1

Текстовый файл будет выглядеть так: 2,3,4,5,-1

Вот мой код:

outfile = open("userInput.txt","w")
userInput = int(input("Enter a number to the text file: "))
count = 0
while int(userInput) != -1:
   userInput = int(input("Enter a number to the text file: "))
outfile.write(str(userInput) + "\n")
count +=1
if(count) == 0:
   print("There is no numbers in the text file")
   outfile.write("There is no numbers in the text file")
outfile.close()

Времяпетля работала нормально.Когда я сделал переменную count, count+=1 и оператор if, возникла проблема с записью.

Я сделал так, чтобы, если пользователь просто не вводил никаких значений, он говорил, что в текстовом файле ничего нети также записывает его в файл.

1 Ответ

0 голосов
/ 04 марта 2019

Ваша программа делает то, что вы кодировали (если вы исправили ошибку IndentationError, скопированную в SO) - первое значение никогда не записывается в файл:

outfile = open("userInput.txt","w")
userInput = int(input("Enter a number to the text file: "))     # THIS is the first input
count = 0
while int(userInput) != -1:
   userInput = int(input("Enter a number to the text file: "))  # second to last input
   outfile.write(str(userInput) + "\n")                         # here you write it
   count +=1
if(count) == 0:
   print("There is no numbers in the text file")
   outfile.write("There is no numbers in the text file")
outfile.close()

Изменитьэто к:

count = 0
userInput = 99  # different from -1
with open ("userInput.txt","w") as outfile:
    while userInput != -1:
        userInput = int(input("Enter a number to the text file: "))
        if userInput != -1:
            outfile.write(str(userInput) + "\n") 
        else:
            outfile.write("There is no numbers in the text file\n") 

        count +=1

print("Done")

Запишет как минимум 1 число или текст в ваш файл.


Возможно, вы захотите прочитать Запрашивать у пользователя ввод, пока он не даст действительный ответ , чтобы получить вдохновение, как избежать ValueErrors из int("some not numer").

This Как отлаживать небольшие программы может помочь вам отладить ваши программы в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...