পাইথনে ব্যবহৃত কিছু শব্দ বা কোড
(৫ম অংশ)
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
৪র্থ অংশে asyncio, concurrent, ctypes, dbm ইত্যাদি সামান্য কয়েকটি মডিউলের আংশিক ব্যবহার নিয়ে আলোচনা করা হয়েছে। এগুলো সহ বেশ কিছু অতি প্রয়োজনীয় বিল্ট-ইন মডিউলের বিভিন্ন ধরনের ব্যবহার রয়েছে। যেমন —
ast.dump
ast.literal_eval
ast.parse
ast.walk
ast.Add
ast.Call
ast.ClassDef
ast.FunctionDef
ast.Name
ast.NodeTransformer
ast.NodeVisitor
ast.Mult
***
asynchat.async_chat
***
asyncio.__main__
asyncio.as_completed
asyncio.base_events
asyncio.base_futures
asyncio.base_subprocess
asyncio.base_tasks
asyncio.constants
asyncio.coroutines
asyncio.create_task
asyncio.events
asyncio.exceptions
asyncio.format_helpers
asyncio.futures
asyncio.gather
asyncio.locks
asyncio.log
asyncio.mixins
asyncio.proactor_events
asyncio.protocols
asyncio.queues
asyncio.run
asyncio.runners
asyncio.selector_events
asyncio.sleep(1)
asyncio.sslproto
asyncio.staggered
asyncio.streams
asyncio.subprocess
asyncio.taskgroups
asyncio.tasks
asyncio.threads
asyncio.timeouts
asyncio.transports
asyncio.trsock
asyncio.unix_events
asyncio.wait_for
asyncio.windows_events
asyncio.windows_utils
asyncio.Queue
asyncio.TimeoutError
***
asyncore.dispatcher
asyncore.dispatcher_with_send
asyncore.loop
***
atexit.register(task)
atexit.unregister(task)
***
import audioop as ao
ao.abs
ao.avg
ao.cross
ao.lin2lin
ao.max
ao.min
ao.mul
ao.reverse
ao.rms
ao.ratecv
ao.tomono
ao.tostereo
***
base64.b64decode
base64.b64encode
base64.urlsafe_b64decode
base64.urlsafe_b64encode
***
bdb.Bdb
***
import binascii as bc
bc.a2b_base64(encoded)
bc.b2a_base64(data)
bc.a2b_hex(bc.b2a_hex(data))
bc.b2a_hex(data)
bc.a2b_hqx(encoded)
bc.b2a_hqx(data)
bc.a2b_qp(encoded)
bc.b2a_qp(data)
bc.a2b_uu(encoded)
bc.b2a_uu(data)
bc.crc32(data)
bc.crc_hqx(data, 0)
bc.hexlify(data)
bc.hexlify(data).decode()
bc.rlecode_hqx(data)
bc.rledecode_hqx(compressed)
bc.unhexlify(hex_str)
bc.unhexlify(hex_str).decode()
bc.Error
bc.Incomplete
***
bisect.bisect(a, x)
bisect.bisect_left(a, x)
bisect.bisect_right(a, x)
bisect.insort(a, x)
bisect.insort_left(a, x)
bisect.insort_right(a, x)
***
*dir(builtins)
builtins.greet
builtins.int
builtins.Exception
builtins.len([1, 2, 3])
builtins.open
builtins.print(*args, **kwargs)
builtins.str
builtins.sum([10, 20, 30])
***
bz2.compress(data)
bz2.decompress(
bz2.compress(data))
bz2.open("exam.bz2", "rb")
bz2.open("exam.bz2", "rb").read()
bz2.open("exam.bz2", "wb")
bz2.open("exam.bz2", "wb").write()
bz2.BZ2Compressor()
.compress(b" ")
bz2.BZ2Compressor().flush()
bz2.BZ2Decompressor()
.decompress(compressed)
***
calendar.calendar(2025)
calendar.calendar(
2025, calendar.MONDAY)
*calendar.day_name
calendar.day_name[datetime
.date.today().weekday()]
calendar.isleap(2028)
calendar.leapdays(2000, 2025)
calendar.month(2025, 1)
calendar.monthcalendar(2025, 10)
*calendar.month_name
calendar.HTMLCalendar(
firstweekday = 6)
.formatmonth(2025, 10))
calendar.TextCalendar(
firstweekday = 0)
.formatmonth(2025, 10)
***
cmath.cos(1-3j))
cmath.exp(1 + 1j)
cmath.log(1 + 1j)
cmath.log10(1 + 1j)
cmath.phase(1 + 1j)
cmath.sqrt(16)
***
code.compile_command(
src, '<string>', 'exec')
code.interact(local = local_vars)
code.InteractiveConsole()
code.InteractiveConsole().push()
code.InteractiveInterpreter()
code.InteractiveInterpreter()
.runsource()
***
d = codecs.getencoder("hex")(b" ")
codecs.charmap_decode
codecs.charmap_encode
codecs.decode(this.s, "rot_13")
codecs.encode
codecs.lookup
codecs.getdecoder("hex")(d)
codecs.getencoder("hex")(b" ")
codecs.getreader
codecs.getwriter
codecs.open
codecs.register
codecs.StreamReader
***
compileall.compile_dir(
".", force = True)
compileall.compile_file(
"example.py", force = True)
compileall.PycInvalidationMode
.CHECKED_HASH
***
collections.abc
collections.abc.ItemsView
._from_iterable
collections.ChainMap(dict1, dict2)
collections.Counter(name)
collections.Counter()
.most_common(5)
collections.Counter()[msg[
"from"]] += 1
collections.deque([point])
collections.deque([point])
.rotate(selected_point)
collections.defaultdict(list)
collections.defaultdict(
lambda : defaultdict(int))
collections.namedtuple(
["point", ["x", "y"])
collections.OrderedDict()
collections.UserDict
collections.UserList
collections.UserString
***
colorsys.hls_to_rgb(h, l, s)
colorsys.hsv_to_rgb(h, s, v)
colorsys.rgb_to_hls(r, g, b)
colorsys.rgb_to_hsv(r, g, b)
colorsys.rgb_to_yiq(r, g, b)
colorsys.yiq_to_rgb(y, i, q)
***
import concurrent.futures as cf
cf
cf._base
cf.process
cf.thread
cf.ProcessPoolExecutor
cf.ThreadPoolExecutor
***
r1 = Robot("AI Bot",
["Vision", "Speech"])
r2 = copy.deepcopy(r1)
copy.copy()
copy.deepcopy()
r2.skills.append("Learning")
***
import contextlib as cl
cl.AbstractAsyncContextManager
cl.AbstractContextManager
cl.aclosing(AsyncIterator())
cl.AsyncExitStack
cl.closing(urlopen(
"https://www.python.org"))
cl.contextmanager
cl.ExitStack
cl.ExitStack().callback(
cleanup, 'resource')
cl.nullcontext()
cl.redirect_stderr()
cl.redirect_stdout()
cl.suppress(FileNotFoundError)
***
user = contextvars.ContextVar(
"user", default = "Guest")
contextvars.ContextVar()
contextvars.copy_context()
user.get()
user.reset(token)
user.set("Alice")
***
copyreg.pickle(type,
pickle_function, constructor)
***
csv.DictReader(file)
csv.DictWriter
csv.QUOTE_ALL
csv.QUOTE_MINIMAL
csv.QUOTE_NONE
csv.QUOTE_NONNUMERIC
csv.Sniffer().sniff(sample)
csv.reader
csv.register_dialect
csv.writer
csv.writer(f)
csv.writer(f).writerow
csv.writer(f).writerow([ ])
csv.writer(f).writerow([
"From", "Subject", "Date"])
csv.writer(f).writerow(row)
***
from dataclasses import asdict,
astuple, dataclass, field, replace
b = Book("Py 101", "John", 29.99)
c = Car("Tesla", "Model S", 2023)
asdict(b)
astuple(b)
field(default_factory = list)
dataclass
replace(c, year = 2025)
***
from datetime import date as d
from datetime import
datetime as dt
from datetime import
timedelta as td
from datetime import
timezone as dtz
from pytz import timezone as ptz
from pytz import utc as utc
strf = "%Y-%m-%d %H:%M:%S"
strp = "2025-10-01 15:40:00"
d
d(2025, 10, 3)
(d(2025, 10, 3) - d(2025, 9, 1)).days
d.today()
d.today() + td(
weeks = 1, days = 2, hours = 3,
minutes = 35, seconds = 23)
(d.today() + td(weeks = 1,
days = 2, hours = 3, minutes = 35,
seconds = 23)).isoformat()
d.today().day
d.today().isoformat()
d.today().month
d.today().strftime(strf)
d.today().strftime(strp)
d.today().strftime("%a %d %b %g")
d.today().strftime("%a %d %h %y")
d.today().strftime("%A %d %B %G"))
d.today().strftime("%A %d %H %Y"))
d.today().strftime("%c")
d.today().strftime("%C")
d.today().strftime("%F")
d.today().strftime("%h")
d.today().strftime("%r")
d.today().strftime("%v")
d.today().weekday()
d.today().year
dt.now()
dt.now() + td(
weeks = 1, days = 2, hours = 3,
minutes = 35, seconds = 23)
(dt.now() + td(weeks = 1,
days = 2, hours = 3, minutes = 35,
seconds = 23)) .isoformat()
dt
dt.now().day
dt.now().hour
dt.now().isoformat()
dt.now().minute
dt.now().month
dt.now().second
(dt.now() - dt.now()).seconds
dt.now().strftime(strf)
dt.now().strftime(strp)
dt.now().strftime("%a %d %b %g")
dt.now().strftime("%A %d %B %G")
dt.now().strftime("%c")
dt.now().strftime("%C")
dt.now().strftime("%h")
dt.now().strftime("%j")
dt.now().strftime("%u")
dt.now().strftime("%U")
dt.now().strftime("%v")
dt.now().strptime(strp, strf)
dt.now().year
dt.now(utc)
dt.now(utc)
.astimezone(ptz("Asia/Delhi"))
dt.now(utc)
.astimezone(ptz("Asia/Delhi"))
.strftime(strf)
dt.now(utc).strftime(strf)
dt.now(dtz.utc)
dt.strptime("2025-12-16",
"%Y-%m-%d").strftime("%A")
dt.today()
dt.today().day
dt.today().hour
dt.today().minute
dt.today().month
dt.today().second
dt.today().strftime(strf)
dt.today().strftime(strp)
dt.today().strftime("%a %d %b %g")
dt.today().strftime("%A %d %B %Y")
dt.today().strftime("%c")
dt.today().strftime("%C")
dt.today().strftime("%F")
dt.today().strftime("%h")
dt.today().strftime("%j")
dt.today().strftime("%u")
dt.today().strftime("%U")
dt.today().strftime("%v")
dt.today().strftime("%V")
dt.today().strptime(strp, strf)
dt.today().weekday()
dt.today().year
dt.utcfromtimestamp(timestamp)
td(seconds = 3600)
***
decimal.Decimal("1.02")
decimal.getcontext().prec
***
a = "hello world"
b = "hello python"
words = ["apple", "apply", "apples",
"banana"]
" ".join(difflib.context_diff(a, b))
difflib.get_close_matches(
"appel", words)
difflib.HtmlDiff().make_file(a, b)
*difflib.ndiff(a.split(), b.split())
difflib.SequenceMatcher(
None, a, b).ratio()
" ".join(difflib.unified_diff(a, b))
***
dis.Bytecode(square)
dis.code_info(obj)
dis.dis(add)
dis.dis(compile("a * b + c",
"<string>", "exec"))
dis.disassemble(code)
dis.get_instructions(lambda x: x + 5)
dis.show_code(add)
***
doctest.DocTestSuite(mymodule)
doctest.ELLIPSIS
doctest.NORMALIZE_WHITESPACE
doctest.testfile("example.txt")
doctest.testmod(verbose = True)
***
email._header_value_parser
email._parseaddr
email._policybase
email.base64mime
email.charset
email.contentmanager
email.encoders
email.errors
email.feedparser
email.generator
email.header
email.headerregistry
email.iterators
email.message
email.message_from_bytes
email.message_from_string
email.mime
email.mime.application
email.mime.audio
email.mime.base
email.mime.image
email.mime.message
email.mime.multipart
email.mime.nonmultipart
email.mime.text
email.parser
email.policy
email.quoprimime
email.utils
***
*encodings.aliases.aliases
encodings.aliases.aliases["646"]
encodings.aliases.aliases.get("646")
*encodings.aliases.aliases.items()
*encodings.aliases.aliases.keys()
*encodings.aliases.aliases.values()
encodings.ascii
.getregentry().decode(text)
encodings.ascii
.getregentry().encode(text)
encodings.ascii
.StreamReader(b" ").read
encodings.ascii
.StreamWriter(None).write
***
enum.auto
enum.Enum
enum.Flag
enum.IntEnum
***
ensurepip.bootstrap()
ensurepip.version()
***
import faulthandler as fh
fh.cancel_dump_traceback_later()
fh.disable()
fh.dump_traceback()
fh.dump_traceback_later(
3, repeat = True)
fh.enable()
fh.register(signal.SIGUSR1)
***
filecmp.cmp
filecmp.cmpfiles
filecmp.dircmp
***
fileinput.close()
fileinput.filelineno()
fileinput.filename()
fileinput.isfirstline()
fileinput.input()
fileinput.lineno()
***
from fractions import Fraction as f
f
f.denominator
f.limit_denominator
f.numerator
***
fnmatch.filter
fnmatch.fnmatch
fnmatch.fnmatchcase
fnmatch.translate("sensor_*")
***
ftp = ftplib.FTP(host, timeout = 5)
ftp.cwd('/public_html')
ftp.delete('old.txt')
ftp.login()
ftp.mkd('new_folder')
ftp.pwd()
ftp.quit()
ftp.rename('oldname.txt',
'newname.txt')
ftp.retrbinary('RETR access.log',
open('access.log','wb').write)
ftp.retrlines('RETR file.txt')
ftp.rmd('old_folder')
ftp.sendcmd("STAT")
ftp.set_pasv(True)
ftp.size("file.txt")
ftp.storbinary(f"STOR {file}", f)
ftplib.error_perm
ftplib.FTP_TLS
(ftp = File Transfer Protocol)
***
functools.cache
functools.cmp_to_key
functools.lru_cache
functools.partial
functools.partialmethod
functools.reduce
functools.singledispatch
functools.singledispatchmethod
functools.total_ordering
functools.update_wrapper
functools.wraps
***
gc.callbacks
gc.collect()
gc.disable()
gc.enable()
gc.garbage
gc.get_count()
gc.get_objects()
gc.get_referents()
gc.get_referrers()
gc.get_stats()
gc.get_threshold()
gc.isenabled()
gc.set_debug
gc.set_debug(gc.DEBUG_LEAK)
gc.set_debug(gc.DEBUG_SAVEALL)
gc.set_threshold
gc.DEBUG_LEAK
gc.DEBUG_SAVEALL
gc.DEBUG_STATS
***
getopt.getopt(sys.argv[1:], "ho:")
getopt.GetoptError
getopt.gnu_getopt
***
hashlib.md5(traceback.format_exc()
.encode()).hexdigest()
***
http.server.HTTPServer
http.server
.BaseHTTPRequestHandler
***
importlib.import_module('math')
importlib.import_module
('math').sqrt(4)
importlib.import_module
('os.path').abspath('.')
***
idlelib.__file__
idlelib.__main__
idlelib.autocomplete
idlelib.autocomplete.AutoComplete
idlelib.autocomplete_w
idlelib.autoexpand
idlelib.autoexpand.AutoExpand
idlelib.browser
idlelib.calltip
idlelib.calltip.CallTip
idlelib.calltip_w
idlelib.codecontext
idlelib.colorizer
idlelib.colorizer.ColorDelegator
idlelib.config
idlelib.config_key
idlelib.configdialog
idlelib.debugger
idlelib.debugger.Debugger
idlelib.debugger_r
idlelib.debugobj
idlelib.debugobj_r
idlelib.delegator
idlelib.dynoption
idlelib.editor
idlelib.editor.EditorWindow
idlelib.filelist
idlelib.format
idlelib.grep
idlelib.help
idlelib.help_about
idlelib.history
idlelib.hyperparser
idlelib.idle
idlelib.iomenu
idlelib.macosx
idlelib.mainmenu
idlelib.multicall
idlelib.outwin
idlelib.parenmatch
idlelib.pathbrowser
idlelib.percolator
idlelib.pyparse
idlelib.pyshell
idlelib.pyshell.PyShell
idlelib.query
idlelib.redirector
idlelib.replace
idlelib.rpc
idlelib.rpc.RPCClient
idlelib.run
idlelib.runscript
idlelib.scrolledlist
idlelib.search
idlelib.searchbase
idlelib.searchengine
idlelib.sidebar
idlelib.squeezer
idlelib.stackviewer
idlelib.statusbar
idlelib.statusbar.MultiStatusBar
idlelib.textview
idlelib.tooltip
idlelib.tree
idlelib.undo
idlelib.util
idlelib.window
idlelib.zoomheight
idlelib.zzdummy
***
module = importlib.util
.module_from_spec(s2)
path = '/path/to/myscript.py'
s1 = importlib.util.find_spec('json')
s2 = importlib.util.spec_from_
file_location("myscript", path)
importlib._abc
importlib._bootstrap
importlib._bootstrap_external
importlib.abc
importlib.import_module(
"json.decoder").JSONDecoder
importlib.import_module("math").pi
importlib.import_module.sqrt(4)
importlib.machinery
importlib.metadata
importlib.metadata._adapters
importlib.metadata._collections
importlib.metadata._functools
importlib.metadata._itertools
importlib.metadata._meta
importlib.metadata._text
importlib.metadata.diagnose
importlib.readers
importlib.reload
importlib.resources
importlib.resources._adapters
importlib.resources._common
importlib.resources._functional
importlib.resources._itertools
importlib.resources.abc
importlib.resources.readers
importlib.resources.simple
importlib.simple
importlib.util
importlib.util.exec_module(module)
importlib.util.find_spec('json')
importlib.util.module_from_spec(s)
importlib.util.reload(module)
importlib.util.spec_from_file
_location(name, path)
module.my_function()
s1.name
s1.origin
s2.loader.exec_module(module)
***
inspect.cleandoc
inspect.currentframe
inspect.get_annotations
inspect.getclosurevars
inspect.getcoroutinestate
inspect.getdoc
inspect.getfile
inspect.getfullargspec
inspect.getmembers
inspect.getouterframes
inspect.getsource
inspect.isclass
inspect.iscoroutine
inspect.isfunction
inspect.isgenerator
inspect.ismodule
inspect.signature
inspect.signature().parameters
inspect.stack
inspect.unwrap
***
io.BufferedIOBase
io.BytesIO().read()
io.BytesIO().seek(0)
io.BytesIO().write()
io.IOBase
io.RawIOBase
io.TextIOBase
***
itertools.accumulate(data)
itertools.accumulate(data,
operator.mul)
itertools.chain(a, b)
itertools.combinations("ABC", 2)
itertools.compress(data, selectors)
itertools.count(start = 10, step = 2)
itertools.cycle(colors)
itertools.dropwhile(lambda x:
x < 5, nums)
itertools.filterfalse(lambda x:
x % 2 == 0, nums)
itertools.groupby(data,
lambda x: x[0])
itertools.islice(nums, 2, 8, 2)
itertools.permutations("ABC", 2)
itertools.product("AB", repeat = 2)
itertools.repeat("Hello", 3)
itertools.starmap(pow, pairs)
itertools.takewhile(lambda x:
x < 5, nums)
itertools.tee(nums)
itertools.zip_longest(a, b,
fillvalue = '*')
***
json.decoder
json.encoder
json.scanner
json.tool
json.dump()
json.dump(json.loads(data),
sys.stdout, indent = 4)
json.dumps()
json.load()
json.loads()
json.decoder.JSONDecoder()
json.encoder.JSONEncoder()
json.JSONDecoder()
.decode(json_data)
json.JSONEncoder().encode(data)
json.JSONDecodeError
json.JSONEncodeError
json.scanner.py_make_scanner(
json.JSONDecoder())
***
keyword.kwlist
keyword.iskeyword("nonlocal")
keyword.softkwlist
***
import linecache as lc
lc.getline('file.txt', 2)
lc.checkcache(filename = None)
lc.clearcache()
lc.updatecache(filename)
***
*_locale.localeconv()
_locale.setlocale(
locale.LC_NUMERIC)
***
locale.atof("1 234,56")
locale.currency(amount,
grouping = True)
locale.format_string("%.2f",
number, grouping = True)
locale.getdefaultlocale()
locale.getlocale()
locale.getpreferredencoding()
*locale.locale_alias
*locale.locale_alias.keys()
locale.localeconv()
locale.setlocale(
locale.LC_ALL, "en_US.UTF-8")
locale.setlocale(
locale.LC_COLLATE,
"de_DE.UTF-8")
locale.setlocale(
locale.LC_CTYPE, loc)
locale.setlocale(
locale.LC_MONETARY,
"en_US.UTF-8")
locale.setlocale(
locale.LC_NUMERIC,
"fr_FR.UTF-8")
locale.setlocale(
locale.LC_TIME, "fr_FR.UTF-8")
locale.strxfrm
***
import logging as log
import logging.handlers as logh
file_handler =
log.FileHandler("mylog.logg")
formatter = log.Formatter("%(name)s
- %(levelname)s - %(message)s")
logger = log.getLogger("MyLogger")
file_handler.setFormatter(formatter))
log.basicConfig(log.ERROR
or log.INFO)
log.basicConfig(
level = log.WARNING)
log.critical("critical message")
log.debug("debug message")
log.error("error message")
log.exception("error occurred")
log.FileHandler("mylog.logg")
log.Formatter("%(name)s
- %(levelname)s - %(message)s")
log.getLogger("MyLogger")
log.info("info message")
log.StreamHandler()
.setFormatter(formatter)
log.StreamHandler()
.setFormatter(JSONFormatter())
log.StreamHandler()
.setLevel(log.INFO)
log.warning("warning message")
logger.addHandler(file_handler)
logger.addHandler(
log.StreamHandler())
logger.critical(
"System crash reported!")
logger.debug("Debugging started")
logger.error("Something went
wrong")
logger.info("Information log")
logger.setLevel(log.DEBUG)
logger.warning("Warning shown")
logh.RotatingFileHandler(
"app.logg", maxBytes = 2000,
backupCount = 3)
logh.SMTPHandler(mailhost =
("smtp.gmail.com", 587),
fromaddr = "you@exam.com",
toaddrs = ["admin@exam.com"],
subject = "Critical Error",
credentials = ("you@exam.com",
"password"),
secure = ()
)
logh.SysLogHandler(
address = ('localhost', 514))
logh.TimedRotatingFileHandler(
"time_app.logg",
when = "midnight", interval = 1)
log.CRITICAL
log.DEBUG
log.ERROR
log.Filter
log.INFO
log.WARNING
***
import lzma
from lzma import LZMAFile as lf
from lzma import open as lo
data = b"compression" * 10
lzma.compress(data)
lzma.compress(data).decode()
lzma.compress(data, preset = 6)
lzma.decompress(
lzma.compress(data))
lzma.decompress(
lzma.compress(data))
.decode()
lzma.FILTER_DELTA
lzma.FILTER_LZMA2
lzma.FORMAT_ALONE
lzma.FORMAT_RAW
lzma.FORMAT_XZ
lzma.PRESET_EXTREME
lzma.LZMACompressor()
f.write(lzma.LZMACompressor()
.compress(data))
f.write(lzma.LZMACompressor()
.flush())
lzma.LZMADecompressor()
lzma.LZMAFile()
with lf("exam.xz", "wb") as f :
f.write(b"Using LZMAFile")
with lf("exam.xz", "rb") as f :
Print(f.read().decode())
with lo("exam.xz", "wb") as f :
f.write(b"LZMA comp_file")
with lo("exam.xz", "rb") as f :
print(f.read().decode())
***
mbox = mailbox.mbox(
"exam.mbox")
msg = email.message
.EmailMessage()
maildir = mailbox.Maildir(
"my_maildir", create = True)
mailbox.Babyl()
mailbox.Mailbox
mailbox.Maildir()
mailbox.mbox()
mailbox.mboxMessage() mailbox.Message()
mailbox.MH()
mailbox.MMDF()
maildir.add(msg)
maildir.flush()
maildir.close()
mbox.add(msg)
mbox.flush()
mbox.close()
***
from mmap import mmap as mm
mm(-1, 64).read(64).rstrip(b"\x00")
.decode()
mm(f.fileno(), 0).readline().decode()
mm(f.fileno(), 0).close()
mm.find(b"Python")
mm.flush()
mm.readline().decode()
mm.rfind()
mm(-1, 64).seek(0)
mm.slice
mm(-1, 64).write(data)
mmap.ACCESS_COPY
mmap.ACCESS_READ
mmap.ACCESS_WRITE
***
modulefinder.ModuleFinder()
.run_script
***
import multiprocessing as mp
mp.connection
mp.context
mp.dummy
mp.dummy.connection
mp.Event
mp.forkserver
mp.heap
mp.Lock
mp.managers
mp.pool
mp.popen_fork
mp.popen_forkserver
mp.popen_spawn_posix
mp.popen_spawn_win32
mp.process
mp.queues
mp.reduction
mp.resource_sharer
mp.resource_tracker
mp.shared_memory
mp.sharedctypes
mp.spawn
mp.synchronize
mp.util
from multiprocessing import Array,
cpu_count, current_process,
Lock, Pipe, Pool, Process,
Queue, shared_memory, Value
cpu_count()
current_process().name
Pipe()
Pool().apply()
Pool().apply_async()
Pool().imap()
Pool().map()
Pool().starmap()
Process(target = reader)
Process(target = writer)
Process(target = worker, args
= ('A',)).join()
Process(target = worker, args
= ('A',)).start()
Queue().get()
Queue().empty()
Queue().full()
Queue().qsize()
Queue().put(item or text)
shared_memory
***
ntpath.basename("C:\\Test\\a.txt")
***
isinstance(3j, numbers.Complex)
isinstance(10, numbers.Integral)
isinstance(a, numbers.Number)
isinstance(Fraction(1, 3),
numbers.Rational)
isinstance(10.5, numbers.Real)
***
numbers.Real.register
***
opcode.opmap["LOAD_FAST"]
opcode.opname[100]
***
operator.add(10, 5)
operator.countOf([2, 1, 2, 3, 2], 2)
operator.eq(5, 5)
operator.itemgetter(1)
operator.mul(3, 4)
***
optparse.OptionParser
***
os.chdir
os.close
os.cpu_count
os.environ
os.environ.get
os.execvp
os.fork
os.getcwd
os.getenv
os.getlogin
os.getpid
os.getppid
os.listdir
os.lstat
os.mkdir
os.makedirs
os.name
os.open
os.path.abspath
os.path.basename
os.path.commonpath
os.path.commonprefix
os.path.dirname
os.path.exists
os.path.expanduser
os.path.expandvars
os.path.getatime
os.path.getctime
os.path.getmtime
os.path.getsize
os.path.isabs
os.path.isdir
os.path.isfile
os.path.islink
os.path.join
os.path.normcase
os.path.normpath
os.path.realpath
os.path.relpath
os.path.samefile
os.path.split
os.path.splitext
os.path.supports_unicode_filenames
os.readlink
os.remove
os.removedirs
os.rename
os.rmdir
os.spawnvp
os.stat
os.strerror
os.symlink
os.system
os.waitpid(-1, os.WNOHANG)
os.walk
os.write
os.O_CREAT
os.O_NOCTTY
os.O_RDWR
os.P_DETACH
os.P_NOWAIT
os.P_OVERLAY
os.P_WAIT
os.WNOHANG
***
pathlib.Path(".").iterdir()
pathlib.Path(__file__)
.resolve().parent.parent
***
pdb.set_trace
***
pickle.dumps(obj)
pickle.loads(f.read())
***
pkgutil.extend_path()
pkgutil.get_data()
pkgutil.get_loader()
pkgutil.iter_modules()
pkgutil.walk_packages()
***
platform.system
***
pyclbr.readmodule("math")
***
random.random()
random.uniform(25.0, 30.0)
***
re._constants
re._constants.SRE_FLAG_ASCII
re._constants.SRE_FLAG_DEBUG
re._constants.SRE_FLAG_DOTALL
re._constants
.SRE_FLAG_IGNORECASE
re._constants.SRE_FLAG_LOCALE
re._constants.SRE_FLAG_MULTILINE
re._constants.SRE_FLAG_UNICODE
re._constants.SRE_FLAG_VERBOSE
re._constants.SRE_INFO_CHARSET
re._constants.SRE_INFO_LITERAL
re._constants.SRE_INFO_PREFIX
re._parser
re._parser.parse("a|b", 0)
re._casefix
re._compiler
re.compile
re.escape
re.findall
re.finditer
re.fullmatch
re.match
re.search
re.split
re.sub
re.ASCII বা re.A
re.DEBUG
re.DOTALL বা re.S
re.IGNORECASE বা re.I
re.LOCALE বা re.L
re.MULTILINE বা re.M
re.NOFLAG
re.UNICODE
re.VERBOSE বা re.X
***
reprlib.recursive_repr
***
signal.alarm(seconds)
signal.default_int_handler
signal.getsignal(sig)
signal.pause()
signal.signal(signal.SIGINT,
signal.SIG_IGN)
signal.SIG_IGN
signal.SIGALRM
signal.SIGCHLD
signal.SIGHUP
signal.SIGINT
signal.SIGUSR1
signal.SIGUSR2
signal.SIGTERM
***
site.disableusersite()
site.ENABLE_USER_SITE
site.getsitepackages()
site.getuserbase()
site.getusersitepackages()
***
smtplib.SMTP(smtp_server, port)
with smtplib.SMTP(smtp_server,
port) as server :
server.starttls()
server.login('your_email@gmail
.com', 'your_app_password')
server.send_message(msg)
***
sre_compile.compile
***
sre_constants.ANY
sre_constants.ANY_ALL
sre_constants.ASSERT
sre_constants.ASSERT_NOT ....
sre_constants.MAXREPEAT ....
sre_constants.OPCODES ....
sre_constants.warnings
***
sre_parse.parse("a\d+").getwidth()
***
socket.socket()
socket.socket().connect(
("example.com", 80))
socket.AF_INET,
socket.SOCK_STREAM
***
statistics.geometric_mean
statistics.harmonic_mean
statistics.mean
statistics.median
statistics.mode
statistics.multimode
statistics.pstdev
statistics.pvariance
statistics.stdev
statistics.variance
***
string.ascii_letters
string.ascii_lowercase
string.ascii_uppercase
string.digits
string.hexdigits
string.octdigits
string.punctuation
string.printable
string.whitespace
***
ch = " "
stringprep.map_table_b2("A")
stringprep.map_table_b2("Σ")
stringprep.in_table_c3(ch)
stringprep.in_table_c4(ch)
stringprep.in_table_c5(ch)
stringprep.in_table_c6(ch)
stringprep.in_table_c12(ch)
stringprep.in_table_c21(ch)
stringprep.in_table_c22(ch)
***
mm = mmap.mmap(f.fileno(), 0,
access = mmap.ACCESS_READ)
struct.unpack('BBB', mm[0 : 3])
***
import subprocess as sp
sp.call()
sp.check_output(["echo", "Welcome
to PythonGeeks!"], shell = True)
sp.DEVNULL
sp.PIPE
sp.Popen(["ping", "google.com"])
sp.run(["echo", "Hello, World!"])
***
shutil.copy("exam.mbox",
"backup_exam.mbox")
***
from symtable import symtable
as sym
sym
sym.get_children()
sym.get_name()
sym.get_symbols()
sym.get_type()
code = """
def outer() :
x = 10
def inner() :
return x
"""
table = sym(code, "exam.py", "exec")
func = table.lookup("test")
.get_namespace()
func.get_symbols()
outer = table.lookup("outer")
.get_namespace()
inner = outer.lookup("inner")
.get_namespace()
inner.lookup("x").is_free()
***
sys._getframe
sys.abiflags
sys.argv
sys.byteorder
sys.exc_info
sys.exec_prefix
sys.executable
sys.exit
sys.flags
sys.getdefaultencoding
sys.getfilesystemencoding
sys.getrefcount
sys.getsizeof
sys.implementation
sys.intern
sys.maxsize
sys.modules
sys.modules.keys
sys.path
sys.platform
sys.platlibdir
sys.prefix
sys.setrecursionlimit
sys.settrace
sys.stderr.write
sys.stdin.fileno
sys.stdin.readline
sys.stdlib_module_names
sys.stdout.write
sys.version
sys.version_info
sys.version_info.major
sys.version_info.minor
***
sysconfig.get_config_var(
"py_version_short")
sysconfig.get_paths()["platlib"]
sysconfig.get_platform()
***
tabnanny.check(file)
tabnanny.checkdir(dir)
tabnanny.verbose
***
import tarfile
with tarfile.open("exam.tar")
as tar : tar.add
print("successfully")
***
import textwrap as tw
tw.dedent(text)
tw.fill(text, width = 40)
tw.fill(text.splitlines(), width = 30)
tw.indent(text, prefix = ">> ")
tw.shorten(text, width = 50,
placeholder = "...")
tw.TextWrapper(width = 10,
expand_tabs = False).fill(text))
tw.TextWrapper(
width = 30, initial_indent = "* ",
subsequent_indent = " ").fill(text)
tw.wrap(text, width = 30)
***
threading.Lock().acquire()
threading.Thread(
target = task1).start()
***
t = time.localtime()
time.asctime()
time.asctime(time.localtime())
time.ctime(os.path.getmtime(
"data.csv"))
time.get_clock_info('monotonic')
time.get_clock_info('time')
time.gmtime()
t()
t().tm_isdst
t().tm_mday
t().tm_mon
t().tm_wday
t().tm_yday
t().tm_year
time.mktime(t())
time.monotonic()
time.perf_counter()
time.process_time()
time.sleep(2)
time.sleep(random.random())
time.strftime('%H:%M:%S')
time.strftime(strf, t())
time.strptime(strp, strf)
time.time()
***
timeit.repeat(stmt =
"sum(range(1000))",
repeat = 5, number = 1000)
timeit.timeit(stmt = "x = sum(range
(1000))", number = 1000)
timeit.Timer("sum(range(1000))")
.timeit(number = 1000)
***
tracer = trace.Trace(
count = True, trace = False)
tracer.results().write_results(
show_missing = True)
tracer.runfunc(calc, 10)
***
tb = sys.exc_info()[2]
stack = traceback.StackSummary
.from_list([("test.py", 10,
"my_func", "x = 1/0")])
traceback.clear_frames(tb)
traceback.extract_stack()
traceback.extract_tb(tb)
traceback.format_exc()
traceback.format_stack()
traceback.print_exc()
traceback.print_exception(
*sys.exc_info())
traceback.print_stack()
traceback.walk_tb(tb)
stack.format()
***
snap, snap1, snap2 =
tracemalloc.take_snapshot()
filter = tracemalloc.Filter
snap2.compare_to(snap1, 'lineno')
snap.filter_traces((filter(False,
"<frozen importlib._bootstrap>"),))
snap.statistics("lineno")
tracemalloc.get_traced_memory()
tracemalloc.start()
tracemalloc.stop()
***
import turtle
colors = [ "green", "lime", "yellow",
"orange", "red", "magenta" ]
pen = turtle.Turtle()
screen = turtle.Screen()
pen.backward(100)
pen.begin_fill()
pen.circle(60)
pen.color("black")
pen.color(colors[level % len(colors)])
pen.color(random.choice(colors))
pen.dot(random.randint(5, 10))
pen.down()
pen.end_fill()
pen.fillcolor(color)
pen.forward(100)
pen.forward(random.randint(1, 5))
pen.goto(150, 0)
pen.hideturtle()
pen.home()
pen.left(90)
pen.pendown()
pen.pensize(9)
pen.penup()
pen.right(90)
pen.setheading(0)
pen.shape("turtle")
pen.shapesize(stretch_wid = 10,
stretch_len = 9, outline = 2)
pen.speed(10)
pen.up()
pen.width(2)
turtle.bgcolor("black")
turtle.color("lime")
turtle.colormode(255)
turtle.done()
turtle.hideturtle()
turtle.listen()
turtle.onkey()
turtle.setup(w = 800, h = 600)
turtle.speed(0)
screen.bgcolor("red")
screen.loop()
screen.mainloop()
screen.setup(w = 800, h = 600)
screen.title("My Turtle Art")
screen.tracer(0)
screen.update()
***
import turtledemo as td
td.__main__
td.bytedesign
td.chaos
td.clock
td.colormixer
td.forest
td.fractalcurves
td.lindenmayer
td.minimal_hanoi
td.nim
td.paint
td.peace
td.penrose
td.planet_and_moon
td.rosette
td.round_dance
td.sorting_animate
td.tree
td.two_canvases
td.yinyang
td.color()
td.forward()
td.left()
td.penup()
td.speed()
***
typing.Tuple
typing.Dict
typing.Any
typing.List
***
unicodedata.category(char)
***
unittest.TestCase
***
params = {'q': 'Python', 'page': 1}
qp = urllib.parse.urlencode(params)
response = urllib.request
.urlopen(url)
response = urllib.request
.urlopen(url, timeout = 5)
url = "https://www.exam.com"
url = f"https://www.exam.com
/search?{qp}"
urllib.error.HTTPError
urllib.error.URLError
urllib.parse.parse_qs
urllib.parse.urlencode(params)
response.read().decode('utf-8')
***
warnings.catch_warnings
warnings.filterwarnings
warnings.showwarning
warnings.simplefilter
warnings.warn
***
wave.open
***
weakref.ReferenceType
***
webbrowser.open
webbrowser.open_new_tab
***
wsgiref.headers.Headers
wsgiref.headers.Headers().get
wsgiref.handlers.CGIHandler
wsgiref.handlers.SimpleHandler
wsgiref.simple_server.make_server
wsgiref.util.setup_testing_defaults
wsgiref.validate.validator
wsgi = Web Server Gateway
Interface
***
zipapp.create_archive
***
zipfile.ZipFile("test.zip", "a") as a
zipfile.ZipFile("test.zip", "r") as r
zipfile.ZipFile("test.zip", "w") as w
zipfile.ZipFile("test.zip", "w",
zipfile.ZIP_DEFLATED) as zd
zipfile.ZipFile(
"stored_example.zip", "w",
compression =
zipfile.ZIP_STORED) as zs
a.write("file1.txt")
r.extract("file1.txt",
path = 'extracted/')
r.extractall('extracted_all/')
r.extractall(path = "output_folder/")
r.infolist()
r.namelist()
r.open("file1.txt")
r.open("file1.txt").read().decode()
r.testzip()
w.writestr("hello.txt",
"Hello from memory!")
w.write("file1.txt")
w.write("file2.txt")
zd.write("file1.txt")
zs.write("file1.txt")
zipfile.ZipFile(io.BytesIO(open
("test.zip", "rb").read()), "r")
.namelist())
zipfile.ZipFile("protected.zip")
.setpassword(b"mypassword")
.read("secret.txt").decode()
zipfile.ZipFile("exam.zip", "a",
compression =
zipfile.ZIP_DEFLATED)
.writestr("newfile.txt", "This is
inside zip without real file")
***
zipimport.zipimporter
(ক্রমাগত)
#📢শেয়ারচ্যাট স্পেশাল
যুক্তি বিদ্যায় ঈশ্বর
যুক্তি এমন একটা বিষয় যা সব কিছুর সত্য মিথ্যা নির্ধারণ করতে পারে। এমন কি ক্ষেত্র বিশেষ কিছু কিছু বিষয়ের বৈজ্ঞানিক সিদ্ধান্তের জন্য এই যুক্তি বিদ্যার প্রয়োজন পড়ে। এমন কি যে কোন প্রোগ্রামিং ভাষাও গণিত এবং যুক্তি বিদ্যা মেনে চলে। তাই যুক্তি না বুঝলে কোনটা সঠিক কোনটা ভুল তা নিরূপণ করা যায় না।
কারণ সাপকে ব্যাঙ আর ব্যাঙকে সাপ বলে যতোই বিশ্বাস করি না কেন সাপ যেমন ব্যাঙ হয় না তেমন ব্যাঙ কখনও সাপ হয় না — এটাই হলো যুক্তি আর বিশ্বাসের বৈষম্য। অর্থাৎ বিশ্বাসে ব্যাঙ সাপ আর সাপ ব্যাঙ হয় কিন্তু যুক্তিতে নয়। তাই বিশ্বাসের পরে নির্ভর করা বিভিন্ন ধর্মীয় তথ্য মিথ্যা হতে পারে কিন্তু যুক্তির পরে নির্ভর করা যে কোন বৈজ্ঞানিক তথ্যও সব সময় সত্য হয়।
ধর্মীয় মতবাদের প্রায় সব কিছুই বিশ্বাসের পরে ভর করা তথ্য কিন্তু যুক্তির পরে নির্ভর করা নয়। তাই যুক্তি দিয়ে বিশ্লেষণ করলে মতবাদগুলোর অসরতা অনুমেয় হয়।
ঈশ্বর আছে কি নেই সেটা তার্কিক বিষয়। তবু যদি ধরে নিই ঈশ্বর আছে তাও কিন্তু মতবাদগুলো মিথ্যা বলে প্রমাণিত হবে। এর বিশেষ কারণ হলো ঈশ্বর সম্পর্কে বিভিন্ন মতবাদের প্রচারিত তথ্যের ভিন্নতা। যেমন একই ঈশ্বর বিভিন্ন সময়ে বিভিন্ন মতবাদে বিভিন্ন কিছু বলেছে — এটা লজিক্যালি মিথ্যা প্রমাণিত হবে। অর্থাৎ ঈশ্বর বিভিন্ন সময়ে বিভিন্ন রকম মতবাদ দিয়েছে বা সৃষ্টি করেছে বা কাউকে নির্দেশ দিয়েছে তার সম্পর্কে প্রচার করার জন্য — এ সব তথ্য যুক্তিহীন।
কারণ একই ঈশ্বর বিভিন্ন সময়ে বিভিন্ন মতবাদে একই বিষয়ে বিভিন্ন মতামত পোষণ করতে পারে — এটা বিশ্বাস করাও মনে হয় ঈশ্বরকে প্রতারক ভাবার সমতুল্য — যা একদমই অসম্ভব। তা ছাড়া একই ঈশ্বরের বিভিন্ন মতবাদের মাধ্যমে বিভিন্ন রকম নিয়ম-কানুন চালু করায় লাভই বা কোথায়! কারণ ঈশ্বর বলতে কেউ বা কিছু যদি সত্যিই থাকতো এবং স্বকীয় নাম প্রচারের চেষ্টা করতো তবে সব মতবাদে একই রকম প্রচারের চেষ্টা করতো — এটাই কিন্তু যৌক্তিক সত্যি।
অর্থাৎ যদি ধরি ঈশ্বর আছে তবুও মতবাদগুলো সত্য হওয়ার সম্ভাবনা বিন্দু পরিমানও নেই এর প্রধান কারণ তথ্যের
ভিন্নতা। তা ছাড়া এখনও কেউ ঈশ্বরের দৃশ্যগত, অদৃশ্যগত বা যৌক্তিক সম্ভাবনাও উপস্থাপন করতে পারেনি।
তাই ঈশ্বর বলতে প্রকৃত অর্থে কেউ বা কিছু আছে কি নেই সে বিতর্ক বাদ দিলেও ধর্মীয় মতবাদ যে সম্পূর্ণই যুক্তিহীন এবং মিথ্যে লোক বিশ্বাসের পরে ভর করে দাঁড়িয়ে আছে তা পরিষ্কার হয়ে যায়। তাই কোন ধর্মীয় মতবাদ মানুষের জীবনে কখনোই বাস্তব হয়ে উঠতে পারে না। ধন্যবাদ। #📢শেয়ারচ্যাট স্পেশাল
পাইথনে ব্যবহৃত কিছু শব্দ বা কোড
(৫ম অংশ)
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
৪র্থ অংশে asyncio, concurrent, ctypes, dbm ইত্যাদি সামান্য কয়েকটি মডিউলের আংশিক ব্যবহার নিয়ে আলোচনা করা হয়েছে। এগুলো সহ বেশ কিছু অতি প্রয়োজনীয় বিল্ট-ইন মডিউলের বিভিন্ন ধরনের ব্যবহার রয়েছে। যেমন —
ast.dump
ast.literal_eval
ast.parse
ast.walk
ast.Add
ast.Call
ast.ClassDef
ast.FunctionDef
ast.Name
ast.NodeTransformer
ast.NodeVisitor
ast.Mult
***
asynchat.async_chat
***
asyncio.__main__
asyncio.as_completed
asyncio.base_events
asyncio.base_futures
asyncio.base_subprocess
asyncio.base_tasks
asyncio.constants
asyncio.coroutines
asyncio.create_task
asyncio.events
asyncio.exceptions
asyncio.format_helpers
asyncio.futures
asyncio.gather
asyncio.locks
asyncio.log
asyncio.mixins
asyncio.proactor_events
asyncio.protocols
asyncio.queues
asyncio.run
asyncio.runners
asyncio.selector_events
asyncio.sleep(1)
asyncio.sslproto
asyncio.staggered
asyncio.streams
asyncio.subprocess
asyncio.taskgroups
asyncio.tasks
asyncio.threads
asyncio.timeouts
asyncio.transports
asyncio.trsock
asyncio.unix_events
asyncio.wait_for
asyncio.windows_events
asyncio.windows_utils
asyncio.Queue
asyncio.TimeoutError
***
asyncore.dispatcher
asyncore.dispatcher_with_send
asyncore.loop
***
atexit.register(task)
atexit.unregister(task)
***
import audioop as ao
ao.abs
ao.avg
ao.cross
ao.lin2lin
ao.max
ao.min
ao.mul
ao.reverse
ao.rms
ao.ratecv
ao.tomono
ao.tostereo
***
base64.b64decode
base64.b64encode
base64.urlsafe_b64decode
base64.urlsafe_b64encode
***
bdb.Bdb
***
import binascii as bc
bc.a2b_base64(encoded)
bc.b2a_base64(data)
bc.a2b_hex(bc.b2a_hex(data))
bc.b2a_hex(data)
bc.a2b_hqx(encoded)
bc.b2a_hqx(data)
bc.a2b_qp(encoded)
bc.b2a_qp(data)
bc.a2b_uu(encoded)
bc.b2a_uu(data)
bc.crc32(data)
bc.crc_hqx(data, 0)
bc.hexlify(data)
bc.hexlify(data).decode()
bc.rlecode_hqx(data)
bc.rledecode_hqx(compressed)
bc.unhexlify(hex_str)
bc.unhexlify(hex_str).decode()
bc.Error
bc.Incomplete
***
bisect.bisect(a, x)
bisect.bisect_left(a, x)
bisect.bisect_right(a, x)
bisect.insort(a, x)
bisect.insort_left(a, x)
bisect.insort_right(a, x)
***
*dir(builtins)
builtins.greet
builtins.int
builtins.Exception
builtins.len([1, 2, 3])
builtins.open
builtins.print(*args, **kwargs)
builtins.str
builtins.sum([10, 20, 30])
***
bz2.compress(data)
bz2.decompress(
bz2.compress(data))
bz2.open("exam.bz2", "rb")
bz2.open("exam.bz2", "rb").read()
bz2.open("exam.bz2", "wb")
bz2.open("exam.bz2", "wb").write()
bz2.BZ2Compressor()
.compress(b" ")
bz2.BZ2Compressor().flush()
bz2.BZ2Decompressor()
.decompress(compressed)
***
calendar.calendar(2025)
calendar.calendar(
2025, calendar.MONDAY)
*calendar.day_name
calendar.day_name[datetime
.date.today().weekday()]
calendar.isleap(2028)
calendar.leapdays(2000, 2025)
calendar.month(2025, 1)
calendar.monthcalendar(2025, 10)
*calendar.month_name
calendar.HTMLCalendar(
firstweekday = 6)
.formatmonth(2025, 10))
calendar.TextCalendar(
firstweekday = 0)
.formatmonth(2025, 10)
***
cmath.cos(1-3j))
cmath.exp(1 + 1j)
cmath.log(1 + 1j)
cmath.log10(1 + 1j)
cmath.phase(1 + 1j)
cmath.sqrt(16)
***
code.compile_command(
src, '<string>', 'exec')
code.interact(local = local_vars)
code.InteractiveConsole()
code.InteractiveConsole().push()
code.InteractiveInterpreter()
code.InteractiveInterpreter()
.runsource()
***
d = codecs.getencoder("hex")(b" ")
codecs.charmap_decode
codecs.charmap_encode
codecs.decode
codecs.encode
codecs.lookup
codecs.getdecoder("hex")(d)
codecs.getencoder("hex")(b" ")
codecs.getreader
codecs.getwriter
codecs.open
codecs.register
codecs.StreamReader
***
compileall.compile_dir(
".", force = True)
compileall.compile_file(
"example.py", force = True)
compileall.PycInvalidationMode
.CHECKED_HASH
***
collections.abc
collections.abc.ItemsView
._from_iterable
collections.ChainMap(dict1, dict2)
collections.Counter(name)
collections.Counter()
.most_common(5)
collections.Counter()[msg[
"from"]] += 1
collections.deque([point])
collections.deque([point])
.rotate(selected_point)
collections.defaultdict(list)
collections.defaultdict(
lambda : defaultdict(int))
collections.namedtuple(
["point", ["x", "y"])
collections.OrderedDict()
collections.UserDict
collections.UserList
collections.UserString
***
colorsys.hls_to_rgb(h, l, s)
colorsys.hsv_to_rgb(h, s, v)
colorsys.rgb_to_hls(r, g, b)
colorsys.rgb_to_hsv(r, g, b)
colorsys.rgb_to_yiq(r, g, b)
colorsys.yiq_to_rgb(y, i, q)
***
import concurrent.futures as cf
cf
cf._base
cf.process
cf.thread
cf.ProcessPoolExecutor
cf.ThreadPoolExecutor
***
r1 = Robot("AI Bot",
["Vision", "Speech"])
r2 = copy.deepcopy(r1)
copy.copy()
copy.deepcopy()
r2.skills.append("Learning")
***
import contextlib as cl
cl.AbstractAsyncContextManager
cl.AbstractContextManager
cl.aclosing(AsyncIterator())
cl.AsyncExitStack
cl.closing(urlopen(
"https://www.python.org"))
cl.contextmanager
cl.ExitStack
cl.ExitStack().callback(
cleanup, 'resource')
cl.nullcontext()
cl.redirect_stderr()
cl.redirect_stdout()
cl.suppress(FileNotFoundError)
***
user = contextvars.ContextVar(
"user", default = "Guest")
contextvars.ContextVar()
contextvars.copy_context()
user.get()
user.reset(token)
user.set("Alice")
***
copyreg.pickle(type,
pickle_function, constructor)
***
csv.DictReader(file)
csv.DictWriter
csv.QUOTE_ALL
csv.QUOTE_MINIMAL
csv.QUOTE_NONE
csv.QUOTE_NONNUMERIC
csv.Sniffer().sniff(sample)
csv.reader
csv.register_dialect
csv.writer
csv.writer(f)
csv.writer(f).writerow
csv.writer(f).writerow([ ])
csv.writer(f).writerow([
"From", "Subject", "Date"])
csv.writer(f).writerow(row)
***
from dataclasses import asdict,
astuple, dataclass, field, replace
b = Book("Py 101", "John", 29.99)
c = Car("Tesla", "Model S", 2023)
asdict(b)
astuple(b)
field(default_factory = list)
dataclass
replace(c, year = 2025)
***
from datetime import date as d
from datetime import
datetime as dt
from datetime import
timedelta as td
from datetime import
timezone as dtz
from pytz import timezone as ptz
from pytz import utc as utc
strf = "%Y-%m-%d %H:%M:%S"
strp = "2025-10-01 15:40:00"
d
d(2025, 10, 3)
(d(2025, 10, 3) - d(2025, 9, 1)).days
d.today()
d.today() + td(
weeks = 1, days = 2, hours = 3,
minutes = 35, seconds = 23)
(d.today() + td(weeks = 1,
days = 2, hours = 3, minutes = 35,
seconds = 23)).isoformat()
d.today().day
d.today().isoformat()
d.today().month
d.today().strftime(strf)
d.today().strftime(strp)
d.today().strftime("%a %d %b %g")
d.today().strftime("%a %d %h %y")
d.today().strftime("%A %d %B %G"))
d.today().strftime("%A %d %H %Y"))
d.today().strftime("%c")
d.today().strftime("%C")
d.today().strftime("%F")
d.today().strftime("%h")
d.today().strftime("%r")
d.today().strftime("%v")
d.today().weekday()
d.today().year
dt.now()
dt.now() + td(
weeks = 1, days = 2, hours = 3,
minutes = 35, seconds = 23)
(dt.now() + td(weeks = 1,
days = 2, hours = 3, minutes = 35,
seconds = 23)) .isoformat()
dt
dt.now().day
dt.now().hour
dt.now().isoformat()
dt.now().minute
dt.now().month
dt.now().second
(dt.now() - dt.now()).seconds
dt.now().strftime(strf)
dt.now().strftime(strp)
dt.now().strftime("%a %d %b %g")
dt.now().strftime("%A %d %B %G")
dt.now().strftime("%c")
dt.now().strftime("%C")
dt.now().strftime("%h")
dt.now().strftime("%j")
dt.now().strftime("%u")
dt.now().strftime("%U")
dt.now().strftime("%v")
dt.now().strptime(strp, strf)
dt.now().year
dt.now(utc)
dt.now(utc)
.astimezone(ptz("Asia/Delhi"))
dt.now(utc)
.astimezone(ptz("Asia/Delhi"))
.strftime(strf)
dt.now(utc).strftime(strf)
dt.now(dtz.utc)
dt.strptime("2025-12-16",
"%Y-%m-%d").strftime("%A")
dt.today()
dt.today().day
dt.today().hour
dt.today().minute
dt.today().month
dt.today().second
dt.today().strftime(strf)
dt.today().strftime(strp)
dt.today().strftime("%a %d %b %g")
dt.today().strftime("%A %d %B %Y")
dt.today().strftime("%c")
dt.today().strftime("%C")
dt.today().strftime("%F")
dt.today().strftime("%h")
dt.today().strftime("%j")
dt.today().strftime("%u")
dt.today().strftime("%U")
dt.today().strftime("%v")
dt.today().strftime("%V")
dt.today().strptime(strp, strf)
dt.today().weekday()
dt.today().year
dt.utcfromtimestamp(timestamp)
td(seconds = 3600)
***
decimal.Decimal("1.02")
decimal.getcontext().prec
***
a = "hello world"
b = "hello python"
words = ["apple", "apply", "apples",
"banana"]
" ".join(difflib.context_diff(a, b))
difflib.get_close_matches(
"appel", words)
difflib.HtmlDiff().make_file(a, b)
*difflib.ndiff(a.split(), b.split())
difflib.SequenceMatcher(
None, a, b).ratio()
" ".join(difflib.unified_diff(a, b))
***
dis.Bytecode(square)
dis.code_info(obj)
dis.dis(add)
dis.dis(compile("a * b + c",
"<string>", "exec"))
dis.disassemble(code)
dis.get_instructions(lambda x: x + 5)
dis.show_code(add)
***
doctest.DocTestSuite(mymodule)
doctest.ELLIPSIS
doctest.NORMALIZE_WHITESPACE
doctest.testfile("example.txt")
doctest.testmod(verbose = True)
***
email._header_value_parser
email._parseaddr
email._policybase
email.base64mime
email.charset
email.contentmanager
email.encoders
email.errors
email.feedparser
email.generator
email.header
email.headerregistry
email.iterators
email.message
email.message_from_bytes
email.message_from_string
email.mime
email.mime.application
email.mime.audio
email.mime.base
email.mime.image
email.mime.message
email.mime.multipart
email.mime.nonmultipart
email.mime.text
email.parser
email.policy
email.quoprimime
email.utils
***
*encodings.aliases.aliases
encodings.aliases.aliases["646"]
encodings.aliases.aliases.get("646")
*encodings.aliases.aliases.items()
*encodings.aliases.aliases.keys()
*encodings.aliases.aliases.values()
encodings.ascii
.getregentry().decode(text)
encodings.ascii
.getregentry().encode(text)
encodings.ascii
.StreamReader(b" ").read
encodings.ascii
.StreamWriter(None).write
***
enum.auto
enum.Enum
enum.Flag
enum.IntEnum
***
ensurepip.bootstrap()
ensurepip.version()
***
import faulthandler as fh
fh.cancel_dump_traceback_later()
fh.disable()
fh.dump_traceback()
fh.dump_traceback_later(
3, repeat = True)
fh.enable()
fh.register(signal.SIGUSR1)
***
filecmp.cmp
filecmp.cmpfiles
filecmp.dircmp
***
fileinput.close()
fileinput.filelineno()
fileinput.filename()
fileinput.isfirstline()
fileinput.input()
fileinput.lineno()
***
from fractions import Fraction as f
f
f.denominator
f.limit_denominator
f.numerator
***
fnmatch.filter
fnmatch.fnmatch
fnmatch.fnmatchcase
fnmatch.translate("sensor_*")
***
ftp = ftplib.FTP(host, timeout = 5)
ftp.cwd('/public_html')
ftp.delete('old.txt')
ftp.login()
ftp.mkd('new_folder')
ftp.pwd()
ftp.quit()
ftp.rename('oldname.txt',
'newname.txt')
ftp.retrbinary('RETR access.log',
open('access.log','wb').write)
ftp.retrlines('RETR file.txt')
ftp.rmd('old_folder')
ftp.sendcmd("STAT")
ftp.set_pasv(True)
ftp.size("file.txt")
ftp.storbinary(f"STOR {file}", f)
ftplib.error_perm
ftplib.FTP_TLS
(ftp = File Transfer Protocol)
***
functools.cache
functools.cmp_to_key
functools.lru_cache
functools.partial
functools.partialmethod
functools.reduce
functools.singledispatch
functools.singledispatchmethod
functools.total_ordering
functools.update_wrapper
functools.wraps
***
gc.callbacks
gc.collect()
gc.disable()
gc.enable()
gc.garbage
gc.get_count()
gc.get_objects()
gc.get_referents()
gc.get_referrers()
gc.get_stats()
gc.get_threshold()
gc.isenabled()
gc.set_debug
gc.set_debug(gc.DEBUG_LEAK)
gc.set_debug(gc.DEBUG_SAVEALL)
gc.set_threshold
gc.DEBUG_LEAK
gc.DEBUG_SAVEALL
gc.DEBUG_STATS
***
getopt.getopt(sys.argv[1:], "ho:")
getopt.GetoptError
getopt.gnu_getopt
***
hashlib.md5(traceback.format_exc()
.encode()).hexdigest()
***
http.server.HTTPServer
http.server
.BaseHTTPRequestHandler
***
importlib.import_module('math')
importlib.import_module
('math').sqrt(4)
importlib.import_module
('os.path').abspath('.')
***
idlelib.__file__
idlelib.__main__
idlelib.autocomplete
idlelib.autocomplete.AutoComplete
idlelib.autocomplete_w
idlelib.autoexpand
idlelib.autoexpand.AutoExpand
idlelib.browser
idlelib.calltip
idlelib.calltip.CallTip
idlelib.calltip_w
idlelib.codecontext
idlelib.colorizer
idlelib.colorizer.ColorDelegator
idlelib.config
idlelib.config_key
idlelib.configdialog
idlelib.debugger
idlelib.debugger.Debugger
idlelib.debugger_r
idlelib.debugobj
idlelib.debugobj_r
idlelib.delegator
idlelib.dynoption
idlelib.editor
idlelib.editor.EditorWindow
idlelib.filelist
idlelib.format
idlelib.grep
idlelib.help
idlelib.help_about
idlelib.history
idlelib.hyperparser
idlelib.idle
idlelib.iomenu
idlelib.macosx
idlelib.mainmenu
idlelib.multicall
idlelib.outwin
idlelib.parenmatch
idlelib.pathbrowser
idlelib.percolator
idlelib.pyparse
idlelib.pyshell
idlelib.pyshell.PyShell
idlelib.query
idlelib.redirector
idlelib.replace
idlelib.rpc
idlelib.rpc.RPCClient
idlelib.run
idlelib.runscript
idlelib.scrolledlist
idlelib.search
idlelib.searchbase
idlelib.searchengine
idlelib.sidebar
idlelib.squeezer
idlelib.stackviewer
idlelib.statusbar
idlelib.statusbar.MultiStatusBar
idlelib.textview
idlelib.tooltip
idlelib.tree
idlelib.undo
idlelib.util
idlelib.window
idlelib.zoomheight
idlelib.zzdummy
***
module = importlib.util
.module_from_spec(s2)
path = '/path/to/myscript.py'
s1 = importlib.util.find_spec('json')
s2 = importlib.util.spec_from_
file_location("myscript", path)
importlib._abc
importlib._bootstrap
importlib._bootstrap_external
importlib.abc
importlib.import_module(
"json.decoder").JSONDecoder
importlib.import_module("math").pi
importlib.import_module.sqrt(4)
importlib.machinery
importlib.metadata
importlib.metadata._adapters
importlib.metadata._collections
importlib.metadata._functools
importlib.metadata._itertools
importlib.metadata._meta
importlib.metadata._text
importlib.metadata.diagnose
importlib.readers
importlib.reload
importlib.resources
importlib.resources._adapters
importlib.resources._common
importlib.resources._functional
importlib.resources._itertools
importlib.resources.abc
importlib.resources.readers
importlib.resources.simple
importlib.simple
importlib.util
importlib.util.exec_module(module)
importlib.util.find_spec('json')
importlib.util.module_from_spec(s)
importlib.util.reload(module)
importlib.util.spec_from_file
_location(name, path)
module.my_function()
s1.name
s1.origin
s2.loader.exec_module(module)
***
io.BufferedIOBase
io.BytesIO().read()
io.BytesIO().seek(0)
io.BytesIO().write()
io.IOBase
io.RawIOBase
io.TextIOBase
***
itertools.accumulate(data)
itertools.accumulate(data,
operator.mul)
itertools.chain(a, b)
itertools.combinations("ABC", 2)
itertools.compress(data, selectors)
itertools.count(start = 10, step = 2)
itertools.cycle(colors)
itertools.dropwhile(lambda x:
x < 5, nums)
itertools.filterfalse(lambda x:
x % 2 == 0, nums)
itertools.groupby(data,
lambda x: x[0])
itertools.islice(nums, 2, 8, 2)
itertools.permutations("ABC", 2)
itertools.product("AB", repeat = 2)
itertools.repeat("Hello", 3)
itertools.starmap(pow, pairs)
itertools.takewhile(lambda x:
x < 5, nums)
itertools.tee(nums)
itertools.zip_longest(a, b,
fillvalue = '*')
***
json.decoder
json.encoder
json.scanner
json.tool
json.dump()
json.dump(json.loads(data),
sys.stdout, indent = 4)
json.dumps()
json.load()
json.loads()
json.decoder.JSONDecoder()
json.encoder.JSONEncoder()
json.JSONDecoder()
.decode(json_data)
json.JSONEncoder().encode(data)
json.JSONDecodeError
json.JSONEncodeError
json.scanner.py_make_scanner(
json.JSONDecoder())
***
keyword.kwlist
keyword.iskeyword("nonlocal")
keyword.softkwlist
***
import linecache as lc
lc.getline('file.txt', 2)
lc.checkcache(filename = None)
lc.clearcache()
lc.updatecache(filename)
***
*_locale.localeconv()
_locale.setlocale(
locale.LC_NUMERIC)
***
locale.atof("1 234,56")
locale.currency(amount,
grouping = True)
locale.format_string("%.2f",
number, grouping = True)
locale.getdefaultlocale()
locale.getlocale()
locale.getpreferredencoding()
*locale.locale_alias
*locale.locale_alias.keys()
locale.localeconv()
locale.setlocale(
locale.LC_ALL, "en_US.UTF-8")
locale.setlocale(
locale.LC_COLLATE,
"de_DE.UTF-8")
locale.setlocale(
locale.LC_CTYPE, loc)
locale.setlocale(
locale.LC_MONETARY,
"en_US.UTF-8")
locale.setlocale(
locale.LC_NUMERIC,
"fr_FR.UTF-8")
locale.setlocale(
locale.LC_TIME, "fr_FR.UTF-8")
locale.strxfrm
***
import logging as log
import logging.handlers as logh
file_handler =
log.FileHandler("mylog.logg")
formatter = log.Formatter("%(name)s
- %(levelname)s - %(message)s")
logger = log.getLogger("MyLogger")
file_handler.setFormatter(formatter))
log.basicConfig(log.ERROR
or log.INFO)
log.basicConfig(
level = log.WARNING)
log.critical("critical message")
log.debug("debug message")
log.error("error message")
log.exception("error occurred")
log.FileHandler("mylog.logg")
log.Formatter("%(name)s
- %(levelname)s - %(message)s")
log.getLogger("MyLogger")
log.info("info message")
log.StreamHandler()
.setFormatter(formatter)
log.StreamHandler()
.setFormatter(JSONFormatter())
log.StreamHandler()
.setLevel(log.INFO)
log.warning("warning message")
logger.addHandler(file_handler)
logger.addHandler(
log.StreamHandler())
logger.critical(
"System crash reported!")
logger.debug("Debugging started")
logger.error("Something went
wrong")
logger.info("Information log")
logger.setLevel(log.DEBUG)
logger.warning("Warning shown")
logh.RotatingFileHandler(
"app.logg", maxBytes = 2000,
backupCount = 3)
logh.SMTPHandler(mailhost =
("smtp.gmail.com", 587),
fromaddr = "you@exam.com",
toaddrs = ["admin@exam.com"],
subject = "Critical Error",
credentials = ("you@exam.com",
"password"),
secure = ()
)
logh.SysLogHandler(
address = ('localhost', 514))
logh.TimedRotatingFileHandler(
"time_app.logg",
when = "midnight", interval = 1)
log.CRITICAL
log.DEBUG
log.ERROR
log.Filter
log.INFO
log.WARNING
***
import lzma
from lzma import LZMAFile as lf
from lzma import open as lo
data = b"compression" * 10
lzma.compress(data)
lzma.compress(data).decode()
lzma.compress(data, preset = 6)
lzma.decompress(
lzma.compress(data))
lzma.decompress(
lzma.compress(data))
.decode()
lzma.FILTER_DELTA
lzma.FILTER_LZMA2
lzma.FORMAT_ALONE
lzma.FORMAT_RAW
lzma.FORMAT_XZ
lzma.PRESET_EXTREME
lzma.LZMACompressor()
f.write(lzma.LZMACompressor()
.compress(data))
f.write(lzma.LZMACompressor()
.flush())
lzma.LZMADecompressor()
lzma.LZMAFile()
with lf("exam.xz", "wb") as f :
f.write(b"Using LZMAFile")
with lf("exam.xz", "rb") as f :
Print(f.read().decode())
with lo("exam.xz", "wb") as f :
f.write(b"LZMA comp_file")
with lo("exam.xz", "rb") as f :
print(f.read().decode())
***
mbox = mailbox.mbox(
"exam.mbox")
msg = email.message
.EmailMessage()
maildir = mailbox.Maildir(
"my_maildir", create = True)
mailbox.Babyl()
mailbox.Mailbox
mailbox.Maildir()
mailbox.mbox()
mailbox.mboxMessage() mailbox.Message()
mailbox.MH()
mailbox.MMDF()
maildir.add(msg)
maildir.flush()
maildir.close()
mbox.add(msg)
mbox.flush()
mbox.close()
***
from mmap import mmap as mm
mm(-1, 64).read(64).rstrip(b"\x00")
.decode()
mm(f.fileno(), 0).readline()
mm(f.fileno(), 0).readline()
.decode()
mm(f.fileno(), 0).close()
mm.find(b"Python")
mm.flush()
mm.readline().decode()
mm.rfind()
mm(-1, 64).seek(0)
mm.slice
mm(-1, 64).write(data)
mmap.ACCESS_COPY
mmap.ACCESS_READ
mmap.ACCESS_WRITE
***
modulefinder.ModuleFinder()
.run_script
***
import multiprocessing as mp
mp.connection
mp.context
mp.dummy
mp.dummy.connection
mp.Event
mp.forkserver
mp.heap
mp.Lock
mp.managers
mp.pool
mp.popen_fork
mp.popen_forkserver
mp.popen_spawn_posix
mp.popen_spawn_win32
mp.process
mp.queues
mp.reduction
mp.resource_sharer
mp.resource_tracker
mp.shared_memory
mp.sharedctypes
mp.spawn
mp.synchronize
mp.util
from multiprocessing import Array,
cpu_count, current_process,
Lock, Pipe, Pool, Process,
Queue, shared_memory, Value
cpu_count()
current_process().name
Pipe()
Pool().apply()
Pool().apply_async()
Pool().imap()
Pool().map()
Pool().starmap()
Process(target = reader)
Process(target = writer)
Process(target = worker, args
= ('A',)).join()
Process(target = worker, args
= ('A',)).start()
Queue().get()
Queue().empty()
Queue().full()
Queue().qsize()
Queue().put(item or text)
shared_memory
***
ntpath.basename("C:\\Test\\a.txt")
***
isinstance(3j, numbers.Complex)
isinstance(10, numbers.Integral)
isinstance(a, numbers.Number)
isinstance(Fraction(1, 3),
numbers.Rational)
isinstance(10.5, numbers.Real)
***
numbers.Real.register
***
opcode.opmap["LOAD_FAST"]
opcode.opname[100]
***
operator.add(10, 5)
operator.countOf([2, 1, 2, 3, 2], 2)
operator.eq(5, 5)
operator.itemgetter(1)
operator.mul(3, 4)
***
optparse.OptionParser
***
os.chdir
os.close
os.cpu_count
os.environ
os.environ.get
os.execvp
os.fork
os.getcwd
os.getenv
os.getlogin
os.getpid
os.getppid
os.listdir
os.lstat
os.mkdir
os.makedirs
os.name
os.open
os.path.abspath
os.path.basename
os.path.commonpath
os.path.commonprefix
os.path.dirname
os.path.exists
os.path.expanduser
os.path.expandvars
os.path.getatime
os.path.getctime
os.path.getmtime
os.path.getsize
os.path.isabs
os.path.isdir
os.path.isfile
os.path.islink
os.path.join
os.path.normcase
os.path.normpath
os.path.realpath
os.path.relpath
os.path.samefile
os.path.split
os.path.splitext
os.path.supports_unicode_filenames
os.readlink
os.remove
os.removedirs
os.rename
os.rmdir
os.spawnvp
os.stat
os.strerror
os.symlink
os.system
os.waitpid(-1, os.WNOHANG)
os.walk
os.write
os.O_CREAT
os.O_NOCTTY
os.O_RDWR
os.P_DETACH
os.P_NOWAIT
os.P_OVERLAY
os.P_WAIT
os.WNOHANG
***
pathlib.Path(".").iterdir()
pathlib.Path(__file__)
.resolve().parent.parent
***
pdb.set_trace
***
pickle.dumps(obj)
pickle.loads(f.read())
***
platform.system
***
pyclbr.readmodule("math")
***
random.random()
random.uniform(25.0, 30.0)
***
re._constants
re._constants.SRE_FLAG_ASCII
re._constants.SRE_FLAG_DEBUG
re._constants.SRE_FLAG_DOTALL
re._constants
.SRE_FLAG_IGNORECASE
re._constants.SRE_FLAG_LOCALE
re._constants.SRE_FLAG_MULTILINE
re._constants.SRE_FLAG_UNICODE
re._constants.SRE_FLAG_VERBOSE
re._constants.SRE_INFO_CHARSET
re._constants.SRE_INFO_LITERAL
re._constants.SRE_INFO_PREFIX
re._parser
re._parser.parse("a|b", 0)
re._casefix
re._compiler
re.compile
re.escape
re.findall
re.finditer
re.fullmatch
re.match
re.search
re.split
re.sub
re.ASCII বা re.A
re.DEBUG
re.DOTALL বা re.S
re.IGNORECASE বা re.I
re.LOCALE বা re.L
re.MULTILINE বা re.M
re.NOFLAG
re.UNICODE
re.VERBOSE বা re.X
***
reprlib.recursive_repr
***
signal.alarm(seconds)
signal.default_int_handler
signal.getsignal(sig)
signal.pause()
signal.signal(signal.SIGINT,
signal.SIG_IGN)
signal.SIGUSR1
signal.SIG_IGN
signal.SIGALRM
signal.SIGCHLD
signal.SIGHUP
signal.SIGINT
signal.SIGUSR1
signal.SIGUSR2
signal.SIGTERM
***
site.disableusersite()
site.ENABLE_USER_SITE
site.getsitepackages()
site.getuserbase()
site.getusersitepackages()
***
smtplib.SMTP(smtp_server, port)
with smtplib.SMTP(smtp_server,
port) as server :
server.starttls()
server.login('your_email@gmail
.com', 'your_app_password')
server.send_message(msg)
***
sre_constants.ANY
sre_constants.ANY_ALL
sre_constants.ASSERT
sre_constants.ASSERT_NOT ....
sre_constants.warnings
***
sre_parse.parse("a\d+").getwidth()
***
socket.socket()
socket.socket().connect(
("example.com", 80))
socket.AF_INET,
socket.SOCK_STREAM
***
string.ascii_letters
string.ascii_lowercase
string.ascii_uppercase
string.digits
string.hexdigits
string.octdigits
string.punctuation
string.printable
string.whitespace
***
mm = mmap.mmap(
f.fileno(), 0, access =
mmap.ACCESS_READ)
struct.unpack('BBB', mm[0 : 3])
***
import subprocess as sp
sp.call()
sp.check_output(["echo", "Welcome
to PythonGeeks!"], shell = True)
sp.DEVNULL
sp.PIPE
sp.Popen(["ping", "google.com"])
sp.run(["echo", "Hello, World!"])
***
shutil.copy("exam.mbox",
"backup_exam.mbox")
***
from symtable import symtable
as sym
sym
sym.get_children()
sym.get_name()
sym.get_symbols()
sym.get_type()
***
sys._getframe
sys.abiflags
sys.argv
sys.byteorder
sys.exc_info
sys.exec_prefix
sys.executable
sys.exit
sys.flags
sys.getdefaultencoding
sys.getfilesystemencoding
sys.getrefcount
sys.getsizeof
sys.implementation
sys.intern
sys.maxsize
sys.modules
sys.modules.keys
sys.path
sys.platform
sys.platlibdir
sys.prefix
sys.setrecursionlimit
sys.settrace
sys.stderr.write
sys.stdin.fileno
sys.stdin.readline
sys.stdlib_module_names
sys.stdout.write
sys.version
sys.version_info
sys.version_info.major
sys.version_info.minor
***
sysconfig.get_config_var(
"py_version_short")
sysconfig.get_paths()["platlib"]
sysconfig.get_platform()
***
import tarfile
with tarfile.open("exam.tar")
as tar : tar.add
print("successfully")
***
import textwrap as tw
tw.dedent(text)
tw.fill(text, width = 40)
tw.fill(text.splitlines(), width = 30)
tw.indent(text, prefix = ">> ")
tw.shorten(text, width = 50,
placeholder = "...")
tw.TextWrapper(width = 10,
expand_tabs = False).fill(text))
tw.TextWrapper(
width = 30, initial_indent = "* ",
subsequent_indent = " ").fill(text)
tw.wrap(text, width = 30)
***
threading.Lock().acquire()
threading.Thread(
target = task1).start()
***
t = time.localtime()
time.asctime()
time.asctime(time.localtime())
time.ctime(os.path.getmtime(
"data.csv"))
time.get_clock_info('monotonic')
time.get_clock_info('time')
time.gmtime()
t()
t().tm_isdst
t().tm_mday
t().tm_mon
t().tm_wday
t().tm_yday
t().tm_year
time.mktime(t())
time.monotonic()
time.perf_counter()
time.process_time()
time.sleep(2)
time.sleep(random.random())
time.strftime('%H:%M:%S')
time.strftime(strf, t())
time.strptime(strp, strf)
time.time()
***
timeit.repeat(stmt =
"sum(range(1000))",
repeat = 5, number = 1000)
timeit.timeit(stmt = "x = sum(range
(1000))", number = 1000)
timeit.Timer("sum(range(1000))")
.timeit(number = 1000)
***
tracer = trace.Trace(
count = True, trace = False)
tracer.results().write_results(
show_missing = True)
tracer.runfunc(calc, 10)
***
tb = sys.exc_info()[2]
stack = traceback.StackSummary
.from_list([("test.py", 10,
"my_func", "x = 1/0")])
traceback.clear_frames(tb)
traceback.extract_stack()
traceback.extract_tb(tb)
traceback.format_exc()
traceback.format_stack()
traceback.print_exc()
traceback.print_exception(
*sys.exc_info())
traceback.print_stack()
traceback.walk_tb(tb)
stack.format()
***
tracemalloc.start()
tracemalloc.stop()
tracemalloc.take_snapshot()
.filter_traces((tracemalloc.
Filter(False, "<frozen
importlib._bootstrap>"),))
tracemalloc.take_snapshot()
.statistics("lineno")
***
import turtle
colors = [ "green", "lime", "yellow",
"orange", "red", "magenta" ]
pen = turtle.Turtle()
screen = turtle.Screen()
pen.backward(100)
pen.begin_fill()
pen.circle(60)
pen.color("black")
pen.color(colors[level % len(colors)])
pen.color(random.choice(colors))
pen.dot(random.randint(5, 10))
pen.down()
pen.end_fill()
pen.fillcolor(color)
pen.forward(100)
pen.forward(random.randint(1, 5))
pen.goto(150, 0)
pen.hideturtle()
pen.home()
pen.left(90)
pen.pendown()
pen.pensize(9)
pen.penup()
pen.right(90)
pen.setheading(0)
pen.shape("turtle")
pen.shapesize(stretch_wid = 10,
stretch_len = 9, outline = 2)
pen.speed(10)
pen.up()
pen.width(2)
turtle.bgcolor("black")
turtle.color("lime")
turtle.colormode(255)
turtle.done()
turtle.hideturtle()
turtle.listen()
turtle.onkey()
turtle.setup(w = 800, h = 600)
turtle.speed(0)
screen.bgcolor("red")
screen.loop()
screen.mainloop()
screen.setup(w = 800, h = 600)
screen.title("My Turtle Art")
screen.tracer(0)
screen.update()
***
import turtledemo as td
td.__main__
td.bytedesign
td.chaos
td.clock
td.colormixer
td.forest
td.fractalcurves
td.lindenmayer
td.minimal_hanoi
td.nim
td.paint
td.peace
td.penrose
td.planet_and_moon
td.rosette
td.round_dance
td.sorting_animate
td.tree
td.two_canvases
td.yinyang
td.color()
td.forward()
td.left()
td.penup()
td.speed()
***
typing.Tuple
typing.Dict
typing.Any
typing.List
***
unicodedata.category(char)
***
unittest.TestCase
***
params = {'q': 'Python', 'page': 1}
qp = urllib.parse.urlencode(params)
response = urllib.request
.urlopen(url)
response = urllib.request
.urlopen(url, timeout = 5)
url = "https://www.exam.com"
url = f"https://www.exam.com
/search?{qp}"
urllib.error.HTTPError
urllib.error.URLError
urllib.parse.urlencode(params)
response.read().decode('utf-8')
***
warnings.catch_warnings
warnings.filterwarnings
warnings.showwarning
warnings.simplefilter
warnings.warn
***
wave.open
***
weakref.ReferenceType
***
wsgiref.headers Headers
wsgiref.simple_server.make_server
wsgiref.util.setup_testing_defaults
wsgiref.validate.validator
wsgi = Web Server Gateway
Interface
***
zipapp.create_archive
***
zipfile.ZipFile("test.zip", "a") as a
zipfile.ZipFile("test.zip", "r") as r
zipfile.ZipFile("test.zip", "w") as w
zipfile.ZipFile("test.zip", "w",
zipfile.ZIP_DEFLATED) as zd
zipfile.ZipFile(
"stored_example.zip", "w",
compression =
zipfile.ZIP_STORED) as zs
a.write("file1.txt")
r.extract("file1.txt",
path = 'extracted/')
r.extractall('extracted_all/')
r.extractall(path = "output_folder/")
r.infolist()
r.namelist()
r.open("file1.txt")
r.open("file1.txt").read().decode()
r.testzip()
w.writestr("hello.txt",
"Hello from memory!")
w.write("file1.txt")
w.write("file2.txt")
zd.write("file1.txt")
zs.write("file1.txt")
zipfile.ZipFile(io.BytesIO(open
("test.zip", "rb").read()), "r")
.namelist())
zipfile.ZipFile("protected.zip")
.setpassword(b"mypassword")
.read("secret.txt").decode()
zipfile.ZipFile("exam.zip", "a",
compression =
zipfile.ZIP_DEFLATED)
.writestr("newfile.txt", "This is
inside zip without real file")
***
zipimport.zipimporter
(ক্রমাগত)
#📢শেয়ারচ্যাট স্পেশাল
পাইথনের মডিউল
সাধারণত Built-in, User-defined এবং Third-party — এই ৩ ধরনের মডিউলের ব্যবহার পাইথনে দেখা যায়। পাইথন ইনস্টল করলেই বিল্ট-ইন বা স্ট্যান্ডার্ড মডিউলগুলো কাজ করতে শুরু করে। ইউজার নিজে যে .py ফাইল তৈরি করে তা User-defined মডিউল। numpy, pandas, matplotlib, requests, django, flask ইত্যাদি Third-party মডিউল আলাদা করে pip, pipx বা conda দিয়ে ইনস্টল করতে হয়। সাধারণত ইংরেজি ছোট হাতের অক্ষর দিয়ে মডিউলগুলো শুরু হয় এবং সাব-মডিউলগুলোর দু'একটি বড় হাতের অক্ষর দিয়ে কিম্বা সম্পূর্ণ বড় হাতের অক্ষরে লেখা হয়। এদের মধ্যে Built-in মডিউলগুলোর সম্ভাব্য বর্ণাক্রম নিম্নরূপ হতে পারে —
_abc, abc, aifc, antigravity, argparse, array, ast, asyncio, atexit, audioop
base64, bdb, binascii, bisect, builtins, bz2
(এ ছাড়া b দিয়ে শুরু হওয়া কয়েকটি Third-party মডিউল যেমন bytecode, bs4, bcrypt, boto3 ইত্যাদি এবং Python 2-এ buffer ছিলো।)
_carbon, _codecs, _codecs_cn, _codecs_jp, _codecs_kr, _codecs_tw, _collections, _collections_abc, _compat_pickle, _compression, _contextvars, _cpython, _crypt, _csv, _ctypes, _curses, _curses_panel
calendar, chunk, cmath, code, codecs, collections, compileall, concurrent, configparser, contextlib, copy, cProfile, csv, ctypes
dataclasses, datetime, dbm, decimal, difflib, dis, distutils, doctest
email, encodings, enum, errno, ensurepip
এ ছাড়া e দিয়ে শুরু হওয়া কয়েকটি Third-party মডিউল যেমন eel, easyocr, elasticsearch, emoji, eventlet, esptool, ecdsa ইত্যাদি।
faulthandler, fcntl (Unix only), filecmp, fileinput, fnmatch, fractions, functools, ftplib
gc, getopt, grp (Unix group info), gzip
hashlib, heapq, hmac, html, http
idlelib, imaplib, importlib, inspect, io, ipaddress, itertools
json
keyword
linecache, locale, logging, lzma
mailbox, marshal, math, mimetypes, mmap, modulefinder, msvcrt, multiprocessing
netrc, nt, ntpath, nturl2path, numbers
opcode, operator, optparse, os
pathlib, pdb, pickle, pickletools, pkgutil, platform, plistlib, poplib, posix, posixpath, pprint, profile, pstats, pty, pwd, py_compile, pyclbr, pydoc, pydoc_data, pyexpat
queue, quopri
random, re, readline, reprlib, resource, rlcompleter, runpy
sched, secrets, select, selectors, shelve, shlex, shutil, signal, site, smtplib, socket, socketserver, sqlite3, sre_compile, sre_constants, sre_parse, ssl, stat, statistics, string, stringprep, struct, subprocess, symtable, sys, sysconfig, syslog
tabnanny, tarfile, tempfile, termios, textwrap, this, threading, time, timeit, tkinter, token, tokenize, tomllib, trace, traceback, tracemalloc, tty, turtle, turtledemo, types, typing
unicodedata, unittest, urllib, uuid
venv
warnings, wave, weakref, webbrowser, winreg, winsound, wsgiref
xml, xmlrpc
zipapp, zipfile, zipimport, zlib, zoneinfo
modern packaging না থাকায় এখন distutils ব্যবহার করা হয় না। তবে a, b, c ইত্যাদি যে কোন বর্ণ দিয়ে শুরু হওয়া মডিউলগুলো নির্ণয় করার জন্য সহজ উপায় —
import sys
print(*sorted(m for m in sys.stdlib_module_names if m.startswith("a")))
# abc antigravity argparse array ast asyncio atexit
ধন্যবাদ #📢শেয়ারচ্যাট স্পেশাল
. বিভিন্ন ধর্মীয় মতবাদের
মধ্যে কি আছে
এবং কি বা কে নেই?
সাধারণত প্রতিটা মতবাদের মধ্যে যা অবশ্যই আছে —
১/ কি ধরনের পোশাক-পরিচ্ছদ পরতে হবে,
২/ খাদ্য হিসেবে পশু সম্পর্কে বিভিন্ন বিধিনিষেধ,
৩/ কিছু অলৌকিক কাহিনী,
৪/ পরকাল বর্ণনা,
৫/ আচার অনুষ্ঠান ও ক্রিয়া কর্ম,
৬/ অন্য মতবাদের আচার অনুষ্ঠান নিয়ে কিছু মতবিরোধ,
৭/ সবার চাইতে ইনি বড়ো,
৮/ জ্ঞান তত্ত্ব ইত্যাদি।
**
১/ কি ধরনের পোশাক-পরিচ্ছদ পরতে হবে --
আসলে আমি যদি কোন মতবাদের পোশাক পরিধান করে খারাপ কাজ করতে যাই, তা কিন্তু সবার কাছেই অপরাধ বলে পরিগণিত হবে। আবার দেখুন, মানুষের উপকার হয় এ রকম যে কোন কাজ আমি যে পোশাকেই করি না কেন তা কিন্তু সবার কাছে গ্রহণ যোগ্য হবে।
অর্থাৎ বিভিন্ন ধর্মীয় মতবাদের সাজপোশাকের বর্ণনার মধ্যে বাস্তবতা বলতে কিছু নেই।
২/ খাদ্য হিসেবে পশু সম্পর্কে বিভিন্ন বিধিনিষেধ —
খাদ্য সম্পর্কে বিধিনিষেধ বলতে প্রধানতঃ বিভিন্ন প্রাণির মাংস খাদ্য হিসেবে গ্রহণ সম্পর্কে বলা হয়েছে।
অথচ জীবনের অন্তে যদি সেই কাল্পনিক ঈশ্বর হিসেবে বসেন তবুও নিশ্চয়ই জিজ্ঞাসা করবেন না, এই প্রাণির মাংস কেন খেয়ে ছিলে বা ওই প্রাণির মাংস কেন খাওনি! এ পৃথিবীতে যা কিছু সৃষ্টি হয়েছে তা সবই মানুষের ক্ষুধা ও প্রয়োজন মেটাতে।
এ জন্য, আপনি কোন্ প্রাণির মাংস খেয়ে দিনাতিপাত করলেন সেটা বড়ো নয়, বরং দিনের অন্তে না পারলেও জীবনের অন্তে একবার হলেও প্রকৃত অর্থেই সত্যকে ভাবলেন কি না সেটা বড়ো।
অতএব, খাদ্য খাবার সম্পর্কে যে কোন মতবাদের যে কোন তত্ত্বের কোনই বাস্তবতা নেই। তাই খাদ্য-খাবার সম্পর্কে বিভিন্ন মতবাদের বিধিনিষেধ না মেনে বরং যার যার রুচি অনুসারে খাবার খাওয়ার পাশাপাশি অন্যকে তার রুচি অনুসারে খাবার পেতে সহযোগিতা করা উচিত।
৩/ কিছু অলৌকিক কাহিনী —
বাস্তবে অলৌকিক বলতে কিছু নেই। সবই মানুষ জড়িত ঘটনা বা সবই লৌকিক। অর্থাৎ বিভিন্ন মতবাদের ভেতর যে সব অলৌকিক কাহিনী লেখা হয়েছে, তা কেবল কাউকে বা কিছুকে বড়ো বানানোর অন্তরালে ওই মতবাদটি মানুষকে বিশ্বাস করানোর জন্য। তাই এ সব তথ্যের বিন্দু মাত্র বাস্তবতা নেই।
কেন না, যে কথা বাস্তবে প্রমাণ হয় না, তা মিথ্যা। ফলে বিভিন্ন মতবাদের অলৌকিক কাহিনী বাস্তবে মিথ্যা ভিন্ন অন্য কিছু নয়।
৪/ পরকাল বর্ণনা —
একটু লক্ষ্য করলে দেখা যায়, পরকাল সম্পর্কে বিভিন্ন মতবাদে বিভিন্ন ধরনের বর্ণনা করা রয়েছে। কিন্তু মৃত্যুর পর কি হবে তা প্রকৃত অর্থেই বলা সম্ভব নয়। কেন না, কেউ যদি মরণের পরও দু’একটা কথা বলতে পারতেন, তা হলেও যা হোক একটা উপায় হতো! কিন্তু তথাকথিত মৃত্যুর পর যেহেতু আর কথা বলা যায় না, সূতরাং মানুষের মৃত্যুর পর কি হবে আর কি হবে না তা কোন জীবিত মানুষের অভিজ্ঞতায় যে কোন বর্ণনাই বানানো কাহিনী ভিন্ন কিছু নয়। কেন না, যা যার জীবনে ঘটেনি তা সম্পর্কে তার বর্ণনা করা মানে বাস্তবে বানানো গল্প ছাড়া আর কিছু প্রমাণ হয় না। কারণ, সমস্ত মতবাদই কোন না কোন মানুষের জীবদ্দশায় লেখা।
যুক্তি তর্কে ধরেই নিলাম, মানুষের মৃত্যুর পর বিচার হয়। তবু একই উৎস হতে সৃষ্ট একই মানব জাতির মৃত্যু পরবর্তী বিচার প্রক্রিয়া কখনও বিভিন্ন মতবাদ অনুসারে বিভিন্ন রকম হতে পারে না, এটাই কিন্তু স্বাভাবিক সত্যি।
বিভিন্ন মতবাদ অনুসারে মানুষের মৃত্যুর পর বিভিন্ন রকম বিচার হবে বা হতে পারে, এটা যৌক্তিক ভাবে প্রমাণিত সত্য নয়। মূলতঃ জন্মের আগে ও মৃত্যুর পরে কিছু নেই। অর্থাৎ পরকাল বর্ণনা যে একেবারেই ভ্রান্ত সে কথা বলার অপেক্ষা রাখে না।
৫/ আচার অনুষ্ঠান বা ক্রিয়া কর্ম —
বিভিন্ন মতবাদে বিভিন্ন সময়ে বিভিন্ন ধরনের শব্দ যোগে বিভিন্ন ধরনের আচার অনুষ্ঠান বা ক্রিয়া কর্ম করার কথা বলা হয়েছে। এমন কি, এ কথাও সাথে বলা হয়েছে, ওই ক্রিয়া কর্ম করলে কি ফল পাওয়া যাবে। কিন্তু যে সব ধরনের ফল প্রাপ্তির কথা বিভিন্ন মতবাদে বলা হয়েছে বাস্তবে তার কোন অস্তিত্বই নেই। এমন কি, আধ্যাত্মিক উন্নতির লক্ষ্যেও বিভিন্ন আচার অনুষ্ঠানের কথা বলা হয়েছে। কিন্তু কোন মতবাদের কোন আচার অনুষ্ঠানের মাধ্যমে আজও পর্যন্ত কেউ কিছুই প্রাপ্ত করতে পারেনি।
তা ছাড়া, বিভিন্ন মতবাদের আচার অনুষ্ঠান বা ক্রিয়া কর্ম যদি সত্যি হতো, তা হলে আমরা সবাই সমান মানুষ না হয়ে বরং আমরা কে কোন্ মতবাদি, সেই কথা সত্যি হতো। সবাই সমান মানুষ .... সত্যি, এর চেয়ে বড়ো সত্যি কে কোন্ মতবাদের কতটা অনুগামি বা অনুসারি সেটা নয়।
সে দিক দিয়ে তথাকথিত যে কোন মতবাদের যে কাউকে বা কিছুকে পাওয়া বা খুশি করার জন্য বিভিন্ন আচার অনুষ্ঠানের প্রয়োজন হলেও বাস্তবে নিরর্থক।
৬/ অন্য মতবাদের আচার অনুষ্ঠান নিয়ে কিছু মতবিরোধ —
সমস্ত মতবাদই আচার সর্বস্বতায় পরিপূর্ণ। এ সব আচার অনুষ্ঠান করে বাস্তবে কোন লাভ নেই। কেন না, এ সব আচার অনুষ্ঠানকে মান্যতা দিতে গিয়েই মানুষের মনের কোণ থেকে মানুষ নামক শব্দটি মূলতঃ মুছে গিয়ে মনের ভেতর জেগে ওঠে আমি কোন্ মতবাদের মতপার্থক্যের কতটা অনুসারি, প্রকাশক ও অনুগত। অথচ, আমরা সবাই সমান মানুষ।
সূতরাং এক মতবাদের মধ্যে অবস্থান করে অন্য মতবাদের আচার অনুষ্ঠানে আঘাত লাগতে পারে সে ধরনের কাজে লিপ্ত হলে বাস্তবে অপরাধী হতে হবে। কিন্তু অধিকাংশ ধর্মীয় মতবাদে অন্য কোন না কোন মতবাদের আচার-অনুষ্ঠান নিয়ে অগ্রহণযোগ্য আলোচনা রয়েছে যা মানুষের মনে অনর্থক হিংসা আর বিদ্বেষ সৃষ্টি করেছে।
অতএব, যে কোন মতবাদের অন্য মতবাদের আচার অনুষ্ঠান নিয়ে বাজে আলোচনা বাস্তবের কাছে সম্পূর্ণ ভ্রান্ত ও এক কথায় অপরাধ যোগ্য।
৭/ সবার চাইতে ইনি বড়ো —
যে কোন মতবাদই আমাদেরকে এই সিদ্ধান্তে উপনীত হতে উপদেশ দেয় ইনি শেষ কথা। ইহাকে বা ইনাকে অনুসরণ না করে অন্য গতি নেই কারণ ইনিই সর্বেসর্বা ইত্যাদি।
বর্তমান পরিসংখ্যান অনুযায়ি এ পর্যন্ত প্রায় ৪৩০২টি মতবাদের সৃষ্টি হয়েছে, পরে আরও হবে। অর্থাৎ ৪৩০২ জন বা কিছু আমাদের কাছে খুব বড়ো! এবং এখানে একটা বিষয় বিশেষ লক্ষ্যনীয় যে প্রত্যেক মতবাদে আচার-উৎসব সব কিছুই অন্যান্য মতবাদের মতামত হতে প্রায় বা সম্পূর্ণ ভিন্ন। কিন্তু লজিক্যালি সত্য কখনই বিভিন্ন রকম বা বিন্দু মাত্রায় বিভিন্নও হতে পারে না। তাই মতবাদগুলো যৌক্তিক ভাবে প্রমাণিত সত্য নয় বা মিথ্যা। এগুলো অনেকাংশে বিভিন্ন জনের মনগড়া অযৌক্তিক গল্প বলা চলে। কারণ আমাদের এক মাত্র পরিচয় আমরা মানুষ আর কিছু নয়।
তাই সত্যকে ফেলে এই দুনিয়ায় কাউকে বা কিছুকে বিশ্বাস করে মনের কোণে স্থান দেওয়া মানে বাস্তবে ভুল করা। কেন না, আমরা এ জগতে একমাত্র সত্যের অনুগামী ও পরস্পরের সহযাত্রি।
৮/ জ্ঞান তত্ত্ব —
বিভিন্ন মতবাদে যে সব জ্ঞান তথ্য রয়েছে তা দিয়ে কোন রকম জীবন চলতে পারে, এর বেশি কিছু নয়। কেন না, সব জ্ঞানই জগতকে অনুসরণ করে রচিত। তা ছাড়া, শাস্ত্রীয় মহা জ্ঞান পরিবেশনের অন্তরালে এক শ্রেণির জাগতিক আত্মস্বার্থ চরিতার্থের দুর্গন্ধ প্রকাশ পেয়েছে।
কিন্তু মহা জ্ঞানের সাথে জগতের সব কিছুই পরিত্যাগ না করলে সত্যকে অনুধাবন করা যায় না। কেন না, তথাকথিত সব জ্ঞানই শুধু ওই মতবাদকে বাজার জাত করার জন্য লেখা হয়েছে। যার যে রকম মনে হয়েছে সে সে রকম লিখেছে।
কিন্তু মানুষ যখন সত্যিকে সত্যিকারের মনে করেন, একমাত্র তখনই যে কোন মতবাদের এ সব দু’চারটি মহান মহান জ্ঞান বাক্যের অন্তরালে সাজপোশাকের মতপার্থক্য অনুমান করতে পারেন।
এবং কি বা কে নেই ?
এ কারণে, মানুষের কাল্পনিক স্রষ্টা তথাকথিত কোন মতবাদের ভেতর থাকতে পারে, এ কথা বিশ্বাস করা এক প্রকার বোকামি। আসলে এ মানব জীবনের সবচেয়ে বড়ো ভুল — সত্য ফেলে যে কোন মতবাদের কাউকে বা কিছুকে সব কিছুর চেয়ে বড়ো বলে মান্য করা।
মহা প্রকৃতি হতে সব কিছুর মতো এই মানব জাতির সৃষ্টি হয়েছে। ঈশ্বর বা স্রষ্টা বলতে বাস্তবে বিশেষ কেউ বা কিছু নেই। কারণ এখনও পর্যন্ত কেউ ঈশ্বর বা স্রষ্টার দৃশ্যগত প্রমাণ দেখাতে পারেনি। এমন কি যৌক্তিক প্রমাণও উপস্থাপন করা সম্ভব হয়নি। স্বাভাবিক ভাবে তাই ধারণা করা হয়, সব কিছু সৃষ্টির মতো মানব জাতি সৃষ্টির মূল উৎস .... কেবল এই মহান প্রকৃতি। ধন্যবাদ। #📢শেয়ারচ্যাট স্পেশাল
MRI মেশিন তৈরি ও ব্যবহার
Magnetic Resonance Imaging-কে সংক্ষেপে MRI বলে। এই মেশিন তৈরির প্রক্রিয়া বেশ জটিল। নিচে ধাপে ধাপে সংক্ষিপ্ত আলোচনা করা হলো —
দেহের অভ্যন্তরে প্রোটনদের সজ্জিত করতে অত্যন্ত শক্তিশালী সুপারকন্ডাক্টিং ম্যাগনেট, ছবির রেজোলিউশন ও অবস্থান নির্ধারণে গ্রেডিয়েন্ট কয়েল, রেডিও তরঙ্গ পাঠানো ও গ্রহণ করার জন্য RF কয়েল, চুম্বকে ~ ৪.২ কেঃ বা –২৬৯° সেঃ তাপমাত্রা বজায় রাখতে ক্রায়োজেনিক কুলিং সিস্টেম এবং ইমেজ রিকনস্ট্রাক্ট, কন্ট্রোল ও ডিসপ্লের জন্য কম্পিউটার সিস্টেম ইত্যাদি একটা MRI মেশিন তৈরিতে প্রয়োজন হয়। এ সবের সাথে AI যোগ করে স্বয়ংক্রিয় করতে পাইথনের matplotlib, numpy, pypulseq ইত্যাদি দিয়ে প্রোগ্রামিং করা যেতে পারে।
MRI-এর সুপারকন্ডাক্টিং ম্যাগনেট তৈরিতে সাধারণত Niobium-Titanium (NbTi) ব্যবহার করা হয়। এ জন্য প্রথমে ভ্যাকুয়াম ইন্ডাকশন মেল্টিং (VIM) বা আর্ক মেল্টিং পদ্ধতিতে Nb (~ ৫৩℅) এবং Ti (~ ৪৭℅) মিশিয়ে ১৭০০–২০০০° সেঃ তাপমাত্রায় অর্গনপূর্ণ ফার্নেসে গলিয়ে অ্যালয় তৈরি করা হয়। ফার্নেসে অক্সিজেন, নাইট্রোজেন, হাইড্রোজেন বা জলীয় বাষ্প ইত্যাদি না থাকায় অক্সিডেশন না হওয়ায় NbTi-এর গুণগত মান অক্ষুন্ন থাকে।
তামা বা অ্যালুমিনিয়ামের মতো কন্ডাক্টরের পক্ষে সম্ভব নয় কিন্তু NbTi সুপারকন্ডাক্টিং অবস্থায় অত্যন্ত বেশি পরিমাণ বৈদ্যুতিক কারেন্ট পরিবহন করতে পারে এবং নিম্ন তাপমাত্রায় শূন্য রেজিস্ট্যান্স দেখায়।
Nb হলো মাঝারি ধরনের একটা ductile ধাতু কিন্তু Au (50–70%), Cu (30–50%) বা Al (10–40%) এর মতো অতোটা নয় আর Ti (10–30%) এর ductility অতি সামান্য। Nb (40–60% ) সব সময় ductile গুণ সম্পন্ন, room temp থেকে high temp পর্যন্ত সামান্য ductility বৃদ্ধি পায়। কিন্তু Ti ধাতু room temp এ কম ductile, কিন্তু ≈882°C এ α→β phase transition এর পরে ductility দ্রুত বৃদ্ধি পায়। ফলে MRI এর NbTi ফিলামেন্ট তৈরিতে ঠান্ডা অবস্থায় Nb দিয়ে ductility পাওয়া সহজ এবং Ti দিয়ে structure ও strength বৃদ্ধি করা যায়। NbTi (30–50%) অ্যালয়ের ductility মাঝামাঝির চেয়ে সামান্য কম, গড়ে 40℅ ধরা চলে।
তাই NbTi দিয়ে সুপারকন্ডাক্টিভ ফিলামেন্ট তৈরি করে কপার মেট্রিক্সে ভরে বা এক সঙ্গে এক্সট্রুড করে তারে রূপান্তর করা হয়।
ফলে NbTi থাকে তারের ভেতরে এবং তামার প্রলেপ থাকে তারের বাইরে। তামার প্রলেপ থাকায় ফিলামেন্টের ductility বজায় থাকে এবং কোন কন্ডাকশন লস হলে তা শোষণ করতে পারে। এই তারের ব্যাস সাধারণত ০.১ হতে ১ মিমি পর্যন্ত হয়ে থাকে। এই ফিলামেন্ট ~ 10^5 A/cm² পর্যন্ত সুপারকন্ডাক্টিভ কারেন্ট পরিবহন করতে পারে।
এরপর তামার কভার বেষ্টিত NbTi তারকে ইনসুলেটিভ কোটিং দিয়ে আবৃত করা হয়। কোটিং হিসেবে পলিমাইড (ক্যাপটন), গ্লাস ফাইবার ব্রেইড, অ্যানোডাইজড অক্সাইড (Nb₂O₅) ইত্যাদি ব্যবহার হয়। কোটিং স্প্রে করে বা ডিপ-কোটিং প্রক্রিয়ায় দেওয়া হয়। এরপর হিট-কিওরিং করে শুকানো হয়। কোটিং থাকায় কয়েলের ফাঁকে শর্ট সার্কিট এড়ায়, কুইঞ্চ (quench) সুরক্ষা নিশ্চিত করে এবং সুপারকন্ডাক্টিং ফিলামেন্টকে স্ট্যাবিলিটি ও নির্ভরযোগ্যতা দেয়।
সাধারণত 1.5–3T MRI মেশিনের ক্ষেত্রে NbTi ব্যবহার হয়। কিন্তু 7T বা আরও শক্তিশালী যেমন 12-15T ম্যাগনেটিক ফিল্ড তৈরিতে Nb₃Sn এবং ভবিষ্যতে Nb₃Al ব্যবহারের সম্ভাবনা হয়েছে। NbTi সাধারণত 10T এর উপরে Jc (Critical Current Density) দ্রুত কমে যায় Nb₃Sn যেখানে 12–15T পর্যন্ত কার্যকর থাকে।
Nb₃Sn (Niobium-Tin) সুপারকন্ডাক্টিং ফিলামেন্ট তৈরিতে মূলতঃ Nb এবং Sn এর মধ্যে একটি intermetallic compound গঠন করতে হয়। Nb₃Sn ভঙ্গুর তাই সাধারণত composite approach ব্যবহার হয়। এখানে ধাপে ধাপে প্রক্রিয়াটি ব্যাখ্যা করছি —
বিশুদ্ধ Nb rods বা tubes এবং Sn (Tin) বা Cu-Sn alloy rods নেওয়া হয়। এগুলো Cu matrix (তামার আবরন) দিয়ে এক সাথে assemble করে একটি composite billet বানানো হয়। কিছু ক্ষেত্রে কপার বা ব্রোঞ্জ ব্যবহার করা হয় Nb এবং Sn এর মধ্যে diffusion barrier হিসেবে।
Nb ফিলামেন্টের চারপাশে Sn থাকে একে Internal Tin process এবং Cu–Sn alloy ব্যবহার করে Nb ফিলামেন্ট diffusion এর মাধ্যমে Nb₃Sn তৈরিকে Bronze process বলা হয়।
কিছু ক্ষেত্রে powder-in-tube (PIT), Modified Jelly-Roll (MJR), Advanced Rod-Restack Variants ইত্যাদি process ব্যবহার করা হয়। MRI সহ accelerator এর ম্যগনেট তৈরিতেও সাধারণত Multi-Stage Rod-Restack পদ্ধতি অনুসরণ করা হয়। এই ধাপে Nb ফিলামেন্ট ও Sn বা Sn–Cu মিশ্র ধাতুকে বান্ডিল করে কপার ম্যাট্রিক্সের মধ্যে রাখা হয়।
Nb {~70.1%) এবং Sn (~29.9%) একত্রে প্রায় 650–750°C তাপমাত্রায় হিট করে Nb₃Sn ফেজ গঠন করা হয়। এই পর্যায়ে Nb এবং Sn ধাতুর মধ্যে diffusion ঘটে এবং brittle Nb₃Sn phase তৈরি হয়।
internal tin process প্রক্রিয়ায় 700–750°C পর্যন্ত তাপমাত্রা বাড়ানো হয়। দীর্ঘ সময় ধরে এই তাপমাত্রায় রাখা হয় যাতে Nb₃Sn-এর crystalline structure সম্পূর্ণ হয় এবং উচ্চ Jc পাওয়া যায়। উভয় ক্ষেত্রে ফিলামেন্টের ব্যাস অনুসারে কয়েক ঘণ্টা বা দিন ধরে তাপমাত্রার প্রয়োজন পড়ে।
Nb₃Sn এর ইনসুলেশনে সাধারণত Alumina (Al₂O₃), S-glass fiber with ceramic binder বা mica tape ইত্যাদি ব্যবহার হয়। কারণ Nb₃Sn heat treatment-এর সময় polymer পুড়ে যাবে তাই শুধু মাত্র heat-resistant (ceramic বা inorganic) ইনসুলেশন লাগে।
সুপারকন্ডাক্টিং তারগুলোকে স্পেশাল মেশিন দিয়ে হেলিক্যাল বা সলেনয়েড ফর্মে ঘুরিয়ে ম্যাগনেট কয়েল তৈরি করা হয়। এই উইন্ডিং উচ্চ নির্ভুলতায় করতে হয় যাতে ফিল্ড ইউনিফর্মিটি বজায় থাকে।
হঠাৎ করে যদি ম্যাগনেটের সুপারকন্ডাক্টিং গুণ হারিয়ে যায় তবে প্রচুর পরিমাণে শক্তি তৎক্ষণাৎ তাপে পরিবর্তিত হয় একে কুইঞ্চ বলে। এতে তরল হিলিয়ামও গ্যাসে পরিণত হয়ে বিশাল চাপ তৈরি করে। এ জন্য কোয়েঞ্চ পাইপ, প্রেসার ভাল্ব এবং ইমার্জেন্সি ভেন্ট থাকে। পাশাপাশি সুপারকন্ডাক্টিং ম্যাগনেট ইনস্টল করার সময় শক্তিশালী ক্যালিব্রেশন করতে হয় যাতে ইমেজিং সঠিক হয়।
যদি মূল চুম্বক ক্ষেত্র B₀ একটু বেশি বা কম হয় তবে রেজোন্যান্স ফ্রিকোয়েন্সি বদলে দুর্বল সিগন্যাল দেওয়ার ফলে ইমেজ বিকৃত হতে পারে। তাই MRI সিস্টেম চেষ্টা করে B₀ ক্ষেত্রকে ±1ppm (parts per million)-এর মধ্যে ইউনিফর্ম রাখতে। যেমন 1.5T বা 3.0T এর field strength হলো ± 1ppm।
ম্যাগনেটের ম্যাগনেটিক ফিল্ড বিচ্যুতি (leak) ঠেকাতে লোহার কাঠামো দিয়ে ঘেরা হয় যাকে প্যাসিভ শিল্ডিং বলে। অতিরিক্ত কয়েল ব্যবহার করে বাইরের ফিল্ড নুলিফাই করা হয় যাকে এক্টিভ শিল্ডিং বলে।
এই কয়েল হিলিয়াম-কুলড ক্রায়োস্ট্যাটে রাখা হয় যাতে সুপারকন্ডাক্টিং অবস্থা বজায় থাকে। সাধারণত হিলিয়াম, ভ্যাকুয়াম, ইনসুলেশন ও ঢাকনার বহুস্তর বিশিষ্ট ট্যাঙ্ক সিস্টেম দিয়ে ক্রায়োস্ট্যাট তৈরি করা হয়। চুম্বক ঠাণ্ডা রাখার জন্য কম্প্রেসার স্থাপন করা হয়। আধুনিক MRI-তে তরল হিলিয়ামের অপচয় এড়াতে জিরো বয়ল-অফ ক্রায়োকুলার ব্যবহৃত হয়।
ম্যাগলেভ ট্রেনের সুপারকন্ডাক্টিং ম্যাগনেট তৈরিতেও NbTi বা Nb₃Sn ফিলামেন্ট ব্যবহার হয়, কিন্তু হিলিয়ামের পরিবর্তে খরচ বাঁচাতে নাইট্রোজেন ব্যবহার করা হয়।
এখানে একটি এক্সটারনাল হিলিয়াম গ্যাস কম্প্রেসার থাকে যা MRI মেশিনের বাইরের অংশে ইনস্টল করা হয়। এটি হিলিয়াম গ্যাস সংকোচন করে চুম্বক সংলগ্ন কুল হিট পর্যন্ত পাঠায় এবং সেই কুল হিট তরল হিলিয়ামের পাশে বসানো থাকে। অর্থাৎ কম্প্রেসার রিজার্ভারের ভেতরে না বসিয়ে বাইরে থাকে। এটি হিলিয়াম সার্কিটে গ্যাস চলাচলের মাধ্যমে ঠাণ্ডা বজায় রাখে।
MRI মেশিনে একটি স্থির ও শক্তিশালী চুম্বক ক্ষেত্র থাকে যা একটি ইউনিফর্ম ম্যাগনেটিক ফিল্ড (B₀) তৈরি করে। কিন্তু এই ক্ষেত্রটি একদম সমান হলে বোঝা যাবে না কোন সিগনাল শরীরের কোন অংশ থেকে এসেছে। তাই গ্রেডিয়েন্ট কয়েল ব্যবহার করে B₀ ফিল্ডে নির্দিষ্ট অক্ষ বরাবর ছোট ছোট পরিবর্তন (gradients) আনা হয়। কিন্তু শুধু B₀ থাকলে শরীরের সব অংশ একই ফ্রিকোয়েন্সিতে সিগনাল পাঠানোয় ইমেজ তৈরি করা যেতো না। এই কয়েলগুলো কোন RF ফ্রিকোয়েন্সি উৎপন্ন করে না বরং প্রধান চৌম্বক ক্ষেত্রকে অবস্থান অনুযায়ী সামান্য পরিবর্তন করে। গ্রেডিয়েন্ট কয়েল সাধারণত তামার তার কুন্ডলি পাকিয়ে (winding) তৈরি করে।
MRI মেশিনে সাধারণত তিনটি গ্রেডিয়েন্ট কয়েল থাকে। X-Coil বাম ↔ ডানের ফ্রিকোয়েন্সি এনকোডিং করে Readout করে। Y-Coil সামনে ↔ পেছনের ফেজ এনকোডিং করে ফেজ এনকোড করে। Z-Coil উপর ↔ নিচের স্লাইচ সিলেকশন করে এনকোড করে। এই তিনটি একত্রে শরীরের ত্রিমাত্রিক স্থানাঙ্ক (3D coordinates) নির্ধারণ করে।
প্রথমে স্লাইস নির্ধারণের জন্য Z-অক্ষ বরাবর গ্রেডিয়েন্ট চালু করা হয়। এর ফলে বিভিন্ন Z-অবস্থানে ভিন্ন ভিন্ন রেজোন্যান্স ফ্রিকোয়েন্সি তৈরি হয়। এরপর নির্দিষ্ট ফ্রিকোয়েন্সির RF পালস প্রয়োগ করায় শুধু সেই অংশই উত্তেজিত হয়। এ ভাবে স্লাইস নির্ধারণ করে।
দ্বিতীয় ধাপে ফেজ এনকোডিংয়ের জন্য Y-অক্ষ বরাবর সাময়িক ভাবে গ্রেডিয়েন্ট প্রয়োগ করা হয়। এটি সিগনালের ফেজ পরিবর্তন করে প্রত্যেক লাইনের মাঝে পার্থক্য তৈরি করে।
সিগনাল রেকর্ড হওয়ার সময় ফ্রিকোয়েন্সি এনকোডিংয়ের জন্য X-অক্ষ বরাবর গ্রেডিয়েন্ট চালু থাকে। এই গ্রেডিয়েন্ট অনুযায়ী প্রতিটি অবস্থান ভিন্ন ভিন্ন ফ্রিকোয়েন্সিতে সিগনাল দেয়, এ ভাবে লাইন স্ক্যান করা হয়।
X, Y, Z অক্ষের জন্য আলাদা আলাদা গ্রেডিয়েন্ট কয়েল তৈরি করে তা প্রধান সুপারকন্ডাক্টিং ম্যাগনেটের ভেতরে কিন্তু বোরের দেয়ালের ঠিক পাশে shim কয়েলের ভেতরে এবং RF কয়েলের বাইরে ইনস্টল করা হয়। ছবির রেজোলিউশন ও শরীরের নির্দিষ্ট অংশের অবস্থান নির্ধারণে গ্রেডিয়েন্ট কয়েল গুরুত্বপূর্ণ ভূমিকা পালন করে। গ্রেডিয়েন্ট যতো বেশি লাইনার হয় ততো বেশি ইমেজ ক্লিয়ার হয়।
শরীরের ভেতরে হাইড্রোজেনের প্রোটনকে উত্তেজিত করতে RF পালস পাঠায় যাতে তারা শক্তি শোষণ করে উচ্চ শক্তিস্তরে পৌঁছায়। উত্তেজনা শেষ হলে প্রোটনরা তাদের মূল অবস্থায় ফিরে আসার সময় যে রেডিও ফ্রিকোয়েন্সি সিগন্যাল নির্গত করে তা গ্রহণ করে। বিভিন্ন অঙ্গের জন্য আলাদা আলাদা RF কয়েল বানানো হয় (যেমন হেড, অ্যাবডোমেন, স্পাইন) যা রোগির শরীরে RF তরঙ্গ পাঠায় ও প্রোটনদের থেকে রেসপন্স সংগ্রহ করে।
কাজের ধরনের উপর নির্ভর করে MRI মেশিনে সাধারণত কয়েক ধরনের RF কয়েল ব্যবহৃত হয়। যেমন শুধু RF পালস পাঠাতে ট্রান্সমিট-অনলি, সিগন্যাল গ্রহণ করতে রিসিভ-অনলি, একই কয়েল দিয়ে প্রেরণ ও গ্রহণ উভয়ই করতে ট্রান্সসিভ (Transmit & Receive), হাত-পা-ঘাড় ইত্যাদি ছোট ছোট অংশের জন্য উচ্চ সংবেদনশীলতা তৈরি করতে সারফেস কয়েল, একাধিক ছোট কয়েল এক সাথে ব্যবহার করে SNR বাড়ানো ও দ্রুত ইমেজিংয়ের জন্য অ্যারে কয়েল ইত্যাদি।
ডেটা প্রসেসিংয়ের জন্য ডিজিটাল সিগন্যাল প্রসেসর (DSP), ইমেজ প্রসেসিং অ্যালগরিদম এবং 3D রিকনস্ট্রাকশন সফটওয়্যার সংযুক্ত করা হয়। বাহ্যিক তরঙ্গ প্রতিরোধে RF শিল্ডিং এবং ফ্যারাডে কেজ ব্যবহার হয়। MRI মেশিন চালাতে প্রচুর শক্তি (50 kW+) লাগে।
MRI মেশিনের সফটওয়্যার ও কন্ট্রোল সিস্টেম হলো এমন একটি সমন্বিত সফটওয়্যার প্ল্যাটফর্ম যা পুরো মেশিনের কাজ নিয়ন্ত্রণ করে — যেমন স্ক্যান শুরু, চিত্র প্রক্রিয়াকরণ, ব্যবহারকারির ইন্টারফেস, রোগি পজিশনিং ও নিরাপত্তা সিস্টেম ইত্যাদি।
PyPulseq হলো Siemens MRI সিকোয়েন্স ডিজাইন করার জন্য পাইথন লাইব্রেরির একটি ওপেন সোর্স। এটি MATLAB-এর Pulseq-এর বিকল্প হিসেবে ব্যবহার হয়। T1-weighted সিকোয়েন্সের জন্য —
import pypulseq as pp
import numpy as np
# স্ক্যানার সেটিং
system = pp.Opts(max_grad = 33, grad_unit = 'mT/m', max_slew = 130)
# স্ক্যান টাইমিং
TR = 5.0 # ms
TE = 2.5 # ms
# RF Pulse তৈরি
rf, gz, _ = pp.make_sinc_pulse(flip_angle = 90*np.pi/180, duration = 2e-3, slice_thickness = 5e-3, apodization = 0.5, time_bw_product = 4, system = system)
# ADC & রিডআউট গ্রাডিয়েন্ট
gx = pp.make_trapezoid(channel = 'x', flat_area = 4, flat_time = 2e-3, system = system)
adc = pp.make_adc(num_samples = 256, duration = 2e-3, delay = gx.rise_time, system = system)
# সিকোয়েন্স তৈরি
seq = pp.Sequence()
seq.add_block(rf, gz)
seq.add_block(gx, adc)
seq.add_block(pp.make_delay(TR - TE))
# সেভ করুন
seq.write("t1_spin_echo.seq")
মানব দেহে পানি বা জলের পরিমাণ ৭০% এর বেশি এবং এর প্রতিটি অণুতে থাকে ২টি হাইড্রোজেন পরমাণু। প্রতিটি হাইড্রোজেনের নিউক্লিয়াসে ১টি করে প্রোটন থাকে যা মূলতঃ চার্জযুক্ত (চুম্বকীয়) কণা এবং নিজস্ব স্পিন (Spin Angular Momentum) আছে। অর্থাৎ প্রতিটি প্রোটন হলো ছোট্ট একেকটা চুম্বক।
1.5 Tesla MRI মেশিনে যদি 63.9 MHz-এর (Larmor Frequency ≈ 63.9 MHz) RF পালস পাঠানো হয় তখন হাইড্রোজেনের প্রোটন উত্তেজিত হয়।
MRI-তে যখন একটি নির্দিষ্ট ফ্রিকোয়েন্সির RF পালস প্রোটনে প্রয়োগ করা হয় তখন তা উত্তেজিত হয়। এর ফলে প্রোটন ঘুরে গিয়ে শক্তি শোষণ করে এবং পরে সেই শক্তি আবার ফিরিয়ে দিয়ে ইমেজ তৈরিতে সাহায্য করে। কিন্তু অন্য কোন পরমাণুর প্রোটন হাইড্রোজেনের মতো এতো স্বচ্ছ হয় না।
k-space ডেটা হলো complex matrix যার উপর 2D ইনভার্স FFT প্রয়োগ করে এবং ifft2() দিয়ে সিমুলেশন করে ইমেজ তৈরি করা হয়। ব্লোক সমীকরণ ব্যবহার করে পালস সিমুলেশনের সরলীকৃত উদাহরণ —
import numpy as np
import matplotlib.pyplot as plt
# Constants
gamma = 2 * np.pi * 42.58e6
# gyromagnetic ratio for hydrogen [rad/T/s]
B1_max = 1e-5
# Tesla (10 uT)
flip_angle_deg = 30
# Desired flip angle in degrees
flip_angle_rad = np.deg2rad(flip_angle_deg)
# Time setup
T = 2e-3
# Pulse duration in seconds (2 ms)
N = 1000
# Number of time steps
t = np.linspace(0, T, N)
# Time array
dt = t[1] - t[0]
# Time step
# RF Pulse shape (simple sinc pulse)
sinc_pulse = np.sinc(10 * (t - T/2) / T)
rf_pulse = B1_max * sinc_pulse / np.sum(sinc_pulse) * flip_angle_rad / (gamma * dt)
# প্রাথমিক চুম্বককরণ
M = np.zeros((N, 3))
M[0]
MRI মেশিনের RF পালস, গ্রেডিয়েন্ট কয়েল, টাইমিং (TE/TR) ও সিকোয়েন্স ফ্লো নিয়ন্ত্রণের জন্য সফটওয়্যার ডিজাইন —
RF পালস, গ্রেডিয়েন্ট পালস এবং ডিলে নির্ধারণের জন্য পালস সিকোয়েন্স ম্যানেজার ব্যবহার হয়। FPGA, ADC বা DAC ইন্টারফেসের জন্য হার্ডওয়্যার ইন্টারফেস কন্ট্রোলার পালস থাকে। সঠিক সময়ে পালস ট্রিগার ও অধিগ্রহণের জন্য রিয়েল-টাইম সিডিউলার এবং সিকোয়েন্স নির্বাচন ও কাস্টমাইজ করার জন্য ইউজার ইন্টারফেস থাকে। Signal, Error, SAR log করার জন্য মনিটরিং ও লগিং থাকে।
পালস সিকোয়েন্স ম্যানেজার (PSM) বা পালস সিকোয়েন্স কন্ট্রোলার (PSC) হলো MRI মেশিনের মস্তিষ্ক সদৃশ একটি সফটওয়্যার বা হার্ডওয়্যার সিস্টেম যা RF পালস, গ্রেডিয়েন্ট পালস এবং সময়ের বিলম্বগুলো নির্ভুল ভাবে নির্ধারণ ও নিয়ন্ত্রণ করায় অবশেষে সঠিক ভাবে ইমেজ তৈরি করা যায়।
FPGA (Field Programmable Gate Array) একটি শক্তিশালী হার্ডওয়্যার প্ল্যাটফর্ম যা বাস্তব-সময়ের (real-time) উচ্চ গতির ডেটা প্রসেসিংয়ের জন্য ব্যবহার হয়। FPGA দিয়ে আপনি সরাসরি ADC (Analog-to-Digital Converter) বা DAC (Digital-to-Analog Converter) এর সাথে ইন্টারফেস করে রিয়েল-টাইম ডেটা প্রসেস করতে পারেন।
MRI-এর সবচেয়ে বড় সুবিধা হলো এটি X-ray বা CT স্ক্যানের মতো আয়নাইজিং রেডিয়েশন ব্যবহার করে না। বরং শক্তিশালী ম্যাগনেটিক ফিল্ড ও রেডিও ওয়েভ দিয়ে অভ্যন্তরের বিস্তারিত ছবি তৈরি করে। MRI বেশি চিকিৎসা ক্ষেত্রে ব্যবহারিত। তবে গবেষণা, শিল্প ও বিশেষ কিছু ক্ষেত্রেও এই মেশিনের ব্যবহার হয়।
fMRI-এর সাহায্যে মস্তিষ্কের স্ট্রোক, টিউমার, মাল্টিপল স্ক্লেরোসিস, ইনফেকশন, স্নায়ুর গঠন ও কার্যকলাপ নির্ধারণ করা হয়।
হাড় ও জয়েন্টের ক্ষেত্রে যেমন হাঁটু, কাঁধ, কোমরের লিগামেন্ট বা কার্টিজের ইনজুরি শনাক্ত করতে ব্যবহৃত হয়। হাড়ের ভেতরের টিউমার বা সংক্রমণ এবং মেরুদণ্ডের ডিস্ক প্রলাপ্স (Slip disc) ও নার্ভের চাপ নির্ণয়ে MRI করা হয়।
মেরুদণ্ডের হাড়গুলোর মাঝে থাকে নরম কুশনের মতো ডিস্ক। কোন কারণে সেই ডিস্কের নরম অংশ বাইরে বেরিয়ে এলে বা সরে গেলে সেটাকেই স্লিপ ডিস্ক বলা হয়। এতে নার্ভে চাপ পড়ে ব্যথা ও অসাড়তা হয়।
(ক্রমাগত) #বিজ্ঞান
চার্জ বা আধান গ্রন্থ ধুলো কণা
বাতাসে এমন কিছু পদার্থের ক্ষুদ্রাতিক্ষুদ্র কণা আছে যা কোন আগুন বা তাপ উৎসের চারপাশে ঘড়ির কাঁটার বিপরীত দিকে অনবরত ঘুরতে থাকে।
ঘরের কোণে জ্বলতে থাকা বৈদ্যুতিক বাতির দিকে মোবাইলের ক্যামেরা কিছুটা জুম করে লক্ষ্য করি। দেখা যাবে, বাতিটির চার পাশে কিছু পদার্থ তাপ প্রাপ্তিতে চার্জ বা আধান গ্রস্থ হয়ে বৃত্তাকার ভাবে ঘড়ির কাঁটার বিপরীত দিকে ঘুরছে। কারণ আগুনের চারপাশে ভাসমান সব কিছু ঘড়ির কাঁটার বিপরীত দিকে ঘুরতে থাকে। বাতিটা নিভে গেলে ধুলো কণাগুলোর চার্জ কমতে থাকায় ঘূর্ণন গতি বিনষ্ট হয়ে যায়।
ধুলো কণাগুলো সনাক্ত করা গেলে এমন কোন পদার্থ সামনে চলে আসবে যাতে তাপ পড়লে আধানগ্রস্থ হয়ে গতিশীল হতে পারবে। তবে এ সম্পর্কে আরও অনেক কিছু অনুসন্ধানের প্রয়োজন। ধন্যবাদ। #বিজ্ঞান
রঙের কণা // Color Particles // रंग कण
বিন্দুর চেয়েও একটা রঙের কণা
কয়েক গুণ বেশি ক্ষুদ্র হতে পারে।
যে কোন আগুনের প্রভাবে
অতি ক্ষুদ্র কার্বনের গ্যাসীয় রঙের কণা
সেকেন্ডে প্রায় তিন লক্ষ কিমি পর্যন্ত
ঢেউ আকারে লম্বা হতে পারে।
বিভিন্ন গ্যাস হতে বিভিন্ন রঙের সৃষ্টি হয়
এবং বিভিন্ন রঙের কণার ঢেউয়ের আকার
বিভিন্ন পরিমাপের হয়ে থাকে।
লেজারে পতিত রঙের কণার তরঙ্গ দৈর্ঘ্য
সব সময় সব চেয়ে কম হয়ে থাকে।
কোন বস্তু হতে কতটা রঙের কণা
স্থায়ি বা অস্থায়ি ভাবে অপসারিত হবে
তা সব সময় আগুনের তীব্রতা, স্থায়িত্ব
ও ওই পদার্থের স্বচ্ছতার পরে নির্ভর করে।
আগুন বায়বীয় কালো রঙের কণাকে
কম বেশি গতিশীল করতে পারলেও
কঠিন ও তরল পদার্থের কালো রঙকে
খুব বেশি গতিশীল করতে পারে না।
কোন পদার্থের রঙের কণা অপসারণ ছাড়া
আলো বা আগুন ক্রিয়াশীল হতে পারে না;
বিভিন্ন গ্যাসের দাহ্য রঙ বিভিন্ন হয়ে থাকে।
যে কোন আগুনের মাধ্যমে গতিশীল
বিভিন্ন রঙের কণার সমষ্টি হলো আলো।
আগুন হতে সৃষ্ট বিভিন্ন রঙের কণা পুনরায়
অন্য রঙের কণাকে গতিশীল করতে পারে।
Color Particles
A particle of color rather than a point
Can be several times smaller.
Any fire effect
Very small carbon rich gaseous colored particles
Up to about three lakh km per second
Waveforms can be elongated.
Different gases produce different colors
And wave forms of different colored particles
There are different measurements.
The wave length of the color particles incident on the laser
Is always the lowest.
How many color particles are there from an object
Will be permanently or temporarily removed
It is always intensity of fire, durability
It also depends on the transparency of the substance.
Fire is gaseous black particles
Even if you can do it more or less quickly
Black color of solids and liquids
Can't move too much.
Without removing any substance color particles
Light or fire can’t be active;
Different gases have different flammability colors.
Motion through any fire
Light is a collection of different colored particles.
Different colored particles from fire are again
Can move particles of other colors.
रंग कण
एक बिंदु के बजाय रंग का एक कण
कई गुना छोटा हो सकता है।
कोई आग प्रभाव
बहुत छोटे कार्बन युक्त गैसीय रंगीन कण
लगभग तीन लाख किमी प्रति सेकंड तक
तरंगों को लम्बा किया जा सकता है।
विभिन्न गैसें अलग अलग रंग उत्पन्न करती हैं
और विभिन्न रंग के कणों के तरंगरूप
अलग अलग माप हैं।
लेज़र पर आपतित रंग कणों की तरंगदैर्घ्य
सदैव निम्नतम होता है।
किसी वस्तु में कितने रंग के कण होते हैं
स्थायी या अस्थायी रूप से हटा दिया जाएगा
यह सदैव अग्नि की तीव्रता, स्थायित्व है
यह पदार्थ की पारदर्शिता पर भी निर्भर करता है।
अग्नि गैसीय काले कण हैं
भले ही आप इसे कम या ज्यादा तेजी से कर सकें
ठोस और तरल पदार्थ का रंग काला
बहुत ज्यादा हिल नहीं सकते।
किसी भी पदार्थ के रंग के कणों को हटाए बिना
प्रकाश या अग्नि सक्रिय नहीं हो सकते;
विभिन्न गैसों में अलग अलग ज्वलनशीलता रंग होते हैं।
किसी भी आग के माध्यम से गति
प्रकाश विभिन्न रंग के कणों का एक संग्रह है।
आग से उत्पन्न अलग अलग रंग के कण फिर से होते हैं
अन्य रंगों के कण गति कर सकते हैं। #বিজ্ঞান
টিস্যু ইঞ্জিনিয়ারিং
বায়োমেডিক্যাল ইঞ্জিনিয়ারিং, কোষ বিজ্ঞান, উপকরণ বিজ্ঞান এবং চিকিৎসা বিজ্ঞান মিলিত একটি শাখা হলো টিস্যু ইঞ্জিনিয়ারিং যেখানে মানুষের ক্ষতিগ্রস্ত বা অকেজো অঙ্গ, টিস্যু বা ত্বককে কৃত্রিম ভাবে তৈরি বা পুনরুদ্ধার করা হয়।
কৃত্রিম ভাবে ত্বক বা অঙ্গ তৈরির কাজ কয়েক ধাপে সম্পন্ন হয়। প্রথমে রোগির স্টেম সেল বা দাতা থেকে কোষ সংগ্রহ করে 3D প্রিন্টিং Scaffold বা ন্যানোফাইবার Scaffold করা হয়। Scaffold-এর উপর কোষ বসানো (Cell Seeding) হয় যার ফলে বায়োরিয়্যাক্টরে কোষ বিভাজন ও টিস্যুর গঠন শুরু হয়। এ ভাবে ত্বক বা অঙ্গ গঠন করে রোগির শরীরে প্রতিস্থাপন করা হয়।
ভ্রূণের (Embryo) ব্লাস্টোসিস্ট স্তর থেকে প্রাথমিক পর্যায়ে পাওয়া যায় এমব্রায়োনিক স্টেম সেল (Embryonic Stem Cells, ESCs) যা স্নায়ু, পেশি, লিভার, হার্ট ইত্যাদির কোষে রূপান্তরিত হতে পারে। কৃত্রিম টিস্যু ও অঙ্গ তৈরি এবং জন্মগত রোগ বোঝা ও ওষুধ পরীক্ষায় কার্যকর। কিন্তু এর ব্যবহার নৈতিকতা বিরোধী কারণ ভ্রুণ থেকে কোষ সংগ্রহ করতে হয়। তা ছাড়া এ ধরনের স্টেম সেলের অনিয়ন্ত্রিত বৃদ্ধির ফলে টিউমার হওয়ার ঝুঁকি থাকে।
সাধারণত ত্বক বা রক্তের প্রাপ্ত বয়স্ক কোষ জেনেটিক ভাবে রিপ্রোগ্রামিং করে Pluripotent করা হয়। এদের ইনডিউসড প্লুরিপোটেন্ট স্টেম সেল (Induced Pluripotent Stem Cells, iPSCs) বলে যা ESCs-এর মতোই কার্যকর। এ ক্ষেত্রে নিজের কোষ ব্যবহার করে কৃত্রিম টিস্যু তৈরি করা যায়। iPSC থেকে patient-specific organoid তৈরি করে স্টেম সেলের মাধ্যমে রোগ মডেলও বানানো যায়। ইমিউন রিজেকশন কম তবে জেনেটিক পরিবর্তন সব সময় স্থিতিশীল নাও হতে পারে।
এ ধরনের কোষ বহু কর্মক্ষম এবং পুনর্জনন চিকিৎসায় ব্যবহৃত। স্টেম সেল, টিস্যু ইঞ্জিনিয়ারিং, বায়োম্যাটেরিয়াল, ন্যানোটেকনোলজি এবং জিন থেরাপির মাধ্যমে পুনর্জনন চিকিৎসা করা হয়।
প্রাপ্ত বয়স্ক মানুষের অস্থি মজ্জা, রক্ত, চর্বি, ত্বক, দাঁতের পাল্প ইত্যাদি থেকে এডাল্ট স্টেম সেল (Adult Stem Cells, ASCs) সংগ্রহ করা হয়। বিশেষ করে অস্থি মজ্জা প্রতিস্থাপন (Bone marrow transplant) এবং রক্ত ও ইমিউন সিস্টেমের চিকিৎসা ক্ষেত্রে ব্যবহৃত। যেমন অস্থি মজ্জার হেমাটোপোয়েটিক স্টেম সেল সব ধরনের রক্ত কণিকা তৈরি করতে পারে। এগুলোও Multipotent মানে সব ধরনের কোষ না হলেও নির্দিষ্ট কিছু ধরনের কোষে রূপান্তরিত হতে পারে কিন্তু ESC-র মতো বহুমুখি নয়।
প্রোটিন জাতীয় সংকেত তৈরি করে কোষকে বৃদ্ধির জন্য উদ্দীপিত করতে গ্রোথ ফ্যাক্টর খুব গুরুত্বপূর্ণ। এরা কোষকে বেঁচে থাকা, বৃদ্ধি, বিভাজন, পার্থক্যকরণ এবং নতুন টিস্যু তৈরি করতে নির্দেশ দেয়। নিচে প্রধান কিছু গ্রোথ ফ্যাক্টরের ব্যবহার দেওয়া হলো —
ত্বকের পুনর্গঠন, ক্ষত নিরাময়, এপিথেলিয়াল কোষের বৃদ্ধি ইত্যাদি ক্ষেত্রে Epidermal Growth Factor (EGF) কোষের বিভাজন ও স্থানান্তরণ (Migration) বাড়ায়।
ত্বক, হাড়, কার্টিলেজ ও রক্তনালি তৈরিতে Fibroblast Growth Factor (FGF) ব্যবহার হয় যা ফাইব্রোব্লাস্ট, অস্টিওব্লাস্ট ও এন্ডোথেলিয়াল কোষ সক্রিয় করে।
নতুন রক্তনালি তৈরি এবং টিস্যুতে রক্ত সরবরাহ নিশ্চিত করতে Vascular Endothelial Growth Factor (VEGF) ব্যবহার হয় যা অঙ্গ, ত্বক ইত্যাদি ইমপ্লান্টে অক্সিজেন ও পুষ্টির সরবরাহ বাড়ায়।
স্কার টিস্যু গঠন, extracellular matrix (ECM) উৎপাদন, cartilage পুনর্গঠন ইত্যাদি ক্ষেত্রে Transforming Growth Factor-beta (TGF-β) ব্যবহার হয় যা স্টেম সেলের পার্থক্যকরণ নিয়ন্ত্রণ করে।
ক্ষত নিরাময়, কোলাজেন উৎপাদন, ফাইব্রোব্লাস্ট সক্রিয়করণ ইত্যাদি ক্ষেত্রে Platelet-Derived Growth Factor (PDGF) ব্যবহার হয় যা কানেকটিভ টিস্যু ও স্কিন রিজেনারেশনে সহায়তা করে।
হাড় ও কার্টিলেজ তৈরিতে Bone Morphogenetic Protein (BMP) ব্যবহার হয় যা Mesenchymal stem cell-কে Bone বা Cartilage কোষে রূপান্তরিত করে।
স্নায়ু পুনর্গঠনের জন্য Nerve Growth Factor (NGF) ব্যবহার হয় যা নিউরনকে বৃদ্ধি পেতে ও বেঁচে থাকতে সহায়তা করে।
Insulin-like Growth Factor (IGF) হলো ইনসুলিনের মতো গঠন বিশিষ্ট গ্রোথ ফ্যাক্টর। এদের দুটি প্রধান ধরন হলো IGF-1 এবং IGF-2। এগুলো প্রধানত লিভার থেকে উৎপন্ন হয় তবে অন্যান্য টিস্যুতেও তৈরি হতে পারে। এরা কোষের বিভাজন ও বৃদ্ধি উদ্দীপিত করে। হাড় ও পেশি গঠনে অত্যন্ত গুরুত্বপূর্ণ। শিশু ও কিশোরদের শরীরের বৃদ্ধি IGF-1 এর ওপর নির্ভরশীল। মেটাবলিজম নিয়ন্ত্রণে এরা অংশ নেয় (ইনসুলিনের মতো গ্লুকোজ uptake প্রভাবিত করে) এবং স্টেম সেলকে নির্দিষ্ট টিস্যুতে পার্থক্যকরণে সহায়তা করে। শিশুদের বৃদ্ধিতে হরমোন ঘাটতির ক্ষেত্রে IGF ব্যবহার করা হয়। ক্যান্সার গবেষণায়ও গুরুত্বপূর্ণ কারণ অনেক টিউমার IGF pathway ব্যবহার করে অনিয়ন্ত্রিত ভাবে বৃদ্ধি পায়।
Hepatocyte Growth Factor (HGF) মূলতঃ লিভারের পুনর্জন্ম ও মেরামতের জন্য পরিচিত একটি গ্রোথ ফ্যাক্টর। এটি mesenchymal cell থেকে উৎপন্ন হয়। এর রিসেপ্টর হলো c-Met receptor (tyrosine kinase receptor)। কোষের migration ও motility বাড়ায় (তাই একে কখনো কখনো scatter factor-ও বলা হয়)। নতুন রক্তনালি গঠনে ভূমিকা রাখে। কেবল লিভার নয়, কিডনি, ফুসফুস, হৃদপিণ্ড সহ বিভিন্ন অঙ্গ পুনর্গঠনে সহায়ক। লিভার ক্ষতিগ্রস্ত হলে (যেমন হেপাটাইটিস বা লিভার সার্জারির পরবর্তী অবস্থায়) HGF পুনর্গঠনে সহায়তা করে। ক্যান্সার গবেষণায়ও গুরুত্বপূর্ণ, কারণ HGF বা c-Met pathway অতি সক্রিয় হলে টিউমার ছড়িয়ে পড়তে (metastasis) সাহায্য করতে পারে। রিজেনারেটিভ মেডিসিন ও স্টেম সেল থেরাপিতে ব্যবহারের গবেষণা চলছে।
গ্রোথ ফ্যাক্টরগুলোকে বায়োম্যাটেরিয়াল স্ক্যাফোল্ডে যেমন কোলাজেন, হায়ালুরোনিক অ্যাসিড ইত্যাদি যুক্ত করা হয়। এগুলো কোষকে ধীরে ধীরে সিগনাল দেয়, ফলে অঙ্গ বা ত্বক প্রাকৃতিক ভাবে গঠিত হয়।
টিস্যু ইঞ্জিনিয়ারিং-এ 3D প্রিন্টিং (বা Bioprinting) হলো এমন এক উন্নত প্রযুক্তি যেখানে জীবন্ত কোষ, বায়োম্যাটেরিয়াল এবং গ্রোথ ফ্যাক্টর ব্যবহার করে কৃত্রিম টিস্যু বা অঙ্গ তৈরি করা হয়। এটি layer by layer পদ্ধতিতে কাজ করে, একদম 3D প্রিন্টারের মতো, তবে এখানে প্রিন্টিং উপাদান হিসেবে bioink ব্যবহৃত হয়।
bioink হলো stem cell, chondrocyte (cartilage বা উপাস্থি কোষ), myocyte (muscle বা পেশি কোষ) ইত্যাদি জীবন্ত কোষ ও প্রাকৃতিক বা কৃত্রিম হাইড্রোজেল যেমন collagen, alginate, gelatin ইত্যাদি এবং গ্রোথ ফ্যাক্টরের মিশ্রণ। এর মাধ্যমে কোষগুলো নির্দিষ্ট আকার ও পরিবেশে সাজানো যায় যাতে তারা প্রাকৃতিক টিস্যুর মতো গঠন তৈরি করে।
bioink-এ stem cell হিসেবে Perinatal Stem Cells-ও ব্যবহার হয়। নব জাতকের cord blood, placenta, amniotic fluid ইত্যাদি থেকে সংগ্রহ করা হয়। এরা Multipotent তবে কখনো কখনো pluripotent বৈশিষ্ট্যও দেখা যায়। রোগির জন্য ব্যবহার করলে রিজেকশনের সম্ভাবনা কম। regenerative medicine ও immune therapy-তেও এ ধরনের স্টেম সেল ব্যবহার হয়।
Bioink-এর স্টেম সেল প্রিন্টেড স্ক্যাফোল্ডে বসে cartilage, bone, skin, muscle ইত্যাদি কোষ তৈরি করে। এরা Growth factor ও ECM-এর সাথে মিলে microenvironment তৈরি করে যেখানে কোষগুলো কার্যকরি টিস্যুতে পরিণত হয়। রোগির স্টেম সেল ব্যবহার করলে অঙ্গ প্রতিস্থাপন নিরাপদ হয়।
bioink-এর প্রধান উপাদান হলো hydrogel যা মূলতঃ পানিতে ফুলে ওঠা পলিমার নেটওয়ার্ক, যেখানে জীবন্ত কোষ, গ্রোথ ফ্যাক্টর ও অন্যান্য বায়োমলিকিউল এমবেড করা যায়। হাইড্রোজেলগুলোকে প্রাকৃতিক ও কৃত্রিম দুই ভাবে ভাগ করা হয়। নিচে bioink-এ ব্যবহৃত কয়েকটি গুরুত্বপূর্ণ হাইড্রোজেলের বর্ণনা করা হলো —
প্রাকৃতিক হাইড্রোজেলগুলো টিস্যুর সাথে বেশি বায়ো-কম্প্যাটিবল এবং কোষ বৃদ্ধির জন্য সহায়ক।
শরীরে সবচেয়ে বেশি পরিমাণে পাওয়া প্রোটিন এবং এক্সট্রাসেলুলার ম্যাট্রিক্স (ECM)-এর প্রধান উপাদান Collagen যা কোষকে সংযুক্ত থাকতে, বেঁচে থাকতে এবং বৃদ্ধি পেতে সহায়তা করে। স্ক্যাফোল্ড হিসেবে বহুল ব্যবহৃত।
Alginate হলো সমুদ্রের শৈবাল (brown algae) থেকে প্রাপ্ত প্রাকৃতিক পলিস্যাকারাইড। ক্যালসিয়াম আয়নের উপস্থিতিতে দ্রুত জেল তৈরি করে, তাই 3D প্রিন্টিং-এ ব্যবহার সুবিধাজনক। তবে কোষ অ্যাটাচমেন্ট স্বাভাবিক ভাবে হয় না, এ জন্য প্রায়শই RGD peptide যুক্ত করা হয়।
Gelatin আসলে collagen থেকে প্রাপ্ত একটি ডিনেচারড প্রোটিন। কোষের জন্য adhesion সাইট দেয়, ফলে কোষ সহজে যুক্ত হয়। Gelatin methacryloyl (GelMA) আকারে photo-crosslinking করে শক্তিশালী hydrogel তৈরি করা যায়।
রক্ত জমাট বাঁধার সময় Fibrin তৈরি হয়। Angiogenesis (রক্তনালি তৈরি) এবং wound healing-এ গুরুত্বপূর্ণ।
Hyaluronic Acid (HA) হলো প্রাকৃতিক ECM-এর উপাদান। এরা টিস্যুর hydration, কোষ মাইগ্রেশন ও সিগন্যালিং-এ সহায়তা করে।
কৃত্রিম হাইড্রোজেলগুলো নিয়ন্ত্রিত যান্ত্রিক বৈশিষ্ট্য, স্থিতিশীলতা ও প্রিন্টেবিলিটি প্রদান করে। যেমন —
Polyethylene Glycol (PEG) হলো বায়ো-ইনার্ট (জীব বিজ্ঞানের সাথে প্রতিক্রিয়া হীন), তাই chemical modification (যেমন RGD peptide সংযোজন) করে কোষ আনুগত্য (adhesion) করানো হয়। তবে মেকানিক্যালি শক্তিশালী এবং ক্রসলিঙ্কিং সহজ।
Polyvinyl Alcohol (PVA) উচ্চ জল শোষণ ক্ষমতা রাখে। ভালো যান্ত্রিক বৈশিষ্ট্য, তবে কোষ-বান্ধব নয় বলে মডিফাই করতে হয়।
Pluronic (Poloxamer) হলো তাপমাত্রা নির্ভরশীল hydrogel, তাই bioink হিসেবে দ্রুত জেল হতে পারে। সাধারণত sacrificial ink (সাপোর্ট ম্যাটেরিয়াল) হিসেবেও ব্যবহৃত হয়।
প্রাকৃতিক hydrogel বায়োকম্প্যাটিবল, কোষ-বান্ধব, তবে যান্ত্রিক ভাবে দুর্বল। অপর দিকে কৃত্রিম hydrogel শক্তিশালি, কন্ট্রোল করা যায়, তবে কোষ-বান্ধব নয় (মডিফিকেশন দরকার)। তাই bioink-এ প্রায়শই কৃত্রিম ও প্রাকৃতিক hydrogel মিশ্রিত করে ব্যবহার করা হয়।
3D প্রিন্টিং Scaffold আর Nanofiber Scaffold এক জিনিস নয়। দুটোই টিস্যু ইঞ্জিনিয়ারিং-এ Scaffold (কৃত্রিম কাঠামো) হিসেবে ব্যবহৃত হয়, কিন্তু তৈরির পদ্ধতি, গঠন এবং বৈশিষ্ট্যে পার্থক্য আছে।
বায়োইঙ্ক (hydrogel + polymer + cell) অথবা biodegradable polymer (PLA, PCL, PEG ইত্যাদি) ব্যবহার করে 3D bioprinter বা সাধারণ 3D printer দিয়ে লেয়ার-বাই-লেয়ার গঠন করে 3D Printing Scaffold তৈরি করা হয়। গঠন (geometry) খুব নির্দিষ্ট ভাবে নিয়ন্ত্রণ করা যায়। pore size ও shape প্রয়োজন অনুযায়ি ডিজাইন করা যায়। বড় টিস্যু বা অঙ্গ তৈরি করার জন্য উপযোগি।
Collagen, Gelatin, PCL, PLGA ইত্যাদি polymer ব্যবহার করে Electrospinning নামক পদ্ধতিতে ন্যানো-স্কেল ফাইবার জাল বা Nanofiber Scaffold তৈরি করা হয়।
ফাইবারগুলো প্রাকৃতিক Extracellular Matrix (ECM)-এর মতো দেখায়। কোষ সহজে adhesion হতে পারে। Surface area অনেক বেশি, তাই drug delivery বা wound healing-এ উপযোগি। কিন্তু pore size সাধারণত খুব ছোট, তাই ভেতরে কোষ প্রবেশে সীমাবদ্ধতা থাকে।
3D printing scaffold সাধারণত কাঠামো তৈরি করতে ব্যবহার হয় (design-based, বড় pore) এবং ECM-এর মতো microenvironment তৈরি করতে Nanofiber scaffold ব্যবহার হয় (fiber-based, ছোট pore)। এগুলো অনেক সময় একত্রে ব্যবহারও করা হয়। যেমন 3D প্রিন্টেড scaffold-এর ওপর nanofiber coating দেওয়া হয় যাতে কাঠামো ও ECM দুই সুবিধাই পাওয়া যায়।
Scaffold-এর উপর কোষ বসানোর প্রক্রিয়া বা Cell Seeding একটি গুরুত্বপূর্ণ ধাপ যা টিস্যুর বৃদ্ধিতে সহায়তা করে। সাধারণত স্ক্যাফোল্ডের মাধ্যমে কোষগুলোকে ঠিক ভাবে স্থানান্তরিত করা এবং সেগুলোর বৃদ্ধিকে নিশ্চিত করার জন্য এই প্রক্রিয়া ব্যবহৃত হয়। এখানে কোষ বসানোর কিছু সাধারণ পদ্ধতি —
ইনকিউবেশন পদ্ধতি (Static Seeding)-তে কোষগুলোকে স্ক্যাফোল্ডের উপর স্থির ভাবে বসানো হয়। কোষগুলো সাধারণত স্ক্যাফোল্ডে সরাসরি নির্দিষ্ট সময়ের জন্য ইনকিউবেট করা হয় যাতে তারা স্ক্যাফোল্ডে আটকে যায়। সাধারণত এটি সহজ পদ্ধতি তবে কোষের বন্টন সর্বত্র সমান নাও হতে পারে।
Rotational Seeding পদ্ধতিতে স্ক্যাফোল্ডটি কিছু সময়ের জন্য ঘোরানো হয় যাতে কোষগুলো সমান ভাবে স্ক্যাফোল্ডে বন্টিত হয়। ঘোরানো স্ক্যাফোল্ডে কোষগুলো স্থির ভাবে আটকে যেতে সাহায্য করে।
Dynamic Seeding পদ্ধতিতে কোষগুলো একটি তরল মিডিয়াতে সাসপেনশন আকারে থাকে এবং স্ক্যাফোল্ডের উপর প্রবাহিত হয়। এটি একটি সক্রিয় পদ্ধতি যা কোষগুলোর দ্রুত বন্টন নিশ্চিত করে। সাধারণত একটি পাম্প বা সিস্টেমের মাধ্যমে কোষের সাসপেনশন স্ক্যাফোল্ডের মধ্য দিয়ে পাঠানো হয়।
জেলিং পদ্ধতি (Gelatin Seeding)-তে স্ক্যাফোল্ডের ভেতরে তরল বা জেল গঠন করা হয় যাতে কোষগুলো সহজে প্রবাহিত হয়ে সঠিক ভাবে বসতে পারে। এই পদ্ধতিতে কোষগুলো তরল বা জেল হিসেবে একত্রিত হতে পারে যা পরে শক্ত হয়ে কোষগুলোর স্থায়িত্ব নিশ্চিত করে।
ইলেক্ট্রোফোরেসিস পদ্ধতিতে একটি বৈদ্যুতিক ক্ষেত্র ব্যবহার করে কোষগুলোকে স্ক্যাফোল্ডের উপর সরিয়ে নিয়ে যাওয়া হয়। এটি কোষগুলোর আউট রিটেনশন বা অবস্থান নিশ্চিত করার জন্য অত্যন্ত কার্যকর।
মাইক্রোফ্লুইডিক সিস্টেম ব্যবহার করে কোষগুলো স্ক্যাফোল্ডে সঠিক ভাবে বন্টিত হয়। এটি অনেক সময় ছোট ছোট চ্যানেল ব্যবহার করে কোষের নির্দিষ্ট স্থানান্তর নিশ্চিত করতে ব্যবহৃত হয়।
কোষ স্ক্যাফোল্ড বা 3D ম্যাট্রিক্সে বসানোর পর কয়েকটি গুরুত্বপূর্ণ ধাপ ঘটে যা টিস্যু গঠনের জন্য খুবই দরকারি –
কোষের আস্তরণ ও সংযুক্তি (Cell Adhesion & Attachment) নিশ্চিত করতে কোষগুলো যেন স্ক্যাফোল্ডের উপর ভালো ভাবে আটকে থাকে এবং ছড়িয়ে পড়তে পারে তা পর্যবেক্ষণ করা হয়। এ জন্য কোষকে উপযুক্ত পরিবেশে (যেমন ECM প্রোটিন কোটিং, Integrin-mediated adhesion ইত্যাদি) রাখা হয়।
কোষ বৃদ্ধির জন্য কালচার মিডিয়া (Cell Culture Media) ব্যবহার করে কোষকে পুষ্টি (Glucose, Amino acids, Vitamins) এবং সিগনালিং মলিকিউল দেওয়া হয়। বিশেষ গ্রোথ ফ্যাক্টর (যেমন FGF, VEGF, NGF) যোগ করা হতে পারে যাতে নির্দিষ্ট টিস্যু ধরনের দিকে কোষ বিভাজন ও বৃদ্ধি পায়।
অনেক ক্ষেত্রে কোষকে বায়োরিঅ্যাক্টর সিস্টেমে রাখা হয় যাতে সঠিক অক্সিজেন, পুষ্টি সরবরাহ, বর্জ্য অপসারণ এবং মেকানিক্যাল স্টিমুলেশন দেওয়া যায়। যেমন হাড় বা কার্টিলেজের জন্য Mechanical loading, হৃদপিণ্ডের জন্য Electrical stimulation ইত্যাদি।
কোষের বিভাজন ও পার্থক্যকরণ (Cell Proliferation & Differentiation) করে কোষকে সঠিক সংকেত দেওয়া হয় যাতে তারা শুধু বৃদ্ধি না পেয়ে নির্দিষ্ট টিস্যুর যেমন হাড়, ত্বক, স্নায়ু, কার্ডিয়াক ইত্যাদি কোষে পরিণত হয়।
কোষগুলো স্ক্যাফোল্ডে ECM তৈরি করায় ধীরে ধীরে নতুন টিস্যু গড়ে ওঠে এবং স্ক্যাফোল্ড যদি biodegradable হয় তবে তা ভেঙে গিয়ে আসল টিস্যু দ্বারা প্রতিস্থাপিত হয়।
টিস্যুর কার্যকারিতা, জীবিত কোষ সংখ্যা (Viability), মেকানিক্যাল প্রপার্টি জানার জন্য In vitro পরীক্ষা করা হয়।
যখন তৈরি টিস্যু যথেষ্ট পরিপক্ব হয় তখন তা রোগির শরীরে In vivo-র মাধ্যমে প্রতিস্থাপন (Implantation) করা হয়। ধন্যবাদ। #বিজ্ঞান




![📢শেয়ারচ্যাট স্পেশাল - statistics . geometric_mean statistics.harmonic_mean] statistics meanl statistics median statistics.model statistics.multimodel statistics . pstdev statistics pvariance statistics.stdev statistics.variancel statistics . geometric_mean statistics.harmonic_mean] statistics meanl statistics median statistics.model statistics.multimodel statistics . pstdev statistics pvariance statistics.stdev statistics.variancel - ShareChat 📢শেয়ারচ্যাট স্পেশাল - statistics . geometric_mean statistics.harmonic_mean] statistics meanl statistics median statistics.model statistics.multimodel statistics . pstdev statistics pvariance statistics.stdev statistics.variancel statistics . geometric_mean statistics.harmonic_mean] statistics meanl statistics median statistics.model statistics.multimodel statistics . pstdev statistics pvariance statistics.stdev statistics.variancel - ShareChat](https://cdn4.sharechat.com/bd5223f_s1w/compressed_gm_40_img_426588_3301eec4_1768245418527_sc.jpg?tenant=sc&referrer=user-profile-service%2FrequestType50&f=527_sc.jpg)



![📢শেয়ারচ্যাট স্পেশাল - Arithmetic Operators [ PVkoN invert_ -abs_ _neg_ -_00$_ __iadd_ _radd . add] _iand rand] and floordiv _if1oordiv _ rfloordiv__ _i1shift__ _Ishift__ _rlshift__ imatmul_ rmatmul_ ma tmul imod _. rmod_ mod_ _ imul_ IU] - rmul_ _i0r__ ror_ or -_ipow _pow rpow _irshift_ _rshift__ _rrshift__ _isub sub rsub truediv__ __itruediv rtruediv 8 ixor_. X01. rXor Arithmetic Operators [ PVkoN invert_ -abs_ _neg_ -_00$_ __iadd_ _radd . add] _iand rand] and floordiv _if1oordiv _ rfloordiv__ _i1shift__ _Ishift__ _rlshift__ imatmul_ rmatmul_ ma tmul imod _. rmod_ mod_ _ imul_ IU] - rmul_ _i0r__ ror_ or -_ipow _pow rpow _irshift_ _rshift__ _rrshift__ _isub sub rsub truediv__ __itruediv rtruediv 8 ixor_. X01. rXor - ShareChat 📢শেয়ারচ্যাট স্পেশাল - Arithmetic Operators [ PVkoN invert_ -abs_ _neg_ -_00$_ __iadd_ _radd . add] _iand rand] and floordiv _if1oordiv _ rfloordiv__ _i1shift__ _Ishift__ _rlshift__ imatmul_ rmatmul_ ma tmul imod _. rmod_ mod_ _ imul_ IU] - rmul_ _i0r__ ror_ or -_ipow _pow rpow _irshift_ _rshift__ _rrshift__ _isub sub rsub truediv__ __itruediv rtruediv 8 ixor_. X01. rXor Arithmetic Operators [ PVkoN invert_ -abs_ _neg_ -_00$_ __iadd_ _radd . add] _iand rand] and floordiv _if1oordiv _ rfloordiv__ _i1shift__ _Ishift__ _rlshift__ imatmul_ rmatmul_ ma tmul imod _. rmod_ mod_ _ imul_ IU] - rmul_ _i0r__ ror_ or -_ipow _pow rpow _irshift_ _rshift__ _rrshift__ _isub sub rsub truediv__ __itruediv rtruediv 8 ixor_. X01. rXor - ShareChat](https://cdn4.sharechat.com/bd5223f_s1w/compressed_gm_40_img_748311_3042d68e_1765226746052_sc.jpg?tenant=sc&referrer=user-profile-service%2FrequestType50&f=052_sc.jpg)
![📢শেয়ারচ্যাট স্পেশাল - একই উৎস 8 হতে জাতির একই মানব পরবর্তী বিচার প্রক্রিয়া মৃত্যু বিভিন্ন অনুসারে কখনও মতবাদ বিভিন্ন எ রকম ?IIC २८७ এটাই f স্বাভাবিক ] ধর্মীয় মতবাদ মতবাদই CIN যে সিদ্ধান্তে ७३ আমাদেরকে উপনীত উপদেশ হতে দেয় ইহাকে ইনি শেষ < কথা ইনাকে অনুসরণ করে না নেই গতি অন্য একই উৎস 8 হতে জাতির একই মানব পরবর্তী বিচার প্রক্রিয়া মৃত্যু বিভিন্ন অনুসারে কখনও মতবাদ বিভিন্ন எ রকম ?IIC २८७ এটাই f স্বাভাবিক ] ধর্মীয় মতবাদ মতবাদই CIN যে সিদ্ধান্তে ७३ আমাদেরকে উপনীত উপদেশ হতে দেয় ইহাকে ইনি শেষ < কথা ইনাকে অনুসরণ করে না নেই গতি অন্য - ShareChat 📢শেয়ারচ্যাট স্পেশাল - একই উৎস 8 হতে জাতির একই মানব পরবর্তী বিচার প্রক্রিয়া মৃত্যু বিভিন্ন অনুসারে কখনও মতবাদ বিভিন্ন எ রকম ?IIC २८७ এটাই f স্বাভাবিক ] ধর্মীয় মতবাদ মতবাদই CIN যে সিদ্ধান্তে ७३ আমাদেরকে উপনীত উপদেশ হতে দেয় ইহাকে ইনি শেষ < কথা ইনাকে অনুসরণ করে না নেই গতি অন্য একই উৎস 8 হতে জাতির একই মানব পরবর্তী বিচার প্রক্রিয়া মৃত্যু বিভিন্ন অনুসারে কখনও মতবাদ বিভিন্ন எ রকম ?IIC २८७ এটাই f স্বাভাবিক ] ধর্মীয় মতবাদ মতবাদই CIN যে সিদ্ধান্তে ७३ আমাদেরকে উপনীত উপদেশ হতে দেয় ইহাকে ইনি শেষ < কথা ইনাকে অনুসরণ করে না নেই গতি অন্য - ShareChat](https://cdn4.sharechat.com/bd5223f_s1w/compressed_gm_40_img_951861_27f68857_1765020949530_sc.jpg?tenant=sc&referrer=user-profile-service%2FrequestType50&f=530_sc.jpg)



