Отделете три дни за практика и си намерете работа като софтуерен инженер точно като мен!

Преди да проведа тестовото интервю за кодиране, прекарах два дни в преглед на концепциите на Python и след това използвах цял ден, за да упражнявам и укрепвам уменията си за кодиране чрез Codewars. (Друга популярна платформа за обучение е Leetcode)

Накрая преминах теста за кодиране и преминах към следващия етап от интервюто, така че реших да споделя полезните бележки, които записах по време на подготовката.

Използвам Jupytor Notebook като мой редактор на кодове и ето някои преки пътища, които мога да използвам, когато практикувам:

Ctrl-Enter: Изпълнение на тази клетка
Tab и Shift-Tab: Отстъп
Ctrl-/: Коментиране или премахване на коментар
a: Вмъкване на нова клетка отгоре
b: Вмъкване на нова клетка отдолу

Ето бележките, включително 17 задачи и тяхното решение

От 0 до 100, посочете нечетно число

#range(start, stop)
x = [a for a in range(0,101) if a%2!= 0]
print(x)

Резултат: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]

Разменете две стойности на променливи

a = 3
b = 4
a,b = b, a
print(a,b)

Резултат: 4,3

Премахнете дублиращите се номера в списъка

#set() will turn list[] into set{}, list() will turn set{} into list[]
lis = [1, 2, 3, 4, 4, 6, 7, 3, 4, 5, 2, 7]
lis = set(lis)
print(lis)
#if you want the result is a list
result1 = [x for x in lis]
print(result1)

Резултат:
{1, 2, 3, 4, 5, 6, 7}
[1, 2, 3, 4, 5, 6, 7]

Избройте всички четни числа, които са в четния индекс в списъка

#even number: 0,2,4,6, ...
#even index: index 0,2,4,6, ...
list = [ 1 , 3 , 5 , 8 , 10 , 13 , 18 , 36 , 78 ]
print(list[::2]) #every 2nd element that start from index 0
[x for x in list[::2] if x%2 ==0]

Резултат:
[1, 5, 10, 18, 78]
Аут [10, 18, 78]

Вземете втория знак след десетичната запетая

num = "%.02f" %1.3335
print(num)

Резултат: 1,33

Разлика между сортиране и сортиране

#sort will do on the original list
#sorted need another variable store the value
list = [0,-1,3,-10,5,9]
list.sort(reverse=True)
print("Sort True:",list)
list.sort(reverse=False)
print("Sort False:",list)
list = [0,-1,3,-10,5,9]
res = sorted(list,reverse=False)
print("Original",list,"Sorted",res)

Резултат:
Сортиране по вярно: [9, 5, 3, 0, -1, -10]
Сортиране по грешно: [-10, -1, 0, 3, 5, 9]< br /> Оригинал [0, -1, 3, -10, 5, 9] Сортиран [-10, -1, 0, 3, 5, 9]

Създайте списък с елементи

#create a list with empty value
list1 = [""]*5
print(list1)
#create a list with value 0
list2 = [0]*5
print(list2)

Резултат:
[‘’, ‘’, ‘’, ‘’, ‘’]
[0, 0, 0, 0, 0]

Създайте елемент от списък в списък и добавете стойности в списъка

list = [ [ ] ] * 5
print(list)
#add new value in the list item in the list
list[0].append('10')
print(list)
#add new value behind in the list
list.append('20')
print(list)

Резултат:
[[], [], [], [], []]
[['10'], ['10'], ['10'], [' 10'], ['10']]
[['10'], ['10'], ['10'], ['10'], ['10'], '20']

Комбинирайте списък с две числа и го сортирайте

list1=[1,5,7,9]
list2=[2,2,6,8]
#two ways to combine them as [1,5,7,9,2,2,6,8]
#1 directly add them
listadd = list1+list2
listadd.sort(reverse=False)
print("listadd:",listadd)
#2 use extend function
list1.extend(list2) 
list1.sort(reverse=False)
print("list1:",list1)
#wrong way, it will become [1,5,7,9,[2,2,6,8]]
list1.append(list2)

Резултат:
listadd: [1, 2, 2, 5, 6, 7, 8, 9]
list1: [1, 2, 2, 5, 6, 7, 8, 9 ]

Разширете списъка

numlist = [[1,2],[3,4],[5,6]]
expandli = [j for i in numlist for j in i]
print(expandli)

Резултат: [1, 2, 3, 4, 5, 6]

Функция Del и Pop на речника

# Use del if you want to delete an item from a dictionary
dic = {"name":"Mark","age":25}
del dic["name"]
print("del", dic)
# Use d.pop if you want to capture the removed item
dic = {"name":"Mark","age":25}
catched = dic.pop("name")
print("pop", dic)
print(catched)

# Use update if you want to merge dictionary
dic2 = {"name":"Joey"}
dic.update(dic2)
print(dic)

Резултат:
del {'age': 25}
pop {'age': 25}
Марк
{'age': 25, 'name': ' Джоуи'}

Списък със стойности в речника, сортирани по възраст

profile = [{"name":"Amber", "age":55},{"name":"Bob", "age":7},{"name":"Charlie", "age":20}]
result = sorted(profile,key=lambda x:x['age'],reverse=False)
print(result)

Резултат: [{'name': 'Боб', 'възраст': 7}, {'име': 'Чарли', 'възраст': 20}, {'име': 'Амбър', 'възраст' : 55}]

Три начина за генериране на произволно число между 0–100

import random
import numpy as np
res1 = random.randint(1,100)
res2 = random.random() *100
res3 = random.choice(range(0,101))
print(res1,res2,res3)
#Create five random numbers
ran5 = np.random.randn(5)
print(ran5)

Резултат (ще бъде различен всеки път):
87 70.98514003001367 99
[ 0.8321824 1.23191924 -0.9834073 0.21241006 -0.54296358]

Комбинирайте два низа и напишете главна първата буква във всяка дума

a ='good morning.'
b ='have a good day!'
print((a+b).title())

Резултат: Добро утро. Приятен ден!

Три начина за показване на посочения низ — „ ab & cd“

x = "ab"
y = "cd"
print(x,"&",y)
print('%s & %s' %(x,y))
print('{} & {}'.format(x,y))

Премахнете дублиращите се букви и изведете сортиран низ

Вход: ajldjlajfdljfddd, Изход: adfjl

str = "ajldjlajfdljfddd"
s = set(str) 
#s is {} can't be sorted, need to be []
s = [x for x in s]
#sort function for list
s.sort(reverse=False)
#join function that make list items combine into a string
result = "".join(s)
print(result)

Резултат: adfjl

Низ и пространство

#Remove front and rear spaces
st = "     hello   world ha  ha"
res = st.strip()
print("st:",st)
print("res:",res)
#Two ways remove space between words
#1
res1 = st.replace(" ","")
#2
res2 = st.split(" ") #res2 is a list
res2 = "".join(res2) #change into string
print("res1:",res1)
print("res2:",res2)

Резултат:
st: здравей свят ха ха
res: здравей свят ха ха
res1: helloworldhaha
res2: helloworldhaha

Като цяло, трудността на въпросите за интервю не е висока и тези концепции и умения са само малка част от Python. Но достатъчно, за да възвърнете усещането за кодиране на Python само за три дни.

В същото време организирах всички горепосочени въпроси във файл ipynb (документ на Jupyter Notebook) и го качих в моя Github. Всеки, който се интересува, е добре дошъл да изтегли и използва за практика. https://github.com/alliehsu05/PythonPractice.git

Може също да искате да знаете за

„Наследяване, капсулиране и полиморфизъм: обектно-ориентирано програмиране в Python“

Git Rebase — Мощна команда извежда вашите Git умения на следващото ниво (част II)