· 6 years ago · May 04, 2019, 10:40 PM
1'''Каждое из Ñлов «разработка», «Ñокет», «декоратор» предÑтавить в Ñтроковом
2 формате и проверить тип и Ñодержание ÑоответÑтвующих переменных. Затем Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ
3 онлайн-конвертера преобразовать Ñтроковые предÑтавление в формат Unicode и также
4 проверить тип и Ñодержимое переменных.
5'''
6
7var = ['разработка', 'Ñокет', 'декоратор']
8
9for line in var:
10 print('тип переменной: {}\n'.format(type(line)))
11 print('Ñодержание переменной - {}\n'.format(line))
12 print('длинна Ñтроки: {}\n'.format(len(line)))
13
14#те же Ñтроки полученные из онлайн конвертера
15
16print("#"*25)
17
18var = [b'\xd1\x80\xd0\xb0\xd0\xb7\xd1\x80\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x82\xd0\xba\xd0\xb0',
19 b'\xd1\x81\xd0\xbe\xd0\xba\xd0\xb5\xd1\x82',
20 b'\xd0\xb4\xd0\xb5\xd0\xba\xd0\xbe\xd1\x80\xd0\xb0\xd1\x82\xd0\xbe\xd1\x80']
21for line in var:
22 print('тип переменной: {}\n'.format(type(line)))
23 print('Ñодержание переменной - {}\n'.format(line))
24 print('длинна Ñтроки: {}\n'.format(len(line)))
25
26#######################################################################
27print('#'*30)
28'''Каждое из Ñлов «class», «function», «method» запиÑать в байтовом типе
29 без Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² поÑледовательноÑть кодов
30 (не иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¼ÐµÑ‚Ð¾Ð´Ñ‹ encode и decode) и определить тип, Ñодержимое и длину
31 ÑоответÑтвующих переменных.
32'''
33var = [b'class', b'function', b'method']
34
35for line in var:
36 print('тип переменной: {}\n'.format(type(line)))
37 print('Ñодержание переменной - {}\n'.format(line))
38 print('длинна Ñтроки: {}\n'.format(len(line)))
39###########################################################################
40print('#'*30)
41'''Определить, какие из Ñлов «attribute», «клаÑÑ», «функциÑ», «type»
42невозможно запиÑать в байтовом типе'''
43
44'''
45var2 = b'attribute'
46var3 = b'клаÑÑ'
47var4 = b'функциÑ'
48var5 = b'type'
49'''
50# на Ñтроки запиÑанные на кириллице вылетает иÑключение
51'''File "/Users/alexander/pyServer01/pe_server01.py", line 46
52 var3 = b'клаÑÑ'
53 ^
54SyntaxError: bytes can only contain ASCII literal characters.'''
55
56#################################################################
57'''Преобразовать Ñлова «разработка», «админиÑтрирование», «protocol»,
58 «standard» из Ñтрокового предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² байтовое и выполнить обратное
59 преобразование (иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¼ÐµÑ‚Ð¾Ð´Ñ‹ encode и decode).'''
60
61var6 = ['разработка', 'админиÑтрирование', 'protocol', 'standard']
62for i in var6:
63 a = i.encode('utf-8')
64 print(a, type(a))
65 b = bytes.decode(a, 'utf-8')
66 print(b, type(b))
67 print('#'*15)
68
69#################################################################
70'''Выполнить пинг веб-реÑурÑов yandex.ru, youtube.com
71и преобразовать результаты из байтовового в Ñтроковый тип на кириллице'''
72print('#'*30)
73
74import subprocess
75
76
77ping_resurs = [['ping', 'yandex.ru'],['ping', 'youtube.com']]
78
79for ping_now in ping_resurs:
80
81 ping_process = subprocess.Popen(ping_now, stdout=subprocess.PIPE)
82
83 i = 0
84
85 for line in ping_process.stdout:
86
87 if i<10:
88 print(line)
89 line = line.decode('cp866').encode('utf-8')
90 print(line.decode('utf-8'))
91 i += 1
92 else:
93 print('#'*30)
94 break
95########################################################################
96'''Создать текÑтовый файл test_file.txt, заполнить его Ñ‚Ñ€ÐµÐ¼Ñ Ñтроками:
97«Ñетевое программирование», «Ñокет», «декоратор».
98Проверить кодировку файла по умолчанию. Принудительно открыть файл
99в формате Unicode и вывеÑти его Ñодержимое'''
100
101import locale
102
103resurs_string = ['Ñетевое программирование', 'Ñокет', 'декоратор']
104
105#Создаем файл
106with open('resurs.txt', 'w+') as f_n:
107 for i in resurs_string:
108 f_n.write(i + '\n')
109 f_n.seek(0)
110
111print(f_n) # печатаем объект файла, что бы узнать его кодировку
112
113file_coding = locale.getpreferredencoding()
114
115# Читаем из файла
116with open('resurs.txt', 'r', encoding=file_coding) as f_n:
117 for i in f_n:
118 print(i)
119
120 f_n.seek(0)