forum.ge
reklama
FORUM.GE წესები  · დახმარება  · ძებნა  · წევრები  · კალენდარი  · ფოსტა  · ჩატი
Pages: (4) [1] 2 3 ... ბოლო »  ( გადავიდეთ პირველ წაუკითხავ წერილზე ) გამოხმაურება · ახალი თემა · ახალი გამოკითხვა

> ჩაინიკური შეკითხვები Python-ში
Shamili_gamarjoba
Super Member


****
ჯგუფი: Registered
წერილები: 425
წევრი No.: 23093
რეგისტრ.: 12-September 06

გამოგზავნილია: 13 Jun 2009, 23:31  #14266838      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
გამარჯობათ

ვიცი რომ ამ ენას ბევრი არ ხმარობს საქართველოში, თუმცა საკმაოდ ძლიერი და კარგი ენაა. მეც ეხლა დავიწყე ამის სწავლა და კარგი იქნება ვინც ერკვევით თუ გაგვიზიარებთ ცოდნას.

მაგალითად დავიწყოთ თავიდან ვინ რომელ პროგრამას იყენებთ Python-ში დაპროგრამებისთვის?



nv86
Super Member


****
ჯგუფი: Registered
წერილები: 353
წევრი No.: 93126
რეგისტრ.: 7-June 09

გამოგზავნილია: 21 Oct 2016, 23:38  #49093381      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
Shamili_gamarjoba
გაუ biggrin.gif
რა გამოხმაურება მოყვა შენ თემას. biggrin.gif

მოკლედ. ეს თემა იქნება ჩემი აწი. აქ გავღუნავ ტვინს. დავდებ მაგალითებს დავწერ შეკითხვებს და აშ.
პრეტენზია ხო არავის გექნებათ?

პითონი იმსახურებს საკუთარ თემას.


გამოდით ვინც ამ ენას იყენებთ ან სწავლობთ. რადგან

cookbook 3 edition ხვალიდან უნდა ჩავყვე თავიდან ბოლომდე უნდა მივიდე.

learn python the hard way და კიდევ ერთი შესავალი კურსი გავიარია. ანუ ზოგადი ძალიან.

აჰათ ლინკები
http://sahandsaba.com/thirty-python-langua...y-not-know.html

http://stackoverflow.com/questions/691946/...python-snippets

http://stackoverflow.com/questions/101268/...tures-of-python

http://sebsauvage.net/python/snyppets/

Violent Python ეს წინიც მირჩიე. სერიოზულად ვაპირებ სწავლას. ეს თემა მჭირდება და ავწევ.



--------------------
რა საოცარი ცხვირპირი გაქვს (c)
საზამთრო გევასება? (c)
nv86
Super Member


****
ჯგუფი: Registered
წერილები: 353
წევრი No.: 93126
რეგისტრ.: 7-June 09

გამოგზავნილია: 31 Oct 2016, 22:48  #49165084      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
ესეიგი. უბრალოდ და ძალიან სასარგებლო ბიბლიოთეკა collections. რომელშიც შედის namedtuple, Counter ჰეშებლე ობიექტების ლექსიკონში დასათვლელად. deque, orderedDict და defaultdict.

აქ დავწერ პატარა და ლამაზ სკრიპტს რომელიც მომეწონა ძალიან სასწავლად შესანიშნავი მაგალითია.


CODE

from collections import deque

def search(lines, pattern, hist=5):
   prevlines = deque(maxlen=hist)
   for line in lines:
       if pattern in line:
           yield pattern, prevlines
       prevlines.append(line)

if __name__ == '__main__':
   with open('test') as file:
       for pattern, line in search(file, 'python', 5):
           for lines in line:
               print lines, 'previous lines'
       print pattern, '\n','end of match', '\n'
       print '-'*20


მარტივი კოდია.
ხსნი ტექსტურ ფაილს, გადასცემ ფუნცქციას რომელიც პარსავს თითოეული ხაზს, თუ რომელიმე ხაზში ხვდება 'python' მაჩავს if-ით და yield-ით აბრუნებს პატერნს 'python' და ასევე წინა ხუთ ხაზს. deque maxlen-ის საშუალებით , რომელიც არის სპეციალიზირებული დატატიპი <type 'collections.deque'>.
ის ანაცვლებს არსებულ dict, list, tuple, set კონტეინერებს. შეგვეძლო გამოგვეყენებინა list და push და pop-ით შეგვეზღუდა მისი ზომა 5 მდე მაგრამ deque ბევრად სწრაფად აკეთებს ამას იოლად და მოხერხებულად. როდესაც გვიჭრდება რაიმეს მოძებნა yield გენერატორი გამოყენება გვიმარტივებს ამოცნას რადგან არ გვიწევს მიღებული რეზულტატში რამის ძებნა პირდაპირ yield-ით მოგვაქვს რაც გჭირდება. ეს კოდი ჩემი აზრით გვეხმარება ბევრი რამის გააზრებაში და სხვადასხვა ფუნქციების ეფექტურად გამოყენებაში რეალური პრობლემების გადასაჭრელად.
nv86
Super Member


****
ჯგუფი: Registered
წერილები: 353
წევრი No.: 93126
რეგისტრ.: 7-June 09

გამოგზავნილია: 2 Nov 2016, 14:33  #49176912      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
შემდეგი კოდი გათვლილია მესამე ვერსიის პითონზე.
ცენტოესზე პითონის დაყენება: https://devops.profitbricks.com/tutorials/i...-3-in-centos-7/

რამდენიმე სასარგებლო დატატიპი და ალგორითმი collection-იდან გარდა სტანდარტული list, dict, set-ისა რომელიც გვეხმარება. search, sort, order, filter-ში.

მიმდევრობის ცვალდში გატენვა. როდესაც არ ვიცი მიმდევრობის ზომა.
CODE

a,  *b,  c  = [i for i in range(1,10)]
print (a)
print (b)
print (c)


ყველაფერი რაც ვარსკვლავურ ცვლადშია იქნება list. შიგ რომ არაფერი იყოს None მაინც list-ია.

აქ გამოვიყენეთ list comprehension რომელიც ასევე ძალიან კარგია მიმდევრობისგან ცვალდების სწრაფად შესაქმნელად.
http://python-3-patterns-idioms-test.readt...rehensions.html

შევიძლია გამოვიყენოთ throwaway ცვლადი. დროებით ცვლადი რომელიც რომელშიც ვტენით არასაჭირო ინფორმაციას და ვაგდებთ.

მაგალითად. გვაქვს ტელეფონის ნომრების სია და გვაინტერესებს მხოლოდ ბოლო ნომერი.
CODE

phone_numbers = [ 233, 4442, 2444, 23655,9999]
*_, last_number = phone_numbers
print (last_number)


კიდევ ერთი მაგალითი ფუნქციის გამოყენებით.

CODE

nums = [ 233, 4442, 2444, 23655,9999]

def avg_number(data):
    first, *middle, last = data
    return sum(middle)/len(middle)
   
   
print (avg_number(nums))


ვარსკვიან ცვალდს შევიცლია შევუთავსოთ სტრინ გადამამუშავებელ ხელსაწყოებს. მაგალითად split.
CODE

line = "libstoragemgmt:x:995:992:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin"
uname, *fields, homedir, shell = line.split(':')

print (uname, shell)
print (fields)


ასევე შევიძლია გადავუაროთ დატაგულ tupple -ს.
CODE

records = [
                  ('foo', 1,2),
                  ('bar', 'hello'),
                  ('foo', 3,4)
]

def do_foo(x,y):
print ('foo', x,y)

def do_bar(s):
print ('bar',s)

for tag, *args in records:
if tag == 'foo':
 print (do_foo(*args))
elif tag == 'bar':
  print (do_bar(*args))


კიდევ ერთი სასარგებლო წევრი collection-და deque რომელიც ზემოთ მიწერია.

CODE

from collections import deque



def search(data, match, history=None):
   que = deque(maxlen=history)
   for lines in data:
       if match in lines:
           yield match, que
       que.append(lines)

with open('test') as file:
   for match, prevlines in search(file, 'python', history=2):
       for matches in prevlines:
           print matches
       print match

ეს 2.7 პითონზეა. უბერავს ჩემი ეკლიპსი. ეკიდება. პარამეტრები არ იცვლება. დამტანჯა. pycharm-იც იგივეა ჩექბოქსები არ მუშაობს, არც დროპდაუნლისტები.

ონლაინ ინტერპერეტს ვიყენებ https://repl.it/languages/python3
და თან ადგილობრივ ეკლიპს როცა რაიმე ფაილი გახსნა მჭრიდება.

შემდეგი ნაწილს ალბათ lambda, filter, map, reduce დავუთმობ.


* * *
რთულია ისე სწავლა თუ არ გაქვს მიზანი დავალება ან რაიმე ამოცანის ამოხსნა არ გაქვს დასახული რადგან გავიწყდება. უმნიშვნელო რაც არის. ამიტომ აქ დავწერ ხელით ყველა კოდს და თან ახსნასაც გავუკეთებ თითოეულ ნაწილს პროგრამის. ასე ჩემს თავსაც ვეხმარები და იქნებ სხვასაც გამოადგეს ვინც ამ წინგის შესავლის პროცესშია და თან მეზარება ხოლმე მაგალითების გაკეთება რაც ყველაზე მნიშვნელოვანია. სანამ 10000-ჯერ არ დაწერ თუნდაც უმნიშვნელო სულელურ პროგრამებს მანამდე ვერ ისწავლი აზროვნებას პროგრამისტულად. თან code completion-ის გარეშე მივეჩვევი პროგრამის უშეცდომოდ წერას. რუსული და ინგლისური ეგრევისწავლე biggrin.gif

CODE


import heapq

class PriorityQue:
   def __init__(self):
       self._index = 0
       self._queue = []

   def push(self, item, priority):
       heapq.heappush(self._queue, (-priority, item))
       self._index += 1
   def pop(self):
       return heapq.heappop(self._queue)

class Item:
   def __init__(self, name):
       self.name = name
   def __repr__(self):
       return 'Item({!r})'.format(self.name)

x = PriorityQue()
x.push(Item('bar'), 2)
x.push(Item('foo'), 54)
x.push(Item('notbar'), 4)
x.push(Item('bar'), 2)

print x.pop()
print x.pop()[-1]


ამ კოდში თავიდან მეორე ქვედა კლასმა __repr__ მეთოდის არსი ზოგადად ახლაც არ მესმის კარგად.
პა დეფოლტ აბრუნებს ობიექტის მისამართს მეხსიერებაში. თუ კლასში ვაუწერთ ხელით მეთოდს და თან ფორმატინგსაც გავუკეთებთ. სხვა ჩაინიკური ახსნა რთულია.
ამ შემთხვევაში ეს კლასი დავჭირდა მე მგონი იმისთვის რომ მერე მეორე კლასს გადავცემ tuple-ს მასში კი არ შეიძლება ჰეშებლე ობიექტების ქონა. რანდგან უცვლელია. immutable.

პირველ ფუნქციას ვაძლევთ tuple-ს (ობიექტი, პრიორიტეტ) კლასის კონსტრუქტორში __init__ში.
ვაკეთებთ ცარიელ list-ს და ინდექსს 0-ით

შემდეგი ფუნქცია heapq.heappop ამატებს ლისტში პრიორიტეტს უარყოფით ნიშნით მინუსით ანუ და თავად ობიექტს. უარყოფითი ნიშნით იმიტომ რომ heapq ქმნის სიას რომელიც დალაგებულია ზრდის მიხედვით. ჩვენ კი გვინდა მაღალი პრიორეტიანი ოქბიეტები თავში მოხვდეს ამიტომ ვუცვლით ნიშანს მინუსით. ყოველ დამატებულ ობიექტზე ვზრდით ინდექს 1-ით რადგან სიაში მივიღოთ ასეთი სტრუქტურა მონაცემების.
priority, index, item
[(11, 2, Item('foo')),
(10, 1, Item('bar')),
(9, 0, Item('bar')) ]


* * *
პირიქით tuple არის ჰეშებლი
https://blog.m157q.tw/posts/2013/06/05/pyth...le-vs-hashable/

nv86
Super Member


****
ჯგუფი: Registered
წერილები: 353
წევრი No.: 93126
რეგისტრ.: 7-June 09

გამოგზავნილია: 4 Nov 2016, 19:40  #49194120      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
ლექსიკონში და სეტში გასაღები ყოველთვის არეულადაა. ლისტი ინახავს თანმიმდევრობას. ტუპლიც.
ლექსიკონში ინახება ხოლმე key, value ინფორმაცია. key არის უცვლელი. უნდა იყოს ან string, number, tuple. აი მნიშვნელობაში შეგვიცლია ნებისმიერი კონტერიერი გამოვიყენოთ.
თუ თანმიმდევრობას აქვს მნიშვნელობა ვიყენებთ list-ს თუ არა set-ს.

თუ გვინდა ლექსნიკონის სწრაფი ინიციალიზაცია. ვთქვათ მოგვინდა ახალი ელემენტის დამატება ლექსიკონში. შესაბამისი გასაღები კი არ გვაქვს. ვიყენებთ defaultdict ან setdefault-ს. რომელი ჯობა მაგასაც დავწერ. defaultdict 60%-ით უფრო სწრაფია და კოდიც უფრო მოკლე და გასაგები გამოდის. მაგრამ. მის შემთხვევაში ის ყოველთვის შექმნის არარსებულ გასაღებს მაშინაც კი როდესაც არ გაქვს ის აი მაგალითად.
CODE
from collections import defaultdict
d = defaultdict(list)  
s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]

for key, value in s:
   d[key].append(value)
   
   
print (d)


დასთვლელად შეგვიძლია defaultdict(int) გამოვიყენოთ.
CODE

c = defaultdict(int)

m = 'missisipi'

for item in m:
c[item] += 1

print (c)



აქ list (default_factory) ქმნის ცარიელ სიას როდესაც ლექსიკონში ინიციალიზაცია ხდება ჯერ არასებული key-ით. იმპლემენტაცია რა და როგორ მუშაობს ჯერ ვერ ვუღრმავდები ეგეთ დონზე და არც მჭრიდება მაგრამ მაინც წავიკითხე.
https://docs.python.org/3/library/collectio...ons.defaultdict

იგივე შეიძლება გაკეთდეს setdefault-ით.

CODE

s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]

d = {}

for k, v in s:
d.setdefault(k, []).append(v)

print (d)


ერთი განსხვავება defaultdict-ისგან ის აქვს რომ ნელია ყოველ გამოძახება ახალ ინსტანსს ქმნის წინა მნივნელობით. მაგრამ defaultdict ყოველთვის შემნის მნიშვნელობას არარსებული გასაღებით რომ გამოვიძახოთ მაინც. რაც ზოგჯერ სასურველი არაა. მაგალითად გვინდა ექსეფშენი ამოაგდოს keyError


ზოგჯერ გვინდა ლექსიკონში არსებული გასაღები დალაგებული იყოს მათი შექმნის მიხედვით. OrderedDict იზამს ამას იმის ხარჯზე რომ ლექსიკონის ზომა ორჯერ გაიზრდება. ამიტომ თუ ვაპირებთ 1000000 ხაზი გავუშვათ საკმაოდ გაზრდის მეხსიერების მოხმარებას რადდგან ის ინახავს double linked list-ში თითოეული გასაღების თანმიმდევრობას.

CODE

from collections import OrderedDict

d = OrderedDict()

d['key'] = 'value'
d['second'] = 2
d['third'] = 'third'

for key in d:
   print (key, d[key])



min ფუნცქია და მისი key პარამეტრი და zip რომელიც იღებს 2 მიმდევრობას და აბრუნებს ტუპლ წყვილებს. ზიპავს.

CODE

prices = {
'ACME': 45.23,
'AAPL': 612.78,
'IBM': 205.55,
'HPQ': 37.20,
'FB': 10.75
}

minprice = min(zip(prices.values(), prices.keys()))
print (minprice)


შეგვიძლია ასეც ვქნათ

CODE

prices = {
'ACME': 45.23,
'AAPL': 612.78,
'IBM': 205.55,
'HPQ': 37.20,
'FB': 10.75
}

minprice = prices[min(prices, key=lambda x: prices[x])]


ხო კიდევ ერთერთი მნიშვნელოვანი და ნაკლებად ცნობილი ფიჩერი keys() მეთოდისა გახლავთ ის რომ მასე შეიძლება ნებისმიერი set ოპერაციის წარმოება. union, differences, intersections. ასე რომ მიღებული key-view ობიექტიდან თავისუფლად შეგვიზლია set-ში გადაყვანის გარეშე გავაკეთოთ ოპერაციები.
ანალოგიურად items-view ობიექტიც.

აი value-view უკვეს ეს აღარ შეუძლია. რადგან ჰეშებლი არ არის ანუ უნიკალური.

კერძოდ set-ის სასარგებლო ოპერაციებში იგულისხმება მაგალითად ეს.

somedict.keys() - otherdict.keys() #აბრუნებს იმ გასაღებს რომელიც მეორეში არ არის...
somedict.keys() & otherdict.keys() #აბრუნებს გასაღებს რომელიც ორივეშია.

ხო უმნიშვნელოვანესი ფიჩა. dictionary comprehension

სინტაქსი მარტივია
d = {key: value for (key, value) in iterable}

და შეგვიძლია set ოპერაცია შევუთავსოთ უფრო სასრგებლო რომ გახდეს.

d = { key: somedict[key] for key in somedict.keys() - {'z', 'w'}}
* * *
ჰეშებლი ნიშნავს უბრალოდ იმას რომ ობიექტს გააჩნია უნიკალური ჰეში რომელიც არ იცვლება ამ ობიექტის არსებობის მანძილზე და მათი ჰეშ მნიშვნელობა იგივე მათი id-ა.
ყველა id(object) აბრუნებს მის უნიკალურ id-ს ანუ იგივე ჰეშ მნიშვნელობას. set-ის წევრები არიან ჰეშებლი მაგრამ სეტის მუტაცია ანუ შეცვლა შეიძლება ამიტომ ისევე როგორც ლისტი და ლექსიკონი ის ვერ იქნება ჰეშებლი.
https://docs.python.org/2/library/sets.html

ეს კოდი ძალიან მაბნევს მაგრამ მისი სრულად გაგება ძალიან სასარგებლო ყოფილა თურმე.
თუ გაანალიზებთ მლთიალანდ აბსოლუტურად ყველა მოქმედებას გაიგებთ ძალიან კარგი იქნება.
ნაწილებად დაყავით და თითოეული მოქმედება შეისწავლეთ. ჩაანალიზება ჭირდება ამ კოდს. მოდით ერთად ჩავაანალიზოთ.
CODE

a = [ {'x':1, 'y':2}, {'x':1, 'y':3}, {'x':1, 'y':2}, {'x':2, 'y':4}]

def dedupe(data, key=None):
   uniq = set()
   for item in data:
       val = item if key is None else key(item)
       if val not in uniq:
           yield item
           uniq.add(val)

print (list(dedupe(a, key = lambda d: (d['x'], d['y']))))


აქ ლამბდა lambda d: (d['x'], d['y']) იმიტომ დაგვჭირდა რომ ის აბრუნებს tuples-ს რადგან პარენტეზში ზის (). ტუპლი კი ჰეშებლია. რადგან თითოეული ელემენტი გადაგვყავს ჰეშებლ ფორმატში შემდეგ სეტში თავისუფლად მოხდება 2 ერთნაირი ელემენტის გაშიფრვა. ამისთვის გვინდა ზუსტად ლამბდა.
ის აბრუნებს კონკრეტულად ლექსიქონიდან ველუებს ანუ (1,3) (2,4) (1,2) იმავე თანმიმდევრობით რაც ლექსიკონშია. ამიტომ გვაქვს თანმიმდევრობაც დაცული და ერთნაირი ელემენტებიც იფილტრება.

ვიცი ძალიან მოსაწყენია და შრომატევადი მაგრამ აბსოლუტურად საჭიროა ყველაფერის ასე ანალუარდ და ანალიზურად ჩავწვდეთ რათა ვისწავლო ელემენტალური რომ რთულზე არ გაგვიჭირდეს ძაან. რთული კი წინ გველის.


This post has been edited by nv86 on 4 Nov 2016, 21:05
mikey:)
Super Member


****
ჯგუფი: Registered
წერილები: 858
წევრი No.: 125482
რეგისტრ.: 2-January 11

გამოგზავნილია: 6 Nov 2016, 20:59  #49208199      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
რატო არ უყვართ პითონი საქართველოში ?
nv86
Super Member


****
ჯგუფი: Registered
წერილები: 353
წევრი No.: 93126
რეგისტრ.: 7-June 09

გამოგზავნილია: 6 Nov 2016, 21:11  #49208275      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
mikey:)
QUOTE
რატო არ უყვართ პითონი საქართველოში ?

საქართველოში რა უყვართ არ ვიცი მაგრამ მე პირადად ძალიან შემიყვარდა პითონი.
ნუ პირველ რიგში პითონი იმიტომაა პოპულარული რო ითვლება რომ ადვილი სასწავლია 1 ენისთვის.
ამიტომ სკოლებში და უნებში იყენებენ მას.

მე სადაც ვმუშაობდი. მანდ უყარდათ. სახლემწიფო სტურქტურებში ბევრი სოფთის ფრონტი და ალბათ არამარტო ფრონტი პითონზე იყო დაწერილი. მასშტაბი იყო და არის ძალიან დიდი. წარმოუდგენლად დიდი.

არის ხალხი ვინც მუშაობს პითონზე აი ბოლოს აზრში ვიყავი გასაუბრებაზე. ძაან მინდოდა მანდ მუშაობის დაწყება. მაგრამ აზრზე არ ვიყავი 1 კვირის დაწყებული მქონდა სწავლა. მითხრეს რო ცოტა გიან დამიძახებდნენ მაგრამ ამაოდ.

ეს მე რაც ვნახე მხოლოდ. სერიოზული ხალხი იყენებს ფითონს. სერიოზულ დონეზე.

აი კომპანიები რომლებიც იყენებენ. ამ ჩამონათვას აკლია youtube twitter და ბერი რამ კიდე
https://www.safaribooksonline.com/library/v...22/ch01s04.html

https://en.wikipedia.org/wiki/TensorFlow

ეს და კიდევ ბევრი სერიოზული პროექტი ნაწილობრივ პითონზეა
პირველი რასთანაც მქონდა შეხება და ძალიან დიდი შტაბეჭდილება მოახდინა იყოს gentoo portage რომელიც ასევე პითონზეა.
პ.ს ადრე რო დამეწყო ცოტა ეხლა ძალიან მაღალ ლეველზე ვიქნებოდი. მაგრამ ასე მოხდა და საჭიროც ესე იყო ალბათ.

This post has been edited by nv86 on 6 Nov 2016, 21:18
mikey:)
Super Member


****
ჯგუფი: Registered
წერილები: 858
წევრი No.: 125482
რეგისტრ.: 2-January 11

გამოგზავნილია: 6 Nov 2016, 21:32  #49208444      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
nv86
კიბატონო, ძაან "გემრიელი" ენაა პითონი, უბრალოდ ჩვენთან ვაკანსიების რაოდენობაა ძაან მცირე, მაგიტომაც ხალხს ურჩევნია ჯავა ან c# ისწავლოს
nv86
Super Member


****
ჯგუფი: Registered
წერილები: 353
წევრი No.: 93126
რეგისტრ.: 7-June 09

გამოგზავნილია: 6 Nov 2016, 21:36  #49208471      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
mikey:)
კი ეგრეა. ბევრისგან გამიგია რო C შარპით იწყებენ. მაგალითად არავინ ეტყვის დამწყებს რო წადი ოჯექტივ სი ისწავლე ან გოუ ლენგი ან რუბი.
ჯავა ცუდი კიარაა პროსტა იმენა შტამპოვკაა. მაგაში "იშოვება დიდი ფული" biggrin.gif კუთხით უდგებიან.
Turf
RM


*******
ჯგუფი: Members
წერილები: 10311
წევრი No.: 173174
რეგისტრ.: 11-September 13

გამოგზავნილია: 8 Nov 2016, 17:33  #49222405      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
3 როგორ მიიღეს ვერ გავიგე sad.gif

Qვევითა მგონი გავიგე




მიმაგრებული სურათი (გადიდებისთვის დაუწკაპუნეთ სურათზე)
wp_ss_20161108_0001.png


--------------------
A POR LA DUODÉCIMA!
nv86
Super Member


****
ჯგუფი: Registered
წერილები: 353
წევრი No.: 93126
რეგისტრ.: 7-June 09

გამოგზავნილია: 8 Nov 2016, 18:30  #49222786      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
3 ჯერ 6 არის თვრამეტი

პითონში თუ მიუთითე // გაყოფის ნიშანი მაშინ გაყოფს უნაშთოდ. რასაც floor division ქვია.
მოდულო ანუ % გაყოფს 22-ს 7-ზე და მარტო ნაშთს დაგიბრუნებს. 1-ს.

ეს მესამე ვერსია პითონზე და 2.X როგორც მახსოვს ასეა.

20 გაყოფილი 6-ზე ანუ წილადის ნიშანი თუ არ დაუსვი ყოფს ნაშთის გარეშე და დაგიბრუნებს 3-ს.

ხოლო თუ კი რომელიმე რიცხვს დაუწერ წილადის ნიშანს 22.0 / 7 მიიღებ 3.142857142857143 ანუ ჩვეულებრივ გაყოფს თავის წილადებით და ყველაფრით.
RayV
Crazy Member


*****
ჯგუფი: Users Awaiting Email Confirmatio
წერილები: 2067
წევრი No.: 205113
რეგისტრ.: 15-July 15

გამოგზავნილია: 8 Nov 2016, 18:30  #49222789      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
Turf
პირველი ბეჭდავს იმ მთელ რიცხვს რამდენჯერაც 6 მოთავსდება 20-ში
მეორე კიდე ნაშთს გეუბნება


--------------------
FC Bayern München
Liverpool F.C.
Cleveland Cavaliers

nv86
Super Member


****
ჯგუფი: Registered
წერილები: 353
წევრი No.: 93126
რეგისტრ.: 7-June 09

გამოგზავნილია: 8 Nov 2016, 18:48  #49222922      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
RayV
Turf
დიახ. კარგია რო დასვი ეს შეკითხვა. რადგან ეგრევე ფუნცქიცების და კლასების წერით დავიწყე თუმცა არ გამოვტოვებ არცერთ ასპექტს ამ თემაში და დაწყებული სტრინებით, გაყოფებიბით დამთავრებული, მეტაპროგრამინგინთ პოლიმორფიზმით, multiple inharitance ყველაფერს მოვედები აბსოლუტურად.

არ შეგეშინდეთ არავის თუ ვერაფერს გებულობთ თავიდან. ყველაფერი თავის ადგილზე დალაგდება. დრო უნდა უბრალოდ, წაკითხვა გააზრება, გაგულვა და ცოტა შრომა და ნებისყოფა.
Turf
RM


*******
ჯგუფი: Members
წერილები: 10311
წევრი No.: 173174
რეგისტრ.: 11-September 13

გამოგზავნილია: 9 Nov 2016, 18:12  #49231230      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
Eგ გავიგე.

Eსეც ამიხსენით რა



................

მიმაგრებული სურათი (გადიდებისთვის დაუწკაპუნეთ სურათზე)
wp_ss_20161109_0002.png
Klopia
ji


****
ჯგუფი: Registered
წერილები: 611
წევრი No.: 104160
რეგისტრ.: 5-November 09

გამოგზავნილია: 9 Nov 2016, 18:32  #49231352      · პროფილი · პირადი მიმოწერა · ჩატი · ელფოსტა
პითონებო ))) ერთი შეკითხვა მაქვს ასეთი:

შესაძლებელია თუარა რომ დავკრიპტო კოდი ანუ ტექსტი კოდში და გაშვების წინ პროგრამამ ჯერ ენკრიპტი გაუკეთოს და შემდეგ გაუშვას ხაზები (ცოტა გაუგებრად ვწერ ვიცი აი მაგალითი:

a = "testi"
text = 'print (a)'
key = 3

def getTranslatedMessage(mode, text, key):
return translated

ნუ კოდის შუალედები გამოვტოვე მარა ჩავთვალოთ რომ დეკრიპტი გააკეთა "text"ში არსებული სიმბოლოების და მიიღო წინადადება print (a) ანუ print'testi' ეხლა მინდა რომ თვითონ .### ფაილმა დაბეჭდოს ეს "ტესტი" სიტყვა და აღიქვას ბრძანებად და არა ტექსტად. ანუ პრინციპს მიხვდით რაც მინდა რომ ვქნა ? : ((


და საბოლოოდ ჩემი კოდი იქნებოდა ესეთი როჟა

a = "testi"
text = 'xy/asdd/dsgi (g)'
key = 3

def getTranslatedMessage(mode, text, key):
return translated

და ენკრიპტის მერე ტექსტში რაც წერია იქიდან მიიღებდა ბრძანებას პრინტ ა და დაბეჭდავდა ას. ესეთ რამე შესაძლებელია თუ თყუილად მივყევები ამ დინებას ? biggrin.gif

თუ მეტყვით რომ შეუძლებელია მაშნ ბარემ მეორე კითხვა: თუ ვასწავლე ჩემივე პროგრამას როგორ გააკეთოს კომპილირება რაღაც ბძანების და შემდეგ შექმნას ეგზექიუთებლ ფაილი მაშინ ხომ იმუშავებს ? biggrin.gif ვიცი რომ კოსმოსში გავედი ეხლა მარა თეორიულად ხომ შესაძლებელია ?
0 წევრი ათვალიერებს ამ თემას (0 სტუმარი და 0 უჩინარი წევრი)
0 წევრი:
Topic Options Pages: (4) [1] 2 3 ... ბოლო » გამოხმაურება · ახალი თემა · ახალი გამოკითხვა

 



ფორუმის სერვერების განთავსებას და ინტერნეტთან კავშირს უზრუნველყოფს: CLOUD9
[ Script Execution time: 1.0541 ]   [ 13 queries used ]   [ GZIP Disabled ]