Python Программа имеет странные символы после разрывов входной строки? Программа работает в онлайн-редакторе - PullRequest
0 голосов
/ 23 января 2020

Итак, у меня есть программа здесь: https://repl.it/@cooperl2 / Find-Student-Info-V4-FINAL-STABLE

Код:

import datetime
import sys

def find_info():
  first_name = input("What is your first name? ").lower()
  sys.stdout.write("\033[F")
  sys.stdout.write("\033[K")

  last_name = input("What is your last name? ").lower()
  sys.stdout.write("\033[F")
  sys.stdout.write("\033[K")

  grade = input("What grade are you in? ").lower()
  grade = int(grade[0])
  sys.stdout.write("\033[F")
  sys.stdout.write("\033[K")

  year = datetime.date.today().year
  month = datetime.date.today().month
  shift = 1 if datetime.date.today().month < 9 else 0
  sys.stdout.write("\033[F")
  sys.stdout.write("\033[K")

  pin = input("What is your lunch pin / ID number? ")
  sys.stdout.write("\033[F")
  sys.stdout.write("\033[K")

  grad_year = year + 13 - grade - shift
#this replaces the entire if statement in the V3 -- See V3 for details.

  print("Hello there " + first_name+"!") 
  print("\n")
  print("Your username is: " + last_name.lower() + first_name[0].lower() + str(grad_year)[2]+ str(grad_year)[3])
  print("Your password is: " + first_name[0].lower() + last_name[0].lower() + pin + "hoh")
  print("Your Email Address is: " + last_name.lower() + first_name[0].lower() + str(grad_year)[2]+ str(grad_year)[3] + "@learn.hohschools.org")

find_info()

Однако, когда я запускаю его на своем компьютере с помощью двойного щелчка на рабочем столе, это выглядит как прикрепленное изображение. и программа выходит после 3-го вопроса и не завершается. Не уверен, почему это так и почему есть странные символы.

Picture of weird symbols in Python 3.7 on PC

1 Ответ

1 голос
/ 23 января 2020

Это escape-последовательности ANSI - \033[F для перемещения курсора назад к предыдущей строке, а \033[K очищает текущую строку. Проблема, которую вы заметили, возникнет, когда терминал, в котором вы запускаете программу, не распознает эти escape-последовательности.

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