Изучение Python самым быстрым, простым и эффективным способом

Я исхожу из C #, JavaScript, фона Node. А недавно у меня появилась возможность поработать над существующим проектом машинного обучения, написанным на Python, и с этого дня началось мое путешествие по изучению Python. Задача состояла в том, чтобы изучить концепции машинного обучения на новом языке. Учебник по Python для начинающих 2019 от Моша действительно помог мне понять Python и ML за 6 часов полного курса. Кроме того, я нашел пару хороших ссылок о моем путешествии по Python и ML, и вы можете перемещаться, как показано ниже:

Итак, потратив 2-3 дня, я вроде бы освоился с Python и ML, но когда дело дошло до написания кода, у меня возникли трудности из-за отсутствия практического опыта в Python. Итак, мой подход заключался в том, чтобы изучить язык, тщательно изучив основы и ключевые концепции языка, прежде чем глубоко погрузиться в популярные библиотеки, такие как numpy, pandas, sklearn, scipy, matplotlib и т. д.

Этот пост посвящается всем новичкам в Python и ML. Я создал репозиторий git для кода Python. Этот репозиторий проведет вас через пошаговый подход к изучению этого языка. Итак, просмотрите коды файл за файлом и попрактикуйтесь в написании, выполнении и анализе результата. Имя файла и его порядок важны, и мы рекомендуем вам следовать им. В большинстве мест я вставлял вывод рядом с выражением вместе с некоторыми ключевыми примечаниями/концепциями, где это возможно.

Код можно скачать с моего python-практика git-репозиторий. Я все еще работаю над этим репозиторием и буду обновлять его время от времени. Так что следите за обновлениями, если вам интересно.

Ниже приведены 2 примера того, что я имею в виду выше по порядку (первые 2 символа имени файла) и встроенные комментарии —

01_basics.py

# How to print
x=10
y=20
print(x+y) # 30

# You can't do like this. Below will return TypeError: must be str, not int
# print("Number is : " + 30)

# Change number to str as below.
print("Number is: " + str(30)) # Number is: 30

# By default its always printed in new line.
x=10
y=20
print(x+y) # 30
print(x*y) # 200

# In case you need to print in same line then use "end" as below
x=10
y=20
print(x+y, end=":")
print(x*y)
# 30:200

# Read input from User. Note the entered value is of type str. So ensure to cast it to int if you need to do some mathematical operation.
x = input("Enter number: ")
print(type(x)) # <class 'str'>
print(int(x)+ 100) # 110

# Handle User Input
try :
  x = int(input("Enter number 1: ")) # enter 10
except ValueError:
  x = 0
try :
  y = int(input("Enter number 2: ")) # enter 20
except ValueError:
  y = 0
print("sum: " + str(x+y)) # sum: 30

# A simple function
def sum(x,y):
    return x+y
print(sum(5,2)) # 7

# Getting type of a value
f = 101;
print(type(f)) # <class 'int'>

# Global vs.local variables in functions
def someFunction():
  global f
  print(f)
  f = "changing global variable"
someFunction()
print(f)

# Don’t use global keyword unless you know what you are doing. In case you need to retun multiple values return tuple as below -
# Recommended method
def profile():
  name = "Danny"
  age = 30
  return name, age
profile_name, profile_age = profile()
print(profile_name) # Danny
print(profile_age) # 30

# Not recommended method
def profile():
  global name, age
  name = "Danny"
  age = 30
profile()
print(name) # Danny
print(age) # 30

# use while loop to force user to enter correct number.
def ReadNumber():
  loopCondition = True
  while loopCondition:
    try:
      num = int(input("Enter number : "))
      loopCondition = False
    except ValueError:
      loopCondition = True
  return num
x = ReadNumber()
y = ReadNumber()
print(x+y)

03_dist.py

# dict example
a = {'apple': 'fruit', 'beetroot': 'vegetable', 'cake': 'dessert'}
a['doughnut'] = 'snack'
print(a)

dict1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
# Put all keys of `dict1` in a list and returns the list
k = dict1.keys()
print(type(k))
v = dict1.values()
print(v)

# Best way to understand what is available with the type is use 'dir'.
print(dir(dict1))

# ['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__',
#  '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__',
#  '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__',
#  '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem',
#  'setdefault', 'update', 'values']

# Let's use few
dict1 = {'a': 100, 'b': 200, 'c': 300, 'd': 400}
print(str(dict1)) # {'a': 100, 'b': 200, 'c': 300, 'd': 400}
print(len(dict1)) # 4
for x in iter(dict1):
    print(x, end = ":") # a:b:c:d:
print("\n")
p1 = dict1.popitem()
print(len(dict1)) # 3
print(p1) # ('d', 400)
print(type(p1)) # <class 'tuple'>

dict2 = dict1.copy()
p1 = dict1.popitem()
print(len(dict1)) # 2
print(len(dict2)) # 3

Отказ от ответственности: поскольку мы находимся на этапе обучения, совершенно нормально добавить некоторые примечания о том, что делает код. Но в вашем реальном проекте никогда не пытайтесь добавлять комментарии к тому, что делает код, вместо этого вы должны понять, почему вы пишете блок кода.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *