Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 26, 2019 09:50:27

tmillenium120
Зарегистрирован: 2019-11-11
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

странная работа командной оболочки

При использовании команды
exec (open (“CPython31/Projects/grade1.py”). read ())
выдает набор неразборчивых символов, хотя если открывать тот же файл через Run } Module, программа работает.
Не пойму, что не так.

Отредактировано tmillenium120 (Ноя. 26, 2019 11:12:17)

Прикреплённый файлы:
attachment Screenshot_39.png (61,0 KБ)

Офлайн

#2 Ноя. 26, 2019 10:40:59

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

странная работа командной оболочки

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



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Ноя. 26, 2019 10:45:59)

Офлайн

#3 Ноя. 26, 2019 13:49:54

tmillenium120
Зарегистрирован: 2019-11-11
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

странная работа командной оболочки

Спасибо за конструктивную критику!!! Я совсем новичок. Обещаю исправиться

При использовании команды для открытия файла .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 программа работает

Прикреплённый файлы:
attachment grade1.py (1,7 KБ)

Офлайн

#4 Ноя. 26, 2019 15:02:16

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

странная работа командной оболочки

это известная проблема с консолью венды,файл то у вас в 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')



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#5 Ноя. 26, 2019 19:56:14

tmillenium120
Зарегистрирован: 2019-11-11
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

странная работа командной оболочки

Выдает ошибку 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

Офлайн

#6 Ноя. 26, 2019 19:56:14

tmillenium120
Зарегистрирован: 2019-11-11
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

странная работа командной оболочки

Выдает ошибку 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 (Ноя. 26, 2019 19:57:17)

Офлайн

#7 Ноя. 27, 2019 09:19:20

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

странная работа командной оболочки

tmillenium120 у вас старый пайтон судя по всему, попробуйте заменить ‘ANSI’ на ‘mbcs’



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version