Отделете три дни за практика и си намерете работа като софтуерен инженер точно като мен!
Преди да проведа тестовото интервю за кодиране, прекарах два дни в преглед на концепциите на 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)