Gentler Въведение в програмирането

Илюстрация от Джон Адесаня

Това изписване улавя това, което преподавам, когато получавам коучинг заявки. Няма да прескачам код или настройка от какъвто и да е вид. Ще преподавам концепции.

Ако работите в компания за разработка на софтуер като непрограмист, може да се чудите какво правят програмистите. И всеки ден чувате нови модни думи. Този пост беше написан с вас предвид. Независимо дали сте човек по продажбите, лекар, адвокат, бизнес водещ или счетоводител, ако някога сте имали това предвид да научите как да кодирате, това е доброто място да започнете.

Как се организира тази статия

Това изписване е разделено на 4 части. След като прочетете всяка част, ще намерите тест раздел, който ще ви помогне по-добре да си припомните какво сте прочели. След това ще намерите раздел „напред“ и отговори на теста.

Обърнете внимание, че всяка модна дума, въведена в тази серия, е с получер шрифт, като алгоритъм.

Илюстрация от Джон Адесаня

Част 1 - Какво е програмиране?

Един прост отговор би бил: „Програмирането е актът за инструктиране на компютрите да изпълняват задачи.“ Често се нарича кодиране.

И така, какво е компютърна програма? Компютърната програма е последователност от инструкции, които компютърът изпълнява.

Компютърът в определението по-горе е всяко устройство, което може да обработва код. Това може да са смартфони, банкомати, Raspberry Pi, сървъри, за да назовем само няколко.

Добра аналогия за програмиране

Първо, има модели в нашия ежедневен живот. Вселената действа по някакъв предвидим начин; Например - ден и нощ, сезони, изгрев и залез. Хората преминават през рутинни процедури като ставане сутрин, ходене на училище или на работа. Получаваме инструкции от други хора като нашите началници на работа. Как готвим определени рецепти може да се обясни в кратки стъпки.

Второ, всеки път, когато използваме смарт устройства, на заден план се изпълнява някакъв код. Преместването на показалец на мишката от едната част на екрана на компютъра ви в другата може да ви се стори проста задача, но в действителност толкова много редове код просто течеха. Лесен акт, като въвеждане на букви в Google Документи, води до реда на кода, който се изпълнява на заден план. Всичко е код навсякъде.

Компютърните програми също се наричат ​​код. Не използвайте думата „кодове“ (кодът трябва да се използва като неизчислимо съществително име). Добре, това не е английски клас, нека се върнем към бизнеса.

Естественият език на компютъра

Машините имат своя естествен език, както хората. Компютрите не разбират човешкия език. Естественият език на компютрите е двоичният код - 1 и 0. Те представляват две състояния: включен (1) и изключен (0).

Това е естественият език на електронното оборудване. За нас като хората би било забързано да общуваме с компютъра в двоичен вид.

Въведете езици за програмиране

За да общуваме с машини, които говорят двоично, ние го правим на език, който е по-близък до нашия естествен език. Като английски, френски, суахили или арабски. Езиците за програмиране са близки до нашите естествени езици. Но те са по-структурирани и трябва да бъдат добре усвоени.

Те биха могли да бъдат езици на високо ниво или на ниско ниво. Езиците за програмиране на високо ниво са по-далеч от езика на машината, отколкото езиците с ниско ниво. Това „по-далеч“ обикновено се нарича абстракция, но няма да се впускаме в това в тази поредица. Нека не се разсейваме :)

Компютърът се нуждае от начин да разбере нашия човешки език. За целта ще ни е необходим преводач.

Какво представляват преводачите

Изходният код се отнася до код, написан на определен език за програмиране. Повече от това в част 2.

Преводачите носят отговорност за преобразуването на вашия изходен код в езика на машината. Това е известно също като двоично. Запомнете тези и нули. Можем да отнесем към двоичните файлове като обект код, програмата или обща дума днес: Приложение.

Преводачите могат да бъдат всеки от:

  • преводачи
  • Съставители
  • Хибрид от преводачи и съставители
  • монтажници

преводачи

Някои езици се тълкуват. Преводачът обработва изходния код ред по ред и изпълнява всеки ред в крайната програма или приложение. Това означава, че интерпретираният изходен код започва да се изпълнява, докато не срещне грешка. Тогава преводачът спира да съобщава за такива грешки. Повече от това подробно в част 3.

Python е добър пример за интерпретиран език за програмиране.

Съставители

Компилаторите функционират по различен начин. Те преобразуват изходния код изцяло чрез процес на компилация в двоичен. След това двоичният файл се изпълнява. Ако е имало грешки в изходния код, те се откриват по време на компилация и се маркират. Това прекъсва процеса на компилация и не се генерира двоичен файл.

Преводачите превеждат ред по ред и изпълняват реда, преди да продължат към следващия ред. Компилаторите превеждат всички редове на програма във файл (двоичен) и изпълняват целия файл.

Спомняте ли си определението за компютърна програма? Това е поредица от инструкции, които се изпълняват от компютър.

Изпълняващата програма обикновено се нарича процес. Такива програми използват определени ресурси в компютърната система или смартфон като памет, дисково пространство и файлова система. Също така може да се каже, че изпълняваща програма работи.

Използваме думата „стартирай“, когато изпълняваме компютърна програма. Времето, необходимо за изпълнение на такива програми, е известно като времето на изпълнение на програмата.

Обичайно е да видите програми, посочени като Приложения. Ние също така свързваме програмите с платформите или средата, в която те се изпълняват, или са предназначени за тях. Има уеб приложения, които работят в уеб браузъри, като Google Spreadsheet. Има мобилни приложения, които работят на смартфони като CandyCrush. Има и настолни приложения като настолното приложение Evernote.

Отново интерпретираният изходен код се изпълнява директно от изходния файл. Компилираният изходен код се преобразува в двоичен файл. След това бинарният файл се изпълнява. Компилираният изходен код може да се провали по време на изпълнение дори след успешно компилиране. Вижте част 3.

Хибридни преводачи

Хибридният преводач е комбинация от преводач и съставител. Популярен език за хибридно програмиране е Java. Java първо компилира вашия изходен код в междинен формат, известен като Bytecode.

След това Bytecode се интерпретира и изпълнява от машина за изпълнение, известна също като Виртуална машина. Това дава възможност на хибридните преводачи да изпълняват байтовия код на различни операционни системи.

монтажници

Има и Assembler за превеждане на асемблерен език на ниско ниво в двоичен.

За тази поредица ще се съсредоточим само върху езиците на високо ниво.

Добър начин да погледнете на Преводачите е да ги видите като програма в себе си. Трябва да ги изтеглите или вземете, да ги инсталирате на вашата компютърна система и да разберете основните им функции.

Често задаван въпрос

Ето въпрос, който обикновено задават начинаещите.

Какъв език да науча първо?

Има стотици езици за програмиране. Те са класирани по популярност, общност, дългосрочна подкрепа, педагогика, бизнес употреба. Те също могат да бъдат класирани по технически характеристики, като например дали са функционални, наложителни, статични, силни или слабо въведени.

Някои езици са по-педагогически от други. Някои езици са за образователни цели, а не за бизнес употреба. Има писани езици, например, за да се научат децата да кодират.

Има много мощни езици, които лесно се настройват и учат. Python е един такъв език за програмиране. Обикновено го препоръчвам на начинаещи.

Ако се интересувате да проучите повече за вашите възможности за „първи език“, ето няколко добри изследвания от Филип Гоо.

Когато искате да научите нов език, сега знаете, че ще ви трябва този преводач. Това е програма, която инсталирате и настройвате на вашата компютърна система.

Препоръчвам ви да започнете да научавате как да използвате CLI (интерфейс на командния ред). CLI е терминалът или черупката. Мислете за терминала като алтернатива на GUI (графичен потребителски интерфейс).

В графичните интерфейси взаимодействате с компютъра чрез показалеца на мишката. Вие също така зависи от визуалните предавания на директории и от всичко, което правите.

Но когато използвате CLI, вие взаимодействате с компютъра, като използвате команди, които въвеждате в подкана или мигащ курсор

$ _

В Windows доставеният терминал е командният ред. За потребители на Mac и Linux вече имате терминал Bash по подразбиране. За да получите същото преживяване в Windows, инсталирайте Git Bash ИЛИ PowerShell.

Върви напред

Сега, когато ти беше меко казано какво е програмирането. Трябва да се подготвите за първия си ред :)

За да започнете, ще ви трябва следното:

  • Компютърна система
    В този момент нямате нужда от сложен или много скъп, а ви трябва само компютър, който работи добре.
  • Инсталирайте CLI
    Препоръчвам този курс за крах, за да започнете как да използвате CLI.
  • Инсталирайте текстов редактор
    Ще се върнем на това в част 2
  • Научете език за програмиране
    В тази серия ще научите основните елементи, които съставляват основните знания на повечето езици за програмиране.

викторина

  • Какви основни инструменти са ви необходими, за да стартирате програмирането?
  • Каква команда ще използвате за следното в bash (CLI)?
  • Проверете текущата си директория
  • Промяна в директория с име „кошче“ (кошчето е в текущата ви директория)
  • направете нова директория, наречена „lib“
  • създайте нов файл, наречен „book.py“
  • списък на цялото съдържание в текущата директория

резюме

Преминахме основите на програмирането, с въведение към Преводачите. Думата „изходен код“ вече не ви е странна. Ще разгледаме какъв е изходният код подробно в следващата част.

Отговори на викторината

Какви основни инструменти са ви необходими, за да стартирате програмирането?
Компютър, текстов редактор, обвивка (терминал) и компилатор / интерпретатор

Каква команда ще използвате за следното в bash (CLI)?

  • Проверете текущата си директория: pwd
  • Промяна в директория с име „bin“: cd bin
  • направете нова директория, наречена „lib“: mkdir lib
  • създайте нов файл, наречен „book.py“: докоснете book.py
  • избройте цялото съдържание на текущата директория: ls
От Wikimedia Commons, свободното хранилище на медиите

Част 2 - Източник

Сега, когато разбирате концепцията за програмиране, ще разгледаме изходния код.

Изходният код по същество е файл, подобно на Microsoft (.doc) файл, но малко по-различен. Това е суров текстов файл, написан на много прости редактори, като Windows Notepad. От предишния раздел ще припомните, че се нуждаете от интерпретатори или компилатори, за да преобразувате изходния си код в двоичен. Изходният код трябва да бъде запазен във файл, който се предава като вход на преводача.

В зависимост от езика, който пишете, има обозначени разширения за запазване на файла с изходния код. Разширението на Python е „.py“. Java е „.java“. Php е „.php“, а PERL е „.pl“, за да назовем няколко.

Когато приключите с писането на изходния си код, трябва да го изпълните чрез преводача. Като пример, ето как да стартирате изходния си код на Python, използвайки pythoncommand.

Първи стъпки: Вашата първа програма

  • Следвайте инструкциите тук, за да настроите Python на вашата компютърна система.
  • Инсталирайте прост редактор, за да въведете изходния си код. Можете да използвате възвишен текстов редактор за начало.
  • Отворете нов файл във вашия редактор и въведете следното:
отпечатайте „Здравей Python!“
  • Не забравяйте да запазите файла като main.py
  • Намерете пътя към файла на вашия CLI и напишете командата по-долу:
$ python main.py

Резултатът трябва да изглежда така:

Анатомията на типичен изходен код

Сега ще разгледаме съдържанието на типичен файл с изходен код. По-долу са редовните компоненти:

Ключови думи

Кратки, разбираеми от човека думи, обикновено познати като ключови думи. Те са характерни за езика, който изучавате, и са специални. Ще се върнем накратко към това. Трябва да научите някои от ключовите думи наизуст. Ето набора от ключови думи, разпознати и използвани в Python.

https://www.programiz.com/python-programming/keyword-list

Идентификатори

Думи, измислени от теб - Да ти, програмистът. Тези думи обикновено се наричат ​​идентификатори. Те могат да бъдат създадени от вас или други програмисти. Те са опаковани под формата на приставки, по-известни като Библиотеки.

Пример за библиотека е библиотеката Math. Позволява ви достъп до функции като квадратния корен (Math.sqrt), използван в Javascript.

Много езици за програмиране се доставят с множество библиотеки. Те обикновено се наричат ​​техните SDK (комплекти за разработка на софтуер). Ще ги изтеглите заедно с компилатора, за да започнете изграждането на технологии, приложения и проекти. Освен тях има рамки, създадени да помогнат при изграждането на определена платформа като уеб или мобилна.

Някои идентификатори са в комплект с език, който използвате и не могат да се използват като идентификатор, посочен от потребителя. Пример е думата низ в Java. Такива идентификатори, заедно с ключови думи, са известни като резервирани думи. Те не са ключови думи, но като ключови думи, те също са специални.

Всички ключови думи са запазени думи, обратното не е вярно.

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

Често срещана употреба на идентификатори е при именуване на променливи, ще разгледаме това малко.

Основни типове данни

Също така ще намерите данни от различни видове в изходния код, числата (3, 5.7, -100, 3.142) и символите (M, A). В някои езици на програмиране числата се разбиват допълнително на техните собствени типове, като цели числа.

Целите числа могат да бъдат подписани или неподписани, големи цели числа и малки цели числа. Голямо или малко всъщност зависи от количеството памет, запазено за такива номера. Има числа с десетични части, обикновено наричани двойни и плаващи, в зависимост от езика, който изучавате.

Имаме и булеви типове данни, които оценяват като верни или неверни.

Сложни типове данни

Типовете данни, обяснени по-горе, са известни като елементарни, първични или основни типове данни. Можем да изградим по-сложни типове данни от тези основни типове данни.

Масивът е най-простата форма на сложния тип данни. A String е масив от знаци. Не можем без тези сложни типове данни и често ги използваме, когато пишем нашия изходен код.

Комбинация от знаци е низ. За да използвате аналогия, низът е към компютър какво е дума за човек. Думата „Термометър“ е съставена от 11 знака - просто я наричаме низ от знаци. Обработката на струните е широка тема сама по себе си, за да се учи и трябва да се изучава от всеки амбициозен програмист.

Сложните типове данни се доставят с повечето програмни езици, които използвате. Има и други, които ние изграждаме като програмисти, като например системите Class. Те са известни също като (OOP) обектно ориентирано програмиране.

Променливи

Променливите са просто име на памет места. Понякога искаме да запазим данните в изходния си код на място, където можем да си припомним данните, за да ги използваме отново. Това обикновено е място за памет, което нашият компилатор / преводач запазва за нас. Трябва да назовем тези места в паметта, за да ги припомним по-късно. Помислете фрагмента на кода Python по-долу:

pet_name = 'Hippo'print pet_name

pet_name е пример за променлива. Тъй като типът данни, съхранявани в pet_name, е низ. Известен е като променлива на низ. Има и цифрови променливи. Променливите са категоризирани по техните типове данни.

константи

Константите са стойности, които не се променят през целия живот на програмата. Използваме главни букви, за да наложим някои стойности да бъдат постоянни стойности. Някои езици предоставят начин за създаване на постоянни стойности, докато други не.

Някои езици осигуряват лукса на декларирането на типове, каквито трябва да бъдат променливите. Често наричаме тези силно типизирани езици. Java е добър пример.

Други не предоставят тези функции. Те са слабо типизирани или динамични програмни езици. Python е добър пример.

Ето как да декларирате постоянни стойности в JavaScript.

const petName = 'Hippo'

Литерали

Във всеки изходен код има типове данни, които използвате навсякъде около вашия код, които ще се променят само ако ги редактирате сами. Ние наричаме тези буквали, които не трябва да се бъркат с променливи или константи. Литералите могат да се видят, след като погледнете изходния код. Те могат да бъдат низове, числа, десетични знаци или други типове данни.

В фрагмента на изходния код по-горе, думата „Hippo“ е буквал - буквален низ. Винаги ще бъде „Hippo“, докато не редактирате изходния код. Докато се научите да кодирате, ще научите как да управлявате литералите във вашия изходен код по начин, който е лесен за поддържане, без да променяте голяма част от изходния си код.

Препинателни знаци / символи

В повечето изходен код обикновено ще намерите различни препинателни знаци в зависимост от езика на програмиране. Java има повече препинателни знаци, например от Python.

Общите препинателни знаци включват запетая (,), полу-запетая (;), двоеточие (:), скоби ({}), скоби (()), квадратни скоби ([]), кавички („”), тръба ( |), наклонена черта (\), период (.), въпросник (?), каре (^) и процент (%).

Добре дошли в света на кодирането, където препинателните знаци са най-добрите ви приятели. Ще откриете, че ги пишете много.

Операторите

Шансовете, че ще напишете код за извършване на операция, са много високи. По най-малкия начин ще извършите операция по присвояване във вашия изходен код. Ние сме представени с голям брой оператори от програмните езици, които използваме. Примерите включват събиране (+), деление (/) умножение (*), изваждане (-) и по-голямо от (>).

По принцип операторите могат да бъдат класифицирани, както следва:

  • Оператори за присвояване
    Това понякога е погрешно разбрано като равно на. Равно на се използва за сравняване на две стойности. Операторът за присвояване поставя стойност в променлива, като pet_name = 'Hippo'
  • Аритметични оператори
    Съставя оператори за изпълнение на аритметични задачи като събиране и изваждане. Някои езици предоставят някои аритметични оператори, които други може да нямат. Например операторът на модул (%) връща остатъчната стойност при операциите на разделяне.
  • Релационни оператори
    се използват за сравняване на стойности. Те включват по-голямо от, по-малко от, равно на, не-равно на. Тяхното представителство варира също така в зависимост от това на какъв език на програмиране изучавате. <> не е равно на някои езици, докато на други е! = или! ==.
  • Логически оператори
    се използват за изчисляване на логически операции. Най-често използваните логически оператори са и или не. Някои езици представляват тези оператори със символи като && for и, || за или и и! за не. Стойностите на логическата операция обикновено се изчисляват на булева стойностструктура или неверна.

Коментари

Документацията ще бъде важен аспект от вашите дейности по кодиране. Това е как обяснявате кода си на други програмисти. Това става чрез коментари, които понякога се добавят към части от кода ви. Чрез коментари можете да насочвате други програмисти през какъв тип данни работи вашият код и вида на изхода, който генерира.

Обикновено компилаторът игнорира кодови редове, които са коментари.

Коментарите варират в различните езици. #Is използва за въвеждане на коментари в Python.

Ето пример за коментар в Python.

# фрагмент на програмата, за да се изчисли полето на N числа

В Java, C и C ++ има коментари за един ред точно като # в Python, но вместо това се използва символът //. Има и многоредови коментари / * ... * /. Можете да прочетете повече за коментарите на езика, който сте избрали да научите.

Пространства и раздели

Това са интервали, създадени между кода, който пишете. Това става, когато натиснете клавиша за интервал или клавиша раздела на клавиатурата си.

Върви напред

Уверете се, че сте правилно настроили Python на вашата компютърна система и стартирайте първата си програма.

викторина

Ето един прост тест за вас.
Определете различните елементи, които сме изследвали досега, в фрагмента на изходния код на Java по-долу:

// рекурсивна реализация на Factorial
import java.util.Scanner;
клас RecursiveFactorial {
  public static void main (String [] args) {
    Въвеждане на скенер = нов скенер (System.in);
    System.out.print ("Намерете фактора на:");
    int num = input.nextInt ();
    System.out.println ("Фактор на" + num + "=" + факт (число));
 }
 статичен дълъг факт (int n) {
  ако (n <2) върнете 1;
  връщане n * факт (n-1);
 }
}

резюме

Вие сте запознати с това, което е изходен код, и сте проучили съдържанието на типичен изходен код.

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

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

Отговори на викторината

Определете различните елементи, които сме изследвали досега, в фрагмента на изходния код на Java по-долу:

Ключови думи:
import, class, public, static, void, new, int, long, if, return

идентификатори:
java, util, Scanner, RecursiveFactorial, main, String, args, input, System, in, out, print, println, num, nextInt, факт, n

Литерали:
String Literals - “Factorial of” = “Намерете фактора на:”
Цели литерали - 2, 1

оператори:
Оператор на задание =
Concatenator + (за съединяване на струни заедно)
по-малко от <
умножете *
изваждане -

Препинателни знаци и символи
{} [] (); ,

коментар
// рекурсивна реализация на Factorial

Част 3 - Отстраняване на грешки

След като започнете да изпробвате кодови фрагменти или се опитвате да решите действителни проблеми с кода, скоро ще разберете, че ще има моменти, когато вашата програма се счупи, прекъсне и спре да работи.

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

За да започнем, трябва да идентифицираме често срещаните грешки в нашия изходен код.

Синтактични грешки

Тези грешки няма да позволят на вашия изходен код да се компилира на компилирани програмни езици. Те се откриват по време на компилиране или по време на интерпретацията на вашия изходен код. Те могат да бъдат открити лесно и с лайнери. Ще научим малко повече за лайнерите по-късно.

Те се причиняват най-вече, когато нарушите очакваната форма или структура на езика, който кодирате. Пример липсва затваряща скоба в уравнение.

Семантични грешки

Семантичните грешки, известни също като логически грешки, са най-проблемните от всички грешки. Те не могат да бъдат лесно открити. Знак, че има семантична грешка, е когато програмата работи успешно, но не дава желания резултат.

Разгледайте този пример:

3 + 5 * 6

По подредба, популярно наричана BODMAS в математиката, очакваме първо да бъде оценена частта за умножение, а след това крайният резултат ще бъде 33. Ако програмистът искаше добавката да оцени първо, вместо това, това ще даде различен резултат от желания изход. Грешки като тази са семантични грешки, които имат повече общо със значението, отколкото със структурата (синтаксиса).

Парентезата около 3 + 5 ще даде желания резултат от 48 вместо това.

(3 + 5) * 6

Грешки по време на изпълнение

Подобно на семантичните грешки, грешките по време на изпълнение никога не се откриват при компилиране. За разлика от семантичните грешки, грешките по време на изпълнение прекъсват програмата и не й позволяват да изпълнява по-нататък. Те обикновено са причинени от неочакван резултат от някои изчисления в рамките на изходния код.

Ето един добър пример:

вход = 25x = 0.8 / (Math.sqrt (input) - 5)

Кодният фрагмент по-горе ще се компилира успешно, но въвеждане от 25 ще доведе до ZeroDivisionError. Това е грешка при изпълнение. Друг популярен пример е StackOverflowError или IndexOutofBoundError. Това, което е наистина важно, е да идентифицирате тези грешки и да се научите как да се справяте с тях.

Има грешки, причинени от начина, по който източникът ви използва памет и пространство на платформата или средата, в която се изпълнява. Те също са грешки по време на изпълнение. Такива грешки като OutOfMemoryErrorand HeapError обикновено са причинени от това колко източникът ви използва изразходваните ресурси. Доброто познаване на алгоритмите ще ви помогне да напишете код, който по-добре използва ресурсите.

Процесът на пренаписване на вашия код за по-добра производителност се нарича оптимизация, а не толкова свързана дума е рефакторинг. Тъй като прекарвате повече време в кодиране, трябва да имате това и предвид.

Отстраняване на грешки

Ето няколко съвета как да предприемете отстраняване на грешки в кода:

  • Използвайте лайнери
    Линерите са инструменти, които помагат да се чете чрез изходния ви код, за да се провери дали съответстват на очаквания стандарт на езика, на който кодирате. Има линтове за много езици за програмиране. Не забравяйте да вземете такъв за езика, който изучавате.
  • IDE над прости редактори
    Можете да изберете IDE, създаден за езика, който изучавате. IDE означава „Интегрирана среда за развитие“. Те са софтуер, създаден за писане, отстраняване на грешки, компилиране и изпълнение на код. Те обикновено се предлагат с мощни комплекти за отстраняване на грешки за гледане или стъпване през вашия код.
    Jetbrains правят страхотни IDE като Webstorm и IntelliJ. Има NetBeans, Komodo, Qt редактор, Android Studio, XCode (доставя се с Mac), за да назовем няколко.
  • Четене на кода на глас
    Това обикновено е полезно, когато търсите семантична грешка. Докато четете кода си на глас, има голям шанс да прочетете и грешката. Това може да скочи към вас като това, което вероятно не е наред.
  • Прочетете журнали за грешки
    Когато компилаторът маркира грешка, не забравяйте да погледнете номера на реда или частта от кода си.

Върви напред

Като начинаещ ще се научите да кодирате от книги, онлайн уроци или от видеоклипове. Често ще напишете код надолу, както ги видите.

Ето нещо, което трябва да направите, когато сте готови да пишете или изпълнявате такъв код, научете се да ги нарушавате. Как правите това?

Променете нещо, за да видите как се държи кодът. Направете това, за да не приемате нищо за нищо и сте почти сигурни, че разбирате какво става.

викторина

1. Каква е вероятната грешка в фрагмента на кода Python по-долу:

артикули = [0,1,2,3,4,5]
елементи за печат [8]
// намек: елементите тук са масив с 6 елемента. За да изтеглите например 4-ти елемент, ще използвате елементи [3]. Започваме да броим от 0.

2. Каква е вероятната грешка в фрагмента на кода Python по-долу:

вход = Hippo '
ако е вход == 'Hippo':
  отпечатай "Здравей, Хипо"

Обобщение на раздела

Честито! Думата за бъгове вече не е странна за вас и избирането на бъгове вече не би трябвало да е едно от двете. След това ще разгледаме общия поток на кода, който пишем всеки ден.

Отговори на викторината

Каква е вероятната грешка в фрагмента на кода Python по-долу:
(1) Грешка по време на изпълнение: Грешка в индекса извън обхвата
(2) Синтаксична грешка: Липсва начална кавичка на ред 1

http://www.publicdomainpictures.net/

Част 4 - Основни кодиращи потоци

Линия на код, изрази и изявления

Единицата на всеки изходен код е LOC (ред от код). Най-простата програма е ред на код. LOC може да бъде ключова дума, символ или изявление. Това е ред на код, стига да е на отделен ред.

Нека помислим за прост ред код:

площ = 0,5 * основа * височина

0.5 * основа * височина е израз. Изразът е комбинация от оператори и операнди. В дадения тук пример операндите са 0,5, база, височина. Ще си спомните, че 0,5 е буквал с плаваща запетая, базата и височината са променливи. Операторът е * (умножение).

Изразите може да не са смислени да останат самостоятелно като LOC. Когато присвояваме стойността на израза на друга променлива, в случая над областта това, което имаме, се нарича оператор. Все пак това е изявление, когато прикачаме изрази към ключови думи, например: връщане на 0.5 * base * височина

В останалата част на този раздел, ние ще представим изявление като символ S. Четвъртият израз ще бъде Sn сред последователност (или набор) от оператори

За да разберете бързо програмирането, добра отправна точка е разбирането на основните потоци на кодиране. Основните потоци се наричат ​​също контролни потоци. След като разберете тези потоци, ще ги намерите в много от програмните езици, които научавате.

Обърнете внимание, че примерите, дадени в това описание, са чисто основни. Трябва да се обърнете към езика, който изучавате, за да получите задълбочени познания за ключовите думи, които предоставя.

Също така основните потоци, въведени тук, са различни от моделите на проектиране в програмирането. Разберете първо тези основни потоци. По-късно вие наваксвате общите дизайнерски модели в програмирането, докато научите повече.

Ето основните програмни потоци:

  • следващ
  • Условно / разклоняващи
  • Итериране / повтарящите / Loops

следващ

Това е най-основният поток, при който едно изречение се изпълнява след друго. В действителния смисъл всеки друг поток се решава на последователен поток (повече за това по-късно).

S1
S2
S3
,
,
,
Sn

В някои езици за програмиране като JavaScript е възможно S3 да се изпълни преди S1. Това се случва, ако S1 бъде блокиран от някои задачи, които може да отнемат повече време, например операции с база данни или файлове, известни като асинхронни задачи. Има начини около подобни случаи. Не се притеснявайте, ще е лесно да се научите, когато вземете езика за програмиране, за да научите.

Условно / разклоняващи

Изявлението, което се изпълнява, се определя от условията. Ключовата дума тук е ключовата дума if. Това е един от най-използваните потоци на кодиране.

Ето най-простият условен модел:

ако (условие), тогава:
   S1

В горния пример или S1 изпълнява, или нищо не се случва. S1 се изпълнява само ако даденото условие е вярно.

Ето още един условен модел:

ако (условие), тогава:
  S1
  S2
друго:
  S3
  S4

Това може да се чете или като S1-S2 или S3-S4 въз основа на даденото условие. Ако състоянието е вярно, S1 и S2 ще бъдат обработени. В противен случай операторите S3 и S4 ще бъдат обработени. Това в действителен смисъл е последователен поток:

S1
S2

Имаме и многоусловния стил:

ако (условие1), тогава:
  S1
друго, ако (условие2), тогава:
  S2
друго:
  S3

Тук, ако условие1 е вярно, тогава S1 се обработва. В противен случай условие2 се тества и ако е вярно, S2 се обработва. Това може да продължи и нататък.

За многоусловния стил много програмни езици осигуряват превключване. Ето модела на оператора за превключване:

стойност на превключвателя:
  случай1:
    S1
    почивка
  
  случай2:
    S2
    почивка
по подразбиране:
    S3

Условието1 и условие2 се сравняват със стойността в оператора за превключване. Ако някоя от тях е вярна на стойността, тогава операторът в блока със случай се изпълнява.

Има и други възможности за условен поток. Някои са специфични за езика, който решите да научите, като условен оператор (:?), И други ключови думи, които улесняват разклоняването, като цикъл и прекъсване. Не забравяйте да прекарате някой път в разбиране на състоянието / разклонения поток.

Итериране / повтарящите / Loops

Потокът итерация / повторение поддържа оператор (и) да се изпълнява толкова дълго, колкото са изпълнени някои условия, и спира изпълнението на оператора (ите), след като условието вече не е вярно.

Ето модела:

докато (условие):
  S1
  S2

В горния пример, операторите S1 и S2 могат да се изпълняват веднъж, многократно или да не се изпълняват изобщо. Ако даденото условие е вярно, когато се срещне изявлението, тогава S1 и S2 ще бъдат обработени. Условието докато се проверява отново и S1and S2 ще се изпълнява толкова дълго, колкото условието е вярно.

В момента, в който условието стане невярно, изпълнението на S1 и S2 спира.

Резултатът от изказването по-горе, ако състоянието е вярно три пъти, ще бъде:

S1
S2
S1
S2
S1
S2

Какъв кодиращ поток е това? Ако сте отговорили последователно, сте много правилни. Както виждаме, другите потоци се решават на последователния поток.

Ето още един итерационен модел:

направите:
  S1
  S2
докато (условие)

В този пример S1 и S2 ще се изпълняват при лизинг веднъж или няколко пъти. Това е така, защото те ще се изпълнят преди тестването на условието.

В много езици на програмиране ключови думи като do andtime са предоставени за осъществяване на потока на повторение. Друга често срещана дума е за ключовата дума. Ето общият модел за изявлението.

за (първоначална стойност; условие; понижаване / увеличение начална стойност):
  S1
  S2

Много езици имат предсказания, използвани за работа през всеки елемент в сложен обект, като масив или структура.

викторина

Идентифицирайте кодиращите потоци в следния фрагмент от код на Python:

numlist = []
CNT = 0
докато cnt> = 0:
  m = междинно съединение (raw_input ())
  ако m <0:
    почивка
  numlist.append (т)
  CNT = CNT + 1

резюме

Потоците, обхванати тук, са основните потоци. Има начин да групирате група код заедно и да им дадете име. По този начин можете да извикате този куп код винаги, когато имате нужда от тях наведнъж. Това се нарича процедура. В случай, че снопът код извърши някаква операция и върне стойност, имате функция.

Как се прилагат процедурите и функциите варират в различните езици. Не можете да ги пропуснете, за да получите основите на всеки език. Те са изключително важни за организирането на вашия код. Всъщност тук започва изграждането на кода, известен също като модулно програмиране.

Има и други потоци, които ще научите в момента, в който разберете функциите, един, който идва на ум, е рекурсия.

И все пак ще откриете, че в рамките на процедурите и функциите все още са страхотните кодиращи потоци, които сме обхванали тук - последователен, условен и цикъл / итеративен поток.

Върви напред

Сега научихте най-основните понятия за програмиране на вашия компютър. Ако искате да научите повече или искате да направите кариера от разработването на софтуер, тогава всичко, което трябва да направите, е да се потопите по-дълбоко в по-дълбоките води. Има толкова много ресурси, които да ви помогнат да научите. Знанието кои да вземем въз основа на нивото на опит е много важно.

Опитайте се да не се затрупвате от новите думи, които чувате от по-опитните програмисти от кръга си от приятели. Можете да запазите подложка, за да отбележите тези термини, но не се подлагайте на натиск, за да разберете какво означават. Ще наваксате, докато се учите и практикувате.

Ето няколко ресурса, които да ви помогнат да започнете вашата кодираща кариера и да помогнете за изграждането на основата, която сте получили от тук:

  • https://www.codecademy.com/
    Изберете курса на Python
  • https://app.pluralsight.com/library/courses/what-is-programming/table-of-contents
    Безплатен курс по плурализъм

ЗАБЕЛЕЖКА: Не препоръчвам прекалено четене по същата тема. Вярвам, че действаш върху малкото, което си научил, тоест практикуваш. Ето защо тук не изхвърлям прекалено много връзки за вашето обучение. Чувствайте се свободни да влезете в Google или да намерите други въз основа на това, което вече знаете, ако не сте първият таймер.

Последно предизвикателство

С настоящото ви предизвиквам:
Поемете някое от тези предизвикателства:

  • Намерете всяко просто приложение онлайн и го възпроизведете на езика за програмиране, който сте научили

ИЛИ

  • Помислете за всяка идея, дори ако е толкова проста, колкото приложението за списък с кофи
    създайте приложение около тази идея.

Ще препоръчам тази статия от кодиментатор, за да започнете с това.

Отговори на викторината

Идентифицирайте кодиращите потоци в следните фрагменти от код на Python.

  • Последователен поток
  • Повторение
    докато изявлението
  • условен
    изявлението if

Специални благодарности на Мая Нерия, Джошуа Угба и Мохини Уфели за прегледа на това преписване, Сураджудин Аканд за това, че ме призова да го публикувам, на редакционния екип в Андела за рецензиите, на Джон Адесаня за илюстрациите и на „Кунми - тези уроци започнаха с желанието й да се научи как да кодира.

Ако това ви е харесало, кликнете върху иконата за хлопане, за да могат другите хора да виждат това тук средно. Освен това, ако имате въпроси или наблюдения, използвайте секцията за коментари, за да споделите мислите си.