Geekbrains study examples
### C#
-
Публичный .gitignore для vscode.
-
Вспомогательный софт: Microsoft .NET SDK 6.0
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-6.0 aspnetcore-runtime-6.0
- Инициализировать dotnet-консоль (стартер-пак структуры) в папке с проектом:
dotnet new console
- Запустить проект в консоли:
dotnet run
- Вывод данных:
Console.Write("something");
- Считать данные c записью в переменную - Метод ReadLine (по-умолчанию возвращает переменную типа string):
Console.Write("something");
string username = Console.ReadLine();
- Объявить целочисленную переменную:
int intA = 7
- Объявить тип вещественного числа для переменной (например, для деления с остатком):
double intA = 20 ;
double intB = 3 ;
Console.Write(intA / intB);
- Случайные числа (возвращает целое число от min до max , или от min до max-1):
new Random().Next(min,max);
double intA = new Random().Next(1, 10) ;
double intB = new Random().Next(1, 10) ;
Console.Write(intA / intB);
- Автоеревод значения переменной в нижний регистр (например, если вводим АНя, вместо аня)
if(user.ToLower() == "аня")
- Очистить консоль перед каждым запуском:
Console.Clear() ;
- Добавить отступ от левого и от верхнего края:
Console.SetCursorPosition(x,y) ;
- Методы конвертирования типа значений в integer:
int.Parse()
Convert.ToInt32()
int number = Convert.ToInt32(Console.ReadLine()) ;
- Множественные условия в цикле (else if):
Конструкция:
if (... something ...)
(
... make this .... ;
)
else if (...1st other some ... )
(
... make that ... ;
)
else if (... 2nd other some ... )
(
... make that ... ;
)
else
(
... make different ... ;
)
- Цикл for:
Конструкция:
for (int i = -N ; i <= N ; i++)
{
Console.WriteLine(i);
}
- Остаток от деления = символ % ( в примере ниже - остаток от деления на 10)
if ( 99 < number && number < 1000)
{
Console.WriteLine($"{number%10} - последняя цифра в числе {number}") ;
}
- Вывод с отступом в табуляцию "\t":
{
Console.Write(i + "\t");
}
- Функция Math.Abs - возвращает абсолютное значение от числа
int number = Math.Abs(Convert.ToInt32(...)
- Структура функции:
_тип_данных_ _название_функции_ (_принимаемые параметры_)
{
_Тело функции
}
//Функция берет заданное число, считает сумму от 1 до числа и выводит результат
int SumNumbers(int a)
{
int sum = 0 ;
for (int i =1; i <= a ; i++)
{
sum += i;
}
return sum ; //оператор перехода - принудительно завершает функцию и возвращает значение
}
- Синтаксис переменных для обработки массивов включает квадратные скобки: int[]
int[] newArray = new int[sizeArray] ; // массив newArray обрабатывает одну ячкйку памяти со значениями переменной sizeArray
- Пример функции ддя заполнения массива случайными числами
// Определяет размерность массива, и диапазон значений, начальный и конечный элементы для Random
int[] generateArray (int sizeArray , int leftRange , int rightRange)
{
int[] newArray = new int[sizeArray] ;
Random rand = new Random() ;
// Цикл для заполнения массива случайными числами из указанного диапазона
for (int i = 0 ; i < newArray.Length ; i++)
{
newArray[i] = rand.Next(leftRange , rightRange + 1) ; // т к rand не обработает правое значение диапазона
}
return newArray ;
}
// Вызов функции:
int[] array = generateArray(10 , -9 ,9) ;
- Оператор условного null-значения ( ? )
string? ...
// Позволяет, например, обработать в коде null-строку, не выводя ошибок
- Модификаторы:
Позволяют возвращать несколько значений из функции. Могут вызываться сразу внутри функций.
Фактически передают значимый тип данных по ссылке:
void sumOfNegativeAndPositive(int[] array, out int sumPositive, out int sumNegative)
// Для обработки внутри функции, значения модификаторов должны быть явно объявлены:
sumPositive = 0 ;
sumNegative = 0 ;
// Вызов функции:
sumOfNegativeAndPositive(array, out int sumP, out int sumN);
System.Console.WriteLine($"\nСумма положительных: {sumP}") ;
System.Console.WriteLine($"\nСумма отрицательных: {sumN}") ;
### Python
Python - язык с динамически определяемыми типами данных - сам их оопрелеляет при запуске кода - это влияет на его скорость
Запуск кода а cli :
python3 tmp.py
Запуск кода а VSCode - Ctrl + F5 / Run & debug (gui) :
Переменные с объявленным и пустым (none) и строковым (" " ; ' ') значением: в Python нет разделения на тип данных 'char' и "string"
n = 6
n = none
n = "somestring"
n = 'something'
- Интерполяция - получение сложной строки из нескольких простых: Конструкцтя f "{var1} - (var2) - ..." позволяет выводить данные внутри переменных:
Пример:
a = 6
b = 7.42
c = "somestring"
print (f"{a} - {b} - {c}")
Ввод данных (по-умолчанию тип string):
#a = input()
#a = input("Введите строку: ")
a = int(input("Введите число: "))
print(a)
Приведение типов данных:
c = 5.86
print(c)
#меняем тип переменной на int
n = int(c)
print(n)
#Подсветить типы двнных (type) в выводе:
print(type(c))
print(type(n))
Округление по числу знаков после запятой round(число, кол-во знаеов после ,)
a = 7.86672162
b = 5.42767261
print(round(a*b, 3))
- Условия if / then / else - управляющие конструкции.
- Сложные условия описываются логическими И - and / ИЛИ - or
Пример:
username = input('Введите имя: ')
if username == 'Маша' or username == 'Mawa':
print("Ура, это же МАША!")
elif username == 'Марина':
print("Я так ждала Вас, Марина!")
elif username == 'Ильнар':
print('Ильнар - топ)')
else:
print('Привет, ', username)
Цикл while - выполняем до тех пор пока:
Пример:
n = 423
sum = 0
while n > 0:
x=n % 10
sum = sum + x
n = n // 10
print("Сумма элементов числа = " , sum)
Прерывание цикла - break
Пример:
i = 6
while i < 5:
if i == 3:
break
i = i + 1
else:
print("Пожалуй")
print('хватит )')
print(i)
- Метод флажка flag = true / false:
- i++ (C#) это i += 1 (Python) Пример:
n = int(input("Введите число: "))
flag = True
i = 2
while flag:
# если остаток при делении числа п на 1 равен 0
if n % i == 0:
flag = False
print(i)
# делитьель числа не может превышать введенное введенное число деленое на 2
elif i > n // 2:
print(n)
flag = False
i += 1
- Функция range() -выводит значения в диапазоне с щагом (по-умолчанию 1)
- Пример, вместе с вложенным циклом:
#выведет 5 строк х5 *
line =" "
for i in range(5):
line = ""
for j in range(5):
line += "*"
print(line)
- Примеры работы со строками: больще в крайнем коммите lect_1
text = 'съешь ещё этих мягких французских булок'
print(text[1]) #ъ
print(text[len(text)-1]) #к
print(text[-5]) #6
print(text[:2]) # съ
print(text[len(text)-2:]) # ок
print(text[2:9]) # ешь ещё
Список это +- тот же массив Задать список можно разными способами:
list_1 = [a,b,c,d] # в квадратных скобках явно
list_1 = list() # через функцию list()
Вывод списка:
print(list_1) # выведет список с квадратными скобками и запятыми
print(*list_1) # выведет список без квадратных скобок и запятых - чистые данные
print(len(list_1)) # выведет количество элементов списка
print(list_1(-1)) # (-1) - выведет последний элемент списка (-2), предпоследний и т.д - индексация с конца.
list_1.append(91) # append добавляет элемент в конец списка
print(list_1)
list_1 = [] #создаем пустой список
for i in range(5):
list_1.append(i)
print(list_1)
работа со списком в цикле:
for i in list_1:
print(i)