Дәрістер кешені Дәріс №1 Дәріс тақырыбы


Файлдан оқу. Файлды ашқан соң одан ақпаратты оқуымыз керек. Ол үшін оның бірнеше тәсілі бар, бірақ соның ішінде екеуі ғана қажет болады



бет18/18
Дата15.03.2022
өлшемі0,72 Mb.
#135756
1   ...   10   11   12   13   14   15   16   17   18
Байланысты:
Д рістер кешені Д ріс №1 Д ріс та ырыбы

Файлдан оқу. Файлды ашқан соң одан ақпаратты оқуымыз керек. Ол үшін оның бірнеше тәсілі бар, бірақ соның ішінде екеуі ғана қажет болады.


Бірінші – егер аргументсіз болса файлды тұтастай, егер n (бүтін санмен) аргументімен шақырылса, онда n символымен оқылатын read әдісі.
>>> f = open('text.txt')
>>> f.read(1)
'H'
>>> f.read()
'ello world!\nThe end.\n\n'
Тағы бір тәсілі – файлды - for циклін қолдану арқылы файлды жол жолымен оқу:
>>> f = open('text.txt')
>>> for line in f:
... line
...
'Hello world!\n'
'\n'
'The end.\n'
'\n'
Файлға жазу. Файлға келесі тізімді жазуды орындап көрейік:
>>> l = [str(i)+str(i-1) for i in range(20)]
>>> l
['0-1', '10', '21', '32', '43', '54', '65', '76', '87', '98', '109', '1110', '1211', '1312', '1413', '1514', '1615', '1716', '1817', '1918']
Файлды жазу үшін ашу:
>>> f = open('text.txt', 'w')
Файлға жазу write әдісі арқылы жүзеге асырылады. Ол келесі 26-суретте көрсетілген:



>>> for index in l:
... f.write(index + '\n')
...
4
3
3
3
3



Сурет 22 Write әдісі арқылы файлға жазу


Жоғарыда көрсетілген жазбалардан: write әдісі жазылған символдардың санын қайтарады [17].


Файлмен жұмыс жасап болған соң оны міндетті түрде close әдісі арқылы жабу керек:
>>> f.close()
Енді осы тізімді құрылған файлдан қайта жасауға тырысайық. Ол үшін файлды оқу үшін ашып жолдарын оқу керек.
>>> f = open('text.txt', 'r')
>>> l = [line.strip() for line in f]
>>> l
['0-1', '10', '21', '32', '43', '54', '65', '76', '87', '98', '109', '1110', '1211', '1312', '1413', '1514', '1615', '1716', '1817', '1918']
>>> f.close()
Жоғарыда көрсетілгендей қайта сол тізім алынды. Күрделірек жағдайда жазу алгоритмін ойлап табу қиынға соғады. Сондықтан Python тілінде ондай жағдайлар үшін баяғыдан pickle немесе json сияқты құралдары ойлап табылған. Олар файлда анағұрлым күрделі құрылымдарды сақтауға мүмкіндік береді [17].
Дәріс №6
Дәріс тақырыбы: Сандық алгоритмдер. Матрицалық есептеулер.
Дәрістің мақсаты: Сандық алгоритмдер мен матрицалық есептеулерді қарастыру.
Тақырып бойынша қарастырылатын сұрақтар:

  1. Numeric Python.

  2. Numeric Модулі.

  3. Массивті құру.



1. Numeric Python.


Бұл бөлім жеткілікті дәрежеде ескірген. Қазір модуль numpy деп аталады. Жалпы, Numeric-те болған барлық numpy-да қол жетімді, бірақ аттар сәйкес келмеуі мүмкін. Numeric NumPy/oldnumeric сияқты қол жетімді. Сіздің құжаттама.
Numeric Python - көптеген сандық қосымшалар үшін қажетті көп өлшемді массивтерді есептеу үшін бірнеше модуль. Numeric модулі MatLab, Octave (MATLAB аналогы), APL, J, S+, ID сияқты пакеттер мен жүйелердің Python мүмкіндіктерін енгізеді. Пайдаланушылар Numeric-ті оңай және ыңғайлы табады. Кейбір Python синтаксистік мүмкіндіктері (кесіктерді пайдаланумен байланысты) Numeric үшін арнайы әзірленген.


Numeric Python үшін құралы бар:

  • матрицалық есептеулер;

  • FFT Фурье жылдам түрлендіру;

  • жетіспейтін ma эксперименталдық деректермен жұмыс істеу;

  • RNG статистикалық модельдеу;

  • MatLab бағдарламасының негізгі функцияларының эмуляциясы.




  1. Numeric Модулі.

Numeric модулі толымды түрді анықтайды-массив және массив операцияларына арналған функциялардың көп санын қамтиды. Массив-бұл индекстер бойынша қолжетімді біртекті элементтер жиынтығы. Numeric Модулінің массивтері көп өлшемді, яғни бір мөлшерден артық болуы мүмкін.



  1. Массивті құру.

Массивті жасау үшін, массивтің мазмұнын (ішкі тізімдер түрінде) және түрін көрсете отырып, array () функциясын пайдалануға болады. Array() функциясы дәлел - массив болса, көшірмесін жасайды. As array() функциясы ұқсас жұмыс істейді, бірақ оның аргументі массиві болған кезде жаңа массив жасамайды:

>>> from Numeric import *


>>> print array([[1, 2], [3, 4], [5, 6]])
[[1 2]
[3 4]
[5 6]]
>>> print array([[1, 2, 3], [4, 5, 6]], float)
[[ 1. 2. 3.]
[ 4. 5. 6.]]
>>> print array([78, 85, 77, 69, 82, 73, 67], 'c')
[N U M E R I C]
Массив элементтері ретінде келесі түрлерді пайдалануға болады: Int8-Int32, Unsigned Int 8-Unsigned Int32, Float 8-Float64, Complex8-Complex64 және PyObject. 8, 16, 32 және 64 сандар шаманы сақтауға арналған биттердің санын көрсетеді. Int, Unsigned Integer, Float және Complex түрлері осы платформада қабылданған мәндерге сәйкес келеді . Массивте сондай-ақ еркін нысандарға сілтемелерді сақтауға болады .

Әрбір ось бойынша массив мөлшері мен ұзындығы массив формасы (shape) деп аталады . Массив пішініне қол жеткізу shape атрибуты арқылы жүзеге асырылады:


>>> from Numeric import *
>>> a = array(range(15), int)
>>> print a.shape
(15,)
>>> print a
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
>>> a.shape = (3, 5)
>>> print a.shape
(3, 5)
>>> print a
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]


Дәріс №9
Дәріс тақырыбы: Web-қосымшаларды әзірлеу.
Дәрістің мақсаты: Web-қосымшаларды әзірлеуді қарастыру.
Тақырып бойынша қарастырылатын сұрақтар:
1. CGI сценарийлері.
2. CGI модулі.


Www-браузерде HTML және XML-құжаттарды басқаратын негізгі интерфейсі жұмыс істейтін бағдарлама web-қосымша деп түсініледі. Сапасын жақсарту үшін пайдаланушы интерфейсінің жиі қолданады JavaScript, алайда бұл бірнеше төмендетеді әмбебаптығы интерфейс. Айта кету керек, интерфейс құруға болады Java - немесе Flash-апплетах, алайда, мұндай қосымшалар қиын деп атауға web-қосымшаларда, себебі Java немесе Flash пайдалана алады өз хаттамалар қарым-қатынас жасау үшін, сервер, ал стандартты емес үшін WWW хаттама HTTP.


Web-қосымшаларды құру кезінде пішін (сыртқы түрі, стилі), мазмұны мен деректерді өңдеу логикасын бөлуге тырысады. Web-сайттарды құрудың заманауи технологиялары осы идеалға өте жақын болуға мүмкіндік береді. Дегенмен, көп деңгейлі қосымшаларды қолданбай да, басқаларды қозғамай (немесе қозғамай), осы аспектілердің кез келгенін өзгертуге мүмкіндік беретін стильді ұстануға болады. Бұл тақырыпты талқылау әзірлеу ортасына арналған бөлімде жалғасатын болады.


1. CGI сценарийлері.
Www үшін қосымшаларды жасаудың классикалық жолы-CGI сценарийлерін жазу (кейде скрипттер айтады). CGI ( Common Gateway Interface, жалпы шлюздік интерфейс) - бұл сервердің сыртқы қосымшалармен өзара әрекеттесуін регламенттейтін стандарт. WWW болған жағдайда, web-сервер белгілі бір сценарий бойынша бетті генерациялау сұрауын жібере алады. Бұл сценарий web-серверден (сол, өз кезегінде, оларды пайдаланушыдан ала алады) кіріс деректерді алып, дайын нысанды (сурет, аудиодер, стильдер кестесі және т.б.) генерациялайды.


Сценарийді шақырған кезде Web-сервер оған ақпаратты стандартты енгізу, орта айнымалылары арқылы және ISINDEX үшін командалық жолдың аргументтері арқылы (олар sys арқылы қол жетімді.argv ).


Web-серверге (және CGI-сценарийге) - GET және POST браузерде толтырылған формадан деректерді берудің екі негізгі әдісі. Әдісіне байланысты деректер әртүрлі беріледі. Бірінші жағдайда олар кодталады және тікелей URL-ге орналастырылады, мысалы: http://example.com/cgi-bin/a.cgi?a=1&b=3. Сценарий оларды QUERY_STRING атымен айнымалыға алады. POST әдісі жағдайында олар стандартты енгізуге беріледі.


Ол үшін, егер бұл сервердің конфигурациясы рұқсат етілсе, HTML құжаттары арасында кез-келген орында. Сценарий орындалуының белгісі болуы тиіс. Unix жүйесінде оны chmod a+x пәрменімен орнатуға болады.


Келесі қарапайым сценарий os сөздігінен мәндерді шығарады.environ және оған не берілгенін көруге мүмкіндік береді:

#!/usr/bin/python


import os


print """Content-Type: text/plain

%s""" % os.environ




Оның көмегімен Web-сервермен орнатылған орта айнымалыларын көруге болады. Web-сервердің CGI сценарийімен берілетін файл метаақпараттық өрістер (мазмұн түрі, құжаттың соңғы жаңартылу уақыты, кодтау және т.б .) көрсетілген тақырып бөлігін қамтиды.


Сценарийлерді жасау үшін жеткілікті негізгі орта айнымалылары:


QUERY_STRING
Сұраныс жолы.


REMOTE_ADDR
Клиенттің IP-мекенжайы.


REMOTE_USER
Клиенттің аты (егер ол сәйкестендірілсе).


SCRIPT_NAME
Сценарий атауы.


SCRIPT_FILENAME
Сценарийі бар Файл атауы.


SERVER_NAME
Сервер аты.


HTTP_USER_AGENT
Клиент браузерінің атауы.


REQUEST_URI
Сұрау жолы (URI).


HTTP_ACCEPT_LANGUAGE
Құжаттың қажетті тілі.


Мұнда os сөздігі болуы мүмкін.environ CGI сценарийінде:
{
'DOCUMENT_ROOT': '/var/www/html',
'SERVER_ADDR': '127.0.0.1',
'SERVER_PORT': '80',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_ACCEPT_LANGUAGE': 'en-us, en;q=0.50',
'REMOTE_ADDR': '127.0.0.1',
'SERVER_NAME': 'rnd.onego.ru',
'HTTP_CONNECTION': 'close',
'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; U; Linux i586; en-US;
rv:1.0.1) Gecko/20021003',
'HTTP_ACCEPT_CHARSET': 'ISO-8859-1, utf-8;q=0.66, *;q=0.66',
'HTTP_ACCEPT': 'text/xml,application/xml,application/xhtml+xml,
text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,
image/gif;q=0.2,text/css,*/*;q=0.1',
'REQUEST_URI': '/cgi-bin/test.py?a=1',
'PATH': '/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin',
'QUERY_STRING': 'a=1&b=2',
'SCRIPT_FILENAME': '/var/www/cgi-bin/test.py',
'HTTP_KEEP_ALIVE': '300',
'HTTP_HOST': 'localhost',
'REQUEST_METHOD': 'GET',
'SERVER_SIGNATURE': 'Apache/1.3.23 Server at rnd.onego.ru Port 80',
'SCRIPT_NAME': '/cgi-bin/test.py',
'SERVER_ADMIN': 'root@localhost',
'SERVER_SOFTWARE': 'Apache/1.3.23 (Unix) (Red-Hat/Linux)
mod_python/2.7.8 Python/1.5.2 PHP/4.1.2',
'SERVER_PROTOCOL': 'HTTP/1.0',
'REMOTE_PORT': '39251'
}
Келесі CGI-сценарий қара квадрат береді (онда суреттерді өңдеу үшін Image модулі қолданылады):
#!/usr/bin/python

import sys


print """Content-Type: image/jpeg
"""

import Image


i = Image.new("RGB", (10,10))
i.im.draw_rectangle((0,0,10,10), 1)
i.save(sys.stdout, "jpeg")
2. CGI модулі.


Python CGI модулі түрінде CGI қолдауы бар. Келесі мысал оның кейбір мүмкіндіктерін көрсетеді:

#!/usr/bin/python


# -*- coding: cp1251 -*-
import cgi, os

# анализ запроса


f = cgi.FieldStorage()
if f.has_key("a"):
a = f["a"].value
else:
a = "0"

# обработка запроса


b = str(int(a)+1)
mytext = open(os.environ["SCRIPT_FILENAME"]).read()
mytext_html = cgi.escape(mytext)

# формирование ответа


print """Content-Type: text/html


Решение примера: %(b)s = %(a)s + 1

%(b)s





%(mytext_html)s


Загрузка файла



ACTION="getfile.cgi" METHOD="POST">

Файл:





%s


Достарыңызбен бөлісу:
1   ...   10   11   12   13   14   15   16   17   18




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет