Найти - Пользователи
Полная версия: странная работа командной оболочки
Начало » Python для новичков » странная работа командной оболочки
1
tmillenium120
При использовании команды
exec (open (“CPython31/Projects/grade1.py”). read ())
выдает набор неразборчивых символов, хотя если открывать тот же файл через Run } Module, программа работает.
Не пойму, что не так.
PEHDOM
tmillenium120
При использовании команды
exec (open (“CPython31/Projects/grade1.py”). read ())
выдает набор неразборчивых символов,
давайте я вам расскажу как выглядит ваш пост:
“Я запускаю неизвестный код и на выходе получаю непонятные символы. Выложить код я не могу, поэтому сами догадайтесь что у меня там. Скопировать в буфер и выложить вывод интрепретатора я тоже не могу поэтому, потому как на уроках информатики(курсах бухгалтера?) нас учили только делать скриншоты”
Какой ответ вы надеетесь получить на такой вопрос?
Из скриншота видно только что у вас несоответствие кодировок.
tmillenium120
Спасибо за конструктивную критику!!! Я совсем новичок. Обещаю исправиться

При использовании команды для открытия файла .py через командную оболочку, программа выдает набор неразборчивых символов и ошибку.

>>> exec (open (“CPython31/Projects/grade1.py”).read())
Введи возраст:
Traceback (most recent call last):
File “<pyshell#0>”, line 1, in <module>
exec (open (“CPython31/Projects/grade1.py”).read())
File “<string>”, line 3, in <module>
ValueError: invalid literal for int() with base 10: ''

Код программы следующий

# Возрастной ценз
print(“Введи возраст: ”, end=“”)
Score = int(input())
print (“Введи пол:”, end =“”)
Gender = input()
print(“Ты ”, end = “”)
if Gender == “мужской”:
if (Score >= 1) and (Score < 3) :
print(“малыш”)
if (Score >=3) and (Score <11):
print (“ребенок”)
if (Score >=11) and (Score <16):
print (“подросток”)
if (Score >=16) and (Score <20):
print (“юноша”)
if (Score >=20) and (Score <30):
print (“молодой человек”)
if (Score >=30) and (Score<30):
print (“мужчина в полном расцвете сил”)
if (Score >=50) and (Score <65):
print (“зрелый мужчина”)
if (Score>=65) and (Score <80):
print (“пожилой мужчина”)
if (Score >=80) and (Score<110):
print (“глубокий старик”)
if Gender == “женский”:
if (Score >= 1) and (Score < 3) :
print(“малышка”)
if (Score >= 3) and (Score < 11) :
print(“ребенок”)
if (Score >= 11) and (Score < 16) :
print(“подросток”)
if (Score >= 16) and (Score < 20) :
print(“девушка”)
if (Score >= 20) and (Score < 30) :
print(“молодая женщина”)
if (Score >= 30) and (Score < 50) :
print(“женщина в полном соку”)
if (Score >= 50) and (Score < 65) :
print(“зрелая женщина”)
if (Score >= 65) and (Score < 80) :
print(“пожилая женщина”)
if (Score >= 80) and (Score <= 120) :
print(“глубокая старуха”)
if (Score ==0) or (Score > 120):
print (“неправильно”)

Вопрос, почему выдает такую мешанину. Причем когда запускаю через Run } Module программа работает
PEHDOM
это известная проблема с консолью венды,файл то у вас в UTF-8, а консоль выводит в ANSI подробнее можно прочитать тут https://ru.stackoverflow.com/questions/141035/%D0%9A%D0%B0%D0%BA-%D0%B8%D0%B7-python-%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D0%BD%D0%B0-windows-%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D1%8C-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83-%D0%B2-%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4%D0%B5

попробуйте без екзека: open('grade1.py').read() и сами увидите что вам вывалиться
По идее ваш случай вырожденый, так никто не делает, если вы будете запускать
python.exe script_name.py
все будет работать нормально, но если уж так хочется извращений то вот рабочий рецепт:
 open('grade1.py').read().encode('ANSI').decode('utf-8')
tmillenium120
Выдает ошибку ANSI неизвестная кодировка.
open (“CPython31/Projects/grade1.py”).read().encode (“ANSI”).decode(utf-8)
Traceback (most recent call last):
File “<pyshell#3>”, line 1, in <module>
open (“CPython31/Projects/grade1.py”).read().encode (“ANSI”).decode(utf-8)
LookupError: unknown encoding: ANSI
tmillenium120
Выдает ошибку ANSI неизвестная кодировка.
open (“CPython31/Projects/grade1.py”).read().encode (“ANSI”).decode(utf-8)
Traceback (most recent call last):
File “<pyshell#3>”, line 1, in <module>
open (“CPython31/Projects/grade1.py”).read().encode (“ANSI”).decode(utf-8)
LookupError: unknown encoding: ANSI

Наверное не стоит с этим дальше заморачиваться, я так думаю.
PEHDOM
tmillenium120 у вас старый пайтон судя по всему, попробуйте заменить ‘ANSI’ на ‘mbcs’
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB